From 75976bdab8db8c98790f4b0a8d26f46ced033032 Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Wed, 20 Feb 2019 17:21:54 +0600 Subject: [PATCH 01/19] Initial tooltip extension --- admin/partials/extensions.php | 9 + admin/settings.php | 2 +- assets/css/tippy.css | 1 + assets/js/eael-scripts.js | 45 + assets/js/popper.min.js | 5 + assets/js/tippy.min.js | 1930 +++++++++++++++++ essential_adons_elementor.php | 23 +- .../eael-tooltip-section.php | 448 ++++ 8 files changed, 2455 insertions(+), 8 deletions(-) create mode 100644 assets/css/tippy.css create mode 100644 assets/js/popper.min.js create mode 100644 assets/js/tippy.min.js create mode 100755 extensions/eael-tooltip-section/eael-tooltip-section.php diff --git a/admin/partials/extensions.php b/admin/partials/extensions.php index e199cb71d..bc6eb7079 100755 --- a/admin/partials/extensions.php +++ b/admin/partials/extensions.php @@ -11,6 +11,15 @@

+ +
+ +
+ eael_get_settings['section-tooltip'], true ); ?> > + +

+
+

Premium Extensions

diff --git a/admin/settings.php b/admin/settings.php index dadf44230..4d3754e5e 100755 --- a/admin/settings.php +++ b/admin/settings.php @@ -14,7 +14,7 @@ class Eael_Admin_Settings { * @var array * @since 2.3.0 */ - public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles']; + public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'section-tooltip']; /** * Will Contain All Components Default Values diff --git a/assets/css/tippy.css b/assets/css/tippy.css new file mode 100644 index 000000000..94e29c7da --- /dev/null +++ b/assets/css/tippy.css @@ -0,0 +1 @@ +.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0} \ No newline at end of file diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 9263bb840..121c1bff8 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -843,6 +843,50 @@ } }; + + /*=================================*/ + /* 37. Section Tooltip + /*=================================*/ + + var EaelSectionTooltip = function($scope, $) { + var $tooltip = $scope.find('.eael-section-tooltip'), i; + var $currentTooltip = $( '#' + $($tooltip[i]).attr('id') ); + // $tooltipSide = ( $currentTooltip.data('side') !== undefined ) ? $currentTooltip.data('side') : false, + // $tooltipTrigger = ( $currentTooltip.data('trigger') !== undefined ) ? $currentTooltip.data('trigger') : 'hover', + // $animation = ( $currentTooltip.data('animation') !== undefined ) ? $currentTooltip.data('animation') : 'fade', + // $anim_duration = ( $currentTooltip.data('animation_duration') !== undefined ) ? $currentTooltip.data('animation_duration') : 300, + // $theme = ( $currentTooltip.data('theme') !== undefined ) ? $currentTooltip.data('theme') : 'default', + // $arrow = ( 'yes' == $currentTooltip.data('arrow') ) ? true : false; + + // $currentTooltip.tooltipster({ + // animation: $animation, + // trigger: $tooltipTrigger, + // side: $tooltipSide, + // delay: $anim_duration, + // arrow: $arrow, + // theme: 'tooltipster-' + $theme + // }); + + // new Tippy( $currentTooltip ,{ + // position:'top', + // animation:'scale', + // arrow:'true' + // }); + + // tippy( $($scope), { + // position:'top', + // animation:'scale', + // arrow:'true' + // }); + + tippy('.eael-section-tooltip', { + placement:'top', + animation:'scale', + arrow:'true' + }) + } + + $(window).on('elementor/frontend/init', function () { if(elementorFrontend.isEditMode()) { @@ -863,6 +907,7 @@ elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown); elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar); elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelParticlesHandler ); + elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelSectionTooltip ); }); }(jQuery)); \ No newline at end of file diff --git a/assets/js/popper.min.js b/assets/js/popper.min.js new file mode 100644 index 000000000..94a5c26fc --- /dev/null +++ b/assets/js/popper.min.js @@ -0,0 +1,5 @@ +/* + Copyright (C) Federico Zivolo 2019 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?pe:10===e?se:pe||se}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),y&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),V(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue}); +//# sourceMappingURL=popper.min.js.map diff --git a/assets/js/tippy.min.js b/assets/js/tippy.min.js new file mode 100644 index 000000000..8dfc89163 --- /dev/null +++ b/assets/js/tippy.min.js @@ -0,0 +1,1930 @@ +/**! + * tippy.js v4.0.2 + * (c) 2017-2019 atomiks + * MIT License + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) : + typeof define === 'function' && define.amd ? define(['popper.js'], factory) : + (global = global || self, global.tippy = factory(global.Popper)); +}(this, function (Popper) { 'use strict'; + + Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper; + + var css = ".tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\"\";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}"; + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + var version = "4.0.2"; + + var isBrowser = typeof window !== 'undefined'; + var ua = isBrowser && navigator.userAgent; + var isIE = /MSIE |Trident\//.test(ua); + var isUCBrowser = /UCBrowser\//.test(ua); + var isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream; + + var Defaults = { + a11y: true, + allowHTML: true, + animateFill: true, + animation: 'shift-away', + appendTo: function appendTo() { + return document.body; + }, + aria: 'describedby', + arrow: false, + arrowType: 'sharp', + boundary: 'scrollParent', + content: '', + delay: [0, 20], + distance: 10, + duration: [325, 275], + flip: true, + flipBehavior: 'flip', + flipOnUpdate: false, + followCursor: false, + hideOnClick: true, + ignoreAttributes: false, + inertia: false, + interactive: false, + interactiveBorder: 2, + interactiveDebounce: 0, + lazy: true, + maxWidth: 350, + multiple: false, + offset: 0, + onHidden: function onHidden() {}, + onHide: function onHide() {}, + onMount: function onMount() {}, + onShow: function onShow() {}, + onShown: function onShown() {}, + placement: 'top', + popperOptions: {}, + role: 'tooltip', + showOnInit: false, + size: 'regular', + sticky: false, + target: '', + theme: 'dark', + touch: true, + touchHold: false, + trigger: 'mouseenter focus', + updateDuration: 0, + wait: null, + zIndex: 9999 + /** + * If the set() method encounters one of these, the popperInstance must be + * recreated + */ + + }; + var POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'arrowType', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions']; + + var Selectors = { + POPPER: '.tippy-popper', + TOOLTIP: '.tippy-tooltip', + CONTENT: '.tippy-content', + BACKDROP: '.tippy-backdrop', + ARROW: '.tippy-arrow', + ROUND_ARROW: '.tippy-roundarrow' + }; + + var elementProto = isBrowser ? Element.prototype : {}; + var matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector; + /** + * Ponyfill for Array.from - converts iterable values to an array + * @param {ArrayLike} value + * @return {any[]} + */ + + function arrayFrom(value) { + return [].slice.call(value); + } + /** + * Ponyfill for Element.prototype.closest + * @param {Element} element + * @param {String} parentSelector + * @return {Element} + */ + + function closest(element, parentSelector) { + return (elementProto.closest || function (selector) { + var el = this; + + while (el) { + if (matches.call(el, selector)) return el; + el = el.parentElement; + } + }).call(element, parentSelector); + } + /** + * Works like Element.prototype.closest, but uses a callback instead + * @param {Element} element + * @param {Function} callback + * @return {Element} + */ + + function closestCallback(element, callback) { + while (element) { + if (callback(element)) return element; + element = element.parentElement; + } + } + + /** + * Determines if a value is a plain object + * @param {any} value + * @return {Boolean} + */ + + function isPlainObject(value) { + return {}.toString.call(value) === '[object Object]'; + } + /** + * Safe .hasOwnProperty check, for prototype-less objects + * @param {Object} obj + * @param {String} key + * @return {Boolean} + */ + + function hasOwnProperty(obj, key) { + return {}.hasOwnProperty.call(obj, key); + } + /** + * Returns an array of elements based on the value + * @param {any} value + * @return {Array} + */ + + function getArrayOfElements(value) { + if (isSingular(value)) { + return [value]; + } + + if (value instanceof NodeList) { + return arrayFrom(value); + } + + if (Array.isArray(value)) { + return value; + } + + try { + return arrayFrom(document.querySelectorAll(value)); + } catch (e) { + return []; + } + } + /** + * Returns a value at a given index depending on if it's an array or number + * @param {any} value + * @param {Number} index + * @param {any} defaultValue + */ + + function getValue(value, index, defaultValue) { + if (Array.isArray(value)) { + var v = value[index]; + return v == null ? defaultValue : v; + } + + return value; + } + /** + * Debounce utility + * @param {Function} fn + * @param {Number} ms + */ + + function debounce(fn, ms) { + var timeoutId; + return function () { + var _this = this, + _arguments = arguments; + + clearTimeout(timeoutId); + timeoutId = setTimeout(function () { + return fn.apply(_this, _arguments); + }, ms); + }; + } + /** + * Prevents errors from being thrown while accessing nested modifier objects + * in `popperOptions` + * @param {Object} obj + * @param {String} key + * @return {Object|undefined} + */ + + function getModifier(obj, key) { + return obj && obj.modifiers && obj.modifiers[key]; + } + /** + * Determines if an array or string includes a value + * @param {Array|String} a + * @param {any} b + * @return {Boolean} + */ + + function includes(a, b) { + return a.indexOf(b) > -1; + } + /** + * Determines if the value is singular-like + * @param {any} value + * @return {Boolean} + */ + + function isSingular(value) { + return isPlainObject(value) || value instanceof Element; + } + /** + * Tricking bundlers, linters, and minifiers + * @return {String} + */ + + function innerHTML() { + return 'innerHTML'; + } + /** + * Evaluates a function if one, or returns the value + * @param {any} value + * @param {any[]} args + * @return {Boolean} + */ + + function evaluateValue(value, args) { + return typeof value === 'function' ? value.apply(null, args) : value; + } + /** + * Sets a popperInstance `flip` modifier's enabled state + * @param {Object[]} modifiers + * @param {any} value + */ + + function setFlipModifierEnabled(modifiers, value) { + modifiers.filter(function (m) { + return m.name === 'flip'; + })[0].enabled = value; + } + + /** + * Returns a new `div` element + * @return {HTMLDivElement} + */ + + function div() { + return document.createElement('div'); + } + /** + * Sets the innerHTML of an element while tricking linters & minifiers + * @param {HTMLElement} el + * @param {Element|String} html + */ + + function setInnerHTML(el, html) { + el[innerHTML()] = html instanceof Element ? html[innerHTML()] : html; + } + /** + * Sets the content of a tooltip + * @param {HTMLElement} contentEl + * @param {Object} props + */ + + function setContent(contentEl, props) { + if (props.content instanceof Element) { + setInnerHTML(contentEl, ''); + contentEl.appendChild(props.content); + } else { + contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content; + } + } + /** + * Returns the child elements of a popper element + * @param {HTMLElement} popper + * @return {Object} + */ + + function getChildren(popper) { + return { + tooltip: popper.querySelector(Selectors.TOOLTIP), + backdrop: popper.querySelector(Selectors.BACKDROP), + content: popper.querySelector(Selectors.CONTENT), + arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW) + }; + } + /** + * Adds `data-inertia` attribute + * @param {HTMLElement} tooltip + */ + + function addInertia(tooltip) { + tooltip.setAttribute('data-inertia', ''); + } + /** + * Removes `data-inertia` attribute + * @param {HTMLElement} tooltip + */ + + function removeInertia(tooltip) { + tooltip.removeAttribute('data-inertia'); + } + /** + * Creates an arrow element and returns it + * @return {HTMLDivElement} + */ + + function createArrowElement(arrowType) { + var arrow = div(); + + if (arrowType === 'round') { + arrow.className = 'tippy-roundarrow'; + setInnerHTML(arrow, ''); + } else { + arrow.className = 'tippy-arrow'; + } + + return arrow; + } + /** + * Creates a backdrop element and returns it + * @return {HTMLDivElement} + */ + + function createBackdropElement() { + var backdrop = div(); + backdrop.className = 'tippy-backdrop'; + backdrop.setAttribute('data-state', 'hidden'); + return backdrop; + } + /** + * Adds interactive-related attributes + * @param {HTMLElement} popper + * @param {HTMLElement} tooltip + */ + + function addInteractive(popper, tooltip) { + popper.setAttribute('tabindex', '-1'); + tooltip.setAttribute('data-interactive', ''); + } + /** + * Removes interactive-related attributes + * @param {HTMLElement} popper + * @param {HTMLElement} tooltip + */ + + function removeInteractive(popper, tooltip) { + popper.removeAttribute('tabindex'); + tooltip.removeAttribute('data-interactive'); + } + /** + * Applies a transition duration to a list of elements + * @param {Array} els + * @param {Number} value + */ + + function applyTransitionDuration(els, value) { + els.forEach(function (el) { + if (el) { + el.style.transitionDuration = "".concat(value, "ms"); + } + }); + } + /** + * Add/remove transitionend listener from tooltip + * @param {Element} tooltip + * @param {String} action + * @param {Function} listener + */ + + function toggleTransitionEndListener(tooltip, action, listener) { + // UC Browser hasn't adopted the `transitionend` event despite supporting + // unprefixed transitions... + var eventName = isUCBrowser && document.body.style.WebkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend'; + tooltip[action + 'EventListener'](eventName, listener); + } + /** + * Returns the popper's placement, ignoring shifting (top-start, etc) + * @param {Element} popper + * @return {String} + */ + + function getPopperPlacement(popper) { + var fullPlacement = popper.getAttribute('x-placement'); + return fullPlacement ? fullPlacement.split('-')[0] : ''; + } + /** + * Sets the visibility state to elements so they can begin to transition + * @param {Array} els + * @param {String} state + */ + + function setVisibilityState(els, state) { + els.forEach(function (el) { + if (el) { + el.setAttribute('data-state', state); + } + }); + } + /** + * Triggers reflow + * @param {Element} popper + */ + + function reflow(popper) { + void popper.offsetHeight; + } + /** + * Adds/removes theme from tooltip's classList + * @param {HTMLDivElement} tooltip + * @param {String} action + * @param {String} theme + */ + + function toggleTheme(tooltip, action, theme) { + theme.split(' ').forEach(function (themeName) { + tooltip.classList[action](themeName + '-theme'); + }); + } + /** + * Constructs the popper element and returns it + * @param {Number} id + * @param {Object} props + * @return {HTMLDivElement} + */ + + function createPopperElement(id, props) { + var popper = div(); + popper.className = 'tippy-popper'; + popper.id = "tippy-".concat(id); + popper.style.zIndex = props.zIndex; + + if (props.role) { + popper.setAttribute('role', props.role); + } + + var tooltip = div(); + tooltip.className = 'tippy-tooltip'; + tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : ''); + tooltip.setAttribute('data-size', props.size); + tooltip.setAttribute('data-animation', props.animation); + tooltip.setAttribute('data-state', 'hidden'); + toggleTheme(tooltip, 'add', props.theme); + var content = div(); + content.className = 'tippy-content'; + content.setAttribute('data-state', 'hidden'); + + if (props.interactive) { + addInteractive(popper, tooltip); + } + + if (props.arrow) { + tooltip.appendChild(createArrowElement(props.arrowType)); + } + + if (props.animateFill) { + tooltip.appendChild(createBackdropElement()); + tooltip.setAttribute('data-animatefill', ''); + } + + if (props.inertia) { + addInertia(tooltip); + } + + setContent(content, props); + tooltip.appendChild(content); + popper.appendChild(tooltip); + return popper; + } + /** + * Updates the popper element based on the new props + * @param {HTMLDivElement} popper + * @param {Object} prevProps + * @param {Object} nextProps + */ + + function updatePopperElement(popper, prevProps, nextProps) { + var _getChildren = getChildren(popper), + tooltip = _getChildren.tooltip, + content = _getChildren.content, + backdrop = _getChildren.backdrop, + arrow = _getChildren.arrow; + + popper.style.zIndex = nextProps.zIndex; + tooltip.setAttribute('data-size', nextProps.size); + tooltip.setAttribute('data-animation', nextProps.animation); + tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : ''); + + if (nextProps.role) { + popper.setAttribute('role', nextProps.role); + } else { + popper.removeAttribute('role'); + } + + if (prevProps.content !== nextProps.content) { + setContent(content, nextProps); + } // animateFill + + + if (!prevProps.animateFill && nextProps.animateFill) { + tooltip.appendChild(createBackdropElement()); + tooltip.setAttribute('data-animatefill', ''); + } else if (prevProps.animateFill && !nextProps.animateFill) { + tooltip.removeChild(backdrop); + tooltip.removeAttribute('data-animatefill'); + } // arrow + + + if (!prevProps.arrow && nextProps.arrow) { + tooltip.appendChild(createArrowElement(nextProps.arrowType)); + } else if (prevProps.arrow && !nextProps.arrow) { + tooltip.removeChild(arrow); + } // arrowType + + + if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) { + tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow); + } // interactive + + + if (!prevProps.interactive && nextProps.interactive) { + addInteractive(popper, tooltip); + } else if (prevProps.interactive && !nextProps.interactive) { + removeInteractive(popper, tooltip); + } // inertia + + + if (!prevProps.inertia && nextProps.inertia) { + addInertia(tooltip); + } else if (prevProps.inertia && !nextProps.inertia) { + removeInertia(tooltip); + } // theme + + + if (prevProps.theme !== nextProps.theme) { + toggleTheme(tooltip, 'remove', prevProps.theme); + toggleTheme(tooltip, 'add', nextProps.theme); + } + } + /** + * Runs the callback after the popper's position has been updated + * update() is debounced with Promise.resolve() or setTimeout() + * scheduleUpdate() is update() wrapped in requestAnimationFrame() + * @param {Popper} popperInstance + * @param {Function} callback + */ + + function afterPopperPositionUpdates(popperInstance, callback) { + var popper = popperInstance.popper, + options = popperInstance.options; + var onCreate = options.onCreate, + onUpdate = options.onUpdate; + + options.onCreate = options.onUpdate = function (data) { + reflow(popper); + callback(); + onUpdate(data); + options.onCreate = onCreate; + options.onUpdate = onUpdate; + }; + } + /** + * Hides all visible poppers on the document + * @param {Object} options + */ + + function hideAll() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + checkHideOnClick = _ref.checkHideOnClick, + exclude = _ref.exclude, + duration = _ref.duration; + + arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) { + var instance = popper._tippy; + + if (instance && (checkHideOnClick ? instance.props.hideOnClick === true : true) && (!exclude || popper !== exclude.popper)) { + instance.hide(duration); + } + }); + } + /** + * Determines if the mouse cursor is outside of the popper's interactive border + * region + * @param {String} popperPlacement + * @param {ClientRect} popperRect + * @param {MouseEvent} event + * @param {Object} props + * @return {Boolean} + */ + + function isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) { + if (!popperPlacement) { + return true; + } + + var x = event.clientX, + y = event.clientY; + var interactiveBorder = props.interactiveBorder, + distance = props.distance; + var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder); + var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder); + var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder); + var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder); + return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight; + } + /** + * Returns the distance offset, taking into account the default offset due to + * the transform: translate() rule (10px) in CSS + * @param {Number} distance + * @return {String} + */ + + function getOffsetDistanceInPx(distance) { + return -(distance - 10) + 'px'; + } + + var PASSIVE = { + passive: true + }; + var PADDING = 3; + + var isUsingTouch = false; + function onDocumentTouch() { + if (isUsingTouch) { + return; + } + + isUsingTouch = true; + + if (isIOS) { + document.body.classList.add('tippy-iOS'); + } + + if (window.performance) { + document.addEventListener('mousemove', onDocumentMouseMove); + } + } + var lastMouseMoveTime = 0; + function onDocumentMouseMove() { + var now = performance.now(); // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference + + if (now - lastMouseMoveTime < 20) { + isUsingTouch = false; + document.removeEventListener('mousemove', onDocumentMouseMove); + + if (!isIOS) { + document.body.classList.remove('tippy-iOS'); + } + } + + lastMouseMoveTime = now; + } + function onDocumentClick(_ref) { + var target = _ref.target; + + // Simulated events dispatched on the document + if (!(target instanceof Element)) { + return hideAll(); + } // Clicked on an interactive popper + + + var popper = closest(target, Selectors.POPPER); + + if (popper && popper._tippy && popper._tippy.props.interactive) { + return; + } // Clicked on a reference + + + var reference = closestCallback(target, function (el) { + return el._tippy && el._tippy.reference === el; + }); + + if (reference) { + var instance = reference._tippy; + var isClickTrigger = includes(instance.props.trigger, 'click'); + + if (isUsingTouch || isClickTrigger) { + return hideAll({ + exclude: instance, + checkHideOnClick: true + }); + } + + if (instance.props.hideOnClick !== true || isClickTrigger) { + return; + } + + instance.clearDelayTimeouts(); + } + + hideAll({ + checkHideOnClick: true + }); + } + function onWindowBlur() { + var _document = document, + activeElement = _document.activeElement; + + if (activeElement && activeElement.blur && activeElement._tippy) { + activeElement.blur(); + } + } + /** + * Adds the needed global event listeners + */ + + function bindGlobalEventListeners() { + document.addEventListener('click', onDocumentClick, true); + document.addEventListener('touchstart', onDocumentTouch, PASSIVE); + window.addEventListener('blur', onWindowBlur); + } + + var keys = Object.keys(Defaults); + /** + * Determines if an element can receive focus + * @param {Element|Object} el + * @return {Boolean} + */ + + function canReceiveFocus(el) { + return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true; + } + /** + * Returns an object of optional props from data-tippy-* attributes + * @param {Element|Object} reference + * @return {Object} + */ + + function getDataAttributeOptions(reference) { + return keys.reduce(function (acc, key) { + var valueAsString = (reference.getAttribute("data-tippy-".concat(key)) || '').trim(); + + if (!valueAsString) { + return acc; + } + + if (key === 'content') { + acc[key] = valueAsString; + } else { + try { + acc[key] = JSON.parse(valueAsString); + } catch (e) { + acc[key] = valueAsString; + } + } + + return acc; + }, {}); + } + /** + * Polyfills the virtual reference (plain object) with Element.prototype props + * Mutating because DOM elements are mutated, adds `_tippy` property + * @param {Object} virtualReference + */ + + function polyfillElementPrototypeProperties(virtualReference) { + var polyfills = { + isVirtual: true, + attributes: virtualReference.attributes || {}, + setAttribute: function setAttribute(key, value) { + virtualReference.attributes[key] = value; + }, + getAttribute: function getAttribute(key) { + return virtualReference.attributes[key]; + }, + removeAttribute: function removeAttribute(key) { + delete virtualReference.attributes[key]; + }, + hasAttribute: function hasAttribute(key) { + return key in virtualReference.attributes; + }, + addEventListener: function addEventListener() {}, + removeEventListener: function removeEventListener() {}, + classList: { + classNames: {}, + add: function add(key) { + virtualReference.classList.classNames[key] = true; + }, + remove: function remove(key) { + delete virtualReference.classList.classNames[key]; + }, + contains: function contains(key) { + return key in virtualReference.classList.classNames; + } + } + }; + + for (var key in polyfills) { + virtualReference[key] = polyfills[key]; + } + } + + /** + * Evaluates the props object by merging data attributes and + * disabling conflicting options where necessary + * @param {Element} reference + * @param {Object} props + * @return {Object} + */ + + function evaluateProps(reference, props) { + var out = _extends({}, props, { + content: evaluateValue(props.content, [reference]) + }, props.ignoreAttributes ? {} : getDataAttributeOptions(reference)); + + if (out.arrow || isUCBrowser) { + out.animateFill = false; + } + + return out; + } + /** + * Validates an object of options with the valid default props object + * @param {Object} options + * @param {Object} defaults + */ + + function validateOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var defaults = arguments.length > 1 ? arguments[1] : undefined; + Object.keys(options).forEach(function (option) { + if (!hasOwnProperty(defaults, option)) { + throw new Error("[tippy]: `".concat(option, "` is not a valid option")); + } + }); + } + + var idCounter = 1; + /** + * Creates and returns a Tippy object. We're using a closure pattern instead of + * a class so that the exposed object API is clean without private members + * prefixed with `_`. + * @param {Element} reference + * @param {Object} collectionProps + * @return {Object} instance + */ + + function createTippy(reference, collectionProps) { + var props = evaluateProps(reference, collectionProps); // If the reference shouldn't have multiple tippys, return null early + + if (!props.multiple && reference._tippy) { + return null; + } + /* ======================= 🔒 Private members 🔒 ======================= */ + // The last trigger event object that caused the tippy to show + + + var lastTriggerEvent = {}; // The last mousemove event object created by the document mousemove event + + var lastMouseMoveEvent = null; // Timeout created by the show delay + + var showTimeoutId = 0; // Timeout created by the hide delay + + var hideTimeoutId = 0; // Flag to determine if the tippy is preparing to show due to the show timeout + + var isPreparingToShow = false; // The current `transitionend` callback reference + + var transitionEndListener = function transitionEndListener() {}; // Array of event listeners currently attached to the reference element + + + var listeners = []; // Private onMouseMove handler reference, debounced or not + + var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove; // Node the tippy is currently appended to + + var parentNode = null; + /* ======================= 🔑 Public members 🔑 ======================= */ + // id used for the `aria-describedby` / `aria-labelledby` attribute + + var id = idCounter++; // Popper element reference + + var popper = createPopperElement(id, props); // Prevent a tippy with a delay from hiding if the cursor left then returned + // before it started hiding + + popper.addEventListener('mouseenter', function (event) { + if (instance.props.interactive && instance.state.isVisible && lastTriggerEvent.type === 'mouseenter') { + prepareShow(event); + } + }); + popper.addEventListener('mouseleave', function () { + if (instance.props.interactive && lastTriggerEvent.type === 'mouseenter') { + document.addEventListener('mousemove', debouncedOnMouseMove); + } + }); // Popper element children: { arrow, backdrop, content, tooltip } + + var popperChildren = getChildren(popper); // The state of the tippy + + var state = { + // If the tippy is currently enabled + isEnabled: true, + // show() invoked, not currently transitioning out + isVisible: false, + // If the tippy has been destroyed + isDestroyed: false, + // If the tippy is on the DOM (transitioning out or in) + isMounted: false, + // show() transition finished + isShown: false // Popper.js instance for the tippy is lazily created + + }; + var popperInstance = null; // 🌟 tippy instance + + var instance = { + // properties + id: id, + reference: reference, + popper: popper, + popperChildren: popperChildren, + popperInstance: popperInstance, + props: props, + state: state, + // methods + clearDelayTimeouts: clearDelayTimeouts, + set: set, + setContent: setContent$$1, + show: show, + hide: hide, + enable: enable, + disable: disable, + destroy: destroy + }; + addTriggersToReference(); + + if (!props.lazy) { + createPopperInstance(); + instance.popperInstance.disableEventListeners(); + } + + if (props.showOnInit) { + prepareShow(); + } // Ensure the reference element can receive focus (and is not a delegate) + + + if (props.a11y && !props.target && !canReceiveFocus(reference)) { + reference.setAttribute('tabindex', '0'); + } // Install shortcuts + + + reference._tippy = instance; + popper._tippy = instance; + return instance; + /* ======================= 🔒 Private methods 🔒 ======================= */ + + /** + * Positions the virtual reference near the mouse cursor + */ + + function positionVirtualReferenceNearCursor(event) { + var _lastMouseMoveEvent = lastMouseMoveEvent = event, + clientX = _lastMouseMoveEvent.clientX, + clientY = _lastMouseMoveEvent.clientY; + + if (!instance.popperInstance) { + return; + } // Ensure virtual reference is padded to prevent tooltip from + // overflowing. Maybe Popper.js issue? + + + var placement = getPopperPlacement(instance.popper); + var padding = instance.popperChildren.arrow ? PADDING + 16 : PADDING; + var isVerticalPlacement = includes(['top', 'bottom'], placement); + var isHorizontalPlacement = includes(['left', 'right'], placement); // Top / left boundary + + var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX; + var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY; // Bottom / right boundary + + if (isVerticalPlacement && x > padding) { + x = Math.min(clientX, window.innerWidth - padding); + } + + if (isHorizontalPlacement && y > padding) { + y = Math.min(clientY, window.innerHeight - padding); + } + + var rect = instance.reference.getBoundingClientRect(); + var followCursor = instance.props.followCursor; + var isHorizontal = followCursor === 'horizontal'; + var isVertical = followCursor === 'vertical'; + instance.popperInstance.reference = { + getBoundingClientRect: function getBoundingClientRect() { + return { + width: 0, + height: 0, + top: isHorizontal ? rect.top : y, + bottom: isHorizontal ? rect.bottom : y, + left: isVertical ? rect.left : x, + right: isVertical ? rect.right : x + }; + }, + clientWidth: 0, + clientHeight: 0 + }; + instance.popperInstance.scheduleUpdate(); + + if (followCursor === 'initial' && instance.state.isVisible) { + removeFollowCursorListener(); + } + } + /** + * Creates the tippy instance for a delegate when it's been triggered + */ + + + function createDelegateChildTippy(event) { + var targetEl = closest(event.target, instance.props.target); + + if (targetEl && !targetEl._tippy) { + createTippy(targetEl, _extends({}, instance.props, { + content: evaluateValue(collectionProps.content, [targetEl]), + appendTo: collectionProps.appendTo, + target: '', + showOnInit: true + })); + prepareShow(event); + } + } + /** + * Setup before show() is invoked (delays, etc.) + */ + + + function prepareShow(event) { + clearDelayTimeouts(); + + if (instance.state.isVisible) { + return; + } // Is a delegate, create an instance for the child target + + + if (instance.props.target) { + return createDelegateChildTippy(event); + } + + isPreparingToShow = true; + + if (instance.props.wait) { + return instance.props.wait(instance, event); + } // If the tooltip has a delay, we need to be listening to the mousemove as + // soon as the trigger event is fired, so that it's in the correct position + // upon mount. + // Edge case: if the tooltip is still mounted, but then prepareShow() is + // called, it causes a jump. + + + if (hasFollowCursorBehavior() && !instance.state.isMounted) { + document.addEventListener('mousemove', positionVirtualReferenceNearCursor); + } + + var delay = getValue(instance.props.delay, 0, Defaults.delay); + + if (delay) { + showTimeoutId = setTimeout(function () { + show(); + }, delay); + } else { + show(); + } + } + /** + * Setup before hide() is invoked (delays, etc.) + */ + + + function prepareHide() { + clearDelayTimeouts(); + + if (!instance.state.isVisible) { + return removeFollowCursorListener(); + } + + isPreparingToShow = false; + var delay = getValue(instance.props.delay, 1, Defaults.delay); + + if (delay) { + hideTimeoutId = setTimeout(function () { + if (instance.state.isVisible) { + hide(); + } + }, delay); + } else { + hide(); + } + } + /** + * Removes the follow cursor listener + */ + + + function removeFollowCursorListener() { + document.removeEventListener('mousemove', positionVirtualReferenceNearCursor); + lastMouseMoveEvent = null; + } + /** + * Cleans up old listeners + */ + + + function cleanupOldMouseListeners() { + document.body.removeEventListener('mouseleave', prepareHide); + document.removeEventListener('mousemove', debouncedOnMouseMove); + } + /** + * Event listener invoked upon trigger + */ + + + function onTrigger(event) { + if (!instance.state.isEnabled || isEventListenerStopped(event)) { + return; + } + + if (!instance.state.isVisible) { + lastTriggerEvent = event; // Use the `mouseenter` event as a "mock" mousemove event for touch + // devices + + if (isUsingTouch && includes(event.type, 'mouse')) { + lastMouseMoveEvent = event; + } + } // Toggle show/hide when clicking click-triggered tooltips + + + if (event.type === 'click' && instance.props.hideOnClick !== false && instance.state.isVisible) { + prepareHide(); + } else { + prepareShow(event); + } + } + /** + * Event listener used for interactive tooltips to detect when they should + * hide + */ + + + function onMouseMove(event) { + var referenceTheCursorIsOver = closestCallback(event.target, function (el) { + return el._tippy; + }); + var isCursorOverPopper = closest(event.target, Selectors.POPPER) === instance.popper; + var isCursorOverReference = referenceTheCursorIsOver === instance.reference; + + if (isCursorOverPopper || isCursorOverReference) { + return; + } + + if (isCursorOutsideInteractiveBorder(getPopperPlacement(instance.popper), instance.popper.getBoundingClientRect(), event, instance.props)) { + cleanupOldMouseListeners(); + prepareHide(); + } + } + /** + * Event listener invoked upon mouseleave + */ + + + function onMouseLeave(event) { + if (isEventListenerStopped(event)) { + return; + } + + if (instance.props.interactive) { + document.body.addEventListener('mouseleave', prepareHide); + document.addEventListener('mousemove', debouncedOnMouseMove); + return; + } + + prepareHide(); + } + /** + * Event listener invoked upon blur + */ + + + function onBlur(event) { + if (event.target !== instance.reference) { + return; + } + + if (instance.props.interactive && event.relatedTarget && instance.popper.contains(event.relatedTarget)) { + return; + } + + prepareHide(); + } + /** + * Event listener invoked when a child target is triggered + */ + + + function onDelegateShow(event) { + if (closest(event.target, instance.props.target)) { + prepareShow(event); + } + } + /** + * Event listener invoked when a child target should hide + */ + + + function onDelegateHide(event) { + if (closest(event.target, instance.props.target)) { + prepareHide(); + } + } + /** + * Determines if an event listener should stop further execution due to the + * `touchHold` option + */ + + + function isEventListenerStopped(event) { + var supportsTouch = 'ontouchstart' in window; + var isTouchEvent = includes(event.type, 'touch'); + var touchHold = instance.props.touchHold; + return supportsTouch && isUsingTouch && touchHold && !isTouchEvent || isUsingTouch && !touchHold && isTouchEvent; + } + /** + * Creates the popper instance for the instance + */ + + + function createPopperInstance() { + var popperOptions = instance.props.popperOptions; + var _instance$popperChild = instance.popperChildren, + tooltip = _instance$popperChild.tooltip, + arrow = _instance$popperChild.arrow; + instance.popperInstance = new Popper(instance.reference, instance.popper, _extends({ + placement: instance.props.placement + }, popperOptions, { + modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, { + preventOverflow: _extends({ + boundariesElement: instance.props.boundary, + padding: PADDING + }, getModifier(popperOptions, 'preventOverflow')), + arrow: _extends({ + element: arrow, + enabled: !!arrow + }, getModifier(popperOptions, 'arrow')), + flip: _extends({ + enabled: instance.props.flip, + // The tooltip is offset by 10px from the popper in CSS, + // we need to account for its distance + padding: instance.props.distance + PADDING, + behavior: instance.props.flipBehavior + }, getModifier(popperOptions, 'flip')), + offset: _extends({ + offset: instance.props.offset + }, getModifier(popperOptions, 'offset')) + }), + onUpdate: function onUpdate(data) { + if (!instance.props.flipOnUpdate) { + if (data.flipped) { + instance.popperInstance.options.placement = data.placement; + } + + setFlipModifierEnabled(instance.popperInstance.modifiers, false); + } + + var styles = tooltip.style; + styles.top = ''; + styles.bottom = ''; + styles.left = ''; + styles.right = ''; + styles[getPopperPlacement(instance.popper)] = getOffsetDistanceInPx(instance.props.distance); + } + })); + } + /** + * Mounts the tooltip to the DOM, callback to show tooltip is run **after** + * popper's position has updated + */ + + + function mount(callback) { + var shouldEnableListeners = !hasFollowCursorBehavior() && !(instance.props.followCursor === 'initial' && isUsingTouch); + + if (!instance.popperInstance) { + createPopperInstance(); + + if (!shouldEnableListeners) { + instance.popperInstance.disableEventListeners(); + } + } else { + if (!hasFollowCursorBehavior()) { + instance.popperInstance.scheduleUpdate(); + + if (shouldEnableListeners) { + instance.popperInstance.enableEventListeners(); + } + } + + setFlipModifierEnabled(instance.popperInstance.modifiers, true); + } // If the instance previously had followCursor behavior, it will be + // positioned incorrectly if triggered by `focus` afterwards. + // Update the reference back to the real DOM element + + + instance.popperInstance.reference = instance.reference; + var arrow = instance.popperChildren.arrow; + + if (hasFollowCursorBehavior()) { + if (arrow) { + arrow.style.margin = '0'; + } + + var delay = getValue(instance.props.delay, 0, Defaults.delay); + + if (lastTriggerEvent.type) { + positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent); + } + } else if (arrow) { + arrow.style.margin = ''; + } + + afterPopperPositionUpdates(instance.popperInstance, callback); + var appendTo = instance.props.appendTo; + parentNode = appendTo === 'parent' ? instance.reference.parentNode : evaluateValue(appendTo, [instance.reference]); + + if (!parentNode.contains(instance.popper)) { + parentNode.appendChild(instance.popper); + instance.props.onMount(instance); + instance.state.isMounted = true; + } + } + /** + * Determines if the instance is in `followCursor` mode + */ + + + function hasFollowCursorBehavior() { + return instance.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus'; + } + /** + * Updates the tooltip's position on each animation frame + timeout + */ + + + function makeSticky() { + applyTransitionDuration([instance.popper], isIE ? 0 : instance.props.updateDuration); + + var updatePosition = function updatePosition() { + if (instance.popperInstance) { + instance.popperInstance.scheduleUpdate(); + } + + if (instance.state.isMounted) { + requestAnimationFrame(updatePosition); + } else { + applyTransitionDuration([instance.popper], 0); + } + }; + + updatePosition(); + } + /** + * Invokes a callback once the tooltip has fully transitioned out + */ + + + function onTransitionedOut(duration, callback) { + onTransitionEnd(duration, function () { + if (!instance.state.isVisible && parentNode && parentNode.contains(instance.popper)) { + callback(); + } + }); + } + /** + * Invokes a callback once the tooltip has fully transitioned in + */ + + + function onTransitionedIn(duration, callback) { + onTransitionEnd(duration, callback); + } + /** + * Invokes a callback once the tooltip's CSS transition ends + */ + + + function onTransitionEnd(duration, callback) { + // Make callback synchronous if duration is 0 + if (duration === 0) { + return callback(); + } + + var tooltip = instance.popperChildren.tooltip; + + var listener = function listener(e) { + if (e.target === tooltip) { + toggleTransitionEndListener(tooltip, 'remove', listener); + callback(); + } + }; + + toggleTransitionEndListener(tooltip, 'remove', transitionEndListener); + toggleTransitionEndListener(tooltip, 'add', listener); + transitionEndListener = listener; + } + /** + * Adds an event listener to the reference and stores it in `listeners` + */ + + + function on(eventType, handler) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + instance.reference.addEventListener(eventType, handler, options); + listeners.push({ + eventType: eventType, + handler: handler, + options: options + }); + } + /** + * Adds event listeners to the reference based on the `trigger` prop + */ + + + function addTriggersToReference() { + if (instance.props.touchHold && !instance.props.target) { + on('touchstart', onTrigger, PASSIVE); + on('touchend', onMouseLeave, PASSIVE); + } + + instance.props.trigger.trim().split(' ').forEach(function (eventType) { + if (eventType === 'manual') { + return; + } + + if (!instance.props.target) { + on(eventType, onTrigger); + + switch (eventType) { + case 'mouseenter': + on('mouseleave', onMouseLeave); + break; + + case 'focus': + on(isIE ? 'focusout' : 'blur', onBlur); + break; + } + } else { + switch (eventType) { + case 'mouseenter': + on('mouseover', onDelegateShow); + on('mouseout', onDelegateHide); + break; + + case 'focus': + on('focusin', onDelegateShow); + on('focusout', onDelegateHide); + break; + + case 'click': + on(eventType, onDelegateShow); + break; + } + } + }); + } + /** + * Removes event listeners from the reference + */ + + + function removeTriggersFromReference() { + listeners.forEach(function (_ref) { + var eventType = _ref.eventType, + handler = _ref.handler, + options = _ref.options; + instance.reference.removeEventListener(eventType, handler, options); + }); + listeners = []; + } + /** + * Returns inner elements used in show/hide methods + */ + + + function getInnerElements() { + return [instance.popperChildren.tooltip, instance.popperChildren.backdrop, instance.popperChildren.content]; + } + /* ======================= 🔑 Public methods 🔑 ======================= */ + + /** + * Enables the instance to allow it to show or hide + */ + + + function enable() { + instance.state.isEnabled = true; + } + /** + * Disables the instance to disallow it to show or hide + */ + + + function disable() { + instance.state.isEnabled = false; + } + /** + * Clears pending timeouts related to the `delay` prop if any + */ + + + function clearDelayTimeouts() { + clearTimeout(showTimeoutId); + clearTimeout(hideTimeoutId); + } + /** + * Sets new props for the instance and redraws the tooltip + */ + + + function set() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + validateOptions(options, Defaults); + var prevProps = instance.props; + var nextProps = evaluateProps(instance.reference, _extends({}, instance.props, options, { + ignoreAttributes: true + })); + nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes') ? options.ignoreAttributes : prevProps.ignoreAttributes; + instance.props = nextProps; + + if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) { + removeTriggersFromReference(); + addTriggersToReference(); + } + + if (hasOwnProperty(options, 'interactiveDebounce')) { + cleanupOldMouseListeners(); + debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce); + } + + updatePopperElement(instance.popper, prevProps, nextProps); + instance.popperChildren = getChildren(instance.popper); + + if (instance.popperInstance) { + instance.popperInstance.update(); + + if (POPPER_INSTANCE_DEPENDENCIES.some(function (prop) { + return hasOwnProperty(options, prop); + })) { + instance.popperInstance.destroy(); + createPopperInstance(); + + if (!instance.state.isVisible) { + instance.popperInstance.disableEventListeners(); + } + + if (instance.props.followCursor && lastMouseMoveEvent) { + positionVirtualReferenceNearCursor(lastMouseMoveEvent); + } + } + } + } + /** + * Shortcut for .set({ content: newContent }) + */ + + + function setContent$$1(content) { + set({ + content: content + }); + } + /** + * Shows the tooltip + */ + + + function show() { + var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 0, Defaults.duration[0]); + + if (instance.state.isDestroyed || !instance.state.isEnabled || isUsingTouch && !instance.props.touch) { + return; + } // Destroy tooltip if the reference element is no longer on the DOM + + + if (!instance.reference.isVirtual && !document.documentElement.contains(instance.reference)) { + return destroy(); + } // Do not show tooltip if the reference element has a `disabled` attribute + + + if (instance.reference.hasAttribute('disabled')) { + return; + } + + if (instance.props.onShow(instance) === false) { + return; + } + + instance.popper.style.visibility = 'visible'; + instance.state.isVisible = true; + + if (instance.props.interactive) { + instance.reference.classList.add('tippy-active'); + } // Prevent a transition if the popper is at the opposite placement + + + applyTransitionDuration([instance.popper, instance.popperChildren.tooltip, instance.popperChildren.backdrop], 0); + mount(function () { + if (!instance.state.isVisible) { + return; + } // Arrow will sometimes not be positioned correctly. Force another update + + + if (!hasFollowCursorBehavior()) { + instance.popperInstance.update(); + } // Allow followCursor: 'initial' on touch devices + + + if (isUsingTouch && instance.props.followCursor === 'initial') { + positionVirtualReferenceNearCursor(lastMouseMoveEvent); + } + + applyTransitionDuration([instance.popper], props.updateDuration); + applyTransitionDuration(getInnerElements(), duration); + + if (instance.popperChildren.backdrop) { + instance.popperChildren.content.style.transitionDelay = Math.round(duration / 12) + 'ms'; + } + + if (instance.props.sticky) { + makeSticky(); + } + + setVisibilityState(getInnerElements(), 'visible'); + onTransitionedIn(duration, function () { + instance.popperChildren.tooltip.classList.add('tippy-notransition'); + + if (instance.props.aria) { + instance.reference.setAttribute("aria-".concat(instance.props.aria), instance.popper.id); + } + + instance.props.onShown(instance); + instance.state.isShown = true; + }); + }); + } + /** + * Hides the tooltip + */ + + + function hide() { + var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 1, Defaults.duration[1]); + + if (instance.state.isDestroyed || !instance.state.isEnabled) { + return; + } + + if (instance.props.onHide(instance) === false) { + return; + } + + instance.popperChildren.tooltip.classList.remove('tippy-notransition'); + + if (instance.props.interactive) { + instance.reference.classList.remove('tippy-active'); + } + + instance.popper.style.visibility = 'hidden'; + instance.state.isVisible = false; + instance.state.isShown = false; + applyTransitionDuration(getInnerElements(), duration); + setVisibilityState(getInnerElements(), 'hidden'); + onTransitionedOut(duration, function () { + if (!isPreparingToShow) { + removeFollowCursorListener(); + } + + if (instance.props.aria) { + instance.reference.removeAttribute("aria-".concat(instance.props.aria)); + } + + instance.popperInstance.disableEventListeners(); + instance.popperInstance.options.placement = instance.props.placement; + parentNode.removeChild(instance.popper); + instance.props.onHidden(instance); + instance.state.isMounted = false; + }); + } + /** + * Destroys the tooltip + */ + + + function destroy(destroyTargetInstances) { + if (instance.state.isDestroyed) { + return; + } // If the popper is currently mounted to the DOM, we want to ensure it gets + // hidden and unmounted instantly upon destruction + + + if (instance.state.isMounted) { + hide(0); + } + + removeTriggersFromReference(); + delete instance.reference._tippy; + + if (instance.props.target && destroyTargetInstances) { + arrayFrom(instance.reference.querySelectorAll(instance.props.target)).forEach(function (child) { + if (child._tippy) { + child._tippy.destroy(); + } + }); + } + + if (instance.popperInstance) { + instance.popperInstance.destroy(); + } + + instance.state.isDestroyed = true; + } + } + + /** + * Groups an array of instances by taking control of their props during + * certain lifecycles. + * @param {Object[]} targets + * @param {Object} options + */ + function group(instances) { + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$delay = _ref.delay, + delay = _ref$delay === void 0 ? instances[0].props.delay : _ref$delay, + _ref$duration = _ref.duration, + duration = _ref$duration === void 0 ? 0 : _ref$duration; + + var isAnyTippyOpen = false; + instances.forEach(function (instance) { + instance._originalProps = { + duration: instance.props.duration, + onHide: instance.props.onHide, + onShow: instance.props.onShow, + onShown: instance.props.onShown + }; + }); + + function setIsAnyTippyOpen(value) { + isAnyTippyOpen = value; + updateInstances(); + } + + function onShow(instance) { + instance._originalProps.onShow(instance); + + instances.forEach(function (instance) { + instance.set({ + duration: duration + }); + instance.hide(); + }); + setIsAnyTippyOpen(true); + } + + function onHide(instance) { + instance._originalProps.onHide(instance); + + setIsAnyTippyOpen(false); + } + + function onShown(instance) { + instance._originalProps.onShown(instance); + + instance.set({ + duration: instance._originalProps.duration + }); + } + + function updateInstances() { + instances.forEach(function (instance) { + instance.set({ + onShow: onShow, + onShown: onShown, + onHide: onHide, + delay: isAnyTippyOpen ? [0, Array.isArray(delay) ? delay[1] : delay] : delay, + duration: isAnyTippyOpen ? duration : instance._originalProps.duration + }); + }); + } + + updateInstances(); + } + + var globalEventListenersBound = false; + /** + * Exported module + * @param {String|Element|Element[]|NodeList|Object} targets + * @param {Object} options + * @return {Object} + */ + + function tippy(targets, options) { + validateOptions(options, Defaults); + + if (!globalEventListenersBound) { + bindGlobalEventListeners(); + globalEventListenersBound = true; + } + + var props = _extends({}, Defaults, options); // If they are specifying a virtual positioning reference, we need to polyfill + // some native DOM props + + + if (isPlainObject(targets)) { + polyfillElementPrototypeProperties(targets); + } + + var instances = getArrayOfElements(targets).reduce(function (acc, reference) { + var instance = reference && createTippy(reference, props); + + if (instance) { + acc.push(instance); + } + + return acc; + }, []); + return isSingular(targets) ? instances[0] : instances; + } + /** + * Static props + */ + + + tippy.version = version; + tippy.defaults = Defaults; + /** + * Static methods + */ + + tippy.setDefaults = function (partialDefaults) { + Object.keys(partialDefaults).forEach(function (key) { + Defaults[key] = partialDefaults[key]; + }); + }; + + tippy.hideAll = hideAll; + tippy.group = group; + /** + * Auto-init tooltips for elements with a `data-tippy="..."` attribute + */ + + function autoInit() { + arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) { + var content = el.getAttribute('data-tippy'); + + if (content) { + tippy(el, { + content: content + }); + } + }); + } + + if (isBrowser) { + setTimeout(autoInit); + } + + /** + * Injects a string of CSS styles to a style node in + * @param {String} css + */ + + function injectCSS(css) { + if (isBrowser) { + var style = document.createElement('style'); + style.type = 'text/css'; + style.textContent = css; + var head = document.head; + var firstChild = head.firstChild; + + if (firstChild) { + head.insertBefore(style, firstChild); + } else { + head.appendChild(style); + } + } + } + + injectCSS(css); + + return tippy; + +})); +//# sourceMappingURL=index.all.js.map \ No newline at end of file diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index faf3ccd6f..aa5c18113 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -37,7 +37,7 @@ */ function eael_activated_modules() { - $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ]; + $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list', 'section-tooltip' ]; $eael_default_settings = array_fill_keys( $eael_default_keys, true ); $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); @@ -63,6 +63,10 @@ function add_eael_extensions() { if( $is_component_active['section-particles'] ) { require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; } + + if( $is_component_active['section-tooltip'] ) { + require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-tooltip-section/eael-tooltip-section.php'; + } } add_eael_extensions(); @@ -236,7 +240,7 @@ function essential_addons_el_enqueue(){ wp_register_script('essential_addons_isotope-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/isotope.pkgd.min.js', array('jquery'),'1.0', true); - wp_register_script('jquery-resize', ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.resize.min.js', array('jquery'), '1.0', true); + wp_register_script('jquery-resize', ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.resize.min.js', array('jquery'), '1.0', true); } if( $is_component_active['price-table'] ) { @@ -246,15 +250,20 @@ function essential_addons_el_enqueue(){ if( $is_component_active['progress-bar'] ) { wp_enqueue_script('essential_addons_elementor-progress-bar',ESSENTIAL_ADDONS_EL_URL.'assets/js/loading-bar.min.js', array('jquery'),'1.0', true); - } - if( $is_component_active['section-particles'] ) { + } + if( $is_component_active['section-particles'] ) { wp_enqueue_script( - 'particles-js', ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js', - ['jquery'], '1.0', true - ); + 'particles-js', ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js', + ['jquery'], '1.0', true + ); $preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php'; wp_localize_script( 'particles-js', 'ParticleThemesData', $preset_themes ); + } + if( $is_component_active['section-tooltip'] ) { + wp_enqueue_style('essential_addons_tippy',ESSENTIAL_ADDONS_EL_URL.'assets/css/tippy.css'); + wp_enqueue_script('essential_addons_popper-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/popper.min.js', array('jquery'),'1.0', false); + wp_enqueue_script('essential_addons_tippy-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/tippy.min.js', array('jquery'),'1.0', false); } } diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php new file mode 100755 index 000000000..2737500b1 --- /dev/null +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -0,0 +1,448 @@ +start_controls_section( + 'eael_tooltip_section', + [ + 'label' => __( 'EA Tooltip', 'essential-addons-elementor' ), + 'tab' => Controls_Manager::TAB_ADVANCED + ] + ); + + $element->add_control( + 'eael_tooltip_section_enable', + [ + 'label' => __( 'Enable Tooltip', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SWITCHER, + ] + ); + + $element->start_controls_tabs( 'eael_tooltip_tabs' ); + + $element->start_controls_tab( 'eael_tooltip_settings', [ + 'label' => __( 'Settings', 'essential-addons-elementor' ), + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] ); + + $element->add_control( + 'eael_tooltip_section_content', + [ + 'label' => __( 'Content', 'essential-addons-elementor' ), + 'type' => Controls_Manager::TEXT, + 'default' => __( 'I am a tooltip', 'essential-addons-elementor' ), + 'dynamic' => [ 'active' => true ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_target', + [ + 'label' => __( 'Target', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'element', + 'options' => [ + 'element' => __( 'Element', 'essential-addons-elementor' ), + 'custom' => __( 'Custom', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_selector', + [ + 'label' => __( 'CSS Selector', 'essential-addons-elementor' ), + 'type' => Controls_Manager::TEXT, + 'description' => __( 'Use a CSS selector for any html element WITHIN this element.', 'essential-addons-elementor' ), + 'default' => '', + 'placeholder' => __( '.css-selector', 'essential-addons-elementor' ), + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + 'eael_tooltip_section_target' => 'custom', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_trigger', + [ + 'label' => __( 'Trigger', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'hover', + 'options' => [ + 'hover' => __( 'Hover', 'essential-addons-elementor' ), + 'click' => __( 'Click', 'essential-addons-elementor' ), + 'load' => __( 'Page Load', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_disable', + [ + 'label' => __( 'Disable On', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => '', + 'options' => [ + '' => __( 'None', 'essential-addons-elementor' ), + 'tablet' => __( 'Tablet & Mobile', 'essential-addons-elementor' ), + 'mobile' => __( 'Mobile', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_position', + [ + 'label' => __( 'Position', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => '', + 'options' => [ + '' => __( 'Global', 'essential-addons-elementor' ), + 'bottom' => __( 'Bottom', 'essential-addons-elementor' ), + 'left' => __( 'Left', 'essential-addons-elementor' ), + 'top' => __( 'Top', 'essential-addons-elementor' ), + 'right' => __( 'Right', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_delay_out', + [ + 'label' => __( 'Delay out (s)', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 1, + 'step' => 0.1, + ], + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_duration', + [ + 'label' => __( 'Duration', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 2, + 'step' => 0.1, + ], + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->end_controls_tab(); + + $element->start_controls_tab( 'eael_tooltip_section_styles', [ + 'label' => __( 'Styles', 'essential-addons-elementor' ), + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] ); + + $element->add_control( + 'eael_tooltip_section_width', + [ + 'label' => __( 'Max Width', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'default' => [ + 'size' => '', + ], + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 500, + ], + ], + 'label_block' => false, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'max-width: {{SIZE}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_distance', + [ + 'label' => __( 'Distance', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'size_units' => [ 'px' ], + 'label_block' => false, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}.to--top' => 'transform: translateY(-{{SIZE}}{{UNIT}});', + '.ee-tooltip.ee-tooltip-{{ID}}.to--bottom' => 'transform: translateY({{SIZE}}{{UNIT}});', + '.ee-tooltip.ee-tooltip-{{ID}}.to--left' => 'transform: translateX(-{{SIZE}}{{UNIT}});', + '.ee-tooltip.ee-tooltip-{{ID}}.to--right' => 'transform: translateX({{SIZE}}{{UNIT}});', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_arrow', + [ + 'label' => __( 'Arrow', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => '', + 'options' => [ + '' => __( 'Show', 'essential-addons-elementor' ), + 'none' => __( 'Hide', 'essential-addons-elementor' ), + ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}:after' => 'content: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_align', + [ + 'label' => __( 'Text Align', 'essential-addons-elementor' ), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + 'left' => [ + 'title' => __( 'Left', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-left', + ], + 'center' => [ + 'title' => __( 'Center', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-center', + ], + 'right' => [ + 'title' => __( 'Right', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-right', + ], + ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'text-align: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_padding', + [ + 'label' => __( 'Padding', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', 'em', '%' ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_border_radius', + [ + 'label' => __( 'Border Radius', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', '%' ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_group_control( + Group_Control_Typography::get_type(), + [ + 'name' => 'eael_tooltip_section_typography', + 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'scheme' => Scheme_Typography::TYPOGRAPHY_3, + 'separator' => 'after', + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_background_color', + [ + 'label' => __( 'Background Color', 'essential-addons-elementor' ), + 'type' => Controls_Manager::COLOR, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'background-color: {{VALUE}};', + '.ee-tooltip.ee-tooltip-{{ID}}.to--top:after' => 'border-top-color: {{VALUE}};', + '.ee-tooltip.ee-tooltip-{{ID}}.to--left:after' => 'border-left-color: {{VALUE}};', + '.ee-tooltip.ee-tooltip-{{ID}}.to--right:after' => 'border-right-color: {{VALUE}};', + '.ee-tooltip.ee-tooltip-{{ID}}.to--bottom:after' => 'border-bottom-color: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_color', + [ + 'label' => __( 'Color', 'essential-addons-elementor' ), + 'type' => Controls_Manager::COLOR, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'color: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_group_control( + Group_Control_Box_Shadow::get_type(), + [ + 'name' => 'eael_tooltip_section_box_shadow', + 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'separator' => '', + ] + ); + + $element->end_controls_tab(); + + $element->end_controls_tabs(); + + $element->end_controls_section(); + + } + + public function before_render( $element ) { + + if( $element->get_settings('eael_tooltip_section_enable') == 'yes' ){ + + $element->add_render_attribute( 'eael-section-tooltip', [ + 'id' => 'eael-section-tooltip-' . $element->get_id(), + 'class' => 'eael-section-tooltip', + ]); + + } + + } + + public function after_render( $element ) { + + $data = $element->get_data(); + $settings = $element->get_settings_for_display(); + + ?> + + get_render_attribute_string( 'eael-section-tooltip' ); ?> data-tippy="Tooltip"> + parse_text_editor( $settings['eael_tooltip_section_content'], $element ); ?> + + +get_settings() ); + + $content = shortcode_unautop( $content ); + $content = do_shortcode( $content ); + $content = wptexturize( $content ); + + if ( $GLOBALS['wp_embed'] instanceof \WP_Embed ) { + $content = $GLOBALS['wp_embed']->autoembed( $content ); + } + + return $content; + } +} + +EAEL_Tooltip_Section::instance(); \ No newline at end of file From 070c20147d132d7c4287fc0366087a2ba043f14d Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Tue, 26 Feb 2019 16:26:37 +0600 Subject: [PATCH 02/19] Added EA Tooltip extension on all widget --- assets/js/eael-scripts.js | 136 +- .../eael-tooltip-section.php | 1098 ++++++++++------- 2 files changed, 771 insertions(+), 463 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 121c1bff8..ba4bbeb39 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -848,44 +848,102 @@ /* 37. Section Tooltip /*=================================*/ - var EaelSectionTooltip = function($scope, $) { - var $tooltip = $scope.find('.eael-section-tooltip'), i; - var $currentTooltip = $( '#' + $($tooltip[i]).attr('id') ); - // $tooltipSide = ( $currentTooltip.data('side') !== undefined ) ? $currentTooltip.data('side') : false, - // $tooltipTrigger = ( $currentTooltip.data('trigger') !== undefined ) ? $currentTooltip.data('trigger') : 'hover', - // $animation = ( $currentTooltip.data('animation') !== undefined ) ? $currentTooltip.data('animation') : 'fade', - // $anim_duration = ( $currentTooltip.data('animation_duration') !== undefined ) ? $currentTooltip.data('animation_duration') : 300, - // $theme = ( $currentTooltip.data('theme') !== undefined ) ? $currentTooltip.data('theme') : 'default', - // $arrow = ( 'yes' == $currentTooltip.data('arrow') ) ? true : false; - - // $currentTooltip.tooltipster({ - // animation: $animation, - // trigger: $tooltipTrigger, - // side: $tooltipSide, - // delay: $anim_duration, - // arrow: $arrow, - // theme: 'tooltipster-' + $theme - // }); - - // new Tippy( $currentTooltip ,{ - // position:'top', - // animation:'scale', - // arrow:'true' - // }); - - // tippy( $($scope), { - // position:'top', - // animation:'scale', - // arrow:'true' - // }); - - tippy('.eael-section-tooltip', { - placement:'top', - animation:'scale', - arrow:'true' - }) - } + var EaelSectionTooltip = function ($scope, $) { + + var target = $scope, + sectionId = target.data('id'), + editMode = elementorFrontend.isEditMode(), + settings; + + if (editMode) { + + var editorElements = null, + sectionData = {}, + settings = {}; + + if (!window.elementor.hasOwnProperty('elements')) { + return false; + } + + editorElements = window.elementor.elements; + + + if (!editorElements.models) { + return false; + } + + $.each(editorElements.models, function (index, elem) { + + var columns = elem.attributes.elements; + + $.each(columns.models, function (inde, column) { + var widgets = column.attributes.elements; + + $.each(widgets.models, function (ind, widget) { + if (sectionId == widget.id) { + sectionData = widget.attributes.settings.attributes; + } + + }); + }); + }); + + settings.switch = sectionData['eael_tooltip_section_enable']; + settings.content = sectionData['eael_tooltip_section_content']; + settings.position = sectionData['eael_tooltip_section_position']; + settings.animation = sectionData['eael_tooltip_section_animation']; + settings.arrow = sectionData['eael_tooltip_section_arrow']; + settings.duration = sectionData['eael_tooltip_section_duration']; + settings.delay = sectionData['eael_tooltip_section_delay']; + settings.size = sectionData['eael_tooltip_section_size']; + settings.trigger = sectionData['eael_tooltip_section_trigger']; + settings.theme = sectionData['eael_tooltip_section_theme']; + + if (settings.switch == 'yes') { + + target.addClass('eael-section-tooltip'); + generateTooltip(); + + } else { + target.removeClass('eael-section-tooltip'); + } + + if (0 !== settings.length) { + return settings; + } + + } + + if (!editMode || !settings) { + return false; + } + + function generateTooltip() { + + target.attr('id', 'eael-section-tooltip-' + sectionId); + var $currentTooltip = '#' + target.attr('id'); + + var tooltipOptions = { + content: settings.content, + placement: settings.position, + animation: settings.animation, + arrow: settings.arrow, + duration: settings.duration, + delay: settings.content, + size: settings.size, + // trigger: settings.trigger, + animateFill: false, + // theme: settings.theme, + interactive: true, + onShow(instance){ + instance.setContent(settings.content) + } + }; + + tippy( $currentTooltip, tooltipOptions); + } + } $(window).on('elementor/frontend/init', function () { @@ -906,8 +964,8 @@ elementorFrontend.hooks.addAction('frontend/element_ready/eael-image-accordion.default', ImageAccordion); elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown); elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar); - elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelParticlesHandler ); - elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelSectionTooltip ); + elementorFrontend.hooks.addAction('frontend/element_ready/section', EaelParticlesHandler); + elementorFrontend.hooks.addAction('frontend/element_ready/widget', EaelSectionTooltip); }); }(jQuery)); \ No newline at end of file diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php index 2737500b1..c84320175 100755 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -1,6 +1,8 @@ start_controls_section( - 'eael_tooltip_section', - [ - 'label' => __( 'EA Tooltip', 'essential-addons-elementor' ), - 'tab' => Controls_Manager::TAB_ADVANCED - ] - ); - - $element->add_control( - 'eael_tooltip_section_enable', - [ - 'label' => __( 'Enable Tooltip', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SWITCHER, - ] - ); - - $element->start_controls_tabs( 'eael_tooltip_tabs' ); - - $element->start_controls_tab( 'eael_tooltip_settings', [ - 'label' => __( 'Settings', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] ); - - $element->add_control( - 'eael_tooltip_section_content', - [ - 'label' => __( 'Content', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXT, - 'default' => __( 'I am a tooltip', 'essential-addons-elementor' ), - 'dynamic' => [ 'active' => true ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_target', - [ - 'label' => __( 'Target', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'element', - 'options' => [ - 'element' => __( 'Element', 'essential-addons-elementor' ), - 'custom' => __( 'Custom', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_selector', - [ - 'label' => __( 'CSS Selector', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXT, - 'description' => __( 'Use a CSS selector for any html element WITHIN this element.', 'essential-addons-elementor' ), - 'default' => '', - 'placeholder' => __( '.css-selector', 'essential-addons-elementor' ), - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - 'eael_tooltip_section_target' => 'custom', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_trigger', - [ - 'label' => __( 'Trigger', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'hover', - 'options' => [ - 'hover' => __( 'Hover', 'essential-addons-elementor' ), - 'click' => __( 'Click', 'essential-addons-elementor' ), - 'load' => __( 'Page Load', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', + public function __construct() { + parent::__construct(); + + add_action( 'elementor/element/common/_section_style/after_section_end', [ $this, 'register_controls' ], 10 ); + + add_action( 'elementor/widget/before_render_content', array( $this, 'before_render' ) ); + add_action( 'elementor/widget/before_render_content',array( $this,'after_render') ); + + } + + public function get_name() { + return 'eael-tooltip-section'; + } + + public function register_controls( $element ) { + + $element->start_controls_section( + 'eael_tooltip_section', + [ + 'label' => __( 'EA Tooltip', 'essential-addons-elementor' ), + 'tab' => Controls_Manager::TAB_ADVANCED + ] + ); + + $element->add_control( + 'eael_tooltip_section_enable', + [ + 'label' => __( 'Enable Tooltip', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SWITCHER, + ] + ); + + $element->start_controls_tabs( 'eael_tooltip_tabs' ); + + $element->start_controls_tab( 'eael_tooltip_settings', [ + 'label' => __( 'Settings', 'essential-addons-elementor' ), + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] ); + + $element->add_control( + 'eael_tooltip_section_content', + [ + 'label' => __( 'Content', 'essential-addons-elementor' ), + 'type' => Controls_Manager::TEXT, + 'default' => __( 'I am a tooltip', 'essential-addons-elementor' ), + 'dynamic' => [ 'active' => true ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_position', + [ + 'label' => __( 'Position', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'top', + 'options' => [ + 'top' => __( 'Top', 'essential-addons-elementor' ), + 'bottom' => __( 'Bottom', 'essential-addons-elementor' ), + 'left' => __( 'Left', 'essential-addons-elementor' ), + 'right' => __( 'Right', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_animation', + [ + 'label' => __( 'Animation', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'scale', + 'options' => [ + 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), + 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), + 'fade' => __( 'Fade', 'essential-addons-elementor' ), + 'scale' => __( 'Scale', 'essential-addons-elementor' ), + 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_trigger', + [ + 'label' => __( 'Trigger', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'mouseenter', + 'options' => [ + 'mouseenter' => __( 'Mouseenter', 'essential-addons-elementor' ), + 'click' => __( 'Click', 'essential-addons-elementor' ), + 'focus' => __( 'Focus', 'essential-addons-elementor' ), + 'manual' => __( 'Manual', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_size', + [ + 'label' => __( 'Size', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'regular', + 'options' => [ + 'small' => __( 'Small', 'essential-addons-elementor' ), + 'regular' => __( 'Regular', 'essential-addons-elementor' ), + 'large' => __( 'Large', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_arrow', + [ + 'label' => __( 'Arrow', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SWITCHER, + 'label_on' => __( 'Show', 'essential-addons-elementor' ), + 'label_off' => __( 'Hide', 'essential-addons-elementor' ), + 'return_value' => true, + 'default' => true, + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_duration', + [ + 'label' => __( 'Duration', 'essential-addons-elementor' ), + 'type' => Controls_Manager::NUMBER, + 'min' => 100, + 'max' => 1000, + 'step' => 10, + 'default' => 100, + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_delay', + [ + 'label' => __( 'Delay out (s)', 'essential-addons-elementor' ), + 'type' => Controls_Manager::NUMBER, + 'min' => 100, + 'max' => 1000, + 'step' => 5, + 'default' => 100, + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_disable', + [ + 'label' => __( 'Disable On', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => '', + 'options' => [ + '' => __( 'None', 'essential-addons-elementor' ), + 'tablet' => __( 'Tablet & Mobile', 'essential-addons-elementor' ), + 'mobile' => __( 'Mobile', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->end_controls_tab(); + + $element->start_controls_tab( 'eael_tooltip_section_styles', [ + 'label' => __( 'Styles', 'essential-addons-elementor' ), + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] ); + + $element->add_control( + 'eael_tooltip_section_width', + [ + 'label' => __( 'Max Width', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'default' => [ + 'size' => '', + ], + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 500, ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_disable', - [ - 'label' => __( 'Disable On', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => '', - 'options' => [ - '' => __( 'None', 'essential-addons-elementor' ), - 'tablet' => __( 'Tablet & Mobile', 'essential-addons-elementor' ), - 'mobile' => __( 'Mobile', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', + ], + 'label_block' => false, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'max-width: {{SIZE}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_distance', + [ + 'label' => __( 'Distance', 'essential-addons-elementor' ), + 'type' => Controls_Manager::NUMBER, + 'min' => 05, + 'max' => 50, + 'step' => 2, + 'default' => 10, + 'label_block' => false, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_theme', + [ + 'label' => __( 'Theme', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'dark', + 'options' => [ + 'dark' => __( 'Dark', 'essential-addons-elementor' ), + 'light' => __( 'Light', 'essential-addons-elementor' ), + 'light-border' => __( 'Light Border', 'essential-addons-elementor' ), + 'google' => __( 'Google', 'essential-addons-elementor' ), + ], + 'frontend_available' => true, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_align', + [ + 'label' => __( 'Text Align', 'essential-addons-elementor' ), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + 'left' => [ + 'title' => __( 'Left', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-left', ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_position', - [ - 'label' => __( 'Position', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => '', - 'options' => [ - '' => __( 'Global', 'essential-addons-elementor' ), - 'bottom' => __( 'Bottom', 'essential-addons-elementor' ), - 'left' => __( 'Left', 'essential-addons-elementor' ), - 'top' => __( 'Top', 'essential-addons-elementor' ), - 'right' => __( 'Right', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', + 'center' => [ + 'title' => __( 'Center', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-center', ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_delay_out', - [ - 'label' => __( 'Delay out (s)', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 1, - 'step' => 0.1, - ], - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', + 'right' => [ + 'title' => __( 'Right', 'essential-addons-elementor' ), + 'icon' => 'fa fa-align-right', ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_duration', - [ - 'label' => __( 'Duration', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 2, - 'step' => 0.1, - ], - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->end_controls_tab(); - - $element->start_controls_tab( 'eael_tooltip_section_styles', [ - 'label' => __( 'Styles', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] ); - - $element->add_control( - 'eael_tooltip_section_width', - [ - 'label' => __( 'Max Width', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'default' => [ - 'size' => '', - ], - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 500, - ], - ], - 'label_block' => false, - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'max-width: {{SIZE}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_distance', - [ - 'label' => __( 'Distance', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'size_units' => [ 'px' ], - 'label_block' => false, - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}.to--top' => 'transform: translateY(-{{SIZE}}{{UNIT}});', - '.ee-tooltip.ee-tooltip-{{ID}}.to--bottom' => 'transform: translateY({{SIZE}}{{UNIT}});', - '.ee-tooltip.ee-tooltip-{{ID}}.to--left' => 'transform: translateX(-{{SIZE}}{{UNIT}});', - '.ee-tooltip.ee-tooltip-{{ID}}.to--right' => 'transform: translateX({{SIZE}}{{UNIT}});', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_arrow', - [ - 'label' => __( 'Arrow', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => '', - 'options' => [ - '' => __( 'Show', 'essential-addons-elementor' ), - 'none' => __( 'Hide', 'essential-addons-elementor' ), - ], - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}:after' => 'content: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_align', - [ - 'label' => __( 'Text Align', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - 'left' => [ - 'title' => __( 'Left', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-left', - ], - 'center' => [ - 'title' => __( 'Center', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-center', - ], - 'right' => [ - 'title' => __( 'Right', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-right', - ], - ], - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'text-align: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_padding', - [ - 'label' => __( 'Padding', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', 'em', '%' ], - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_border_radius', - [ - 'label' => __( 'Border Radius', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', '%' ], - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_group_control( - Group_Control_Typography::get_type(), - [ - 'name' => 'eael_tooltip_section_typography', - 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', - 'scheme' => Scheme_Typography::TYPOGRAPHY_3, - 'separator' => 'after', - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_background_color', - [ - 'label' => __( 'Background Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'background-color: {{VALUE}};', - '.ee-tooltip.ee-tooltip-{{ID}}.to--top:after' => 'border-top-color: {{VALUE}};', - '.ee-tooltip.ee-tooltip-{{ID}}.to--left:after' => 'border-left-color: {{VALUE}};', - '.ee-tooltip.ee-tooltip-{{ID}}.to--right:after' => 'border-right-color: {{VALUE}};', - '.ee-tooltip.ee-tooltip-{{ID}}.to--bottom:after' => 'border-bottom-color: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_color', - [ - 'label' => __( 'Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'color: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_group_control( - Group_Control_Box_Shadow::get_type(), - [ - 'name' => 'eael_tooltip_section_box_shadow', - 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', - 'separator' => '', - ] - ); - - $element->end_controls_tab(); - - $element->end_controls_tabs(); - - $element->end_controls_section(); - - } - - public function before_render( $element ) { - - if( $element->get_settings('eael_tooltip_section_enable') == 'yes' ){ - - $element->add_render_attribute( 'eael-section-tooltip', [ - 'id' => 'eael-section-tooltip-' . $element->get_id(), - 'class' => 'eael-section-tooltip', - ]); - - } - - } - - public function after_render( $element ) { - - $data = $element->get_data(); - $settings = $element->get_settings_for_display(); - - ?> - - get_render_attribute_string( 'eael-section-tooltip' ); ?> data-tippy="Tooltip"> - parse_text_editor( $settings['eael_tooltip_section_content'], $element ); ?> - - -get_settings() ); - - $content = shortcode_unautop( $content ); - $content = do_shortcode( $content ); - $content = wptexturize( $content ); - - if ( $GLOBALS['wp_embed'] instanceof \WP_Embed ) { - $content = $GLOBALS['wp_embed']->autoembed( $content ); + ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'text-align: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_padding', + [ + 'label' => __( 'Padding', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', 'em', '%' ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_border_radius', + [ + 'label' => __( 'Border Radius', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', '%' ], + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_group_control( + Group_Control_Typography::get_type(), + [ + 'name' => 'eael_tooltip_section_typography', + 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'scheme' => Scheme_Typography::TYPOGRAPHY_3, + 'separator' => 'after', + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_background_color', + [ + 'label' => __( 'Background Color', 'essential-addons-elementor' ), + 'type' => Controls_Manager::COLOR, + 'default' => '#ffffff', +// 'selectors' => [ +// '#eael-section-tooltip-{{ID}}.tippy-tooltip' => 'background-color: {{VALUE}};', +// ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_color', + [ + 'label' => __( 'Color', 'essential-addons-elementor' ), + 'type' => Controls_Manager::COLOR, + 'selectors' => [ + '.ee-tooltip.ee-tooltip-{{ID}}' => 'color: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_group_control( + Group_Control_Box_Shadow::get_type(), + [ + 'name' => 'eael_tooltip_section_box_shadow', + 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'separator' => '', + ] + ); + + $element->end_controls_tab(); + + $element->end_controls_tabs(); + + $element->end_controls_section(); + + } + + public function before_render( $element ) { + + $settings = $element->get_settings_for_display(); + +// echo '
', print_r($settings), '
'; + + if ( $element->get_settings( 'eael_tooltip_section_enable' ) == 'yes' ) { + + $element->add_render_attribute( '_wrapper', [ + 'id' => 'eael-section-tooltip-' . $element->get_id(), + 'class' => 'eael-section-tooltip', +// 'data-tippy' => $settings['eael_tooltip_section_content'], +// 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], +// 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], +// 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], +// 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], +// 'data-tippy-size' => $settings['eael_tooltip_section_size'], +// 'data-tippy-placement' => $settings['eael_tooltip_section_position'], +// 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], +// +// 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], +// 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], + ] ); + + $bg_color = $settings['eael_tooltip_section_background_color']; + + if ( $settings['eael_tooltip_section_theme'] == 'light' ) { ?> + + + + + + + get_data(); + $settings = $element->get_settings_for_display(); +// $data = $settings['eael_tooltip_section_content']; + +// echo '
', var_dump(), '
'; + + ?> + + + + + + + + + + + + + + + Date: Tue, 26 Feb 2019 16:29:34 +0600 Subject: [PATCH 03/19] enable widget data attributes --- .../eael-tooltip-section.php | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php index c84320175..c91b0a480 100755 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -408,17 +408,17 @@ public function before_render( $element ) { $element->add_render_attribute( '_wrapper', [ 'id' => 'eael-section-tooltip-' . $element->get_id(), 'class' => 'eael-section-tooltip', -// 'data-tippy' => $settings['eael_tooltip_section_content'], -// 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], -// 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], -// 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], -// 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], -// 'data-tippy-size' => $settings['eael_tooltip_section_size'], -// 'data-tippy-placement' => $settings['eael_tooltip_section_position'], -// 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], -// -// 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], -// 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], + 'data-tippy' => $settings['eael_tooltip_section_content'], + 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], + 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], + 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], + 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], + 'data-tippy-size' => $settings['eael_tooltip_section_size'], + 'data-tippy-placement' => $settings['eael_tooltip_section_position'], + 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], + + 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], + 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], ] ); $bg_color = $settings['eael_tooltip_section_background_color']; From 103a5e1f4b84954167bf0918e367a36f47628c7c Mon Sep 17 00:00:00 2001 From: Sabuz Date: Wed, 27 Feb 2019 11:37:02 +0600 Subject: [PATCH 04/19] Fixed: Filterable gallery layout issue --- assets/js/eael-scripts.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 56563368d..ee141ba2a 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -28,10 +28,20 @@ filter: $('.eael-filter-gallery-control .control.active', $scope).data('filter') }); - // layout gal - not necessary, just in case - $isotope_gallery.imagesLoaded().progress(function() { - $isotope_gallery.isotope('layout'); - }); + // layout gal, while images are loadin + $isotope_gallery.imagesLoaded().progress(function() { + $isotope_gallery.isotope('layout'); + }); + + // layout gal, on click tabs + $isotope_gallery.on('arrangeComplete', function() { + $isotope_gallery.isotope('layout'); + }); + + // layout gal, after window loaded + $(window).on('load', function() { + $isotope_gallery.isotope('layout'); + }); // filter $scope.on('click', '.control', function() { From 48bc5baafff8158ed6cc624ee247faf8d58becd9 Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Wed, 27 Feb 2019 16:27:19 +0600 Subject: [PATCH 05/19] fixed: tippy function update issue --- assets/js/eael-scripts.js | 1165 +++++++++-------- .../eael-tooltip-section.php | 63 +- 2 files changed, 626 insertions(+), 602 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index ba4bbeb39..8aede6bf6 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -4,20 +4,20 @@ var isEditMode = false; function mybe_note_undefined($selector, $data_atts) { - return ($selector.data($data_atts) !== undefined) ? $selector.data($data_atts) : ''; - } + return ($selector.data($data_atts) !== undefined) ? $selector.data($data_atts) : ''; + } - /*=================================*/ + /*=================================*/ /* 01. Filterable Gallery /*=================================*/ - var filterableGalleryHandler = function($scope, $) { + var filterableGalleryHandler = function ($scope, $) { if (!isEditMode) { var $gallery = $('.eael-filter-gallery-container', $scope), $settings = $gallery.data('settings'), $gallery_items = $gallery.data('gallery-items'), $layout_mode = ($settings.grid_style == 'masonry' ? 'masonry' : 'fitRows'), $gallery_enabled = ($settings.gallery_enabled == 'yes' ? true : false); - + // init isotope var $isotope_gallery = $gallery.isotope({ itemSelector: '.eael-filterable-gallery-item-wrap', @@ -29,12 +29,12 @@ }); // layout gal - not necessary, just in case - $isotope_gallery.imagesLoaded().progress(function() { + $isotope_gallery.imagesLoaded().progress(function () { $isotope_gallery.isotope('layout'); }); // filter - $scope.on('click', '.control', function() { + $scope.on('click', '.control', function () { var $this = $(this), $filterValue = $this.data('filter'); @@ -52,7 +52,7 @@ enabled: $gallery_enabled, }, callbacks: { - close: function() { + close: function () { $('#elementor-lightbox').hide(); } } @@ -62,14 +62,14 @@ delegate: '.eael-magnific-video-link', type: 'iframe', callbacks: { - close: function() { + close: function () { $('#elementor-lightbox').hide(); } } }); // Load more button - $scope.on('click', '.eael-gallery-load-more', function(e) { + $scope.on('click', '.eael-gallery-load-more', function (e) { e.preventDefault(); var $this = $(this), @@ -81,7 +81,7 @@ if ($init_show == $total_items) { $this.html('
' + $nomore_text + '
'); - setTimeout(function() { + setTimeout(function () { $this.fadeOut('slow'); }, 600); } @@ -94,7 +94,7 @@ // append items $gallery.append($items) $isotope_gallery.isotope('appended', $items) - $isotope_gallery.imagesLoaded().progress(function() { + $isotope_gallery.imagesLoaded().progress(function () { $isotope_gallery.isotope('layout') }) @@ -105,7 +105,7 @@ enabled: $gallery_enabled }, callbacks: { - close: function() { + close: function () { $('#elementor-lightbox').hide(); } } @@ -115,29 +115,29 @@ } - var FacebookFeedHandler = function ($scope, $) { - var loadingFeed = $scope.find( '.eael-loading-feed' ); - var $fbCarousel = $scope.find('.eael-facebook-feed-layout-wrapper').eq(0), - $name = ($fbCarousel.data("facebook-feed-ac-name") !== undefined) ? $fbCarousel.data("facebook-feed-ac-name") : '', - $limit = ($fbCarousel.data("facebook-feed-post-limit") !== undefined) ? $fbCarousel.data("facebook-feed-post-limit") : '', - $app_id = ($fbCarousel.data("facebook-feed-app-id") !== undefined) ? $fbCarousel.data("facebook-feed-app-id") : '', - $app_secret = ($fbCarousel.data("facebook-feed-app-secret") !== undefined) ? $fbCarousel.data("facebook-feed-app-secret") : '', - $length = ($fbCarousel.data("facebook-feed-content-length") !== undefined) ? $fbCarousel.data("facebook-feed-content-length") : 400, - $media = ($fbCarousel.data("facebook-feed-media") !== undefined) ? $fbCarousel.data("facebook-feed-media") : false, - $feed_type = ($fbCarousel.data("facebook-feed-type") !== undefined) ? $fbCarousel.data("facebook-feed-type") : false, - $carouselId = ($fbCarousel.data("facebook-feed-id") !== undefined) ? $fbCarousel.data("facebook-feed-id") : ' '; + var loadingFeed = $scope.find('.eael-loading-feed'); + var $fbCarousel = $scope.find('.eael-facebook-feed-layout-wrapper').eq(0), + $name = ($fbCarousel.data("facebook-feed-ac-name") !== undefined) ? $fbCarousel.data("facebook-feed-ac-name") : '', + $limit = ($fbCarousel.data("facebook-feed-post-limit") !== undefined) ? $fbCarousel.data("facebook-feed-post-limit") : '', + $app_id = ($fbCarousel.data("facebook-feed-app-id") !== undefined) ? $fbCarousel.data("facebook-feed-app-id") : '', + $app_secret = ($fbCarousel.data("facebook-feed-app-secret") !== undefined) ? $fbCarousel.data("facebook-feed-app-secret") : '', + $length = ($fbCarousel.data("facebook-feed-content-length") !== undefined) ? $fbCarousel.data("facebook-feed-content-length") : 400, + $media = ($fbCarousel.data("facebook-feed-media") !== undefined) ? $fbCarousel.data("facebook-feed-media") : false, + $feed_type = ($fbCarousel.data("facebook-feed-type") !== undefined) ? $fbCarousel.data("facebook-feed-type") : false, + $carouselId = ($fbCarousel.data("facebook-feed-id") !== undefined) ? $fbCarousel.data("facebook-feed-id") : ' '; + // Facebook Feed Init function eael_facebook_feeds() { - var $access_token = ($app_id+'|'+$app_secret).toString(); + var $access_token = ($app_id + '|' + $app_secret).toString(); var $id_name = $name.toString(); - $( '#eael-facebook-feed-'+ $carouselId +'.eael-facebook-feed-layout-container' ).socialfeed({ + $('#eael-facebook-feed-' + $carouselId + '.eael-facebook-feed-layout-container').socialfeed({ - facebook:{ - accounts:[$id_name], - limit: $limit, - access_token: $access_token + facebook: { + accounts: [$id_name], + limit: $limit, + access_token: $access_token }, // GENERAL SETTINGS @@ -164,7 +164,7 @@
', }); } - + // Facebook Feed Masonry View function eael_facebook_feed_masonry() { $('.eael-facebook-feed-layout-container.masonry-view').masonry({ @@ -176,53 +176,53 @@ $.ajax({ url: eael_facebook_feeds(), - beforeSend: function() { - loadingFeed.addClass( 'show-loading' ); + beforeSend: function () { + loadingFeed.addClass('show-loading'); }, - success: function() { - if($feed_type == 'masonry') { - setTimeout(function() { + success: function () { + if ($feed_type == 'masonry') { + setTimeout(function () { eael_facebook_feed_masonry(); }, 2000); - - } - loadingFeed.removeClass( 'show-loading' ); - }, - error: function() { - console.log('error loading'); - } - }); - + + } + loadingFeed.removeClass('show-loading'); + }, + error: function () { + console.log('error loading'); + } + }); + }; var TwitterFeedHandler = function ($scope, $) { - var loadingFeed = $scope.find( '.eael-loading-feed' ); - var $twitterFeed = $scope.find('.eael-twitter-feed-layout-wrapper').eq(0), - $name = ($twitterFeed.data("twitter-feed-ac-name") !== undefined) ? $twitterFeed.data("twitter-feed-ac-name") : '', - $limit = ($twitterFeed.data("twitter-feed-post-limit") !== undefined) ? $twitterFeed.data("twitter-feed-post-limit") : '', - $hash_tag = ($twitterFeed.data("twitter-feed-hashtag-name") !== undefined) ? $twitterFeed.data("twitter-feed-hashtag-name") : '', - $key = ($twitterFeed.data("twitter-feed-consumer-key") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-key") : '', - $app_secret = ($twitterFeed.data("twitter-feed-consumer-secret") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-secret") : '', - $length = ($twitterFeed.data("twitter-feed-content-length") !== undefined) ? $twitterFeed.data("twitter-feed-content-length") : 400, - $media = ($twitterFeed.data("twitter-feed-media") !== undefined) ? $twitterFeed.data("twitter-feed-media") : false, - $feed_type = ($twitterFeed.data("twitter-feed-type") !== undefined) ? $twitterFeed.data("twitter-feed-type") : false, - $carouselId = ($twitterFeed.data("twitter-feed-id") !== undefined) ? $twitterFeed.data("twitter-feed-id") : ' '; - - var $id_name = $name.toString(); - var $hash_tag_name = $hash_tag.toString(); + var loadingFeed = $scope.find('.eael-loading-feed'); + var $twitterFeed = $scope.find('.eael-twitter-feed-layout-wrapper').eq(0), + $name = ($twitterFeed.data("twitter-feed-ac-name") !== undefined) ? $twitterFeed.data("twitter-feed-ac-name") : '', + $limit = ($twitterFeed.data("twitter-feed-post-limit") !== undefined) ? $twitterFeed.data("twitter-feed-post-limit") : '', + $hash_tag = ($twitterFeed.data("twitter-feed-hashtag-name") !== undefined) ? $twitterFeed.data("twitter-feed-hashtag-name") : '', + $key = ($twitterFeed.data("twitter-feed-consumer-key") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-key") : '', + $app_secret = ($twitterFeed.data("twitter-feed-consumer-secret") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-secret") : '', + $length = ($twitterFeed.data("twitter-feed-content-length") !== undefined) ? $twitterFeed.data("twitter-feed-content-length") : 400, + $media = ($twitterFeed.data("twitter-feed-media") !== undefined) ? $twitterFeed.data("twitter-feed-media") : false, + $feed_type = ($twitterFeed.data("twitter-feed-type") !== undefined) ? $twitterFeed.data("twitter-feed-type") : false, + $carouselId = ($twitterFeed.data("twitter-feed-id") !== undefined) ? $twitterFeed.data("twitter-feed-id") : ' '; + + var $id_name = $name.toString(); + var $hash_tag_name = $hash_tag.toString(); var $key_name = $key.toString(); var $app_secret = $app_secret.toString(); - + function eael_twitter_feeds() { - $( '#eael-twitter-feed-'+ $carouselId +'.eael-twitter-feed-layout-container' ).socialfeed({ + $('#eael-twitter-feed-' + $carouselId + '.eael-twitter-feed-layout-container').socialfeed({ // TWITTER - twitter:{ - accounts: [ $id_name , $hash_tag_name ], - limit: $limit, - consumer_key: $key_name, - consumer_secret: $app_secret, + twitter: { + accounts: [$id_name, $hash_tag_name], + limit: $limit, + consumer_key: $key_name, + consumer_secret: $app_secret, }, // GENERAL SETTINGS @@ -250,9 +250,9 @@ }); } - + //Twitter Feed masonry View - + function eael_twitter_feed_masonry() { $('.eael-twitter-feed-layout-container.masonry-view').masonry({ itemSelector: '.eael-social-feed-element', @@ -263,69 +263,69 @@ $.ajax({ url: eael_twitter_feeds(), - beforeSend: function() { - loadingFeed.addClass( 'show-loading' ); + beforeSend: function () { + loadingFeed.addClass('show-loading'); }, - success: function() { - $('.eael-twitter-feed-layout-container').bind("DOMSubtreeModified", function() { + success: function () { + $('.eael-twitter-feed-layout-container').bind("DOMSubtreeModified", function () { if ($feed_type == 'masonry') { - setTimeout(function() { + setTimeout(function () { eael_twitter_feed_masonry(); }, 150); } }) - loadingFeed.removeClass( 'show-loading' ); + loadingFeed.removeClass('show-loading'); }, - error: function() { + error: function () { console.log('error loading'); } }); - - } + + } var AdvanceTabHandler = function ($scope, $) { console.log('running'); var $currentTab = $scope.find('.eael-advance-tabs'), $currentTabId = '#' + $currentTab.attr('id').toString(); - $($currentTabId + ' .eael-tabs-nav ul li').each( function(index) { - if( $(this).hasClass('active-default') ) { - $($currentTabId + ' .eael-tabs-nav > ul li').removeClass('active').addClass('inactive'); - $(this).removeClass('inactive'); - }else { - if( index == 0 ) { - $(this).removeClass('inactive').addClass('active'); - - } + $($currentTabId + ' .eael-tabs-nav ul li').each(function (index) { + if ($(this).hasClass('active-default')) { + $($currentTabId + ' .eael-tabs-nav > ul li').removeClass('active').addClass('inactive'); + $(this).removeClass('inactive'); + } else { + if (index == 0) { + $(this).removeClass('inactive').addClass('active'); + } - } ); - - $($currentTabId + ' .eael-tabs-content div').each( function(index) { - if( $(this).hasClass('active-default') ) { - $($currentTabId + ' .eael-tabs-content > div').removeClass('active'); - }else { - if( index == 0 ) { - $(this).removeClass('inactive').addClass('active'); - } + } + }); + + $($currentTabId + ' .eael-tabs-content div').each(function (index) { + if ($(this).hasClass('active-default')) { + $($currentTabId + ' .eael-tabs-content > div').removeClass('active'); + } else { + if (index == 0) { + $(this).removeClass('inactive').addClass('active'); } - } ); - - $($currentTabId + ' .eael-tabs-nav ul li').click(function(){ - var currentTabIndex = $(this).index(); - var tabsContainer = $(this).closest('.eael-advance-tabs'); - var tabsNav = $(tabsContainer).children('.eael-tabs-nav').children('ul').children('li'); - var tabsContent = $(tabsContainer).children('.eael-tabs-content').children('div'); - - $(this).parent('li').addClass('active'); - - $(tabsNav).removeClass('active active-default').addClass('inactive'); - $(this).addClass('active').removeClass('inactive'); - - $(tabsContent).removeClass('active').addClass('inactive'); - $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive'); - - $(tabsContent).each( function(index) { - $(this).removeClass('active-default'); + } + }); + + $($currentTabId + ' .eael-tabs-nav ul li').click(function () { + var currentTabIndex = $(this).index(); + var tabsContainer = $(this).closest('.eael-advance-tabs'); + var tabsNav = $(tabsContainer).children('.eael-tabs-nav').children('ul').children('li'); + var tabsContent = $(tabsContainer).children('.eael-tabs-content').children('div'); + + $(this).parent('li').addClass('active'); + + $(tabsNav).removeClass('active active-default').addClass('inactive'); + $(this).addClass('active').removeClass('inactive'); + + $(tabsContent).removeClass('active').addClass('inactive'); + $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive'); + + $(tabsContent).each(function (index) { + $(this).removeClass('active-default'); }); }); } @@ -333,29 +333,29 @@ /* ------------------------------ */ /* Advance accordion /* ------------------------------ */ - var AdvAccordionHandler = function($scope, $) { - var $advanceAccordion = $scope.find(".eael-adv-accordion"), - $accordionHeader = $scope.find(".eael-accordion-header"), - $accordionType = $advanceAccordion.data("accordion-type"), + var AdvAccordionHandler = function ($scope, $) { + var $advanceAccordion = $scope.find(".eael-adv-accordion"), + $accordionHeader = $scope.find(".eael-accordion-header"), + $accordionType = $advanceAccordion.data("accordion-type"), $accordionSpeed = $advanceAccordion.data("toogle-speed"); - - // Open default actived tab - $accordionHeader.each(function(){ - if($(this).hasClass('active-default')){ - $(this).addClass('show active'); - $(this).next().slideDown($accordionSpeed) - } - }) + + // Open default actived tab + $accordionHeader.each(function () { + if ($(this).hasClass('active-default')) { + $(this).addClass('show active'); + $(this).next().slideDown($accordionSpeed) + } + }) // Remove multiple click event for nested accordion - $accordionHeader.unbind("click"); + $accordionHeader.unbind("click"); - $accordionHeader.click(function(e) { + $accordionHeader.click(function (e) { e.preventDefault(); - + var $this = $(this); - - if($accordionType === 'accordion') { + + if ($accordionType === 'accordion') { if ($this.hasClass("show")) { $this.removeClass("show active"); $this.next().slideUp($accordionSpeed); @@ -375,7 +375,7 @@ $this.next().slideDown($accordionSpeed); } } - }); + }); }; // End of advance accordion /* ------------------------------ */ @@ -384,35 +384,35 @@ var postTimelineHandler = function ($scope, $) { var $_this = $scope.find('.eael-post-timeline'), $currentTimelineId = '#' + $_this.attr('id'), - $total_posts = parseInt( $_this.data('total_posts'), 10 ), - $timeline_id = $_this.data('timeline_id'), + $total_posts = parseInt($_this.data('total_posts'), 10), + $timeline_id = $_this.data('timeline_id'), + + $post_type = $_this.data('post_type'), + $posts_per_page = parseInt($_this.data('posts_per_page'), 10), + $post_order = $_this.data('post_order'), + $post_orderby = $_this.data('post_orderby'), + $post_offset = parseInt($_this.data('post_offset'), 10), - $post_type = $_this.data('post_type'), - $posts_per_page = parseInt( $_this.data('posts_per_page'), 10 ), - $post_order = $_this.data('post_order'), - $post_orderby = $_this.data('post_orderby'), - $post_offset = parseInt( $_this.data('post_offset'), 10 ), + $show_images = $_this.data('show_images'), + $image_size = $_this.data('image_size'), + $show_title = $_this.data('show_title'), - $show_images = $_this.data('show_images'), - $image_size = $_this.data('image_size'), - $show_title = $_this.data('show_title'), - - $show_excerpt = $_this.data('show_excerpt'), - $excerpt_length = parseInt( $_this.data('excerpt_length'), 10 ), + $show_excerpt = $_this.data('show_excerpt'), + $excerpt_length = parseInt($_this.data('excerpt_length'), 10), - $btn_text = $_this.data('btn_text'), + $btn_text = $_this.data('btn_text'), - $tax_query = $_this.data('tax_query'), - $post__in = $_this.data('post__in'), - $exclude_posts = $_this.data('exclude_posts'); + $tax_query = $_this.data('tax_query'), + $post__in = $_this.data('post__in'), + $exclude_posts = $_this.data('exclude_posts'); var options = { totalPosts: $total_posts, - loadMoreBtn: $( '#eael-load-more-btn-' + $timeline_id ), - postContainer: $( '.eael-post-appender-' + $timeline_id ), + loadMoreBtn: $('#eael-load-more-btn-' + $timeline_id), + postContainer: $('.eael-post-appender-' + $timeline_id), postStyle: 'timeline', } - + var settings = { postType: $post_type, perPage: $posts_per_page, @@ -424,98 +424,98 @@ imageSize: $image_size, showTitle: $show_title, showExcerpt: $show_excerpt, - excerptLength: parseInt( $excerpt_length, 10 ), + excerptLength: parseInt($excerpt_length, 10), btnText: $btn_text, tax_query: $tax_query, post__in: $post__in, exclude_posts: $exclude_posts, } - eaelLoadMore( options, settings ); + eaelLoadMore(options, settings); } var ContentTicker = function ($scope, $) { - var $contentTicker = $scope.find('.eael-content-ticker').eq(0), - $items = ($contentTicker.data("items") !== undefined) ? $contentTicker.data("items") : 1, - $items_tablet = ($contentTicker.data("items-tablet") !== undefined) ? $contentTicker.data("items-tablet") : 1, - $items_mobile = ($contentTicker.data("items-mobile") !== undefined) ? $contentTicker.data("items-mobile") : 1, - $margin = ($contentTicker.data("margin") !== undefined) ? $contentTicker.data("margin") : 10, - $margin_tablet = ($contentTicker.data("margin-tablet") !== undefined) ? $contentTicker.data("margin-tablet") : 10, - $margin_mobile = ($contentTicker.data("margin-mobile") !== undefined) ? $contentTicker.data("margin-mobile") : 10, - $effect = ($contentTicker.data("effect") !== undefined) ? $contentTicker.data("effect") : 'slide', - $speed = ($contentTicker.data("speed") !== undefined) ? $contentTicker.data("speed") : 400, - $autoplay = ($contentTicker.data("autoplay") !== undefined) ? $contentTicker.data("autoplay") : 5000, - $loop = ($contentTicker.data("loop") !== undefined) ? $contentTicker.data("loop") : false, - $grab_cursor = ($contentTicker.data("grab-cursor") !== undefined) ? $contentTicker.data("grab-cursor") : false, - $pagination = ($contentTicker.data("pagination") !== undefined) ? $contentTicker.data("pagination") : '.swiper-pagination', - $arrow_next = ($contentTicker.data("arrow-next") !== undefined) ? $contentTicker.data("arrow-next") : '.swiper-button-next', - $arrow_prev = ($contentTicker.data("arrow-prev") !== undefined) ? $contentTicker.data("arrow-prev") : '.swiper-button-prev', - $pause_on_hover = ($contentTicker.data('pause-on-hover') !== undefined ? $contentTicker.data('pause-on-hover') : ''), - $contentTickerOptions = { - direction : 'horizontal', - loop : $loop, - speed : $speed, - effect : $effect, - slidesPerView : $items, - spaceBetween : $margin, - grabCursor : $grab_cursor, - paginationClickable: true, - autoHeight : true, - autoplay: { - delay: $autoplay, - }, - pagination: { - el: $pagination, - clickable: true, - }, - navigation: { - nextEl: $arrow_next, - prevEl: $arrow_prev, - }, - breakpoints: { - // when window width is <= 480px - 480: { - slidesPerView: $items_mobile, - spaceBetween : $margin_mobile - }, - // when window width is <= 640px - 768: { - slidesPerView: $items_tablet, - spaceBetween : $margin_tablet - } - } - }; - - var $contentTickerSlider = new Swiper($contentTicker, $contentTickerOptions); - if($autoplay === 0) { - $contentTickerSlider.autoplay.stop(); - } - if($pause_on_hover && $autoplay !== 0) { - $contentTicker.on('mouseenter', function() { - $contentTickerSlider.autoplay.stop(); - }); - $contentTicker.on('mouseleave', function() { - $contentTickerSlider.autoplay.start(); - }); - } - }; + var $contentTicker = $scope.find('.eael-content-ticker').eq(0), + $items = ($contentTicker.data("items") !== undefined) ? $contentTicker.data("items") : 1, + $items_tablet = ($contentTicker.data("items-tablet") !== undefined) ? $contentTicker.data("items-tablet") : 1, + $items_mobile = ($contentTicker.data("items-mobile") !== undefined) ? $contentTicker.data("items-mobile") : 1, + $margin = ($contentTicker.data("margin") !== undefined) ? $contentTicker.data("margin") : 10, + $margin_tablet = ($contentTicker.data("margin-tablet") !== undefined) ? $contentTicker.data("margin-tablet") : 10, + $margin_mobile = ($contentTicker.data("margin-mobile") !== undefined) ? $contentTicker.data("margin-mobile") : 10, + $effect = ($contentTicker.data("effect") !== undefined) ? $contentTicker.data("effect") : 'slide', + $speed = ($contentTicker.data("speed") !== undefined) ? $contentTicker.data("speed") : 400, + $autoplay = ($contentTicker.data("autoplay") !== undefined) ? $contentTicker.data("autoplay") : 5000, + $loop = ($contentTicker.data("loop") !== undefined) ? $contentTicker.data("loop") : false, + $grab_cursor = ($contentTicker.data("grab-cursor") !== undefined) ? $contentTicker.data("grab-cursor") : false, + $pagination = ($contentTicker.data("pagination") !== undefined) ? $contentTicker.data("pagination") : '.swiper-pagination', + $arrow_next = ($contentTicker.data("arrow-next") !== undefined) ? $contentTicker.data("arrow-next") : '.swiper-button-next', + $arrow_prev = ($contentTicker.data("arrow-prev") !== undefined) ? $contentTicker.data("arrow-prev") : '.swiper-button-prev', + $pause_on_hover = ($contentTicker.data('pause-on-hover') !== undefined ? $contentTicker.data('pause-on-hover') : ''), + $contentTickerOptions = { + direction: 'horizontal', + loop: $loop, + speed: $speed, + effect: $effect, + slidesPerView: $items, + spaceBetween: $margin, + grabCursor: $grab_cursor, + paginationClickable: true, + autoHeight: true, + autoplay: { + delay: $autoplay, + }, + pagination: { + el: $pagination, + clickable: true, + }, + navigation: { + nextEl: $arrow_next, + prevEl: $arrow_prev, + }, + breakpoints: { + // when window width is <= 480px + 480: { + slidesPerView: $items_mobile, + spaceBetween: $margin_mobile + }, + // when window width is <= 640px + 768: { + slidesPerView: $items_tablet, + spaceBetween: $margin_tablet + } + } + }; + + var $contentTickerSlider = new Swiper($contentTicker, $contentTickerOptions); + if ($autoplay === 0) { + $contentTickerSlider.autoplay.stop(); + } + if ($pause_on_hover && $autoplay !== 0) { + $contentTicker.on('mouseenter', function () { + $contentTickerSlider.autoplay.stop(); + }); + $contentTicker.on('mouseleave', function () { + $contentTickerSlider.autoplay.start(); + }); + } + }; /* ------------------------------ */ /* Data Table /* ------------------------------ */ - var dataTable = function($scope, $) { + var dataTable = function ($scope, $) { var $_this = $scope.find('.eael-data-table-wrap'), $id = $_this.data('table_id'); var responsive = $_this.data('custom_responsive'); - if( true == responsive ) { + if (true == responsive) { var $th = $scope.find('.eael-data-table').find('th'); var $tbody = $scope.find('.eael-data-table').find('tbody'); - $tbody.find('tr').each(function(i, item) { - $(item).find('td .td-content-wrapper').each(function(index, item){ - $(this) - .prepend('
' + $th.eq(index).html() + '
'); + $tbody.find('tr').each(function (i, item) { + $(item).find('td .td-content-wrapper').each(function (index, item) { + $(this) + .prepend('
' + $th.eq(index).html() + '
'); }); }); } @@ -523,18 +523,18 @@ } // end of Data Table - var FancyText = function ($scope, $) { - var $fancyText = $scope.find('.eael-fancy-text-container').eq(0), - $id = ($fancyText.data("fancy-text-id") !== undefined) ? $fancyText.data("fancy-text-id") : '', - $fancy_text = ($fancyText.data("fancy-text") !== undefined) ? $fancyText.data("fancy-text") : '', - $transition_type = ($fancyText.data("fancy-text-transition-type") !== undefined) ? $fancyText.data("fancy-text-transition-type") : '', - $fancy_text_speed = ($fancyText.data("fancy-text-speed") !== undefined) ? $fancyText.data("fancy-text-speed") : '', - $fancy_text_delay = ($fancyText.data("fancy-text-delay") !== undefined) ? $fancyText.data("fancy-text-delay") : '', - $fancy_text_cursor = ($fancyText.data("fancy-text-cursor") !== undefined) ? true : false, - $fancy_text_loop = ($fancyText.data("fancy-text-loop") !== undefined) ? ($fancyText.data("fancy-text-loop") == 'yes' ? true : false) : false; - $fancy_text = $fancy_text.split("|"); - - if ( $transition_type == 'typing' ) { + var FancyText = function ($scope, $) { + var $fancyText = $scope.find('.eael-fancy-text-container').eq(0), + $id = ($fancyText.data("fancy-text-id") !== undefined) ? $fancyText.data("fancy-text-id") : '', + $fancy_text = ($fancyText.data("fancy-text") !== undefined) ? $fancyText.data("fancy-text") : '', + $transition_type = ($fancyText.data("fancy-text-transition-type") !== undefined) ? $fancyText.data("fancy-text-transition-type") : '', + $fancy_text_speed = ($fancyText.data("fancy-text-speed") !== undefined) ? $fancyText.data("fancy-text-speed") : '', + $fancy_text_delay = ($fancyText.data("fancy-text-delay") !== undefined) ? $fancyText.data("fancy-text-delay") : '', + $fancy_text_cursor = ($fancyText.data("fancy-text-cursor") !== undefined) ? true : false, + $fancy_text_loop = ($fancyText.data("fancy-text-loop") !== undefined) ? ($fancyText.data("fancy-text-loop") == 'yes' ? true : false) : false; + $fancy_text = $fancy_text.split("|"); + + if ($transition_type == 'typing') { $("#eael-fancy-text-" + $id).typed({ strings: $fancy_text, typeSpeed: $fancy_text_speed, @@ -546,317 +546,237 @@ }); } - if ( $transition_type != 'typing' ) { + if ($transition_type != 'typing') { $("#eael-fancy-text-" + $id).Morphext({ - animation: $transition_type, - separator: ", ", - speed: $fancy_text_delay, - complete: function () { - // Overrides default empty function - } - }); + animation: $transition_type, + separator: ", ", + speed: $fancy_text_delay, + complete: function () { + // Overrides default empty function + } + }); } } var ImageAccordion = function ($scope, $) { - var $imageAccordion = $scope.find('.eael-img-accordion').eq(0), - $id = ($imageAccordion.data("img-accordion-id") !== undefined) ? $imageAccordion.data("img-accordion-id") : '', - $type = ($imageAccordion.data("img-accordion-type") !== undefined) ? $imageAccordion.data("img-accordion-type") : ''; - + var $imageAccordion = $scope.find('.eael-img-accordion').eq(0), + $id = ($imageAccordion.data("img-accordion-id") !== undefined) ? $imageAccordion.data("img-accordion-id") : '', + $type = ($imageAccordion.data("img-accordion-type") !== undefined) ? $imageAccordion.data("img-accordion-type") : ''; + - if( 'on-click' === $type ) { - $('#eael-img-accordion-'+ $id +' a').on('click', function(e) { + if ('on-click' === $type) { + $('#eael-img-accordion-' + $id + ' a').on('click', function (e) { e.preventDefault(); - $('#eael-img-accordion-'+ $id +' a').css('flex', '1'); + $('#eael-img-accordion-' + $id + ' a').css('flex', '1'); $(this).find('.overlay').parent('a').addClass('overlay-active'); - $('#eael-img-accordion-'+ $id +' a').find('.overlay-inner').removeClass('overlay-inner-show'); + $('#eael-img-accordion-' + $id + ' a').find('.overlay-inner').removeClass('overlay-inner-show'); $(this).find('.overlay-inner').addClass('overlay-inner-show'); $(this).css('flex', '3'); }); - $('#eael-img-accordion-'+ $id +' a').on('blur', function(e) { - $('#eael-img-accordion-'+ $id +' a').css('flex', '1'); - $('#eael-img-accordion-'+ $id +' a').find('.overlay-inner').removeClass('overlay-inner-show'); + $('#eael-img-accordion-' + $id + ' a').on('blur', function (e) { + $('#eael-img-accordion-' + $id + ' a').css('flex', '1'); + $('#eael-img-accordion-' + $id + ' a').find('.overlay-inner').removeClass('overlay-inner-show'); $(this).find('.overlay').parent('a').removeClass('overlay-active'); }); } } - var CountDown = function ($scope, $) { - var $coundDown = $scope.find('.eael-countdown-wrapper').eq(0), - $countdown_id = ($coundDown.data("countdown-id") !== undefined) ? $coundDown.data("countdown-id") : '', - $expire_type = ($coundDown.data("expire-type") !== undefined) ? $coundDown.data("expire-type") : '', - $expiry_text = ($coundDown.data("expiry-text") !== undefined) ? $coundDown.data("expiry-text") : '', - $expiry_title = ($coundDown.data("expiry-title") !== undefined) ? $coundDown.data('expiry-title') : '', - $redirect_url = ($coundDown.data("redirect-url") !== undefined) ? $coundDown.data("redirect-url") : '', - $template = ($coundDown.data("template") !== undefined) ? $coundDown.data("template") : ''; - - jQuery(document).ready(function($) { - 'use strict'; - var countDown = $("#eael-countdown-" + $countdown_id); - - countDown.countdown({ - end: function() { - if( $expire_type == 'text'){ - countDown.html( '

' + $expiry_title + '

' + '
' + $expiry_text + '
'); - } - else if ( $expire_type === 'url'){ - var editMode = $('body').find('#elementor').length; - if( editMode > 0 ) { - countDown.html("Your Page will be redirected to given URL (only on Frontend)."); - } else { - window.location.href = $redirect_url; - } - } - else if ( $expire_type === 'template'){ - countDown.html( $template ); - } else { - //do nothing! - } - } - }); - }); - } - - var PricingTooltip = function($scope, $) { - if( $.fn.tooltipster ) { - var $tooltip = $scope.find('.tooltip'), i; - - for( i = 0; i < $tooltip.length; i++) { - var $currentTooltip = $( '#' + $($tooltip[i]).attr('id') ), - $tooltipSide = ( $currentTooltip.data('side') !== undefined ) ? $currentTooltip.data('side') : false, - $tooltipTrigger = ( $currentTooltip.data('trigger') !== undefined ) ? $currentTooltip.data('trigger') : 'hover', - $animation = ( $currentTooltip.data('animation') !== undefined ) ? $currentTooltip.data('animation') : 'fade', - $anim_duration = ( $currentTooltip.data('animation_duration') !== undefined ) ? $currentTooltip.data('animation_duration') : 300, - $theme = ( $currentTooltip.data('theme') !== undefined ) ? $currentTooltip.data('theme') : 'default', - $arrow = ( 'yes' == $currentTooltip.data('arrow') ) ? true : false; - - $currentTooltip.tooltipster({ - animation: $animation, - trigger: $tooltipTrigger, - side: $tooltipSide, - delay: $anim_duration, - arrow: $arrow, - theme: 'tooltipster-' + $theme - }); - - } - } + var CountDown = function ($scope, $) { + var $coundDown = $scope.find('.eael-countdown-wrapper').eq(0), + $countdown_id = ($coundDown.data("countdown-id") !== undefined) ? $coundDown.data("countdown-id") : '', + $expire_type = ($coundDown.data("expire-type") !== undefined) ? $coundDown.data("expire-type") : '', + $expiry_text = ($coundDown.data("expiry-text") !== undefined) ? $coundDown.data("expiry-text") : '', + $expiry_title = ($coundDown.data("expiry-title") !== undefined) ? $coundDown.data('expiry-title') : '', + $redirect_url = ($coundDown.data("redirect-url") !== undefined) ? $coundDown.data("redirect-url") : '', + $template = ($coundDown.data("template") !== undefined) ? $coundDown.data("template") : ''; + + jQuery(document).ready(function ($) { + 'use strict'; + var countDown = $("#eael-countdown-" + $countdown_id); + + countDown.countdown({ + end: function () { + if ($expire_type == 'text') { + countDown.html('

' + $expiry_title + '

' + '
' + $expiry_text + '
'); + } else if ($expire_type === 'url') { + var editMode = $('body').find('#elementor').length; + if (editMode > 0) { + countDown.html("Your Page will be redirected to given URL (only on Frontend)."); + } else { + window.location.href = $redirect_url; + } + } else if ($expire_type === 'template') { + countDown.html($template); + } else { + //do nothing! + } + } + }); + }); } - - var ProgressBar = function ($scope, $) { - var $progressBar = $scope.find('.eael-progress-bar-container').eq(0), - $layout = mybe_note_undefined($progressBar, "layout"), - $id = mybe_note_undefined($progressBar, "id"), - $number = mybe_note_undefined($progressBar, "number"), - $class = '.elementor-element-' + $scope.data('id'), - $line_stroke_color = mybe_note_undefined($progressBar, "line-stroke-color"), - $line_stroke_width = mybe_note_undefined($progressBar, "line-stroke-width"), - $line_stroke_trail_color = mybe_note_undefined($progressBar, "line-stroke-trail-color"), - $line_stroke_trail_width = mybe_note_undefined($progressBar, "line-stroke-trail-width"), - $line_direction = mybe_note_undefined($progressBar, "line-direction"), - - $fan_stroke_color = mybe_note_undefined($progressBar, "fan-stroke-color"), - $fan_stroke_width = mybe_note_undefined($progressBar, "fan-stroke-width"), - $fan_stroke_trail_color = mybe_note_undefined($progressBar, "fan-stroke-trail-color"), - $fan_stroke_trail_width = mybe_note_undefined($progressBar, "fan-stroke-trail-width"), - $fan_direction = mybe_note_undefined($progressBar, "fan-direction"), - - $circle_stroke_color = mybe_note_undefined($progressBar, "circle-stroke-color"), - $circle_stroke_width = mybe_note_undefined($progressBar, "circle-stroke-width"), - $circle_stroke_trail_color = mybe_note_undefined($progressBar, "circle-stroke-trail-color"), - $circle_stroke_trail_width = mybe_note_undefined($progressBar, "circle-stroke-trail-width"), - $circle_direction = mybe_note_undefined($progressBar, "circle-direction"), - - $bubble_circle_color = mybe_note_undefined($progressBar, "bubble-circle-color"), - $bubble_bg_color = mybe_note_undefined($progressBar, "bubble-bg-color"), - $bubble_circle_width = mybe_note_undefined($progressBar, "bubble-circle-width"), - $bubble_direction = mybe_note_undefined($progressBar, "bubble-direction"), - - $rainbow_stroke_width = mybe_note_undefined($progressBar, "rainbow-stroke-width"), - $rainbow_stroke_trail_width = mybe_note_undefined($progressBar, "rainbow-stroke-trail-width"), - $rainbow_color_one = mybe_note_undefined($progressBar, "rainbow-color-one"), - $rainbow_color_two = mybe_note_undefined($progressBar, "rainbow-color-two"), - $rainbow_color_three = mybe_note_undefined($progressBar, "rainbow-color-three"), - $rainbow_color_four = mybe_note_undefined($progressBar, "rainbow-color-four"), - $rainbow_color_five = mybe_note_undefined($progressBar, "rainbow-color-five"), - $rainbow_direction = mybe_note_undefined($progressBar, "rainbow-direction"); - - - if('rainbow' == $layout){ - var bar = new ldBar($class + ' .inside-progressbar', { - "type": 'stroke', - "path": 'M0 10L100 10', - "stroke": 'data:ldbar/res,gradient(0,1,'+ $rainbow_color_one +','+ $rainbow_color_two +','+ $rainbow_color_three +','+ $rainbow_color_four +','+ $rainbow_color_five +')', - "aspect-ratio": 'none', - "stroke-width": $rainbow_stroke_width, - "stroke-trail-width": $rainbow_stroke_trail_width, - "stroke-dir": $rainbow_direction - }).set($number); - } - else if('line' == $layout){ - var bar = new ldBar($class + ' .inside-progressbar', { - "type": 'stroke', - "path": 'M0 10L100 10', - "stroke": $line_stroke_color, - "stroke-width": $line_stroke_width, - "stroke-trail": $line_stroke_trail_color, - "stroke-trail-width": $line_stroke_trail_width, - "aspect-ratio": 'none', - "stroke-dir": $line_direction - }).set($number); - } - else if('fan' == $layout){ - var bar = new ldBar($class + ' .inside-progressbar', { - "type": 'stroke', - "path": 'M10 90A40 40 0 0 1 90 90', - "fill-dir": $fan_direction, - "fill": $fan_stroke_color, - "fill-background": $fan_stroke_trail_color, - "fill-background-extrude": $fan_stroke_width, - "stroke-dir": 'normal', - "stroke": $fan_stroke_color, - "stroke-width": $fan_stroke_width, - "stroke-trail": $fan_stroke_trail_color, - "stroke-trail-width": $fan_stroke_trail_width - }).set($number); - } - else if('circle' == $layout){ - var bar = new ldBar($class + ' .inside-progressbar', { - "type": 'stroke', - "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', - "fill-dir": $circle_direction, - "fill": $circle_stroke_color, - "fill-background": $circle_stroke_trail_color, - "fill-background-extrude": $circle_stroke_width, - "stroke-dir": 'normal', - "stroke": $circle_stroke_color, - "stroke-width": $circle_stroke_width, - "stroke-trail": $circle_stroke_trail_color, - "stroke-trail-width": $circle_stroke_trail_width - }).set($number); - } - else if('bubble' == $layout){ - var bar = new ldBar($class + ' .inside-progressbar', { - "type": 'fill', - "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', - "fill-dir": $bubble_direction, - "fill": 'data:ldbar/res,bubble('+ $bubble_bg_color +','+ $bubble_circle_color +')', - "pattern-size": $bubble_circle_width, - "fill-background": '#ddd', - "fill-background-extrude": 2, - "stroke-dir": 'normal', - "stroke": '#25b', - "stroke-width": '3', - "stroke-trail": '#ddd', - "stroke-trail-width": 0.5 - }).set($number); + var PricingTooltip = function ($scope, $) { + if ($.fn.tooltipster) { + var $tooltip = $scope.find('.tooltip'), i; + + for (i = 0; i < $tooltip.length; i++) { + var $currentTooltip = $('#' + $($tooltip[i]).attr('id')), + $tooltipSide = ($currentTooltip.data('side') !== undefined) ? $currentTooltip.data('side') : false, + $tooltipTrigger = ($currentTooltip.data('trigger') !== undefined) ? $currentTooltip.data('trigger') : 'hover', + $animation = ($currentTooltip.data('animation') !== undefined) ? $currentTooltip.data('animation') : 'fade', + $anim_duration = ($currentTooltip.data('animation_duration') !== undefined) ? $currentTooltip.data('animation_duration') : 300, + $theme = ($currentTooltip.data('theme') !== undefined) ? $currentTooltip.data('theme') : 'default', + $arrow = ('yes' == $currentTooltip.data('arrow')) ? true : false; + + $currentTooltip.tooltipster({ + animation: $animation, + trigger: $tooltipTrigger, + side: $tooltipSide, + delay: $anim_duration, + arrow: $arrow, + theme: 'tooltipster-' + $theme + }); + } - }; + } + } - /*=================================*/ - /* 36. Section Particles - /*=================================*/ - var EaelParticlesHandler = function($scope,$){ - var target = $scope, - sectionId = target.data('id'), - editMode = elementorFrontend.isEditMode(), - settings; - - - if ( editMode ) { - settings = generateEditorSettings( sectionId ); - } - - if (!editMode || ! settings ) { - return false; - } - - if(settings.switch == 'yes') { - target.addClass('eael-particles-section'); - if(settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) { - generateParticles(); - } - } else { - target.removeClass('eael-particles-section'); - } - - - function generateEditorSettings(targetId){ - var editorElements = null, - sectionData = {}, - settings = {}; - - if ( ! window.elementor.hasOwnProperty( 'elements' ) ) { - return false; - } - - editorElements = window.elementor.elements; - - if ( ! editorElements.models ) { - return false; - } - - $.each(editorElements.models,function(index,elem){ - if( targetId == elem.id){ - sectionData = elem.attributes.settings.attributes; - - } else if( elem.id == target.closest( '.elementor-top-section' ).data( 'id' ) ) { - $.each(elem.attributes.elements.models,function(index,col){ - $.each(col.attributes.elements.models,function(index,subSec){ - sectionData = subSec.attributes.settings.attributes; - }); - }); - } - }); - - settings.switch = sectionData[ 'eael_particle_switch' ]; - settings.zIndex = sectionData[ 'eael_particles_zindex' ]; - settings.themeSource = sectionData['eael_particle_theme_from']; - - - if(settings.themeSource == 'presets') { - settings.selected_theme = (ParticleThemesData[sectionData[ 'eael_particle_preset_themes' ]]); - } - - if( (settings.themeSource == 'custom') && ('' !== sectionData[ 'eael_particles_custom_style' ]) ){ - settings.selected_theme = sectionData[ 'eael_particles_custom_style' ]; - } - - if ( 0 !== settings.length ) { - return settings; - } - - return false; - } - - function generateParticles(){ - target.attr('id','eael-section-particles-'+ sectionId); - if(typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) { - particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme)); - target.children('canvas.particles-js-canvas-el').css({ - zIndex: settings.zIndex, - position: 'absolute', - top:0 - }); - } - } - - }; + var ProgressBar = function ($scope, $) { + + var $progressBar = $scope.find('.eael-progress-bar-container').eq(0), + $layout = mybe_note_undefined($progressBar, "layout"), + $id = mybe_note_undefined($progressBar, "id"), + $number = mybe_note_undefined($progressBar, "number"), + $class = '.elementor-element-' + $scope.data('id'), + $line_stroke_color = mybe_note_undefined($progressBar, "line-stroke-color"), + $line_stroke_width = mybe_note_undefined($progressBar, "line-stroke-width"), + $line_stroke_trail_color = mybe_note_undefined($progressBar, "line-stroke-trail-color"), + $line_stroke_trail_width = mybe_note_undefined($progressBar, "line-stroke-trail-width"), + $line_direction = mybe_note_undefined($progressBar, "line-direction"), + + $fan_stroke_color = mybe_note_undefined($progressBar, "fan-stroke-color"), + $fan_stroke_width = mybe_note_undefined($progressBar, "fan-stroke-width"), + $fan_stroke_trail_color = mybe_note_undefined($progressBar, "fan-stroke-trail-color"), + $fan_stroke_trail_width = mybe_note_undefined($progressBar, "fan-stroke-trail-width"), + $fan_direction = mybe_note_undefined($progressBar, "fan-direction"), + + $circle_stroke_color = mybe_note_undefined($progressBar, "circle-stroke-color"), + $circle_stroke_width = mybe_note_undefined($progressBar, "circle-stroke-width"), + $circle_stroke_trail_color = mybe_note_undefined($progressBar, "circle-stroke-trail-color"), + $circle_stroke_trail_width = mybe_note_undefined($progressBar, "circle-stroke-trail-width"), + $circle_direction = mybe_note_undefined($progressBar, "circle-direction"), + + $bubble_circle_color = mybe_note_undefined($progressBar, "bubble-circle-color"), + $bubble_bg_color = mybe_note_undefined($progressBar, "bubble-bg-color"), + $bubble_circle_width = mybe_note_undefined($progressBar, "bubble-circle-width"), + $bubble_direction = mybe_note_undefined($progressBar, "bubble-direction"), + + $rainbow_stroke_width = mybe_note_undefined($progressBar, "rainbow-stroke-width"), + $rainbow_stroke_trail_width = mybe_note_undefined($progressBar, "rainbow-stroke-trail-width"), + $rainbow_color_one = mybe_note_undefined($progressBar, "rainbow-color-one"), + $rainbow_color_two = mybe_note_undefined($progressBar, "rainbow-color-two"), + $rainbow_color_three = mybe_note_undefined($progressBar, "rainbow-color-three"), + $rainbow_color_four = mybe_note_undefined($progressBar, "rainbow-color-four"), + $rainbow_color_five = mybe_note_undefined($progressBar, "rainbow-color-five"), + $rainbow_direction = mybe_note_undefined($progressBar, "rainbow-direction"); + + + if ('rainbow' == $layout) { + var bar = new ldBar($class + ' .inside-progressbar', { + "type": 'stroke', + "path": 'M0 10L100 10', + "stroke": 'data:ldbar/res,gradient(0,1,' + $rainbow_color_one + ',' + $rainbow_color_two + ',' + $rainbow_color_three + ',' + $rainbow_color_four + ',' + $rainbow_color_five + ')', + "aspect-ratio": 'none', + "stroke-width": $rainbow_stroke_width, + "stroke-trail-width": $rainbow_stroke_trail_width, + "stroke-dir": $rainbow_direction + }).set($number); + } else if ('line' == $layout) { + var bar = new ldBar($class + ' .inside-progressbar', { + "type": 'stroke', + "path": 'M0 10L100 10', + "stroke": $line_stroke_color, + "stroke-width": $line_stroke_width, + "stroke-trail": $line_stroke_trail_color, + "stroke-trail-width": $line_stroke_trail_width, + "aspect-ratio": 'none', + "stroke-dir": $line_direction + }).set($number); + } else if ('fan' == $layout) { + var bar = new ldBar($class + ' .inside-progressbar', { + "type": 'stroke', + "path": 'M10 90A40 40 0 0 1 90 90', + "fill-dir": $fan_direction, + "fill": $fan_stroke_color, + "fill-background": $fan_stroke_trail_color, + "fill-background-extrude": $fan_stroke_width, + "stroke-dir": 'normal', + "stroke": $fan_stroke_color, + "stroke-width": $fan_stroke_width, + "stroke-trail": $fan_stroke_trail_color, + "stroke-trail-width": $fan_stroke_trail_width + }).set($number); + } else if ('circle' == $layout) { + var bar = new ldBar($class + ' .inside-progressbar', { + "type": 'stroke', + "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', + "fill-dir": $circle_direction, + "fill": $circle_stroke_color, + "fill-background": $circle_stroke_trail_color, + "fill-background-extrude": $circle_stroke_width, + "stroke-dir": 'normal', + "stroke": $circle_stroke_color, + "stroke-width": $circle_stroke_width, + "stroke-trail": $circle_stroke_trail_color, + "stroke-trail-width": $circle_stroke_trail_width + }).set($number); + } else if ('bubble' == $layout) { + var bar = new ldBar($class + ' .inside-progressbar', { + "type": 'fill', + "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10', + "fill-dir": $bubble_direction, + "fill": 'data:ldbar/res,bubble(' + $bubble_bg_color + ',' + $bubble_circle_color + ')', + "pattern-size": $bubble_circle_width, + "fill-background": '#ddd', + "fill-background-extrude": 2, + "stroke-dir": 'normal', + "stroke": '#25b', + "stroke-width": '3', + "stroke-trail": '#ddd', + "stroke-trail-width": 0.5 + }).set($number); + } + }; /*=================================*/ - /* 37. Section Tooltip + /* 36. Section Particles /*=================================*/ - - var EaelSectionTooltip = function ($scope, $) { - + var EaelParticlesHandler = function ($scope, $) { var target = $scope, sectionId = target.data('id'), editMode = elementorFrontend.isEditMode(), settings; + if (editMode) { + settings = generateEditorSettings(sectionId); + } + if (!editMode || !settings) { + return false; + } + + if (settings.switch == 'yes') { + target.addClass('eael-particles-section'); + if (settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) { + generateParticles(); + } + } else { + target.removeClass('eael-particles-section'); + } + + + function generateEditorSettings(targetId) { var editorElements = null, sectionData = {}, settings = {}; @@ -867,90 +787,189 @@ editorElements = window.elementor.elements; - if (!editorElements.models) { return false; } $.each(editorElements.models, function (index, elem) { - - var columns = elem.attributes.elements; - - $.each(columns.models, function (inde, column) { - var widgets = column.attributes.elements; - - $.each(widgets.models, function (ind, widget) { - - if (sectionId == widget.id) { - sectionData = widget.attributes.settings.attributes; - } - + if (targetId == elem.id) { + sectionData = elem.attributes.settings.attributes; + + } else if (elem.id == target.closest('.elementor-top-section').data('id')) { + $.each(elem.attributes.elements.models, function (index, col) { + $.each(col.attributes.elements.models, function (index, subSec) { + sectionData = subSec.attributes.settings.attributes; + }); }); - }); + } }); - settings.switch = sectionData['eael_tooltip_section_enable']; - settings.content = sectionData['eael_tooltip_section_content']; - settings.position = sectionData['eael_tooltip_section_position']; - settings.animation = sectionData['eael_tooltip_section_animation']; - settings.arrow = sectionData['eael_tooltip_section_arrow']; - settings.duration = sectionData['eael_tooltip_section_duration']; - settings.delay = sectionData['eael_tooltip_section_delay']; - settings.size = sectionData['eael_tooltip_section_size']; - settings.trigger = sectionData['eael_tooltip_section_trigger']; - settings.theme = sectionData['eael_tooltip_section_theme']; + settings.switch = sectionData['eael_particle_switch']; + settings.zIndex = sectionData['eael_particles_zindex']; + settings.themeSource = sectionData['eael_particle_theme_from']; - if (settings.switch == 'yes') { - target.addClass('eael-section-tooltip'); - generateTooltip(); + if (settings.themeSource == 'presets') { + settings.selected_theme = (ParticleThemesData[sectionData['eael_particle_preset_themes']]); + } - } else { - target.removeClass('eael-section-tooltip'); + if ((settings.themeSource == 'custom') && ('' !== sectionData['eael_particles_custom_style'])) { + settings.selected_theme = sectionData['eael_particles_custom_style']; } if (0 !== settings.length) { return settings; } + return false; } - if (!editMode || !settings) { - return false; + function generateParticles() { + target.attr('id', 'eael-section-particles-' + sectionId); + if (typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) { + particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme)); + target.children('canvas.particles-js-canvas-el').css({ + zIndex: settings.zIndex, + position: 'absolute', + top: 0 + }); + } } - function generateTooltip() { - - target.attr('id', 'eael-section-tooltip-' + sectionId); - var $currentTooltip = '#' + target.attr('id'); - - var tooltipOptions = { - content: settings.content, - placement: settings.position, - animation: settings.animation, - arrow: settings.arrow, - duration: settings.duration, - delay: settings.content, - size: settings.size, - // trigger: settings.trigger, - animateFill: false, - // theme: settings.theme, - interactive: true, - onShow(instance){ - instance.setContent(settings.content) - } - }; + }; - tippy( $currentTooltip, tooltipOptions); + /*=================================*/ + /* 37. Section Tooltip + /*=================================*/ + + var EaelSectionTooltip = function($scope, $) { + var target = $scope, + sectionId = target.data("id"), + editMode = elementorFrontend.isEditMode(), + settings = {}; + + if (editMode) { + var editorElements = null, + sectionData = {}; + + if (!window.elementor.hasOwnProperty("elements")) { + return false; + } + + editorElements = window.elementor.elements; + + if (!editorElements.models) { + return false; + } + + $.each(editorElements.models, function(index, elem) { + var columns = elem.attributes.elements; + + $.each(columns.models, function(inde, column) { + var widgets = column.attributes.elements; + + $.each(widgets.models, function(ind, widget) { + + if (sectionId == widget.id) { + sectionData = widget.attributes.settings.attributes; + settings.switch = sectionData["eael_tooltip_section_enable"]; + settings.content = sectionData["eael_tooltip_section_content"]; + settings.position = sectionData["eael_tooltip_section_position"]; + settings.animation = sectionData["eael_tooltip_section_animation"]; + settings.arrow = sectionData["eael_tooltip_section_arrow"]; + settings.duration = sectionData["eael_tooltip_section_duration"]; + settings.delay = sectionData["eael_tooltip_section_delay"]; + settings.size = sectionData["eael_tooltip_section_size"]; + settings.trigger = sectionData["eael_tooltip_section_trigger"]; + + settings.theme = sectionData["eael_tooltip_section_theme"]; + settings.distance = sectionData["eael_tooltip_section_distance"]; + settings.maxWidth = sectionData["eael_tooltip_section_width"]; + + if (settings.switch == "yes") { + target.addClass("eael-section-tooltip"); + generateTooltip(); + } else { + target.removeClass("eael-section-tooltip"); + } + + if (0 !== settings.length) { + return settings; + } + } + + if (!editMode || !settings) { + return false; + } + + function generateTooltip() { + target.attr("id", "eael-section-tooltip-" + sectionId); + var $currentTooltip = "#" + target.attr("id"); + + var tooltipOptions = { + content: settings.content, + placement: settings.position, + animation: settings.animation, + arrow: settings.arrow, + duration: settings.duration, + distance: settings.distance, + delay: settings.content, + size: settings.size, + trigger: settings.trigger, + animateFill: false, + theme: settings.theme, + flipOnUpdate: true, + interactive: true, + maxWidth: settings.maxWidth, + zIndex: 999, + }; + + tippy( $currentTooltip, { + ...tooltipOptions, + onShow(instance) { + settings.content = sectionData["eael_tooltip_section_content"]; + settings.position = sectionData["eael_tooltip_section_position"]; + settings.animation = sectionData["eael_tooltip_section_animation"]; + settings.arrow = sectionData["eael_tooltip_section_arrow"]; + settings.duration = sectionData["eael_tooltip_section_duration"]; + settings.delay = sectionData["eael_tooltip_section_delay"]; + settings.size = sectionData["eael_tooltip_section_size"]; + settings.trigger = sectionData["eael_tooltip_section_trigger"]; + + settings.theme = sectionData["eael_tooltip_section_theme"]; + settings.distance = sectionData["eael_tooltip_section_distance"]; + settings.maxWidth = sectionData["eael_tooltip_section_width"]; + + instance.set({ + content: settings.content, + placement: settings.position, + animation: settings.animation, + arrow: settings.arrow, + duration: settings.duration, + distance: settings.distance, + delay: settings.delay, + size: settings.size, + trigger: settings.trigger, + theme: settings.theme, + maxWidth: settings.maxWidth + }); + + var tippyPopper = instance.popper; + $( tippyPopper ).attr('data-tippy-popper-id', sectionId); + } + }); + } + }); + }); + }); } - } + }; - $(window).on('elementor/frontend/init', function () { - if(elementorFrontend.isEditMode()) { + if (elementorFrontend.isEditMode()) { isEditMode = true; } - + elementorFrontend.hooks.addAction('frontend/element_ready/eael-filterable-gallery.default', filterableGalleryHandler); elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-tabs.default', AdvanceTabHandler); elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-accordion.default', AdvAccordionHandler); diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php index c91b0a480..26823aac7 100755 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -96,11 +96,13 @@ public function register_controls( $element ) { 'type' => Controls_Manager::SELECT, 'default' => 'scale', 'options' => [ - 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), - 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), - 'fade' => __( 'Fade', 'essential-addons-elementor' ), - 'scale' => __( 'Scale', 'essential-addons-elementor' ), - 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), + 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), + 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), + 'scale' => __( 'Scale', 'essential-addons-elementor' ), + 'shift-with-inertia' => __( 'Shift with inertia', 'essential-addons-elementor' ), + 'scale-with-inertia' => __( 'Scale with inertia', 'essential-addons-elementor' ), + 'fade' => __( 'Fade', 'essential-addons-elementor' ), + 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), ], 'frontend_available' => true, 'condition' => [ @@ -237,7 +239,7 @@ public function register_controls( $element ) { ], 'label_block' => false, 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'max-width: {{SIZE}}{{UNIT}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -300,7 +302,7 @@ public function register_controls( $element ) { ], ], 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'text-align: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'text-align: {{VALUE}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -315,7 +317,7 @@ public function register_controls( $element ) { 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -330,7 +332,7 @@ public function register_controls( $element ) { 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -342,7 +344,7 @@ public function register_controls( $element ) { Group_Control_Typography::get_type(), [ 'name' => 'eael_tooltip_section_typography', - 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'selector' => '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip', 'scheme' => Scheme_Typography::TYPOGRAPHY_3, 'separator' => 'after', 'condition' => [ @@ -357,9 +359,14 @@ public function register_controls( $element ) { 'label' => __( 'Background Color', 'essential-addons-elementor' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', -// 'selectors' => [ -// '#eael-section-tooltip-{{ID}}.tippy-tooltip' => 'background-color: {{VALUE}};', -// ], + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip, .tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-backdrop' => 'background-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=top] .tippy-tooltip .tippy-arrow' => 'border-top-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow' => 'border-bottom-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow' => 'border-left-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow' => 'border-right-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip.light-theme .tippy-roundarrow' => 'fill: {{VALUE}};', + ], 'condition' => [ 'eael_tooltip_section_enable!' => '', ], @@ -372,7 +379,7 @@ public function register_controls( $element ) { 'label' => __( 'Color', 'essential-addons-elementor' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ - '.ee-tooltip.ee-tooltip-{{ID}}' => 'color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'color: {{VALUE}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -384,7 +391,7 @@ public function register_controls( $element ) { Group_Control_Box_Shadow::get_type(), [ 'name' => 'eael_tooltip_section_box_shadow', - 'selector' => '.ee-tooltip.ee-tooltip-{{ID}}', + 'selector' => '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip', 'separator' => '', ] ); @@ -401,8 +408,6 @@ public function before_render( $element ) { $settings = $element->get_settings_for_display(); -// echo '
', print_r($settings), '
'; - if ( $element->get_settings( 'eael_tooltip_section_enable' ) == 'yes' ) { $element->add_render_attribute( '_wrapper', [ @@ -679,18 +684,18 @@ public function after_render( $element ) { ?> - - - - - - - - - - - - + + + + + + + + + + + + Date: Sun, 3 Mar 2019 16:21:55 +0600 Subject: [PATCH 06/19] Update EA Tooltip styles tab settings --- assets/js/eael-scripts.js | 4 - .../eael-tooltip-section.php | 459 ++++-------------- 2 files changed, 99 insertions(+), 364 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 8aede6bf6..75dca11c1 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -882,7 +882,6 @@ settings.size = sectionData["eael_tooltip_section_size"]; settings.trigger = sectionData["eael_tooltip_section_trigger"]; - settings.theme = sectionData["eael_tooltip_section_theme"]; settings.distance = sectionData["eael_tooltip_section_distance"]; settings.maxWidth = sectionData["eael_tooltip_section_width"]; @@ -917,7 +916,6 @@ size: settings.size, trigger: settings.trigger, animateFill: false, - theme: settings.theme, flipOnUpdate: true, interactive: true, maxWidth: settings.maxWidth, @@ -936,7 +934,6 @@ settings.size = sectionData["eael_tooltip_section_size"]; settings.trigger = sectionData["eael_tooltip_section_trigger"]; - settings.theme = sectionData["eael_tooltip_section_theme"]; settings.distance = sectionData["eael_tooltip_section_distance"]; settings.maxWidth = sectionData["eael_tooltip_section_width"]; @@ -950,7 +947,6 @@ delay: settings.delay, size: settings.size, trigger: settings.trigger, - theme: settings.theme, maxWidth: settings.maxWidth }); diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php index 26823aac7..1a8394b39 100755 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -21,7 +21,7 @@ public function __construct() { add_action( 'elementor/element/common/_section_style/after_section_end', [ $this, 'register_controls' ], 10 ); add_action( 'elementor/widget/before_render_content', array( $this, 'before_render' ) ); - add_action( 'elementor/widget/before_render_content',array( $this,'after_render') ); + add_action( 'elementor/widget/before_render_content', array( $this, 'after_render' ) ); } @@ -96,13 +96,11 @@ public function register_controls( $element ) { 'type' => Controls_Manager::SELECT, 'default' => 'scale', 'options' => [ - 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), - 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), - 'scale' => __( 'Scale', 'essential-addons-elementor' ), - 'shift-with-inertia' => __( 'Shift with inertia', 'essential-addons-elementor' ), - 'scale-with-inertia' => __( 'Scale with inertia', 'essential-addons-elementor' ), - 'fade' => __( 'Fade', 'essential-addons-elementor' ), - 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), + 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), + 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), + 'scale' => __( 'Scale', 'essential-addons-elementor' ), + 'fade' => __( 'Fade', 'essential-addons-elementor' ), + 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), ], 'frontend_available' => true, 'condition' => [ @@ -118,10 +116,8 @@ public function register_controls( $element ) { 'type' => Controls_Manager::SELECT, 'default' => 'mouseenter', 'options' => [ - 'mouseenter' => __( 'Mouseenter', 'essential-addons-elementor' ), 'click' => __( 'Click', 'essential-addons-elementor' ), - 'focus' => __( 'Focus', 'essential-addons-elementor' ), - 'manual' => __( 'Manual', 'essential-addons-elementor' ), + 'mouseenter' => __( 'Hover', 'essential-addons-elementor' ), ], 'frontend_available' => true, 'condition' => [ @@ -172,7 +168,7 @@ public function register_controls( $element ) { 'min' => 100, 'max' => 1000, 'step' => 10, - 'default' => 100, + 'default' => 300, 'frontend_available' => true, 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -188,25 +184,7 @@ public function register_controls( $element ) { 'min' => 100, 'max' => 1000, 'step' => 5, - 'default' => 100, - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_disable', - [ - 'label' => __( 'Disable On', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => '', - 'options' => [ - '' => __( 'None', 'essential-addons-elementor' ), - 'tablet' => __( 'Tablet & Mobile', 'essential-addons-elementor' ), - 'mobile' => __( 'Mobile', 'essential-addons-elementor' ), - ], + 'default' => 400, 'frontend_available' => true, 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -223,30 +201,6 @@ public function register_controls( $element ) { ], ] ); - $element->add_control( - 'eael_tooltip_section_width', - [ - 'label' => __( 'Max Width', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'default' => [ - 'size' => '', - ], - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 500, - ], - ], - 'label_block' => false, - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - $element->add_control( 'eael_tooltip_section_distance', [ @@ -264,47 +218,24 @@ public function register_controls( $element ) { ); $element->add_control( - 'eael_tooltip_section_theme', + 'eael_tooltip_section_width', [ - 'label' => __( 'Theme', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'dark', - 'options' => [ - 'dark' => __( 'Dark', 'essential-addons-elementor' ), - 'light' => __( 'Light', 'essential-addons-elementor' ), - 'light-border' => __( 'Light Border', 'essential-addons-elementor' ), - 'google' => __( 'Google', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', + 'label' => __( 'Max Width', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'default' => [ + 'size' => '350', ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_align', - [ - 'label' => __( 'Text Align', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - 'left' => [ - 'title' => __( 'Left', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-left', - ], - 'center' => [ - 'title' => __( 'Center', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-center', - ], - 'right' => [ - 'title' => __( 'Right', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-right', + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 500, ], ], - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'text-align: {{VALUE}};', + 'label_block' => false, + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', ], - 'condition' => [ + 'condition' => [ 'eael_tooltip_section_enable!' => '', ], ] @@ -358,14 +289,14 @@ public function register_controls( $element ) { [ 'label' => __( 'Background Color', 'essential-addons-elementor' ), 'type' => Controls_Manager::COLOR, - 'default' => '#ffffff', + 'default' => '#000000', 'selectors' => [ '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip, .tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-backdrop' => 'background-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=top] .tippy-tooltip .tippy-arrow' => 'border-top-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow' => 'border-bottom-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow' => 'border-left-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow' => 'border-right-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip.light-theme .tippy-roundarrow' => 'fill: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-roundarrow' => 'fill: {{VALUE}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -378,6 +309,7 @@ public function register_controls( $element ) { [ 'label' => __( 'Color', 'essential-addons-elementor' ), 'type' => Controls_Manager::COLOR, + 'default' => '#ffffff', 'selectors' => [ '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'color: {{VALUE}};', ], @@ -387,6 +319,25 @@ public function register_controls( $element ) { ] ); + $element->add_control( + 'eael_tooltip_section_border_color', + [ + 'label' => __( 'Border Color', 'essential-addons-elementor' ), + 'type' => Controls_Manager::COLOR, + 'default' => '', + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border: 1px solid {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=top] .tippy-tooltip .tippy-arrow:after' => 'border-top-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow:after' => 'border-bottom-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow:after' => 'border-left-color: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow:after' => 'border-right-color: {{VALUE}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + $element->add_group_control( Group_Control_Box_Shadow::get_type(), [ @@ -413,291 +364,79 @@ public function before_render( $element ) { $element->add_render_attribute( '_wrapper', [ 'id' => 'eael-section-tooltip-' . $element->get_id(), 'class' => 'eael-section-tooltip', - 'data-tippy' => $settings['eael_tooltip_section_content'], - 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], - 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], - 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], - 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], - 'data-tippy-size' => $settings['eael_tooltip_section_size'], - 'data-tippy-placement' => $settings['eael_tooltip_section_position'], - 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], - - 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], - 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], +// 'data-tippy' => $settings['eael_tooltip_section_content'], +// 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], +// 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], +// 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], +// 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], +// 'data-tippy-size' => $settings['eael_tooltip_section_size'], +// 'data-tippy-placement' => $settings['eael_tooltip_section_position'], +// 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], +// +// 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], +// 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], ] ); + } - $bg_color = $settings['eael_tooltip_section_background_color']; - - if ( $settings['eael_tooltip_section_theme'] == 'light' ) { ?> - - - - - + - get_data(); - $settings = $element->get_settings_for_display(); -// $data = $settings['eael_tooltip_section_content']; - -// echo '
', var_dump(), '
'; - - ?> - - - - - - - - - - - - - - - Date: Mon, 4 Mar 2019 09:29:25 +0600 Subject: [PATCH 07/19] structure changed --- essential_adons_elementor.php | 587 +++++++++++++------------------- includes/class-eae-elements.php | 143 ++++++++ includes/class-eae-scripts.php | 197 +++++++++++ includes/elementor-helper.php | 3 + 4 files changed, 573 insertions(+), 357 deletions(-) create mode 100644 includes/class-eae-elements.php create mode 100644 includes/class-eae-scripts.php diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index dc9658eed..a88bd296d 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -13,325 +13,221 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly -define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) ); -define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) ); -define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ ); -define( 'ESSENTIAL_ADDONS_VERSION', '2.9.7' ); -define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.7' ); -define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) ); +if( ! class_exists( 'Essential_Addons_EL') ) { + class Essential_Addons_EL { + + /** + * Instance of this class + * + * @access protected + */ + protected static $_instance = null; + + /** + * Get instance of this class + * + * @return Essential_Addons_EL + */ + public static function get_instance() { + if ( is_null( self::$_instance ) ) { + self::$_instance = new self(); + } + + return self::$_instance; + } + /** + * Constract of this class + */ + public function __construct() { -require_once ESSENTIAL_ADDONS_EL_PATH.'includes/elementor-helper.php'; -require_once ESSENTIAL_ADDONS_EL_PATH.'includes/queries.php'; -require_once ESSENTIAL_ADDONS_EL_PATH.'includes/class-plugin-usage-tracker.php'; -require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php'; -require_once ESSENTIAL_ADDONS_EL_PATH.'includes/extensions.php'; + $this->define_constants(); + $this->inclulde_files(); -/** - * This function will return true for all activated modules - * - * @since v2.4.1 - */ -function eael_activated_modules() { + add_action( 'elementor/controls/controls_registered', array($this, 'eae_posts_register_control') ); + $this->add_eael_extensions(); - $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ]; - - $eael_default_settings = array_fill_keys( $eael_default_keys, true ); - $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); - $eael_new_settings = array_diff_key( $eael_default_settings, $eael_get_settings ); + $plugin = plugin_basename( __FILE__ ); + add_filter( "plugin_action_links_$plugin", array($this, 'eael_add_settings_link') ); + add_action('admin_init', array($this, 'eael_redirect')); + add_action( 'admin_footer-plugins.php', array($this, 'plugins_footer_for_pro') ); - if( ! empty( $eael_new_settings ) ) { - $eael_updated_settings = array_merge( $eael_get_settings, $eael_new_settings ); - update_option( 'eael_save_settings', $eael_updated_settings ); - } - - return $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); + if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) { + require_once dirname( __FILE__ ) . '/includes/class-plugin-usage-tracker.php'; + } + $this->essential_addons_elementor_lite_start_plugin_tracking(); -} + add_filter('plugin_action_links_essential-addons-elementor/essential_adons_elementor.php', array($this, 'eae_pro_filter_action_links')); + if( ! did_action( 'elementor/loaded' ) ) { + add_action( 'admin_notices', array($this, 'eael_is_failed_to_load') ); + } -/** - * Load acivate or deactivate Modules - * - * @since v1.0.0 - */ -function add_eael_extensions() { - $is_component_active = eael_activated_modules(); + if ( class_exists( 'Caldera_Forms' ) ) { + add_filter( 'caldera_forms_force_enqueue_styles_early', '__return_true' ); + } - if( $is_component_active['section-particles'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; - } -} -add_eael_extensions(); + add_action( 'elementor/editor/before_enqueue_scripts', array($this, 'eae_before_enqueue_scripts')); -/** - * Acivate or Deactivate Modules - * - * @since v1.0.0 - */ -function add_eael_elements() { + } - $is_component_active = eael_activated_modules(); + /** + * Defining constances + * + * @access public + */ + public function define_constants() { + define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) ); + define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) ); + define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ ); + define( 'ESSENTIAL_ADDONS_VERSION', '2.9.7' ); + define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.7' ); + define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) ); + } - // load elements - if( $is_component_active['post-grid'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/post-grid/post-grid.php'; - } - if( $is_component_active['post-timeline'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/post-timeline/post-timeline.php'; - } - if( $is_component_active['fancy-text'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/fancy-text/fancy-text.php'; - } - if( $is_component_active['creative-btn'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/creative-button/creative-button.php'; - } - if( $is_component_active['count-down'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/countdown/countdown.php'; - } - if( $is_component_active['team-members'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/team-members/team-members.php'; - } - if( $is_component_active['testimonials'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/testimonials/testimonials.php'; - } + public function include_path( $file ) { + $file = ltrim( $file, '/' ); + + return ESSENTIAL_ADDONS_EL_PATH.'includes/' . $file; + } - if ( function_exists( 'WC' ) && $is_component_active['product-grid'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/product-grid/product-grid.php'; - } + public function inclulde_files() { - if ( function_exists( 'wpcf7' ) && $is_component_active['contact-form-7'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/contact-form-7/contact-form-7.php'; - } + require_once $this->include_path('elementor-helper.php'); + require_once $this->include_path('class-eae-scripts.php'); + require_once $this->include_path('queries.php'); + require_once $this->include_path('class-eae-elements.php'); + require_once $this->include_path('class-plugin-usage-tracker.php'); + require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php'; + require_once $this->include_path('extensions.php'); + require_once dirname( __FILE__ ) . '/includes/class-wpdev-notices.php'; + } - if ( function_exists( 'WeForms' ) && $is_component_active['weforms'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/weforms/weforms.php'; - } + /** + * This function will return true for all activated modules + * + * @since v2.4.1 + */ + public static function eael_activated_modules() { + + $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ]; + + $eael_default_settings = array_fill_keys( $eael_default_keys, true ); + $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); + $eael_new_settings = array_diff_key( $eael_default_settings, $eael_get_settings ); + + if( ! empty( $eael_new_settings ) ) { + $eael_updated_settings = array_merge( $eael_get_settings, $eael_new_settings ); + update_option( 'eael_save_settings', $eael_updated_settings ); + } - if( $is_component_active['info-box'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/infobox/infobox.php'; - } + return $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); - if( $is_component_active['flip-box'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/flipbox/flipbox.php'; - } + } - if( $is_component_active['call-to-action'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/call-to-action/call-to-action.php'; - } + - if( $is_component_active['dual-header'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/dual-color-header/dual-color-header.php'; - } - if( $is_component_active['price-table'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/pricing-table/pricing-table.php'; - } - if( function_exists( 'Ninja_Forms' ) && $is_component_active['ninja-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/ninja-form/ninja-form.php'; - } - if( class_exists( 'GFForms' ) && $is_component_active['gravity-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/gravity-form/gravity-form.php'; - } - if( class_exists( 'Caldera_Forms' ) && $is_component_active['caldera-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/caldera-forms/caldera-forms.php'; - } - if( class_exists( '\WPForms\WPForms' ) && $is_component_active['wpforms'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/wpforms/wpforms.php'; - } - if( $is_component_active['twitter-feed'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php'; - } + /** + * Load acivate or deactivate Modules + * + * @since v1.0.0 + */ + public function add_eael_extensions() { + $is_component_active = $this->eael_activated_modules(); - if( $is_component_active['data-table'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/data-table/data-table.php'; - } - if( $is_component_active['filter-gallery'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/filterable-gallery/filterable-gallery.php'; - } - if( $is_component_active['image-accordion'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/image-accordion/image-accordion.php'; - } - if( $is_component_active['content-ticker'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/content-ticker/content-ticker.php'; - } - if( $is_component_active['tooltip'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/tooltip/tooltip.php'; - } - if( $is_component_active['adv-accordion'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/advance-accordion/advance-accordion.php'; - } - if( $is_component_active['adv-tabs'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/advance-tabs/advance-tabs.php'; - } - if( $is_component_active['progress-bar'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/progress-bar/progress-bar.php'; - } - if( $is_component_active['feature-list'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/feature-list/feature-list.php'; - } -} -add_action('elementor/widgets/widgets_registered','add_eael_elements'); + if( $is_component_active['section-particles'] ) { + require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; + } + } -/** - * Registering a Group Control for All Posts Element - */ -function eae_posts_register_control( $controls_manager ){ - include_once ESSENTIAL_ADDONS_EL_PATH . 'includes/eae-posts-group-control.php'; - $controls_manager->add_group_control( 'eaeposts', new Elementor\EAE_Posts_Group_Control() ); -} + /** + * Registering a Group Control for All Posts Element + */ + public function eae_posts_register_control( $controls_manager ){ + include_once ESSENTIAL_ADDONS_EL_PATH . 'includes/eae-posts-group-control.php'; + $controls_manager->add_group_control( 'eaeposts', new Elementor\EAE_Posts_Group_Control() ); + } -add_action( 'elementor/controls/controls_registered', 'eae_posts_register_control' ); + /** + * Creates an Action Menu + */ + public function eael_add_settings_link( $links ) { + $settings_link = sprintf( '' . __( 'Settings' ) . '' ); + $go_pro_link = sprintf( '' . __( 'Go Pro' ) . '' ); + array_push( $links, $settings_link, $go_pro_link ); + return $links; + } -/** - * Load module's scripts and styles if any module is active. - * - * @since v1.0.0 - */ -function essential_addons_el_enqueue(){ - $is_component_active = eael_activated_modules(); - wp_enqueue_style('essential_addons_elementor-css',ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-elementor.css'); - wp_enqueue_script('eael-scripts',ESSENTIAL_ADDONS_EL_URL.'assets/js/eael-scripts.js', array('jquery'),'1.0', true); - if ( class_exists( 'GFCommon' ) ) { - foreach( eael_select_gravity_form() as $form_id => $form_name ){ - if ( $form_id != '0' ) { - gravity_form_enqueue_scripts( $form_id ); + /** + * Redirect to options page + * + * @since v1.0.0 + */ + public function eael_redirect() { + if (get_option('eael_do_activation_redirect', false)) { + delete_option('eael_do_activation_redirect'); + if(!isset($_GET['activate-multi'])) + { + wp_redirect("admin.php?page=eael-settings"); } - }; - } - if ( function_exists( 'wpforms' ) ) { - wpforms()->frontend->assets_css(); - } - if( $is_component_active['fancy-text'] ) { - wp_enqueue_script('essential_addons_elementor-fancy-text-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/fancy-text.js', array('jquery'),'1.0', true); - } - if( $is_component_active['count-down'] ) { - wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true); - } - if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] ) { - wp_enqueue_script('essential_addons_elementor-masonry-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', array('jquery'),'1.0', true); - } - if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) { - wp_enqueue_script('essential_addons_elementor-load-more-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/load-more.js', array('jquery'),'1.0', true); - $eael_js_settings = array( - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - ); - wp_localize_script( 'essential_addons_elementor-load-more-js', 'eaelPostGrid', $eael_js_settings ); - } - if( $is_component_active['twitter-feed']) { - wp_enqueue_script('essential_addons_elementor-codebird-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', array('jquery'),'1.0', true); - } - if( $is_component_active['twitter-feed'] ) { - wp_enqueue_script('essential_addons_elementor-doT-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', array('jquery'),'1.0', true); - wp_enqueue_script('essential_addons_elementor-moment-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', array('jquery'),'1.0', true); - wp_enqueue_script('essential_addons_elementor-socialfeed-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', array('jquery'),'1.0', true); - } - - if( $is_component_active['filter-gallery'] ) { - wp_enqueue_script('essential_addons_mixitup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/mixitup.min.js', array('jquery'),'1.0', true); - wp_enqueue_script('essential_addons_magnific-popup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.magnific-popup.min.js', array('jquery'),'1.0', true); - - wp_register_script('essential_addons_isotope-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/isotope.pkgd.min.js', array('jquery'),'1.0', true); - - wp_register_script('jquery-resize', ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.resize.min.js', array('jquery'), '1.0', true); - } - - if( $is_component_active['price-table'] ) { - wp_enqueue_style('essential_addons_elementor-tooltipster',ESSENTIAL_ADDONS_EL_URL.'assets/css/tooltipster.bundle.min.css'); - wp_enqueue_script('essential_addons_elementor-tooltipster-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/tooltipster.bundle.min.js', array('jquery'),'1.0', true); - } - - if( $is_component_active['progress-bar'] ) { - wp_enqueue_script('essential_addons_elementor-progress-bar',ESSENTIAL_ADDONS_EL_URL.'assets/js/progress-bar.js', array('jquery'),'1.0', true); - } - if( $is_component_active['section-particles'] ) { - wp_enqueue_script( - 'particles-js', ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js', - ['jquery'], '1.0', true - ); - - $preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php'; - wp_localize_script( 'particles-js', 'ParticleThemesData', $preset_themes ); - } - -} -add_action( 'wp_enqueue_scripts', 'essential_addons_el_enqueue' ); - -/** - * Editor Css - */ -add_action( 'elementor/editor/before_enqueue_scripts', function() { - wp_register_style( 'essential_addons_elementor_editor-css', ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-editor.css'); - wp_enqueue_style( 'essential_addons_elementor_editor-css' ); -} ); - -/** - * Creates an Action Menu - */ -function eael_add_settings_link( $links ) { - $settings_link = sprintf( '' . __( 'Settings' ) . '' ); - $go_pro_link = sprintf( '' . __( 'Go Pro' ) . '' ); - array_push( $links, $settings_link, $go_pro_link ); - return $links; -} -$plugin = plugin_basename( __FILE__ ); -add_filter( "plugin_action_links_$plugin", 'eael_add_settings_link' ); - -/** - * Activation redirects - * - * @since v1.0.0 - */ -function eael_activate() { - add_option('eael_do_activation_redirect', true); -} -register_activation_hook(__FILE__, 'eael_activate'); + } + } -/** - * Redirect to options page - * - * @since v1.0.0 - */ -function eael_redirect() { - if (get_option('eael_do_activation_redirect', false)) { - delete_option('eael_do_activation_redirect'); - if(!isset($_GET['activate-multi'])) - { - wp_redirect("admin.php?page=eael-settings"); - } - } -} -add_action('admin_init', 'eael_redirect'); + public function plugins_footer_for_pro(){ + ?> + + Essential Addons for Elementor requires Elementor plugin to be active. Please activate Elementor to continue.', 'essential-addons-elementor' ); - $button_text = __( 'Activate Elementor', 'essential-addons-elementor' ); - } else { - if( ! current_user_can( 'activate_plugins' ) ) { - return; + + + /** + * This notice will appear if Elementor is not installed or activated or both + */ + public function eael_is_failed_to_load() { + $elementor = 'elementor/elementor.php'; + if( $this->eael_is_elementor_active() ) { + if( ! current_user_can( 'activate_plugins' ) ) { + return; + } + $activation_url = wp_nonce_url( 'plugins.php?action=activate&plugin=' . $elementor . '&plugin_status=all&paged=1&s', 'activate-plugin_' . $elementor ); + $message = __( 'Essential Addons for Elementor requires Elementor plugin to be active. Please activate Elementor to continue.', 'essential-addons-elementor' ); + $button_text = __( 'Activate Elementor', 'essential-addons-elementor' ); + } else { + if( ! current_user_can( 'activate_plugins' ) ) { + return; + } + $activation_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' ); + $message = sprintf( __( 'Essential Addons for Elementor requires Elementor plugin to be installed and activated. Please install Elementor to continue.', 'essential-addons-elementor' ), '', '' ); + $button_text = __( 'Install Elementor', 'essential-addons-elementor' ); } - $activation_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' ); - $message = sprintf( __( 'Essential Addons for Elementor requires Elementor plugin to be installed and activated. Please install Elementor to continue.', 'essential-addons-elementor' ), '', '' ); - $button_text = __( 'Install Elementor', 'essential-addons-elementor' ); + $button = '

' . $button_text . '

'; + printf( '

%1$s

%2$s
', __( $message ), $button ); + } + + public function eae_before_enqueue_scripts() { + wp_register_style( 'essential_addons_elementor_editor-css', ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-editor.css'); + wp_enqueue_style( 'essential_addons_elementor_editor-css' ); } - $button = '

' . $button_text . '

'; - printf( '

%1$s

%2$s
', __( $message ), $button ); + + } - if( ! did_action( 'elementor/loaded' ) ) { - add_action( 'admin_notices', 'eael_is_failed_to_load' ); + function run_essential_addons() { + return Essential_Addons_EL::get_instance(); } + add_action( 'plugins_loaded', 'run_essential_addons', 25 ); + } -add_action( 'plugins_loaded', 'eael_init' ); -require_once dirname( __FILE__ ) . '/includes/class-wpdev-notices.php'; + /** - * EAE Pro Activation + * Activation redirects + * + * @since v1.0.0 */ -if( ! function_exists( 'eae_pro_filter_action_links' ) ) : - add_filter('plugin_action_links_essential-addons-elementor/essential_adons_elementor.php', 'eae_pro_filter_action_links'); - function eae_pro_filter_action_links( $links ) { - if( ! function_exists( 'get_plugins' ) ) { - include ABSPATH . '/wp-admin/includes/plugin.php'; - } - $activate_plugins = get_option( 'active_plugins' ); - if( in_array( plugin_basename( __FILE__ ), $activate_plugins ) ) { - $pro_plugin_base_name = 'essential-addons-elementor/essential_adons_elementor.php'; - if( isset( $links['activate'] ) ) { - $activate_link = $links['activate']; - // Insert an onClick action to allow form before deactivating - $activation_link = str_replace( ' - - $form_name ){ + if ( $form_id != '0' ) { + gravity_form_enqueue_scripts( $form_id ); + } + }; + } + + if ( function_exists( 'wpforms' ) ) { + wpforms()->frontend->assets_css(); + } + + if( $is_component_active['fancy-text'] ) { + wp_enqueue_script( + 'essential_addons_elementor-fancy-text-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/fancy-text.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['count-down'] ) { + wp_enqueue_script( + 'essential_addons_elementor-countdown-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] ) { + wp_enqueue_script( + 'essential_addons_elementor-masonry-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) { + wp_enqueue_script( + 'essential_addons_elementor-load-more-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/load-more.js', + array('jquery'),'1.0', true + ); + + $eael_js_settings = array( + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + ); + + wp_localize_script( + 'essential_addons_elementor-load-more-js', + 'eaelPostGrid', $eael_js_settings + ); + } + + if( $is_component_active['twitter-feed']) { + wp_enqueue_script( + 'essential_addons_elementor-codebird-js', + ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['twitter-feed'] ) { + wp_enqueue_script( + 'essential_addons_elementor-doT-js', + ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', + array('jquery'),'1.0', true + ); + + wp_enqueue_script( + 'essential_addons_elementor-moment-js', + ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', + array('jquery'),'1.0', true + ); + + wp_enqueue_script( + 'essential_addons_elementor-socialfeed-js', + ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['filter-gallery'] ) { + wp_enqueue_script( + 'essential_addons_mixitup-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/mixitup.min.js', + array('jquery'),'1.0', true + ); + wp_enqueue_script( + 'essential_addons_magnific-popup-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.magnific-popup.min.js', + array('jquery'),'1.0', true + ); + + wp_register_script( + 'essential_addons_isotope-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/isotope.pkgd.min.js', + array('jquery'),'1.0', true + ); + + wp_register_script( + 'jquery-resize', + ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.resize.min.js', + array('jquery'), '1.0', true + ); + } + + if( $is_component_active['price-table'] ) { + wp_enqueue_style( + 'essential_addons_elementor-tooltipster', + ESSENTIAL_ADDONS_EL_URL.'assets/css/tooltipster.bundle.min.css' + ); + wp_enqueue_script( + 'essential_addons_elementor-tooltipster-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/tooltipster.bundle.min.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['progress-bar'] ) { + wp_enqueue_script( + 'essential_addons_elementor-progress-bar', + ESSENTIAL_ADDONS_EL_URL.'assets/js/progress-bar.js', + array('jquery'),'1.0', true + ); + } + + if( $is_component_active['section-particles'] ) { + wp_enqueue_script( + 'particles-js', + ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js', + ['jquery'], '1.0', true + ); + + $preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php'; + wp_localize_script( + 'particles-js', + 'ParticleThemesData', + $preset_themes + ); + } + + } + } + +} + +Essential_Addons_Scripts::get_instance(); \ No newline at end of file diff --git a/includes/elementor-helper.php b/includes/elementor-helper.php index 8ca9387f2..ff089e956 100755 --- a/includes/elementor-helper.php +++ b/includes/elementor-helper.php @@ -1,7 +1,10 @@ elements_manager->add_category( 'essential-addons-elementor', From 1b4406d4bddddc65034831e70b541a2f6fd63903 Mon Sep 17 00:00:00 2001 From: Mahfuz Date: Mon, 4 Mar 2019 15:14:03 +0600 Subject: [PATCH 08/19] requiring elements in new way --- .../adv-accordion.php} | 0 .../adv-tabs.php} | 0 .../caldera-form.php} | 0 .../count-down.php} | 0 .../creative-btn.php} | 0 .../dual-header.php} | 0 .../filter-gallery.php} | 0 .../flipbox.php => flip-box/flip-box.php} | 0 .../infobox.php => info-box/info-box.php} | 0 .../price-table.php} | 0 includes/class-eae-elements.php | 191 +++++++++--------- 11 files changed, 95 insertions(+), 96 deletions(-) rename elements/{advance-accordion/advance-accordion.php => adv-accordion/adv-accordion.php} (100%) rename elements/{advance-tabs/advance-tabs.php => adv-tabs/adv-tabs.php} (100%) rename elements/{caldera-forms/caldera-forms.php => caldera-form/caldera-form.php} (100%) rename elements/{countdown/countdown.php => count-down/count-down.php} (100%) rename elements/{creative-button/creative-button.php => creative-btn/creative-btn.php} (100%) rename elements/{dual-color-header/dual-color-header.php => dual-header/dual-header.php} (100%) rename elements/{filterable-gallery/filterable-gallery.php => filter-gallery/filter-gallery.php} (100%) rename elements/{flipbox/flipbox.php => flip-box/flip-box.php} (100%) rename elements/{infobox/infobox.php => info-box/info-box.php} (100%) rename elements/{pricing-table/pricing-table.php => price-table/price-table.php} (100%) diff --git a/elements/advance-accordion/advance-accordion.php b/elements/adv-accordion/adv-accordion.php similarity index 100% rename from elements/advance-accordion/advance-accordion.php rename to elements/adv-accordion/adv-accordion.php diff --git a/elements/advance-tabs/advance-tabs.php b/elements/adv-tabs/adv-tabs.php similarity index 100% rename from elements/advance-tabs/advance-tabs.php rename to elements/adv-tabs/adv-tabs.php diff --git a/elements/caldera-forms/caldera-forms.php b/elements/caldera-form/caldera-form.php similarity index 100% rename from elements/caldera-forms/caldera-forms.php rename to elements/caldera-form/caldera-form.php diff --git a/elements/countdown/countdown.php b/elements/count-down/count-down.php similarity index 100% rename from elements/countdown/countdown.php rename to elements/count-down/count-down.php diff --git a/elements/creative-button/creative-button.php b/elements/creative-btn/creative-btn.php similarity index 100% rename from elements/creative-button/creative-button.php rename to elements/creative-btn/creative-btn.php diff --git a/elements/dual-color-header/dual-color-header.php b/elements/dual-header/dual-header.php similarity index 100% rename from elements/dual-color-header/dual-color-header.php rename to elements/dual-header/dual-header.php diff --git a/elements/filterable-gallery/filterable-gallery.php b/elements/filter-gallery/filter-gallery.php similarity index 100% rename from elements/filterable-gallery/filterable-gallery.php rename to elements/filter-gallery/filter-gallery.php diff --git a/elements/flipbox/flipbox.php b/elements/flip-box/flip-box.php similarity index 100% rename from elements/flipbox/flipbox.php rename to elements/flip-box/flip-box.php diff --git a/elements/infobox/infobox.php b/elements/info-box/info-box.php similarity index 100% rename from elements/infobox/infobox.php rename to elements/info-box/info-box.php diff --git a/elements/pricing-table/pricing-table.php b/elements/price-table/price-table.php similarity index 100% rename from elements/pricing-table/pricing-table.php rename to elements/price-table/price-table.php diff --git a/includes/class-eae-elements.php b/includes/class-eae-elements.php index 9522e1025..5dbd24d39 100644 --- a/includes/class-eae-elements.php +++ b/includes/class-eae-elements.php @@ -29,6 +29,15 @@ public function __construct() { add_action('elementor/widgets/widgets_registered', array($this, 'add_eael_elements')); } + public function elements_path( $file ) { + $file = ltrim( $file, '/' ); + $file = ESSENTIAL_ADDONS_EL_PATH.'elements/'.$file.'/'.$file.'.php'; + if(file_exists($file)) { + return $file; + } + return false; + } + /** * Acivate or Deactivate Modules * @@ -36,103 +45,93 @@ public function __construct() { */ function add_eael_elements() { - $is_component_active = Essential_Addons_EL::eael_activated_modules(); - - // load elements - if( $is_component_active['post-grid'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/post-grid/post-grid.php'; - } - if( $is_component_active['post-timeline'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/post-timeline/post-timeline.php'; - } - if( $is_component_active['fancy-text'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/fancy-text/fancy-text.php'; - } - if( $is_component_active['creative-btn'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/creative-button/creative-button.php'; - } - if( $is_component_active['count-down'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/countdown/countdown.php'; - } - if( $is_component_active['team-members'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/team-members/team-members.php'; - } - if( $is_component_active['testimonials'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/testimonials/testimonials.php'; - } - - if ( function_exists( 'WC' ) && $is_component_active['product-grid'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/product-grid/product-grid.php'; - } - - if ( function_exists( 'wpcf7' ) && $is_component_active['contact-form-7'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/contact-form-7/contact-form-7.php'; - } - - if ( function_exists( 'WeForms' ) && $is_component_active['weforms'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/weforms/weforms.php'; - } - - if( $is_component_active['info-box'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/infobox/infobox.php'; - } - - if( $is_component_active['flip-box'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/flipbox/flipbox.php'; - } - - if( $is_component_active['call-to-action'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/call-to-action/call-to-action.php'; - } - - if( $is_component_active['dual-header'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/dual-color-header/dual-color-header.php'; - } - if( $is_component_active['price-table'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/pricing-table/pricing-table.php'; - } - if( function_exists( 'Ninja_Forms' ) && $is_component_active['ninja-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/ninja-form/ninja-form.php'; - } - if( class_exists( 'GFForms' ) && $is_component_active['gravity-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/gravity-form/gravity-form.php'; - } - if( class_exists( 'Caldera_Forms' ) && $is_component_active['caldera-form'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/caldera-forms/caldera-forms.php'; - } - if( class_exists( '\WPForms\WPForms' ) && $is_component_active['wpforms'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/wpforms/wpforms.php'; - } - if( $is_component_active['twitter-feed'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php'; - } + $elements = [ + [ 'name' => 'post-grid' ], + [ 'name' => 'post-timeline' ], + [ 'name' => 'fancy-text' ], + [ 'name' => 'creative-btn' ], + [ 'name' => 'count-down' ], + [ 'name' => 'team-members' ], + [ 'name' => 'testimonials' ], + [ 'name' => 'info-box' ], + [ 'name' => 'flip-box' ], + [ 'name' => 'call-to-action' ], + [ 'name' => 'dual-header' ], + [ 'name' => 'price-table' ], + [ 'name' => 'twitter-feed' ], + [ 'name' => 'data-table' ], + [ 'name' => 'filter-gallery' ], + [ 'name' => 'image-accordion' ], + [ 'name' => 'content-ticker' ], + [ 'name' => 'tooltip' ], + [ 'name' => 'adv-accordion' ], + [ 'name' => 'adv-tabs' ], + [ 'name' => 'progress-bar' ], + [ 'name' => 'feature-list' ], + [ + 'name' => 'product-grid', + 'condition' => [ + 'function_exists', + 'WC' + ] + ], + [ + 'name' => 'contact-form-7', + 'condition' => [ + 'function_exists', + 'wpcf7' + ] + ], + [ + 'name' => 'weforms', + 'condition' => [ + 'function_exists', + 'WeForms' + ] + ], + [ + 'name' => 'ninja-form', + 'condition' => [ + 'function_exists', + 'Ninja_Forms' + ] + ], + [ + 'name' => 'gravity-form', + 'condition' => [ + 'class_exists', + 'GFForms' + ] + ], + [ + 'name' => 'caldera-form', + 'condition' => [ + 'class_exists', + 'Caldera_Forms' + ] + ], + [ + 'name' => 'wpforms', + 'condition' => [ + 'class_exists', + '\WPForms\WPForms' + ] + ] + ]; - if( $is_component_active['data-table'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/data-table/data-table.php'; - } - if( $is_component_active['filter-gallery'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/filterable-gallery/filterable-gallery.php'; - } - if( $is_component_active['image-accordion'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/image-accordion/image-accordion.php'; - } - if( $is_component_active['content-ticker'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/content-ticker/content-ticker.php'; - } - if( $is_component_active['tooltip'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/tooltip/tooltip.php'; - } - if( $is_component_active['adv-accordion'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/advance-accordion/advance-accordion.php'; - } - if( $is_component_active['adv-tabs'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/advance-tabs/advance-tabs.php'; - } - if( $is_component_active['progress-bar'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/progress-bar/progress-bar.php'; - } - if( $is_component_active['feature-list'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH.'elements/feature-list/feature-list.php'; + $is_component_active = Essential_Addons_EL::eael_activated_modules(); + $ea_elements = apply_filters( 'add_eae_element', $elements ); + + foreach($ea_elements as $element) { + if( isset($element['condition']) ) { + if( ($element['condition'][0]($element['condition'][1])) && $is_component_active[$element['name']] ) { + require_once $this->elements_path($element['name']); + } + }else { + if($is_component_active[$element['name']]) { + require_once $this->elements_path($element['name']); + } + } } } From 9cf81cadda23d8ce8d8b9dad817af20ca06682a8 Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Mon, 4 Mar 2019 15:22:04 +0600 Subject: [PATCH 09/19] added arrow type settings for EA Tooltip extension --- assets/js/eael-scripts.js | 8 +- .../eael-tooltip-section.php | 257 +++++++++--------- 2 files changed, 138 insertions(+), 127 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 75dca11c1..b4c293d7a 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -870,13 +870,14 @@ $.each(widgets.models, function(ind, widget) { - if (sectionId == widget.id) { + if ( sectionId == widget.id ) { sectionData = widget.attributes.settings.attributes; settings.switch = sectionData["eael_tooltip_section_enable"]; settings.content = sectionData["eael_tooltip_section_content"]; settings.position = sectionData["eael_tooltip_section_position"]; settings.animation = sectionData["eael_tooltip_section_animation"]; settings.arrow = sectionData["eael_tooltip_section_arrow"]; + settings.arrowType = sectionData["eael_tooltip_section_arrow_type"]; settings.duration = sectionData["eael_tooltip_section_duration"]; settings.delay = sectionData["eael_tooltip_section_delay"]; settings.size = sectionData["eael_tooltip_section_size"]; @@ -885,7 +886,7 @@ settings.distance = sectionData["eael_tooltip_section_distance"]; settings.maxWidth = sectionData["eael_tooltip_section_width"]; - if (settings.switch == "yes") { + if ( settings.switch == "yes" ) { target.addClass("eael-section-tooltip"); generateTooltip(); } else { @@ -910,6 +911,7 @@ placement: settings.position, animation: settings.animation, arrow: settings.arrow, + arrowType: settings.arrowType, duration: settings.duration, distance: settings.distance, delay: settings.content, @@ -929,6 +931,7 @@ settings.position = sectionData["eael_tooltip_section_position"]; settings.animation = sectionData["eael_tooltip_section_animation"]; settings.arrow = sectionData["eael_tooltip_section_arrow"]; + settings.arrowType = sectionData["eael_tooltip_section_arrow_type"]; settings.duration = sectionData["eael_tooltip_section_duration"]; settings.delay = sectionData["eael_tooltip_section_delay"]; settings.size = sectionData["eael_tooltip_section_size"]; @@ -942,6 +945,7 @@ placement: settings.position, animation: settings.animation, arrow: settings.arrow, + arrowType: settings.arrowType, duration: settings.duration, distance: settings.distance, delay: settings.delay, diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php index 1a8394b39..b3613fdc9 100755 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ b/extensions/eael-tooltip-section/eael-tooltip-section.php @@ -110,15 +110,14 @@ public function register_controls( $element ) { ); $element->add_control( - 'eael_tooltip_section_trigger', + 'eael_tooltip_section_arrow', [ - 'label' => __( 'Trigger', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'mouseenter', - 'options' => [ - 'click' => __( 'Click', 'essential-addons-elementor' ), - 'mouseenter' => __( 'Hover', 'essential-addons-elementor' ), - ], + 'label' => __( 'Arrow', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SWITCHER, + 'label_on' => __( 'Show', 'essential-addons-elementor' ), + 'label_off' => __( 'Hide', 'essential-addons-elementor' ), + 'return_value' => true, + 'default' => true, 'frontend_available' => true, 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -127,32 +126,33 @@ public function register_controls( $element ) { ); $element->add_control( - 'eael_tooltip_section_size', + 'eael_tooltip_section_arrow_type', [ - 'label' => __( 'Size', 'essential-addons-elementor' ), + 'label' => __( 'Arrow Type', 'essential-addons-elementor' ), 'type' => Controls_Manager::SELECT, - 'default' => 'regular', + 'default' => 'sharp', 'options' => [ - 'small' => __( 'Small', 'essential-addons-elementor' ), - 'regular' => __( 'Regular', 'essential-addons-elementor' ), - 'large' => __( 'Large', 'essential-addons-elementor' ), + 'sharp' => __( 'Sharp', 'essential-addons-elementor' ), + 'round' => __( 'Round', 'essential-addons-elementor' ), ], 'frontend_available' => true, 'condition' => [ 'eael_tooltip_section_enable!' => '', + 'eael_tooltip_section_arrow!' => '', ], ] ); $element->add_control( - 'eael_tooltip_section_arrow', + 'eael_tooltip_section_trigger', [ - 'label' => __( 'Arrow', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SWITCHER, - 'label_on' => __( 'Show', 'essential-addons-elementor' ), - 'label_off' => __( 'Hide', 'essential-addons-elementor' ), - 'return_value' => true, - 'default' => true, + 'label' => __( 'Trigger', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'mouseenter', + 'options' => [ + 'click' => __( 'Click', 'essential-addons-elementor' ), + 'mouseenter' => __( 'Hover', 'essential-addons-elementor' ), + ], 'frontend_available' => true, 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -192,84 +192,32 @@ public function register_controls( $element ) { ] ); - $element->end_controls_tab(); - - $element->start_controls_tab( 'eael_tooltip_section_styles', [ - 'label' => __( 'Styles', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] ); - - $element->add_control( - 'eael_tooltip_section_distance', - [ - 'label' => __( 'Distance', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'min' => 05, - 'max' => 50, - 'step' => 2, - 'default' => 10, - 'label_block' => false, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - $element->add_control( - 'eael_tooltip_section_width', + 'eael_tooltip_section_size', [ - 'label' => __( 'Max Width', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'default' => [ - 'size' => '350', - ], - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 500, - ], - ], - 'label_block' => false, - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', + 'label' => __( 'Size', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SELECT, + 'default' => 'regular', + 'options' => [ + 'small' => __( 'Small', 'essential-addons-elementor' ), + 'regular' => __( 'Regular', 'essential-addons-elementor' ), + 'large' => __( 'Large', 'essential-addons-elementor' ), ], - 'condition' => [ + 'frontend_available' => true, + 'condition' => [ 'eael_tooltip_section_enable!' => '', ], ] ); - $element->add_control( - 'eael_tooltip_section_padding', - [ - 'label' => __( 'Padding', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', 'em', '%' ], - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); + $element->end_controls_tab(); - $element->add_control( - 'eael_tooltip_section_border_radius', - [ - 'label' => __( 'Border Radius', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', '%' ], - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); + $element->start_controls_tab( 'eael_tooltip_section_styles', [ + 'label' => __( 'Styles', 'essential-addons-elementor' ), + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] ); $element->add_group_control( Group_Control_Typography::get_type(), @@ -296,7 +244,7 @@ public function register_controls( $element ) { '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow' => 'border-bottom-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow' => 'border-left-color: {{VALUE}};', '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow' => 'border-right-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-roundarrow' => 'fill: {{VALUE}};', + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-roundarrow' => 'fill: {{VALUE}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', @@ -327,13 +275,56 @@ public function register_controls( $element ) { 'default' => '', 'selectors' => [ '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border: 1px solid {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=top] .tippy-tooltip .tippy-arrow:after' => 'border-top-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow:after' => 'border-bottom-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow:after' => 'border-left-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow:after' => 'border-right-color: {{VALUE}};', ], 'condition' => [ 'eael_tooltip_section_enable!' => '', + 'eael_tooltip_section_arrow' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_border_radius', + [ + 'label' => __( 'Border Radius', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', '%' ], + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_distance', + [ + 'label' => __( 'Distance', 'essential-addons-elementor' ), + 'type' => Controls_Manager::NUMBER, + 'min' => 05, + 'max' => 50, + 'step' => 2, + 'default' => 10, + 'label_block' => false, + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_padding', + [ + 'label' => __( 'Padding', 'essential-addons-elementor' ), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => [ 'px', 'em', '%' ], + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', ], ] ); @@ -344,6 +335,33 @@ public function register_controls( $element ) { 'name' => 'eael_tooltip_section_box_shadow', 'selector' => '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip', 'separator' => '', + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], + ] + ); + + $element->add_control( + 'eael_tooltip_section_width', + [ + 'label' => __( 'Max Width', 'essential-addons-elementor' ), + 'type' => Controls_Manager::SLIDER, + 'default' => [ + 'size' => '350', + ], + 'range' => [ + 'px' => [ + 'min' => 0, + 'max' => 500, + ], + ], + 'label_block' => false, + 'selectors' => [ + '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', + ], + 'condition' => [ + 'eael_tooltip_section_enable!' => '', + ], ] ); @@ -362,19 +380,8 @@ public function before_render( $element ) { if ( $element->get_settings( 'eael_tooltip_section_enable' ) == 'yes' ) { $element->add_render_attribute( '_wrapper', [ - 'id' => 'eael-section-tooltip-' . $element->get_id(), - 'class' => 'eael-section-tooltip', -// 'data-tippy' => $settings['eael_tooltip_section_content'], -// 'data-tippy-animation' => $settings['eael_tooltip_section_animation'], -// 'data-tippy-duration' => $settings['eael_tooltip_section_duration'], -// 'data-tippy-arrow' => $settings['eael_tooltip_section_arrow'], -// 'data-tippy-delay' => $settings['eael_tooltip_section_delay'], -// 'data-tippy-size' => $settings['eael_tooltip_section_size'], -// 'data-tippy-placement' => $settings['eael_tooltip_section_position'], -// 'data-tippy-trigger' => $settings['eael_tooltip_section_trigger'], -// -// 'data-tippy-distance' => $settings['eael_tooltip_section_distance'], -// 'data-tippy-theme' => $settings['eael_tooltip_section_theme'], + 'id' => 'eael-section-tooltip-' . $element->get_id(), + 'class' => 'eael-section-tooltip', ] ); } @@ -385,22 +392,21 @@ public function after_render( $element ) { $data = $element->get_data(); $settings = $element->get_settings_for_display(); - $content = $settings['eael_tooltip_section_content']; - $position = $settings["eael_tooltip_section_position"]; + $content = $settings['eael_tooltip_section_content']; + $position = $settings["eael_tooltip_section_position"]; $animation = $settings['eael_tooltip_section_animation']; - $duration = $settings["eael_tooltip_section_duration"]; - $distance = $settings["eael_tooltip_section_distance"]; - $delay = $settings["eael_tooltip_section_delay"]; - $arrow = $settings["eael_tooltip_section_arrow"]; - $size = $settings["eael_tooltip_section_size"]; - $trigger = $settings["eael_tooltip_section_trigger"]; - $width = $settings["eael_tooltip_section_width"]; - -// echo '
', var_dump($width), '
'; + $duration = $settings["eael_tooltip_section_duration"]; + $distance = $settings["eael_tooltip_section_distance"]; + $delay = $settings["eael_tooltip_section_delay"]; + $arrow = $settings["eael_tooltip_section_arrow"]; + $arrowType = $settings["eael_tooltip_section_arrow_type"]; + $size = $settings["eael_tooltip_section_size"]; + $trigger = $settings["eael_tooltip_section_trigger"]; + $width = $settings["eael_tooltip_section_width"]; - if( $element->get_settings('eael_tooltip_section_enable') == 'yes' ){ + if ( $settings['eael_tooltip_section_enable'] == 'yes' ) { - ?> + ?> - Date: Tue, 5 Mar 2019 14:38:45 +0600 Subject: [PATCH 10/19] Fixed tippy tooltip destroy issue --- assets/js/eael-scripts.js | 44 +++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index b4c293d7a..cb4a131d8 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -940,22 +940,34 @@ settings.distance = sectionData["eael_tooltip_section_distance"]; settings.maxWidth = sectionData["eael_tooltip_section_width"]; - instance.set({ - content: settings.content, - placement: settings.position, - animation: settings.animation, - arrow: settings.arrow, - arrowType: settings.arrowType, - duration: settings.duration, - distance: settings.distance, - delay: settings.delay, - size: settings.size, - trigger: settings.trigger, - maxWidth: settings.maxWidth - }); - - var tippyPopper = instance.popper; - $( tippyPopper ).attr('data-tippy-popper-id', sectionId); + // Get tooltip enable/disable status + settings.switch = sectionData["eael_tooltip_section_enable"]; + + // Disable tooltip + if( settings.switch !== 'yes' ) { + + instance.destroy(); + + } else { + + instance.set({ + content: settings.content, + placement: settings.position, + animation: settings.animation, + arrow: settings.arrow, + arrowType: settings.arrowType, + duration: settings.duration, + distance: settings.distance, + delay: settings.delay, + size: settings.size, + trigger: settings.trigger, + maxWidth: settings.maxWidth + }); + + var tippyPopper = instance.popper; + $( tippyPopper ).attr('data-tippy-popper-id', sectionId); + + } } }); } From 79976b2d9400a710d0188d5ff741a880d14a6445 Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Wed, 6 Mar 2019 10:57:15 +0600 Subject: [PATCH 11/19] Feature list elements added on admin settings page --- admin/partials/elements.php | 5 +++++ admin/settings.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/admin/partials/elements.php b/admin/partials/elements.php index dc3a6d458..15839ca22 100755 --- a/admin/partials/elements.php +++ b/admin/partials/elements.php @@ -149,6 +149,11 @@

+
+ eael_get_settings['feature-list'], true ); ?> > + +

+
diff --git a/admin/settings.php b/admin/settings.php index 4d3754e5e..dfd255bf7 100755 --- a/admin/settings.php +++ b/admin/settings.php @@ -14,7 +14,7 @@ class Eael_Admin_Settings { * @var array * @since 2.3.0 */ - public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'section-tooltip']; + public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'section-tooltip', 'feature-list']; /** * Will Contain All Components Default Values From 6c319252cd5f76a30a4cde3820a8913ed1a979fa Mon Sep 17 00:00:00 2001 From: Mahfuz Date: Wed, 6 Mar 2019 11:18:38 +0600 Subject: [PATCH 12/19] plugin structure improvements --- essential_adons_elementor.php | 14 ---------- includes/class-eae-extensions.php | 45 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 includes/class-eae-extensions.php diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index a88bd296d..b38d8fb41 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -45,7 +45,6 @@ public function __construct() { $this->inclulde_files(); add_action( 'elementor/controls/controls_registered', array($this, 'eae_posts_register_control') ); - $this->add_eael_extensions(); $plugin = plugin_basename( __FILE__ ); add_filter( "plugin_action_links_$plugin", array($this, 'eael_add_settings_link') ); @@ -126,19 +125,6 @@ public static function eael_activated_modules() { - /** - * Load acivate or deactivate Modules - * - * @since v1.0.0 - */ - public function add_eael_extensions() { - $is_component_active = $this->eael_activated_modules(); - - if( $is_component_active['section-particles'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; - } - } - /** * Registering a Group Control for All Posts Element */ diff --git a/includes/class-eae-extensions.php b/includes/class-eae-extensions.php new file mode 100644 index 000000000..d9dcc4963 --- /dev/null +++ b/includes/class-eae-extensions.php @@ -0,0 +1,45 @@ +add_eael_extensions(); + } + + /** + * Load acivate or deactivate Modules + * + * @since v1.0.0 + */ + public function add_eael_extensions() { + $is_component_active = Essential_Addons_EL::eael_activated_modules(); + + if( $is_component_active['section-particles'] ) { + require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; + } + } + } +} + +Essential_Addons_Extensions::get_instance(); \ No newline at end of file From c178589009ff5ef8d602e663a9c5fcd9c94558c3 Mon Sep 17 00:00:00 2001 From: Sumaiya Siddika Date: Wed, 6 Mar 2019 14:57:42 +0600 Subject: [PATCH 13/19] Remove EA Tooltip extension --- admin/partials/extensions.php | 9 - admin/settings.php | 2 +- assets/css/tippy.css | 1 - assets/js/eael-scripts.js | 140 -- assets/js/popper.min.js | 5 - assets/js/tippy.min.js | 1930 ----------------- essential_adons_elementor.php | 11 +- .../eael-tooltip-section.php | 449 ---- 8 files changed, 2 insertions(+), 2545 deletions(-) delete mode 100644 assets/css/tippy.css delete mode 100644 assets/js/popper.min.js delete mode 100644 assets/js/tippy.min.js delete mode 100755 extensions/eael-tooltip-section/eael-tooltip-section.php diff --git a/admin/partials/extensions.php b/admin/partials/extensions.php index bc6eb7079..e199cb71d 100755 --- a/admin/partials/extensions.php +++ b/admin/partials/extensions.php @@ -11,15 +11,6 @@

- -
- -
- eael_get_settings['section-tooltip'], true ); ?> > - -

-
-

Premium Extensions

diff --git a/admin/settings.php b/admin/settings.php index dfd255bf7..4fb403cf5 100755 --- a/admin/settings.php +++ b/admin/settings.php @@ -14,7 +14,7 @@ class Eael_Admin_Settings { * @var array * @since 2.3.0 */ - public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'section-tooltip', 'feature-list']; + public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list']; /** * Will Contain All Components Default Values diff --git a/assets/css/tippy.css b/assets/css/tippy.css deleted file mode 100644 index 94e29c7da..000000000 --- a/assets/css/tippy.css +++ /dev/null @@ -1 +0,0 @@ -.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0} \ No newline at end of file diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index cb4a131d8..89ea2bac9 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -838,145 +838,6 @@ }; - /*=================================*/ - /* 37. Section Tooltip - /*=================================*/ - - var EaelSectionTooltip = function($scope, $) { - var target = $scope, - sectionId = target.data("id"), - editMode = elementorFrontend.isEditMode(), - settings = {}; - - if (editMode) { - var editorElements = null, - sectionData = {}; - - if (!window.elementor.hasOwnProperty("elements")) { - return false; - } - - editorElements = window.elementor.elements; - - if (!editorElements.models) { - return false; - } - - $.each(editorElements.models, function(index, elem) { - var columns = elem.attributes.elements; - - $.each(columns.models, function(inde, column) { - var widgets = column.attributes.elements; - - $.each(widgets.models, function(ind, widget) { - - if ( sectionId == widget.id ) { - sectionData = widget.attributes.settings.attributes; - settings.switch = sectionData["eael_tooltip_section_enable"]; - settings.content = sectionData["eael_tooltip_section_content"]; - settings.position = sectionData["eael_tooltip_section_position"]; - settings.animation = sectionData["eael_tooltip_section_animation"]; - settings.arrow = sectionData["eael_tooltip_section_arrow"]; - settings.arrowType = sectionData["eael_tooltip_section_arrow_type"]; - settings.duration = sectionData["eael_tooltip_section_duration"]; - settings.delay = sectionData["eael_tooltip_section_delay"]; - settings.size = sectionData["eael_tooltip_section_size"]; - settings.trigger = sectionData["eael_tooltip_section_trigger"]; - - settings.distance = sectionData["eael_tooltip_section_distance"]; - settings.maxWidth = sectionData["eael_tooltip_section_width"]; - - if ( settings.switch == "yes" ) { - target.addClass("eael-section-tooltip"); - generateTooltip(); - } else { - target.removeClass("eael-section-tooltip"); - } - - if (0 !== settings.length) { - return settings; - } - } - - if (!editMode || !settings) { - return false; - } - - function generateTooltip() { - target.attr("id", "eael-section-tooltip-" + sectionId); - var $currentTooltip = "#" + target.attr("id"); - - var tooltipOptions = { - content: settings.content, - placement: settings.position, - animation: settings.animation, - arrow: settings.arrow, - arrowType: settings.arrowType, - duration: settings.duration, - distance: settings.distance, - delay: settings.content, - size: settings.size, - trigger: settings.trigger, - animateFill: false, - flipOnUpdate: true, - interactive: true, - maxWidth: settings.maxWidth, - zIndex: 999, - }; - - tippy( $currentTooltip, { - ...tooltipOptions, - onShow(instance) { - settings.content = sectionData["eael_tooltip_section_content"]; - settings.position = sectionData["eael_tooltip_section_position"]; - settings.animation = sectionData["eael_tooltip_section_animation"]; - settings.arrow = sectionData["eael_tooltip_section_arrow"]; - settings.arrowType = sectionData["eael_tooltip_section_arrow_type"]; - settings.duration = sectionData["eael_tooltip_section_duration"]; - settings.delay = sectionData["eael_tooltip_section_delay"]; - settings.size = sectionData["eael_tooltip_section_size"]; - settings.trigger = sectionData["eael_tooltip_section_trigger"]; - - settings.distance = sectionData["eael_tooltip_section_distance"]; - settings.maxWidth = sectionData["eael_tooltip_section_width"]; - - // Get tooltip enable/disable status - settings.switch = sectionData["eael_tooltip_section_enable"]; - - // Disable tooltip - if( settings.switch !== 'yes' ) { - - instance.destroy(); - - } else { - - instance.set({ - content: settings.content, - placement: settings.position, - animation: settings.animation, - arrow: settings.arrow, - arrowType: settings.arrowType, - duration: settings.duration, - distance: settings.distance, - delay: settings.delay, - size: settings.size, - trigger: settings.trigger, - maxWidth: settings.maxWidth - }); - - var tippyPopper = instance.popper; - $( tippyPopper ).attr('data-tippy-popper-id', sectionId); - - } - } - }); - } - }); - }); - }); - } - }; - $(window).on('elementor/frontend/init', function () { if (elementorFrontend.isEditMode()) { isEditMode = true; @@ -996,7 +857,6 @@ elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown); elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar); elementorFrontend.hooks.addAction('frontend/element_ready/section', EaelParticlesHandler); - elementorFrontend.hooks.addAction('frontend/element_ready/widget', EaelSectionTooltip); }); }(jQuery)); \ No newline at end of file diff --git a/assets/js/popper.min.js b/assets/js/popper.min.js deleted file mode 100644 index 94a5c26fc..000000000 --- a/assets/js/popper.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* - Copyright (C) Federico Zivolo 2019 - Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). - */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?pe:10===e?se:pe||se}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),y&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),V(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue}); -//# sourceMappingURL=popper.min.js.map diff --git a/assets/js/tippy.min.js b/assets/js/tippy.min.js deleted file mode 100644 index 8dfc89163..000000000 --- a/assets/js/tippy.min.js +++ /dev/null @@ -1,1930 +0,0 @@ -/**! - * tippy.js v4.0.2 - * (c) 2017-2019 atomiks - * MIT License - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) : - typeof define === 'function' && define.amd ? define(['popper.js'], factory) : - (global = global || self, global.tippy = factory(global.Popper)); -}(this, function (Popper) { 'use strict'; - - Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper; - - var css = ".tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\"\";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}"; - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - var version = "4.0.2"; - - var isBrowser = typeof window !== 'undefined'; - var ua = isBrowser && navigator.userAgent; - var isIE = /MSIE |Trident\//.test(ua); - var isUCBrowser = /UCBrowser\//.test(ua); - var isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream; - - var Defaults = { - a11y: true, - allowHTML: true, - animateFill: true, - animation: 'shift-away', - appendTo: function appendTo() { - return document.body; - }, - aria: 'describedby', - arrow: false, - arrowType: 'sharp', - boundary: 'scrollParent', - content: '', - delay: [0, 20], - distance: 10, - duration: [325, 275], - flip: true, - flipBehavior: 'flip', - flipOnUpdate: false, - followCursor: false, - hideOnClick: true, - ignoreAttributes: false, - inertia: false, - interactive: false, - interactiveBorder: 2, - interactiveDebounce: 0, - lazy: true, - maxWidth: 350, - multiple: false, - offset: 0, - onHidden: function onHidden() {}, - onHide: function onHide() {}, - onMount: function onMount() {}, - onShow: function onShow() {}, - onShown: function onShown() {}, - placement: 'top', - popperOptions: {}, - role: 'tooltip', - showOnInit: false, - size: 'regular', - sticky: false, - target: '', - theme: 'dark', - touch: true, - touchHold: false, - trigger: 'mouseenter focus', - updateDuration: 0, - wait: null, - zIndex: 9999 - /** - * If the set() method encounters one of these, the popperInstance must be - * recreated - */ - - }; - var POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'arrowType', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions']; - - var Selectors = { - POPPER: '.tippy-popper', - TOOLTIP: '.tippy-tooltip', - CONTENT: '.tippy-content', - BACKDROP: '.tippy-backdrop', - ARROW: '.tippy-arrow', - ROUND_ARROW: '.tippy-roundarrow' - }; - - var elementProto = isBrowser ? Element.prototype : {}; - var matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector; - /** - * Ponyfill for Array.from - converts iterable values to an array - * @param {ArrayLike} value - * @return {any[]} - */ - - function arrayFrom(value) { - return [].slice.call(value); - } - /** - * Ponyfill for Element.prototype.closest - * @param {Element} element - * @param {String} parentSelector - * @return {Element} - */ - - function closest(element, parentSelector) { - return (elementProto.closest || function (selector) { - var el = this; - - while (el) { - if (matches.call(el, selector)) return el; - el = el.parentElement; - } - }).call(element, parentSelector); - } - /** - * Works like Element.prototype.closest, but uses a callback instead - * @param {Element} element - * @param {Function} callback - * @return {Element} - */ - - function closestCallback(element, callback) { - while (element) { - if (callback(element)) return element; - element = element.parentElement; - } - } - - /** - * Determines if a value is a plain object - * @param {any} value - * @return {Boolean} - */ - - function isPlainObject(value) { - return {}.toString.call(value) === '[object Object]'; - } - /** - * Safe .hasOwnProperty check, for prototype-less objects - * @param {Object} obj - * @param {String} key - * @return {Boolean} - */ - - function hasOwnProperty(obj, key) { - return {}.hasOwnProperty.call(obj, key); - } - /** - * Returns an array of elements based on the value - * @param {any} value - * @return {Array} - */ - - function getArrayOfElements(value) { - if (isSingular(value)) { - return [value]; - } - - if (value instanceof NodeList) { - return arrayFrom(value); - } - - if (Array.isArray(value)) { - return value; - } - - try { - return arrayFrom(document.querySelectorAll(value)); - } catch (e) { - return []; - } - } - /** - * Returns a value at a given index depending on if it's an array or number - * @param {any} value - * @param {Number} index - * @param {any} defaultValue - */ - - function getValue(value, index, defaultValue) { - if (Array.isArray(value)) { - var v = value[index]; - return v == null ? defaultValue : v; - } - - return value; - } - /** - * Debounce utility - * @param {Function} fn - * @param {Number} ms - */ - - function debounce(fn, ms) { - var timeoutId; - return function () { - var _this = this, - _arguments = arguments; - - clearTimeout(timeoutId); - timeoutId = setTimeout(function () { - return fn.apply(_this, _arguments); - }, ms); - }; - } - /** - * Prevents errors from being thrown while accessing nested modifier objects - * in `popperOptions` - * @param {Object} obj - * @param {String} key - * @return {Object|undefined} - */ - - function getModifier(obj, key) { - return obj && obj.modifiers && obj.modifiers[key]; - } - /** - * Determines if an array or string includes a value - * @param {Array|String} a - * @param {any} b - * @return {Boolean} - */ - - function includes(a, b) { - return a.indexOf(b) > -1; - } - /** - * Determines if the value is singular-like - * @param {any} value - * @return {Boolean} - */ - - function isSingular(value) { - return isPlainObject(value) || value instanceof Element; - } - /** - * Tricking bundlers, linters, and minifiers - * @return {String} - */ - - function innerHTML() { - return 'innerHTML'; - } - /** - * Evaluates a function if one, or returns the value - * @param {any} value - * @param {any[]} args - * @return {Boolean} - */ - - function evaluateValue(value, args) { - return typeof value === 'function' ? value.apply(null, args) : value; - } - /** - * Sets a popperInstance `flip` modifier's enabled state - * @param {Object[]} modifiers - * @param {any} value - */ - - function setFlipModifierEnabled(modifiers, value) { - modifiers.filter(function (m) { - return m.name === 'flip'; - })[0].enabled = value; - } - - /** - * Returns a new `div` element - * @return {HTMLDivElement} - */ - - function div() { - return document.createElement('div'); - } - /** - * Sets the innerHTML of an element while tricking linters & minifiers - * @param {HTMLElement} el - * @param {Element|String} html - */ - - function setInnerHTML(el, html) { - el[innerHTML()] = html instanceof Element ? html[innerHTML()] : html; - } - /** - * Sets the content of a tooltip - * @param {HTMLElement} contentEl - * @param {Object} props - */ - - function setContent(contentEl, props) { - if (props.content instanceof Element) { - setInnerHTML(contentEl, ''); - contentEl.appendChild(props.content); - } else { - contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content; - } - } - /** - * Returns the child elements of a popper element - * @param {HTMLElement} popper - * @return {Object} - */ - - function getChildren(popper) { - return { - tooltip: popper.querySelector(Selectors.TOOLTIP), - backdrop: popper.querySelector(Selectors.BACKDROP), - content: popper.querySelector(Selectors.CONTENT), - arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW) - }; - } - /** - * Adds `data-inertia` attribute - * @param {HTMLElement} tooltip - */ - - function addInertia(tooltip) { - tooltip.setAttribute('data-inertia', ''); - } - /** - * Removes `data-inertia` attribute - * @param {HTMLElement} tooltip - */ - - function removeInertia(tooltip) { - tooltip.removeAttribute('data-inertia'); - } - /** - * Creates an arrow element and returns it - * @return {HTMLDivElement} - */ - - function createArrowElement(arrowType) { - var arrow = div(); - - if (arrowType === 'round') { - arrow.className = 'tippy-roundarrow'; - setInnerHTML(arrow, ''); - } else { - arrow.className = 'tippy-arrow'; - } - - return arrow; - } - /** - * Creates a backdrop element and returns it - * @return {HTMLDivElement} - */ - - function createBackdropElement() { - var backdrop = div(); - backdrop.className = 'tippy-backdrop'; - backdrop.setAttribute('data-state', 'hidden'); - return backdrop; - } - /** - * Adds interactive-related attributes - * @param {HTMLElement} popper - * @param {HTMLElement} tooltip - */ - - function addInteractive(popper, tooltip) { - popper.setAttribute('tabindex', '-1'); - tooltip.setAttribute('data-interactive', ''); - } - /** - * Removes interactive-related attributes - * @param {HTMLElement} popper - * @param {HTMLElement} tooltip - */ - - function removeInteractive(popper, tooltip) { - popper.removeAttribute('tabindex'); - tooltip.removeAttribute('data-interactive'); - } - /** - * Applies a transition duration to a list of elements - * @param {Array} els - * @param {Number} value - */ - - function applyTransitionDuration(els, value) { - els.forEach(function (el) { - if (el) { - el.style.transitionDuration = "".concat(value, "ms"); - } - }); - } - /** - * Add/remove transitionend listener from tooltip - * @param {Element} tooltip - * @param {String} action - * @param {Function} listener - */ - - function toggleTransitionEndListener(tooltip, action, listener) { - // UC Browser hasn't adopted the `transitionend` event despite supporting - // unprefixed transitions... - var eventName = isUCBrowser && document.body.style.WebkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend'; - tooltip[action + 'EventListener'](eventName, listener); - } - /** - * Returns the popper's placement, ignoring shifting (top-start, etc) - * @param {Element} popper - * @return {String} - */ - - function getPopperPlacement(popper) { - var fullPlacement = popper.getAttribute('x-placement'); - return fullPlacement ? fullPlacement.split('-')[0] : ''; - } - /** - * Sets the visibility state to elements so they can begin to transition - * @param {Array} els - * @param {String} state - */ - - function setVisibilityState(els, state) { - els.forEach(function (el) { - if (el) { - el.setAttribute('data-state', state); - } - }); - } - /** - * Triggers reflow - * @param {Element} popper - */ - - function reflow(popper) { - void popper.offsetHeight; - } - /** - * Adds/removes theme from tooltip's classList - * @param {HTMLDivElement} tooltip - * @param {String} action - * @param {String} theme - */ - - function toggleTheme(tooltip, action, theme) { - theme.split(' ').forEach(function (themeName) { - tooltip.classList[action](themeName + '-theme'); - }); - } - /** - * Constructs the popper element and returns it - * @param {Number} id - * @param {Object} props - * @return {HTMLDivElement} - */ - - function createPopperElement(id, props) { - var popper = div(); - popper.className = 'tippy-popper'; - popper.id = "tippy-".concat(id); - popper.style.zIndex = props.zIndex; - - if (props.role) { - popper.setAttribute('role', props.role); - } - - var tooltip = div(); - tooltip.className = 'tippy-tooltip'; - tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : ''); - tooltip.setAttribute('data-size', props.size); - tooltip.setAttribute('data-animation', props.animation); - tooltip.setAttribute('data-state', 'hidden'); - toggleTheme(tooltip, 'add', props.theme); - var content = div(); - content.className = 'tippy-content'; - content.setAttribute('data-state', 'hidden'); - - if (props.interactive) { - addInteractive(popper, tooltip); - } - - if (props.arrow) { - tooltip.appendChild(createArrowElement(props.arrowType)); - } - - if (props.animateFill) { - tooltip.appendChild(createBackdropElement()); - tooltip.setAttribute('data-animatefill', ''); - } - - if (props.inertia) { - addInertia(tooltip); - } - - setContent(content, props); - tooltip.appendChild(content); - popper.appendChild(tooltip); - return popper; - } - /** - * Updates the popper element based on the new props - * @param {HTMLDivElement} popper - * @param {Object} prevProps - * @param {Object} nextProps - */ - - function updatePopperElement(popper, prevProps, nextProps) { - var _getChildren = getChildren(popper), - tooltip = _getChildren.tooltip, - content = _getChildren.content, - backdrop = _getChildren.backdrop, - arrow = _getChildren.arrow; - - popper.style.zIndex = nextProps.zIndex; - tooltip.setAttribute('data-size', nextProps.size); - tooltip.setAttribute('data-animation', nextProps.animation); - tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : ''); - - if (nextProps.role) { - popper.setAttribute('role', nextProps.role); - } else { - popper.removeAttribute('role'); - } - - if (prevProps.content !== nextProps.content) { - setContent(content, nextProps); - } // animateFill - - - if (!prevProps.animateFill && nextProps.animateFill) { - tooltip.appendChild(createBackdropElement()); - tooltip.setAttribute('data-animatefill', ''); - } else if (prevProps.animateFill && !nextProps.animateFill) { - tooltip.removeChild(backdrop); - tooltip.removeAttribute('data-animatefill'); - } // arrow - - - if (!prevProps.arrow && nextProps.arrow) { - tooltip.appendChild(createArrowElement(nextProps.arrowType)); - } else if (prevProps.arrow && !nextProps.arrow) { - tooltip.removeChild(arrow); - } // arrowType - - - if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) { - tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow); - } // interactive - - - if (!prevProps.interactive && nextProps.interactive) { - addInteractive(popper, tooltip); - } else if (prevProps.interactive && !nextProps.interactive) { - removeInteractive(popper, tooltip); - } // inertia - - - if (!prevProps.inertia && nextProps.inertia) { - addInertia(tooltip); - } else if (prevProps.inertia && !nextProps.inertia) { - removeInertia(tooltip); - } // theme - - - if (prevProps.theme !== nextProps.theme) { - toggleTheme(tooltip, 'remove', prevProps.theme); - toggleTheme(tooltip, 'add', nextProps.theme); - } - } - /** - * Runs the callback after the popper's position has been updated - * update() is debounced with Promise.resolve() or setTimeout() - * scheduleUpdate() is update() wrapped in requestAnimationFrame() - * @param {Popper} popperInstance - * @param {Function} callback - */ - - function afterPopperPositionUpdates(popperInstance, callback) { - var popper = popperInstance.popper, - options = popperInstance.options; - var onCreate = options.onCreate, - onUpdate = options.onUpdate; - - options.onCreate = options.onUpdate = function (data) { - reflow(popper); - callback(); - onUpdate(data); - options.onCreate = onCreate; - options.onUpdate = onUpdate; - }; - } - /** - * Hides all visible poppers on the document - * @param {Object} options - */ - - function hideAll() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - checkHideOnClick = _ref.checkHideOnClick, - exclude = _ref.exclude, - duration = _ref.duration; - - arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) { - var instance = popper._tippy; - - if (instance && (checkHideOnClick ? instance.props.hideOnClick === true : true) && (!exclude || popper !== exclude.popper)) { - instance.hide(duration); - } - }); - } - /** - * Determines if the mouse cursor is outside of the popper's interactive border - * region - * @param {String} popperPlacement - * @param {ClientRect} popperRect - * @param {MouseEvent} event - * @param {Object} props - * @return {Boolean} - */ - - function isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) { - if (!popperPlacement) { - return true; - } - - var x = event.clientX, - y = event.clientY; - var interactiveBorder = props.interactiveBorder, - distance = props.distance; - var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder); - var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder); - var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder); - var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder); - return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight; - } - /** - * Returns the distance offset, taking into account the default offset due to - * the transform: translate() rule (10px) in CSS - * @param {Number} distance - * @return {String} - */ - - function getOffsetDistanceInPx(distance) { - return -(distance - 10) + 'px'; - } - - var PASSIVE = { - passive: true - }; - var PADDING = 3; - - var isUsingTouch = false; - function onDocumentTouch() { - if (isUsingTouch) { - return; - } - - isUsingTouch = true; - - if (isIOS) { - document.body.classList.add('tippy-iOS'); - } - - if (window.performance) { - document.addEventListener('mousemove', onDocumentMouseMove); - } - } - var lastMouseMoveTime = 0; - function onDocumentMouseMove() { - var now = performance.now(); // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference - - if (now - lastMouseMoveTime < 20) { - isUsingTouch = false; - document.removeEventListener('mousemove', onDocumentMouseMove); - - if (!isIOS) { - document.body.classList.remove('tippy-iOS'); - } - } - - lastMouseMoveTime = now; - } - function onDocumentClick(_ref) { - var target = _ref.target; - - // Simulated events dispatched on the document - if (!(target instanceof Element)) { - return hideAll(); - } // Clicked on an interactive popper - - - var popper = closest(target, Selectors.POPPER); - - if (popper && popper._tippy && popper._tippy.props.interactive) { - return; - } // Clicked on a reference - - - var reference = closestCallback(target, function (el) { - return el._tippy && el._tippy.reference === el; - }); - - if (reference) { - var instance = reference._tippy; - var isClickTrigger = includes(instance.props.trigger, 'click'); - - if (isUsingTouch || isClickTrigger) { - return hideAll({ - exclude: instance, - checkHideOnClick: true - }); - } - - if (instance.props.hideOnClick !== true || isClickTrigger) { - return; - } - - instance.clearDelayTimeouts(); - } - - hideAll({ - checkHideOnClick: true - }); - } - function onWindowBlur() { - var _document = document, - activeElement = _document.activeElement; - - if (activeElement && activeElement.blur && activeElement._tippy) { - activeElement.blur(); - } - } - /** - * Adds the needed global event listeners - */ - - function bindGlobalEventListeners() { - document.addEventListener('click', onDocumentClick, true); - document.addEventListener('touchstart', onDocumentTouch, PASSIVE); - window.addEventListener('blur', onWindowBlur); - } - - var keys = Object.keys(Defaults); - /** - * Determines if an element can receive focus - * @param {Element|Object} el - * @return {Boolean} - */ - - function canReceiveFocus(el) { - return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true; - } - /** - * Returns an object of optional props from data-tippy-* attributes - * @param {Element|Object} reference - * @return {Object} - */ - - function getDataAttributeOptions(reference) { - return keys.reduce(function (acc, key) { - var valueAsString = (reference.getAttribute("data-tippy-".concat(key)) || '').trim(); - - if (!valueAsString) { - return acc; - } - - if (key === 'content') { - acc[key] = valueAsString; - } else { - try { - acc[key] = JSON.parse(valueAsString); - } catch (e) { - acc[key] = valueAsString; - } - } - - return acc; - }, {}); - } - /** - * Polyfills the virtual reference (plain object) with Element.prototype props - * Mutating because DOM elements are mutated, adds `_tippy` property - * @param {Object} virtualReference - */ - - function polyfillElementPrototypeProperties(virtualReference) { - var polyfills = { - isVirtual: true, - attributes: virtualReference.attributes || {}, - setAttribute: function setAttribute(key, value) { - virtualReference.attributes[key] = value; - }, - getAttribute: function getAttribute(key) { - return virtualReference.attributes[key]; - }, - removeAttribute: function removeAttribute(key) { - delete virtualReference.attributes[key]; - }, - hasAttribute: function hasAttribute(key) { - return key in virtualReference.attributes; - }, - addEventListener: function addEventListener() {}, - removeEventListener: function removeEventListener() {}, - classList: { - classNames: {}, - add: function add(key) { - virtualReference.classList.classNames[key] = true; - }, - remove: function remove(key) { - delete virtualReference.classList.classNames[key]; - }, - contains: function contains(key) { - return key in virtualReference.classList.classNames; - } - } - }; - - for (var key in polyfills) { - virtualReference[key] = polyfills[key]; - } - } - - /** - * Evaluates the props object by merging data attributes and - * disabling conflicting options where necessary - * @param {Element} reference - * @param {Object} props - * @return {Object} - */ - - function evaluateProps(reference, props) { - var out = _extends({}, props, { - content: evaluateValue(props.content, [reference]) - }, props.ignoreAttributes ? {} : getDataAttributeOptions(reference)); - - if (out.arrow || isUCBrowser) { - out.animateFill = false; - } - - return out; - } - /** - * Validates an object of options with the valid default props object - * @param {Object} options - * @param {Object} defaults - */ - - function validateOptions() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var defaults = arguments.length > 1 ? arguments[1] : undefined; - Object.keys(options).forEach(function (option) { - if (!hasOwnProperty(defaults, option)) { - throw new Error("[tippy]: `".concat(option, "` is not a valid option")); - } - }); - } - - var idCounter = 1; - /** - * Creates and returns a Tippy object. We're using a closure pattern instead of - * a class so that the exposed object API is clean without private members - * prefixed with `_`. - * @param {Element} reference - * @param {Object} collectionProps - * @return {Object} instance - */ - - function createTippy(reference, collectionProps) { - var props = evaluateProps(reference, collectionProps); // If the reference shouldn't have multiple tippys, return null early - - if (!props.multiple && reference._tippy) { - return null; - } - /* ======================= 🔒 Private members 🔒 ======================= */ - // The last trigger event object that caused the tippy to show - - - var lastTriggerEvent = {}; // The last mousemove event object created by the document mousemove event - - var lastMouseMoveEvent = null; // Timeout created by the show delay - - var showTimeoutId = 0; // Timeout created by the hide delay - - var hideTimeoutId = 0; // Flag to determine if the tippy is preparing to show due to the show timeout - - var isPreparingToShow = false; // The current `transitionend` callback reference - - var transitionEndListener = function transitionEndListener() {}; // Array of event listeners currently attached to the reference element - - - var listeners = []; // Private onMouseMove handler reference, debounced or not - - var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove; // Node the tippy is currently appended to - - var parentNode = null; - /* ======================= 🔑 Public members 🔑 ======================= */ - // id used for the `aria-describedby` / `aria-labelledby` attribute - - var id = idCounter++; // Popper element reference - - var popper = createPopperElement(id, props); // Prevent a tippy with a delay from hiding if the cursor left then returned - // before it started hiding - - popper.addEventListener('mouseenter', function (event) { - if (instance.props.interactive && instance.state.isVisible && lastTriggerEvent.type === 'mouseenter') { - prepareShow(event); - } - }); - popper.addEventListener('mouseleave', function () { - if (instance.props.interactive && lastTriggerEvent.type === 'mouseenter') { - document.addEventListener('mousemove', debouncedOnMouseMove); - } - }); // Popper element children: { arrow, backdrop, content, tooltip } - - var popperChildren = getChildren(popper); // The state of the tippy - - var state = { - // If the tippy is currently enabled - isEnabled: true, - // show() invoked, not currently transitioning out - isVisible: false, - // If the tippy has been destroyed - isDestroyed: false, - // If the tippy is on the DOM (transitioning out or in) - isMounted: false, - // show() transition finished - isShown: false // Popper.js instance for the tippy is lazily created - - }; - var popperInstance = null; // 🌟 tippy instance - - var instance = { - // properties - id: id, - reference: reference, - popper: popper, - popperChildren: popperChildren, - popperInstance: popperInstance, - props: props, - state: state, - // methods - clearDelayTimeouts: clearDelayTimeouts, - set: set, - setContent: setContent$$1, - show: show, - hide: hide, - enable: enable, - disable: disable, - destroy: destroy - }; - addTriggersToReference(); - - if (!props.lazy) { - createPopperInstance(); - instance.popperInstance.disableEventListeners(); - } - - if (props.showOnInit) { - prepareShow(); - } // Ensure the reference element can receive focus (and is not a delegate) - - - if (props.a11y && !props.target && !canReceiveFocus(reference)) { - reference.setAttribute('tabindex', '0'); - } // Install shortcuts - - - reference._tippy = instance; - popper._tippy = instance; - return instance; - /* ======================= 🔒 Private methods 🔒 ======================= */ - - /** - * Positions the virtual reference near the mouse cursor - */ - - function positionVirtualReferenceNearCursor(event) { - var _lastMouseMoveEvent = lastMouseMoveEvent = event, - clientX = _lastMouseMoveEvent.clientX, - clientY = _lastMouseMoveEvent.clientY; - - if (!instance.popperInstance) { - return; - } // Ensure virtual reference is padded to prevent tooltip from - // overflowing. Maybe Popper.js issue? - - - var placement = getPopperPlacement(instance.popper); - var padding = instance.popperChildren.arrow ? PADDING + 16 : PADDING; - var isVerticalPlacement = includes(['top', 'bottom'], placement); - var isHorizontalPlacement = includes(['left', 'right'], placement); // Top / left boundary - - var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX; - var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY; // Bottom / right boundary - - if (isVerticalPlacement && x > padding) { - x = Math.min(clientX, window.innerWidth - padding); - } - - if (isHorizontalPlacement && y > padding) { - y = Math.min(clientY, window.innerHeight - padding); - } - - var rect = instance.reference.getBoundingClientRect(); - var followCursor = instance.props.followCursor; - var isHorizontal = followCursor === 'horizontal'; - var isVertical = followCursor === 'vertical'; - instance.popperInstance.reference = { - getBoundingClientRect: function getBoundingClientRect() { - return { - width: 0, - height: 0, - top: isHorizontal ? rect.top : y, - bottom: isHorizontal ? rect.bottom : y, - left: isVertical ? rect.left : x, - right: isVertical ? rect.right : x - }; - }, - clientWidth: 0, - clientHeight: 0 - }; - instance.popperInstance.scheduleUpdate(); - - if (followCursor === 'initial' && instance.state.isVisible) { - removeFollowCursorListener(); - } - } - /** - * Creates the tippy instance for a delegate when it's been triggered - */ - - - function createDelegateChildTippy(event) { - var targetEl = closest(event.target, instance.props.target); - - if (targetEl && !targetEl._tippy) { - createTippy(targetEl, _extends({}, instance.props, { - content: evaluateValue(collectionProps.content, [targetEl]), - appendTo: collectionProps.appendTo, - target: '', - showOnInit: true - })); - prepareShow(event); - } - } - /** - * Setup before show() is invoked (delays, etc.) - */ - - - function prepareShow(event) { - clearDelayTimeouts(); - - if (instance.state.isVisible) { - return; - } // Is a delegate, create an instance for the child target - - - if (instance.props.target) { - return createDelegateChildTippy(event); - } - - isPreparingToShow = true; - - if (instance.props.wait) { - return instance.props.wait(instance, event); - } // If the tooltip has a delay, we need to be listening to the mousemove as - // soon as the trigger event is fired, so that it's in the correct position - // upon mount. - // Edge case: if the tooltip is still mounted, but then prepareShow() is - // called, it causes a jump. - - - if (hasFollowCursorBehavior() && !instance.state.isMounted) { - document.addEventListener('mousemove', positionVirtualReferenceNearCursor); - } - - var delay = getValue(instance.props.delay, 0, Defaults.delay); - - if (delay) { - showTimeoutId = setTimeout(function () { - show(); - }, delay); - } else { - show(); - } - } - /** - * Setup before hide() is invoked (delays, etc.) - */ - - - function prepareHide() { - clearDelayTimeouts(); - - if (!instance.state.isVisible) { - return removeFollowCursorListener(); - } - - isPreparingToShow = false; - var delay = getValue(instance.props.delay, 1, Defaults.delay); - - if (delay) { - hideTimeoutId = setTimeout(function () { - if (instance.state.isVisible) { - hide(); - } - }, delay); - } else { - hide(); - } - } - /** - * Removes the follow cursor listener - */ - - - function removeFollowCursorListener() { - document.removeEventListener('mousemove', positionVirtualReferenceNearCursor); - lastMouseMoveEvent = null; - } - /** - * Cleans up old listeners - */ - - - function cleanupOldMouseListeners() { - document.body.removeEventListener('mouseleave', prepareHide); - document.removeEventListener('mousemove', debouncedOnMouseMove); - } - /** - * Event listener invoked upon trigger - */ - - - function onTrigger(event) { - if (!instance.state.isEnabled || isEventListenerStopped(event)) { - return; - } - - if (!instance.state.isVisible) { - lastTriggerEvent = event; // Use the `mouseenter` event as a "mock" mousemove event for touch - // devices - - if (isUsingTouch && includes(event.type, 'mouse')) { - lastMouseMoveEvent = event; - } - } // Toggle show/hide when clicking click-triggered tooltips - - - if (event.type === 'click' && instance.props.hideOnClick !== false && instance.state.isVisible) { - prepareHide(); - } else { - prepareShow(event); - } - } - /** - * Event listener used for interactive tooltips to detect when they should - * hide - */ - - - function onMouseMove(event) { - var referenceTheCursorIsOver = closestCallback(event.target, function (el) { - return el._tippy; - }); - var isCursorOverPopper = closest(event.target, Selectors.POPPER) === instance.popper; - var isCursorOverReference = referenceTheCursorIsOver === instance.reference; - - if (isCursorOverPopper || isCursorOverReference) { - return; - } - - if (isCursorOutsideInteractiveBorder(getPopperPlacement(instance.popper), instance.popper.getBoundingClientRect(), event, instance.props)) { - cleanupOldMouseListeners(); - prepareHide(); - } - } - /** - * Event listener invoked upon mouseleave - */ - - - function onMouseLeave(event) { - if (isEventListenerStopped(event)) { - return; - } - - if (instance.props.interactive) { - document.body.addEventListener('mouseleave', prepareHide); - document.addEventListener('mousemove', debouncedOnMouseMove); - return; - } - - prepareHide(); - } - /** - * Event listener invoked upon blur - */ - - - function onBlur(event) { - if (event.target !== instance.reference) { - return; - } - - if (instance.props.interactive && event.relatedTarget && instance.popper.contains(event.relatedTarget)) { - return; - } - - prepareHide(); - } - /** - * Event listener invoked when a child target is triggered - */ - - - function onDelegateShow(event) { - if (closest(event.target, instance.props.target)) { - prepareShow(event); - } - } - /** - * Event listener invoked when a child target should hide - */ - - - function onDelegateHide(event) { - if (closest(event.target, instance.props.target)) { - prepareHide(); - } - } - /** - * Determines if an event listener should stop further execution due to the - * `touchHold` option - */ - - - function isEventListenerStopped(event) { - var supportsTouch = 'ontouchstart' in window; - var isTouchEvent = includes(event.type, 'touch'); - var touchHold = instance.props.touchHold; - return supportsTouch && isUsingTouch && touchHold && !isTouchEvent || isUsingTouch && !touchHold && isTouchEvent; - } - /** - * Creates the popper instance for the instance - */ - - - function createPopperInstance() { - var popperOptions = instance.props.popperOptions; - var _instance$popperChild = instance.popperChildren, - tooltip = _instance$popperChild.tooltip, - arrow = _instance$popperChild.arrow; - instance.popperInstance = new Popper(instance.reference, instance.popper, _extends({ - placement: instance.props.placement - }, popperOptions, { - modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, { - preventOverflow: _extends({ - boundariesElement: instance.props.boundary, - padding: PADDING - }, getModifier(popperOptions, 'preventOverflow')), - arrow: _extends({ - element: arrow, - enabled: !!arrow - }, getModifier(popperOptions, 'arrow')), - flip: _extends({ - enabled: instance.props.flip, - // The tooltip is offset by 10px from the popper in CSS, - // we need to account for its distance - padding: instance.props.distance + PADDING, - behavior: instance.props.flipBehavior - }, getModifier(popperOptions, 'flip')), - offset: _extends({ - offset: instance.props.offset - }, getModifier(popperOptions, 'offset')) - }), - onUpdate: function onUpdate(data) { - if (!instance.props.flipOnUpdate) { - if (data.flipped) { - instance.popperInstance.options.placement = data.placement; - } - - setFlipModifierEnabled(instance.popperInstance.modifiers, false); - } - - var styles = tooltip.style; - styles.top = ''; - styles.bottom = ''; - styles.left = ''; - styles.right = ''; - styles[getPopperPlacement(instance.popper)] = getOffsetDistanceInPx(instance.props.distance); - } - })); - } - /** - * Mounts the tooltip to the DOM, callback to show tooltip is run **after** - * popper's position has updated - */ - - - function mount(callback) { - var shouldEnableListeners = !hasFollowCursorBehavior() && !(instance.props.followCursor === 'initial' && isUsingTouch); - - if (!instance.popperInstance) { - createPopperInstance(); - - if (!shouldEnableListeners) { - instance.popperInstance.disableEventListeners(); - } - } else { - if (!hasFollowCursorBehavior()) { - instance.popperInstance.scheduleUpdate(); - - if (shouldEnableListeners) { - instance.popperInstance.enableEventListeners(); - } - } - - setFlipModifierEnabled(instance.popperInstance.modifiers, true); - } // If the instance previously had followCursor behavior, it will be - // positioned incorrectly if triggered by `focus` afterwards. - // Update the reference back to the real DOM element - - - instance.popperInstance.reference = instance.reference; - var arrow = instance.popperChildren.arrow; - - if (hasFollowCursorBehavior()) { - if (arrow) { - arrow.style.margin = '0'; - } - - var delay = getValue(instance.props.delay, 0, Defaults.delay); - - if (lastTriggerEvent.type) { - positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent); - } - } else if (arrow) { - arrow.style.margin = ''; - } - - afterPopperPositionUpdates(instance.popperInstance, callback); - var appendTo = instance.props.appendTo; - parentNode = appendTo === 'parent' ? instance.reference.parentNode : evaluateValue(appendTo, [instance.reference]); - - if (!parentNode.contains(instance.popper)) { - parentNode.appendChild(instance.popper); - instance.props.onMount(instance); - instance.state.isMounted = true; - } - } - /** - * Determines if the instance is in `followCursor` mode - */ - - - function hasFollowCursorBehavior() { - return instance.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus'; - } - /** - * Updates the tooltip's position on each animation frame + timeout - */ - - - function makeSticky() { - applyTransitionDuration([instance.popper], isIE ? 0 : instance.props.updateDuration); - - var updatePosition = function updatePosition() { - if (instance.popperInstance) { - instance.popperInstance.scheduleUpdate(); - } - - if (instance.state.isMounted) { - requestAnimationFrame(updatePosition); - } else { - applyTransitionDuration([instance.popper], 0); - } - }; - - updatePosition(); - } - /** - * Invokes a callback once the tooltip has fully transitioned out - */ - - - function onTransitionedOut(duration, callback) { - onTransitionEnd(duration, function () { - if (!instance.state.isVisible && parentNode && parentNode.contains(instance.popper)) { - callback(); - } - }); - } - /** - * Invokes a callback once the tooltip has fully transitioned in - */ - - - function onTransitionedIn(duration, callback) { - onTransitionEnd(duration, callback); - } - /** - * Invokes a callback once the tooltip's CSS transition ends - */ - - - function onTransitionEnd(duration, callback) { - // Make callback synchronous if duration is 0 - if (duration === 0) { - return callback(); - } - - var tooltip = instance.popperChildren.tooltip; - - var listener = function listener(e) { - if (e.target === tooltip) { - toggleTransitionEndListener(tooltip, 'remove', listener); - callback(); - } - }; - - toggleTransitionEndListener(tooltip, 'remove', transitionEndListener); - toggleTransitionEndListener(tooltip, 'add', listener); - transitionEndListener = listener; - } - /** - * Adds an event listener to the reference and stores it in `listeners` - */ - - - function on(eventType, handler) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - instance.reference.addEventListener(eventType, handler, options); - listeners.push({ - eventType: eventType, - handler: handler, - options: options - }); - } - /** - * Adds event listeners to the reference based on the `trigger` prop - */ - - - function addTriggersToReference() { - if (instance.props.touchHold && !instance.props.target) { - on('touchstart', onTrigger, PASSIVE); - on('touchend', onMouseLeave, PASSIVE); - } - - instance.props.trigger.trim().split(' ').forEach(function (eventType) { - if (eventType === 'manual') { - return; - } - - if (!instance.props.target) { - on(eventType, onTrigger); - - switch (eventType) { - case 'mouseenter': - on('mouseleave', onMouseLeave); - break; - - case 'focus': - on(isIE ? 'focusout' : 'blur', onBlur); - break; - } - } else { - switch (eventType) { - case 'mouseenter': - on('mouseover', onDelegateShow); - on('mouseout', onDelegateHide); - break; - - case 'focus': - on('focusin', onDelegateShow); - on('focusout', onDelegateHide); - break; - - case 'click': - on(eventType, onDelegateShow); - break; - } - } - }); - } - /** - * Removes event listeners from the reference - */ - - - function removeTriggersFromReference() { - listeners.forEach(function (_ref) { - var eventType = _ref.eventType, - handler = _ref.handler, - options = _ref.options; - instance.reference.removeEventListener(eventType, handler, options); - }); - listeners = []; - } - /** - * Returns inner elements used in show/hide methods - */ - - - function getInnerElements() { - return [instance.popperChildren.tooltip, instance.popperChildren.backdrop, instance.popperChildren.content]; - } - /* ======================= 🔑 Public methods 🔑 ======================= */ - - /** - * Enables the instance to allow it to show or hide - */ - - - function enable() { - instance.state.isEnabled = true; - } - /** - * Disables the instance to disallow it to show or hide - */ - - - function disable() { - instance.state.isEnabled = false; - } - /** - * Clears pending timeouts related to the `delay` prop if any - */ - - - function clearDelayTimeouts() { - clearTimeout(showTimeoutId); - clearTimeout(hideTimeoutId); - } - /** - * Sets new props for the instance and redraws the tooltip - */ - - - function set() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - validateOptions(options, Defaults); - var prevProps = instance.props; - var nextProps = evaluateProps(instance.reference, _extends({}, instance.props, options, { - ignoreAttributes: true - })); - nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes') ? options.ignoreAttributes : prevProps.ignoreAttributes; - instance.props = nextProps; - - if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) { - removeTriggersFromReference(); - addTriggersToReference(); - } - - if (hasOwnProperty(options, 'interactiveDebounce')) { - cleanupOldMouseListeners(); - debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce); - } - - updatePopperElement(instance.popper, prevProps, nextProps); - instance.popperChildren = getChildren(instance.popper); - - if (instance.popperInstance) { - instance.popperInstance.update(); - - if (POPPER_INSTANCE_DEPENDENCIES.some(function (prop) { - return hasOwnProperty(options, prop); - })) { - instance.popperInstance.destroy(); - createPopperInstance(); - - if (!instance.state.isVisible) { - instance.popperInstance.disableEventListeners(); - } - - if (instance.props.followCursor && lastMouseMoveEvent) { - positionVirtualReferenceNearCursor(lastMouseMoveEvent); - } - } - } - } - /** - * Shortcut for .set({ content: newContent }) - */ - - - function setContent$$1(content) { - set({ - content: content - }); - } - /** - * Shows the tooltip - */ - - - function show() { - var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 0, Defaults.duration[0]); - - if (instance.state.isDestroyed || !instance.state.isEnabled || isUsingTouch && !instance.props.touch) { - return; - } // Destroy tooltip if the reference element is no longer on the DOM - - - if (!instance.reference.isVirtual && !document.documentElement.contains(instance.reference)) { - return destroy(); - } // Do not show tooltip if the reference element has a `disabled` attribute - - - if (instance.reference.hasAttribute('disabled')) { - return; - } - - if (instance.props.onShow(instance) === false) { - return; - } - - instance.popper.style.visibility = 'visible'; - instance.state.isVisible = true; - - if (instance.props.interactive) { - instance.reference.classList.add('tippy-active'); - } // Prevent a transition if the popper is at the opposite placement - - - applyTransitionDuration([instance.popper, instance.popperChildren.tooltip, instance.popperChildren.backdrop], 0); - mount(function () { - if (!instance.state.isVisible) { - return; - } // Arrow will sometimes not be positioned correctly. Force another update - - - if (!hasFollowCursorBehavior()) { - instance.popperInstance.update(); - } // Allow followCursor: 'initial' on touch devices - - - if (isUsingTouch && instance.props.followCursor === 'initial') { - positionVirtualReferenceNearCursor(lastMouseMoveEvent); - } - - applyTransitionDuration([instance.popper], props.updateDuration); - applyTransitionDuration(getInnerElements(), duration); - - if (instance.popperChildren.backdrop) { - instance.popperChildren.content.style.transitionDelay = Math.round(duration / 12) + 'ms'; - } - - if (instance.props.sticky) { - makeSticky(); - } - - setVisibilityState(getInnerElements(), 'visible'); - onTransitionedIn(duration, function () { - instance.popperChildren.tooltip.classList.add('tippy-notransition'); - - if (instance.props.aria) { - instance.reference.setAttribute("aria-".concat(instance.props.aria), instance.popper.id); - } - - instance.props.onShown(instance); - instance.state.isShown = true; - }); - }); - } - /** - * Hides the tooltip - */ - - - function hide() { - var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 1, Defaults.duration[1]); - - if (instance.state.isDestroyed || !instance.state.isEnabled) { - return; - } - - if (instance.props.onHide(instance) === false) { - return; - } - - instance.popperChildren.tooltip.classList.remove('tippy-notransition'); - - if (instance.props.interactive) { - instance.reference.classList.remove('tippy-active'); - } - - instance.popper.style.visibility = 'hidden'; - instance.state.isVisible = false; - instance.state.isShown = false; - applyTransitionDuration(getInnerElements(), duration); - setVisibilityState(getInnerElements(), 'hidden'); - onTransitionedOut(duration, function () { - if (!isPreparingToShow) { - removeFollowCursorListener(); - } - - if (instance.props.aria) { - instance.reference.removeAttribute("aria-".concat(instance.props.aria)); - } - - instance.popperInstance.disableEventListeners(); - instance.popperInstance.options.placement = instance.props.placement; - parentNode.removeChild(instance.popper); - instance.props.onHidden(instance); - instance.state.isMounted = false; - }); - } - /** - * Destroys the tooltip - */ - - - function destroy(destroyTargetInstances) { - if (instance.state.isDestroyed) { - return; - } // If the popper is currently mounted to the DOM, we want to ensure it gets - // hidden and unmounted instantly upon destruction - - - if (instance.state.isMounted) { - hide(0); - } - - removeTriggersFromReference(); - delete instance.reference._tippy; - - if (instance.props.target && destroyTargetInstances) { - arrayFrom(instance.reference.querySelectorAll(instance.props.target)).forEach(function (child) { - if (child._tippy) { - child._tippy.destroy(); - } - }); - } - - if (instance.popperInstance) { - instance.popperInstance.destroy(); - } - - instance.state.isDestroyed = true; - } - } - - /** - * Groups an array of instances by taking control of their props during - * certain lifecycles. - * @param {Object[]} targets - * @param {Object} options - */ - function group(instances) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$delay = _ref.delay, - delay = _ref$delay === void 0 ? instances[0].props.delay : _ref$delay, - _ref$duration = _ref.duration, - duration = _ref$duration === void 0 ? 0 : _ref$duration; - - var isAnyTippyOpen = false; - instances.forEach(function (instance) { - instance._originalProps = { - duration: instance.props.duration, - onHide: instance.props.onHide, - onShow: instance.props.onShow, - onShown: instance.props.onShown - }; - }); - - function setIsAnyTippyOpen(value) { - isAnyTippyOpen = value; - updateInstances(); - } - - function onShow(instance) { - instance._originalProps.onShow(instance); - - instances.forEach(function (instance) { - instance.set({ - duration: duration - }); - instance.hide(); - }); - setIsAnyTippyOpen(true); - } - - function onHide(instance) { - instance._originalProps.onHide(instance); - - setIsAnyTippyOpen(false); - } - - function onShown(instance) { - instance._originalProps.onShown(instance); - - instance.set({ - duration: instance._originalProps.duration - }); - } - - function updateInstances() { - instances.forEach(function (instance) { - instance.set({ - onShow: onShow, - onShown: onShown, - onHide: onHide, - delay: isAnyTippyOpen ? [0, Array.isArray(delay) ? delay[1] : delay] : delay, - duration: isAnyTippyOpen ? duration : instance._originalProps.duration - }); - }); - } - - updateInstances(); - } - - var globalEventListenersBound = false; - /** - * Exported module - * @param {String|Element|Element[]|NodeList|Object} targets - * @param {Object} options - * @return {Object} - */ - - function tippy(targets, options) { - validateOptions(options, Defaults); - - if (!globalEventListenersBound) { - bindGlobalEventListeners(); - globalEventListenersBound = true; - } - - var props = _extends({}, Defaults, options); // If they are specifying a virtual positioning reference, we need to polyfill - // some native DOM props - - - if (isPlainObject(targets)) { - polyfillElementPrototypeProperties(targets); - } - - var instances = getArrayOfElements(targets).reduce(function (acc, reference) { - var instance = reference && createTippy(reference, props); - - if (instance) { - acc.push(instance); - } - - return acc; - }, []); - return isSingular(targets) ? instances[0] : instances; - } - /** - * Static props - */ - - - tippy.version = version; - tippy.defaults = Defaults; - /** - * Static methods - */ - - tippy.setDefaults = function (partialDefaults) { - Object.keys(partialDefaults).forEach(function (key) { - Defaults[key] = partialDefaults[key]; - }); - }; - - tippy.hideAll = hideAll; - tippy.group = group; - /** - * Auto-init tooltips for elements with a `data-tippy="..."` attribute - */ - - function autoInit() { - arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) { - var content = el.getAttribute('data-tippy'); - - if (content) { - tippy(el, { - content: content - }); - } - }); - } - - if (isBrowser) { - setTimeout(autoInit); - } - - /** - * Injects a string of CSS styles to a style node in - * @param {String} css - */ - - function injectCSS(css) { - if (isBrowser) { - var style = document.createElement('style'); - style.type = 'text/css'; - style.textContent = css; - var head = document.head; - var firstChild = head.firstChild; - - if (firstChild) { - head.insertBefore(style, firstChild); - } else { - head.appendChild(style); - } - } - } - - injectCSS(css); - - return tippy; - -})); -//# sourceMappingURL=index.all.js.map \ No newline at end of file diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index aa5c18113..217aa4c51 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -37,7 +37,7 @@ */ function eael_activated_modules() { - $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list', 'section-tooltip' ]; + $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ]; $eael_default_settings = array_fill_keys( $eael_default_keys, true ); $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); @@ -63,10 +63,6 @@ function add_eael_extensions() { if( $is_component_active['section-particles'] ) { require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; } - - if( $is_component_active['section-tooltip'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-tooltip-section/eael-tooltip-section.php'; - } } add_eael_extensions(); @@ -260,11 +256,6 @@ function essential_addons_el_enqueue(){ $preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php'; wp_localize_script( 'particles-js', 'ParticleThemesData', $preset_themes ); } - if( $is_component_active['section-tooltip'] ) { - wp_enqueue_style('essential_addons_tippy',ESSENTIAL_ADDONS_EL_URL.'assets/css/tippy.css'); - wp_enqueue_script('essential_addons_popper-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/popper.min.js', array('jquery'),'1.0', false); - wp_enqueue_script('essential_addons_tippy-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/tippy.min.js', array('jquery'),'1.0', false); - } } add_action( 'wp_enqueue_scripts', 'essential_addons_el_enqueue' ); diff --git a/extensions/eael-tooltip-section/eael-tooltip-section.php b/extensions/eael-tooltip-section/eael-tooltip-section.php deleted file mode 100755 index b3613fdc9..000000000 --- a/extensions/eael-tooltip-section/eael-tooltip-section.php +++ /dev/null @@ -1,449 +0,0 @@ -start_controls_section( - 'eael_tooltip_section', - [ - 'label' => __( 'EA Tooltip', 'essential-addons-elementor' ), - 'tab' => Controls_Manager::TAB_ADVANCED - ] - ); - - $element->add_control( - 'eael_tooltip_section_enable', - [ - 'label' => __( 'Enable Tooltip', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SWITCHER, - ] - ); - - $element->start_controls_tabs( 'eael_tooltip_tabs' ); - - $element->start_controls_tab( 'eael_tooltip_settings', [ - 'label' => __( 'Settings', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] ); - - $element->add_control( - 'eael_tooltip_section_content', - [ - 'label' => __( 'Content', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXT, - 'default' => __( 'I am a tooltip', 'essential-addons-elementor' ), - 'dynamic' => [ 'active' => true ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_position', - [ - 'label' => __( 'Position', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'top', - 'options' => [ - 'top' => __( 'Top', 'essential-addons-elementor' ), - 'bottom' => __( 'Bottom', 'essential-addons-elementor' ), - 'left' => __( 'Left', 'essential-addons-elementor' ), - 'right' => __( 'Right', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_animation', - [ - 'label' => __( 'Animation', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'scale', - 'options' => [ - 'shift-away' => __( 'Shift Away', 'essential-addons-elementor' ), - 'shift-toward' => __( 'Shift Toward', 'essential-addons-elementor' ), - 'scale' => __( 'Scale', 'essential-addons-elementor' ), - 'fade' => __( 'Fade', 'essential-addons-elementor' ), - 'perspective' => __( 'Perspective', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_arrow', - [ - 'label' => __( 'Arrow', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SWITCHER, - 'label_on' => __( 'Show', 'essential-addons-elementor' ), - 'label_off' => __( 'Hide', 'essential-addons-elementor' ), - 'return_value' => true, - 'default' => true, - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_arrow_type', - [ - 'label' => __( 'Arrow Type', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'sharp', - 'options' => [ - 'sharp' => __( 'Sharp', 'essential-addons-elementor' ), - 'round' => __( 'Round', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - 'eael_tooltip_section_arrow!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_trigger', - [ - 'label' => __( 'Trigger', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'mouseenter', - 'options' => [ - 'click' => __( 'Click', 'essential-addons-elementor' ), - 'mouseenter' => __( 'Hover', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_duration', - [ - 'label' => __( 'Duration', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'min' => 100, - 'max' => 1000, - 'step' => 10, - 'default' => 300, - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_delay', - [ - 'label' => __( 'Delay out (s)', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'min' => 100, - 'max' => 1000, - 'step' => 5, - 'default' => 400, - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_size', - [ - 'label' => __( 'Size', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'regular', - 'options' => [ - 'small' => __( 'Small', 'essential-addons-elementor' ), - 'regular' => __( 'Regular', 'essential-addons-elementor' ), - 'large' => __( 'Large', 'essential-addons-elementor' ), - ], - 'frontend_available' => true, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->end_controls_tab(); - - $element->start_controls_tab( 'eael_tooltip_section_styles', [ - 'label' => __( 'Styles', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] ); - - $element->add_group_control( - Group_Control_Typography::get_type(), - [ - 'name' => 'eael_tooltip_section_typography', - 'selector' => '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip', - 'scheme' => Scheme_Typography::TYPOGRAPHY_3, - 'separator' => 'after', - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_background_color', - [ - 'label' => __( 'Background Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#000000', - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip, .tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-backdrop' => 'background-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=top] .tippy-tooltip .tippy-arrow' => 'border-top-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=bottom] .tippy-tooltip .tippy-arrow' => 'border-bottom-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=left] .tippy-tooltip .tippy-arrow' => 'border-left-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"][x-placement^=right] .tippy-tooltip .tippy-arrow' => 'border-right-color: {{VALUE}};', - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip .tippy-roundarrow' => 'fill: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_color', - [ - 'label' => __( 'Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#ffffff', - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'color: {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_border_color', - [ - 'label' => __( 'Border Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '', - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border: 1px solid {{VALUE}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - 'eael_tooltip_section_arrow' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_border_radius', - [ - 'label' => __( 'Border Radius', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', '%' ], - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_distance', - [ - 'label' => __( 'Distance', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'min' => 05, - 'max' => 50, - 'step' => 2, - 'default' => 10, - 'label_block' => false, - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_padding', - [ - 'label' => __( 'Padding', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', 'em', '%' ], - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_group_control( - Group_Control_Box_Shadow::get_type(), - [ - 'name' => 'eael_tooltip_section_box_shadow', - 'selector' => '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip', - 'separator' => '', - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->add_control( - 'eael_tooltip_section_width', - [ - 'label' => __( 'Max Width', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'default' => [ - 'size' => '350', - ], - 'range' => [ - 'px' => [ - 'min' => 0, - 'max' => 500, - ], - ], - 'label_block' => false, - 'selectors' => [ - '.tippy-popper[data-tippy-popper-id="{{ID}}"] .tippy-tooltip' => 'max-width: {{SIZE}}{{UNIT}};', - ], - 'condition' => [ - 'eael_tooltip_section_enable!' => '', - ], - ] - ); - - $element->end_controls_tab(); - - $element->end_controls_tabs(); - - $element->end_controls_section(); - - } - - public function before_render( $element ) { - - $settings = $element->get_settings_for_display(); - - if ( $element->get_settings( 'eael_tooltip_section_enable' ) == 'yes' ) { - - $element->add_render_attribute( '_wrapper', [ - 'id' => 'eael-section-tooltip-' . $element->get_id(), - 'class' => 'eael-section-tooltip', - ] ); - } - - } - - public function after_render( $element ) { - - $data = $element->get_data(); - $settings = $element->get_settings_for_display(); - - $content = $settings['eael_tooltip_section_content']; - $position = $settings["eael_tooltip_section_position"]; - $animation = $settings['eael_tooltip_section_animation']; - $duration = $settings["eael_tooltip_section_duration"]; - $distance = $settings["eael_tooltip_section_distance"]; - $delay = $settings["eael_tooltip_section_delay"]; - $arrow = $settings["eael_tooltip_section_arrow"]; - $arrowType = $settings["eael_tooltip_section_arrow_type"]; - $size = $settings["eael_tooltip_section_size"]; - $trigger = $settings["eael_tooltip_section_trigger"]; - $width = $settings["eael_tooltip_section_width"]; - - if ( $settings['eael_tooltip_section_enable'] == 'yes' ) { - - ?> - - - - Date: Thu, 7 Mar 2019 11:07:32 +0600 Subject: [PATCH 14/19] particles zindex reduced for conflict --- assets/css/essential-addons-elementor.css | 2 +- assets/sass/_particles.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100755 => 100644 assets/css/essential-addons-elementor.css diff --git a/assets/css/essential-addons-elementor.css b/assets/css/essential-addons-elementor.css old mode 100755 new mode 100644 index c0571a654..115590387 --- a/assets/css/essential-addons-elementor.css +++ b/assets/css/essential-addons-elementor.css @@ -7535,7 +7535,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .elementor-section.eael-particles-section .elementor-container, .elementor-section .elementor-container { - z-index: 99; + z-index: 1; } .elementor-section.eael-particles-section > canvas { diff --git a/assets/sass/_particles.scss b/assets/sass/_particles.scss index 74abc47ff..1eef0f28c 100755 --- a/assets/sass/_particles.scss +++ b/assets/sass/_particles.scss @@ -1,6 +1,6 @@ .elementor-section.eael-particles-section .elementor-container, .elementor-section .elementor-container { - z-index: 99; + z-index: 1; } .elementor-section.eael-particles-section > canvas{ From cf87eb74194aaec39782a74cc0acd2831aa4c5ee Mon Sep 17 00:00:00 2001 From: Sabuz Date: Thu, 7 Mar 2019 15:03:54 +0600 Subject: [PATCH 15/19] Update _particles.scss --- assets/sass/_particles.scss | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/assets/sass/_particles.scss b/assets/sass/_particles.scss index 74abc47ff..0952486c4 100755 --- a/assets/sass/_particles.scss +++ b/assets/sass/_particles.scss @@ -1,6 +1,5 @@ -.elementor-section.eael-particles-section .elementor-container, -.elementor-section .elementor-container { - z-index: 99; +.elementor-section.eael-particles-section .elementor-container { + z-index: 1; } .elementor-section.eael-particles-section > canvas{ From 13d3cc21dc1c22a08c32fcfd2091634d4e3193ed Mon Sep 17 00:00:00 2001 From: Mahfuz Date: Thu, 7 Mar 2019 16:27:58 +0600 Subject: [PATCH 16/19] particles removed --- admin/partials/extensions.php | 32 - admin/settings.php | 4 +- essential_adons_elementor.php | 3 +- .../eael-particle-section.php | 129 ---- .../eael-particle-section/particle-themes.php | 554 ------------------ includes/class-eae-extensions.php | 45 -- includes/class-eae-scripts.php | 15 - includes/extensions.php | 46 -- 8 files changed, 2 insertions(+), 826 deletions(-) delete mode 100755 admin/partials/extensions.php delete mode 100755 extensions/eael-particle-section/eael-particle-section.php delete mode 100755 extensions/eael-particle-section/particle-themes.php delete mode 100644 includes/class-eae-extensions.php delete mode 100755 includes/extensions.php diff --git a/admin/partials/extensions.php b/admin/partials/extensions.php deleted file mode 100755 index e199cb71d..000000000 --- a/admin/partials/extensions.php +++ /dev/null @@ -1,32 +0,0 @@ -
-
-
- -

Available Extensions

-
- -
- eael_get_settings['section-particles'], true ); ?> > - -

-
- -
-

Premium Extensions

-
- -
- - -

-
- -
- - -
- -
-
-
-
\ No newline at end of file diff --git a/admin/settings.php b/admin/settings.php index 0d7470467..8f886278f 100755 --- a/admin/settings.php +++ b/admin/settings.php @@ -15,7 +15,7 @@ class Eael_Admin_Settings { * @since 2.3.0 */ - public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list']; + public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'feature-list']; /** * Will Contain All Components Default Values @@ -177,13 +177,11 @@ public function eael_admin_settings_page() {
diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index 5f921b542..d5e69391c 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -97,7 +97,6 @@ public function inclulde_files() { require_once $this->include_path('class-eae-elements.php'); require_once $this->include_path('class-plugin-usage-tracker.php'); require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php'; - require_once $this->include_path('extensions.php'); require_once dirname( __FILE__ ) . '/includes/class-wpdev-notices.php'; } @@ -108,7 +107,7 @@ public function inclulde_files() { */ public static function eael_activated_modules() { - $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ]; + $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'feature-list' ]; $eael_default_settings = array_fill_keys( $eael_default_keys, true ); $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings ); diff --git a/extensions/eael-particle-section/eael-particle-section.php b/extensions/eael-particle-section/eael-particle-section.php deleted file mode 100755 index e5d2fcea0..000000000 --- a/extensions/eael-particle-section/eael-particle-section.php +++ /dev/null @@ -1,129 +0,0 @@ -start_controls_section( - 'eael_particles_section', - [ - 'label' => 'EA Particles', - 'tab' => Controls_Manager::TAB_LAYOUT - ] - ); - - $element->add_control( - 'eael_particle_switch', - [ - 'label' => __( 'Enable Particles', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SWITCHER, - ] - ); - - $element->add_control( - 'eael_particle_theme_from', - [ - 'label' => __( 'Theme Source', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - 'presets' => [ - 'title' => __( 'Defaults', 'essential-addons-elementor' ), - 'icon' => 'fa fa-list', - ], - 'custom' => [ - 'title' => __( 'Custom', 'essential-addons-elementor' ), - 'icon' => 'fa fa-edit', - ], - ], - 'condition' => [ - 'eael_particle_switch' => 'yes' - ], - 'default' => 'presets' - ] - ); - - $element->add_control( - 'eael_particle_preset_themes', - [ - 'label' => esc_html__( 'Preset Themes', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'label_block' => true, - 'options' => [ - 11 => __( 'Default', 'essential-addons-elementor' ), - 'nasa' => __( 'Nasa', 'essential-addons-elementor' ), - 'bubble' => __( 'Bubble', 'essential-addons-elementor' ), - 'snow' => __( 'Snow', 'essential-addons-elementor' ), - 'nyan_cat' => __( 'Nyan Cat', 'essential-addons-elementor' ) - ], - 'default' => 11, - 'condition' => [ - 'eael_particle_theme_from' => 'presets', - 'eael_particle_switch' => 'yes' - ] - ] - ); - - $element->add_control( - 'eael_particles_custom_style', - [ - 'label' => __( 'Custom Style', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXTAREA, - 'description' => __( 'You can generate custom particles JSON code from Here!. Simply just past the JSON code above. For more queries Click Here!', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_particle_theme_from' => 'custom', - 'eael_particle_switch' => 'yes' - ] - ] - ); - - $element->add_control( - 'eael_particle_section_notice', - [ - 'raw' => __( 'You need to configure a Background Type to see this in full effect. You can do this by switching to the Style Tab.', 'essential-addons-elementor' ), - 'type' => Controls_Manager::RAW_HTML, - 'condition' => [ - 'eael_particle_theme_from' => 'custom', - 'eael_particle_switch' => 'yes' - ] - ] - ); - - $element->end_controls_section(); - -} - -function before_render( $element ) { - $settings = $element->get_settings_for_display(); - - if( $settings['eael_particle_switch'] == 'yes' ){ - - $element->add_render_attribute( - '_wrapper','id', - 'eael-section-particles-' . $element->get_id() - ); - - - $preset_themes = include('particle-themes.php'); - if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'presets') { - $theme = $preset_themes[ $settings['eael_particle_preset_themes'] ]; - $element->add_render_attribute('_wrapper', 'data-theme', $theme); - } - - if( - isset($settings['eael_particle_theme_from']) - && $settings['eael_particle_theme_from'] == 'custom' - ) { - $element->add_render_attribute('_wrapper', 'data-theme', $settings['eael_particles_custom_style']); - } - - } - -} diff --git a/extensions/eael-particle-section/particle-themes.php b/extensions/eael-particle-section/particle-themes.php deleted file mode 100755 index a092981fb..000000000 --- a/extensions/eael-particle-section/particle-themes.php +++ /dev/null @@ -1,554 +0,0 @@ - '{ - "particles": { - "number": { - "value": 160, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.5, - "random": false, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 3, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": true, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 6, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "repulse" - }, - "onclick": { - "enable": true, - "mode": "push" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true - }', - 'nasa' => '{ - "particles": { - "number": { - "value": 250, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 1, - "random": true, - "anim": { - "enable": true, - "speed": 1, - "opacity_min": 0, - "sync": false - } - }, - "size": { - "value": 3, - "random": true, - "anim": { - "enable": false, - "speed": 4, - "size_min": 0.3, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 1, - "direction": "none", - "random": true, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 600 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "bubble" - }, - "onclick": { - "enable": true, - "mode": "repulse" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 250, - "size": 0, - "duration": 2, - "opacity": 0, - "speed": 3 - }, - "repulse": { - "distance": 400, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true - }', - 'bubble' => '{ - "particles": { - "number": { - "value": 15, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#1b1e34" - }, - "shape": { - "type": "polygon", - "stroke": { - "width": 0, - "color": "#000" - }, - "polygon": { - "nb_sides": 6 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.3, - "random": true, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 50, - "random": false, - "anim": { - "enable": true, - "speed": 10, - "size_min": 40, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 200, - "color": "#ffffff", - "opacity": 1, - "width": 2 - }, - "move": { - "enable": true, - "speed": 8, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": false, - "mode": "grab" - }, - "onclick": { - "enable": false, - "mode": "push" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true - }', - 'snow' => '{ - "particles": { - "number": { - "value": 450, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#fff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.5, - "random": true, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 5, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 500, - "color": "#ffffff", - "opacity": 0.4, - "width": 2 - }, - "move": { - "enable": true, - "speed": 6, - "direction": "bottom", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "bubble" - }, - "onclick": { - "enable": true, - "mode": "repulse" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 0.5 - } - }, - "bubble": { - "distance": 400, - "size": 4, - "duration": 0.3, - "opacity": 1, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true - }', - 'nyan_cat' => '{ - "particles": { - "number": { - "value": 150, - "density": { - "enable": false, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "star", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "http://wiki.lexisnexis.com/academic/images/f/fb/Itunes_podcast_icon_300.jpg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.5, - "random": false, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 4, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 14, - "direction": "left", - "random": false, - "straight": true, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": false, - "mode": "grab" - }, - "onclick": { - "enable": true, - "mode": "repulse" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 200, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true - }' -]; diff --git a/includes/class-eae-extensions.php b/includes/class-eae-extensions.php deleted file mode 100644 index d9dcc4963..000000000 --- a/includes/class-eae-extensions.php +++ /dev/null @@ -1,45 +0,0 @@ -add_eael_extensions(); - } - - /** - * Load acivate or deactivate Modules - * - * @since v1.0.0 - */ - public function add_eael_extensions() { - $is_component_active = Essential_Addons_EL::eael_activated_modules(); - - if( $is_component_active['section-particles'] ) { - require_once ESSENTIAL_ADDONS_EL_PATH .'extensions/eael-particle-section/eael-particle-section.php'; - } - } - } -} - -Essential_Addons_Extensions::get_instance(); \ No newline at end of file diff --git a/includes/class-eae-scripts.php b/includes/class-eae-scripts.php index 6160582a9..a3ee727b7 100644 --- a/includes/class-eae-scripts.php +++ b/includes/class-eae-scripts.php @@ -173,21 +173,6 @@ public function essential_addons_el_enqueue(){ array('jquery'),'1.0', true ); } - - if( $is_component_active['section-particles'] ) { - wp_enqueue_script( - 'particles-js', - ESSENTIAL_ADDONS_EL_URL.'assets/js/particles.js', - ['jquery'], '1.0', true - ); - - $preset_themes = require ESSENTIAL_ADDONS_EL_PATH.'extensions/eael-particle-section/particle-themes.php'; - wp_localize_script( - 'particles-js', - 'ParticleThemesData', - $preset_themes - ); - } } } diff --git a/includes/extensions.php b/includes/extensions.php deleted file mode 100755 index ffe3018c7..000000000 --- a/includes/extensions.php +++ /dev/null @@ -1,46 +0,0 @@ -reflection = new \ReflectionClass( $this ); - } - -} \ No newline at end of file From 7c41b4131acc72d33e22bcbd5e01b58c1ad81e51 Mon Sep 17 00:00:00 2001 From: Mahfuz Date: Thu, 7 Mar 2019 17:16:42 +0600 Subject: [PATCH 17/19] only particles removed --- admin/partials/extensions.php | 32 ++++++++ admin/settings.php | 2 + assets/css/essential-addons-elementor.css | 10 --- assets/js/eael-scripts.js | 82 --------------------- assets/js/particles.js | 5 -- assets/sass/_particles.scss | 8 -- assets/sass/essential-addons-elementor.scss | 1 - 7 files changed, 34 insertions(+), 106 deletions(-) create mode 100644 admin/partials/extensions.php delete mode 100755 assets/js/particles.js delete mode 100755 assets/sass/_particles.scss diff --git a/admin/partials/extensions.php b/admin/partials/extensions.php new file mode 100644 index 000000000..06e51044d --- /dev/null +++ b/admin/partials/extensions.php @@ -0,0 +1,32 @@ +
+
+
+ + +

Premium Extensions

+
+ +
+ + +

+
+ +
+ + +

+
+ +
+ + +
+ +
+
+
+
\ No newline at end of file diff --git a/admin/settings.php b/admin/settings.php index 8f886278f..df2c4818a 100755 --- a/admin/settings.php +++ b/admin/settings.php @@ -177,11 +177,13 @@ public function eael_admin_settings_page() { diff --git a/assets/css/essential-addons-elementor.css b/assets/css/essential-addons-elementor.css index 115590387..fd41b13f3 100644 --- a/assets/css/essential-addons-elementor.css +++ b/assets/css/essential-addons-elementor.css @@ -7533,16 +7533,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { transform: none; } } -.elementor-section.eael-particles-section .elementor-container, -.elementor-section .elementor-container { - z-index: 1; -} - -.elementor-section.eael-particles-section > canvas { - position: absolute; - top: 0; -} - /*----------------------------*/ /* 35. Feature List /*----------------------------*/ diff --git a/assets/js/eael-scripts.js b/assets/js/eael-scripts.js index 4f56b94c5..757e87037 100755 --- a/assets/js/eael-scripts.js +++ b/assets/js/eael-scripts.js @@ -575,87 +575,6 @@ var ProgressBar = function ($scope, $) { $('.eael-progressbar', $scope).eaelProgressBar() }; - - /*=================================*/ - /* 36. Section Particles - /*=================================*/ - var EaelParticlesHandler = function ($scope, $) { - var sectionId = $scope.data('id'), - editMode = elementorFrontend.isEditMode(), - theme = $scope.data('theme'), - settings; - - $scope.addClass('eael-particles-section'); - - if (editMode) { - var editorElements = null, - particleArgs = {}, - settings = {}; - - if (!window.elementor.hasOwnProperty('elements')) { - return false; - } - - editorElements = window.elementor.elements; - - if (!editorElements.models) { - return false; - } - - $.each(editorElements.models, function (i, el) { - if (sectionId == el.id) { - particleArgs = el.attributes.settings.attributes; - - } else if (el.id == $scope.closest('.elementor-top-section').data('id')) { - $.each(el.attributes.elements.models, function (i, col) { - $.each(col.attributes.elements.models, function (i, subSec) { - particleArgs = subSec.attributes.settings.attributes; - }); - }); - } - }); - - settings.switch = particleArgs['eael_particle_switch']; - settings.themeSource = particleArgs['eael_particle_theme_from']; - - if (settings.themeSource == 'presets') { - settings.selected_theme = (ParticleThemesData[particleArgs['eael_particle_preset_themes']]); - } - - if ((settings.themeSource == 'custom') && ('' !== particleArgs['eael_particles_custom_style'])) { - settings.selected_theme = particleArgs['eael_particles_custom_style']; - } - - if (0 !== settings.length) { - settings = settings; - } - } else { - if (typeof theme != 'undefined' && theme !== '') { - particlesJS('eael-section-particles-' + sectionId, theme); - } - } - - if (!editMode || !settings) { - return false; - } - - if (settings.switch == 'yes') { - - if (settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) { - $scope.attr('id', 'eael-section-particles-' + sectionId); - if (typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) { - particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme)); - $scope.children('canvas.particles-js-canvas-el').css({ - position: 'absolute', - top: 0 - }); - } - } - } else { - $scope.removeClass('eael-particles-section'); - } - - }; $(window).on('elementor/frontend/init', function () { if(elementorFrontend.isEditMode()) { @@ -674,7 +593,6 @@ elementorFrontend.hooks.addAction('frontend/element_ready/eael-image-accordion.default', ImageAccordion); elementorFrontend.hooks.addAction('frontend/element_ready/eael-countdown.default', CountDown); elementorFrontend.hooks.addAction('frontend/element_ready/eael-progress-bar.default', ProgressBar); - elementorFrontend.hooks.addAction( 'frontend/element_ready/section', EaelParticlesHandler ); }); }(jQuery)); \ No newline at end of file diff --git a/assets/js/particles.js b/assets/js/particles.js deleted file mode 100755 index c73969351..000000000 --- a/assets/js/particles.js +++ /dev/null @@ -1,5 +0,0 @@ -/* -/* Author : Vincent Garreau - vincentgarreau.com -/* MIT license: http://opensource.org/licenses/MIT -*/ -function hexToRgb(e){var a=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(a,function(e,a,t,i){return a+a+t+t+i+i});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function clamp(e,a,t){return Math.min(Math.max(e,a),t)}function isInArray(e,a){return a.indexOf(e)>-1}var pJS=function(e,a){var t=document.querySelector("#"+e+" > .particles-js-canvas-el");this.pJS={canvas:{el:t,w:t.offsetWidth,h:t.offsetHeight},particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:"circle",stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},image:{src:"",width:100,height:100}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}},array:[]},interactivity:{detect_on:"canvas",events:{onhover:{enable:!0,mode:"grab"},onclick:{enable:!0,mode:"push"},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}},mouse:{}},retina_detect:!1,fn:{interact:{},modes:{},vendors:{}},tmp:{}};var i=this.pJS;a&&Object.deepExtend(i,a),i.tmp.obj={size_value:i.particles.size.value,size_anim_speed:i.particles.size.anim.speed,move_speed:i.particles.move.speed,line_linked_distance:i.particles.line_linked.distance,line_linked_width:i.particles.line_linked.width,mode_grab_distance:i.interactivity.modes.grab.distance,mode_bubble_distance:i.interactivity.modes.bubble.distance,mode_bubble_size:i.interactivity.modes.bubble.size,mode_repulse_distance:i.interactivity.modes.repulse.distance},i.fn.retinaInit=function(){i.retina_detect&&window.devicePixelRatio>1?(i.canvas.pxratio=window.devicePixelRatio,i.tmp.retina=!0):(i.canvas.pxratio=1,i.tmp.retina=!1),i.canvas.w=i.canvas.el.offsetWidth*i.canvas.pxratio,i.canvas.h=i.canvas.el.offsetHeight*i.canvas.pxratio,i.particles.size.value=i.tmp.obj.size_value*i.canvas.pxratio,i.particles.size.anim.speed=i.tmp.obj.size_anim_speed*i.canvas.pxratio,i.particles.move.speed=i.tmp.obj.move_speed*i.canvas.pxratio,i.particles.line_linked.distance=i.tmp.obj.line_linked_distance*i.canvas.pxratio,i.interactivity.modes.grab.distance=i.tmp.obj.mode_grab_distance*i.canvas.pxratio,i.interactivity.modes.bubble.distance=i.tmp.obj.mode_bubble_distance*i.canvas.pxratio,i.particles.line_linked.width=i.tmp.obj.line_linked_width*i.canvas.pxratio,i.interactivity.modes.bubble.size=i.tmp.obj.mode_bubble_size*i.canvas.pxratio,i.interactivity.modes.repulse.distance=i.tmp.obj.mode_repulse_distance*i.canvas.pxratio},i.fn.canvasInit=function(){i.canvas.ctx=i.canvas.el.getContext("2d")},i.fn.canvasSize=function(){i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i&&i.interactivity.events.resize&&window.addEventListener("resize",function(){i.canvas.w=i.canvas.el.offsetWidth,i.canvas.h=i.canvas.el.offsetHeight,i.tmp.retina&&(i.canvas.w*=i.canvas.pxratio,i.canvas.h*=i.canvas.pxratio),i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i.particles.move.enable||(i.fn.particlesEmpty(),i.fn.particlesCreate(),i.fn.particlesDraw(),i.fn.vendors.densityAutoParticles()),i.fn.vendors.densityAutoParticles()})},i.fn.canvasPaint=function(){i.canvas.ctx.fillRect(0,0,i.canvas.w,i.canvas.h)},i.fn.canvasClear=function(){i.canvas.ctx.clearRect(0,0,i.canvas.w,i.canvas.h)},i.fn.particle=function(e,a,t){if(this.radius=(i.particles.size.random?Math.random():1)*i.particles.size.value,i.particles.size.anim.enable&&(this.size_status=!1,this.vs=i.particles.size.anim.speed/100,i.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=t?t.x:Math.random()*i.canvas.w,this.y=t?t.y:Math.random()*i.canvas.h,this.x>i.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>i.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),i.particles.move.bounce&&i.fn.vendors.checkOverlap(this,t),this.color={},"object"==typeof e.value)if(e.value instanceof Array){var s=e.value[Math.floor(Math.random()*i.particles.color.value.length)];this.color.rgb=hexToRgb(s)}else void 0!=e.value.r&&void 0!=e.value.g&&void 0!=e.value.b&&(this.color.rgb={r:e.value.r,g:e.value.g,b:e.value.b}),void 0!=e.value.h&&void 0!=e.value.s&&void 0!=e.value.l&&(this.color.hsl={h:e.value.h,s:e.value.s,l:e.value.l});else"random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:"string"==typeof e.value&&(this.color=e,this.color.rgb=hexToRgb(this.color.value));this.opacity=(i.particles.opacity.random?Math.random():1)*i.particles.opacity.value,i.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=i.particles.opacity.anim.speed/100,i.particles.opacity.anim.sync||(this.vo=this.vo*Math.random()));var n={};switch(i.particles.move.direction){case"top":n={x:0,y:-1};break;case"top-right":n={x:.5,y:-.5};break;case"right":n={x:1,y:-0};break;case"bottom-right":n={x:.5,y:.5};break;case"bottom":n={x:0,y:1};break;case"bottom-left":n={x:-.5,y:1};break;case"left":n={x:-1,y:0};break;case"top-left":n={x:-.5,y:-.5};break;default:n={x:0,y:0}}i.particles.move.straight?(this.vx=n.x,this.vy=n.y,i.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=n.x+Math.random()-.5,this.vy=n.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var r=i.particles.shape.type;if("object"==typeof r){if(r instanceof Array){var c=r[Math.floor(Math.random()*r.length)];this.shape=c}}else this.shape=r;if("image"==this.shape){var o=i.particles.shape;this.img={src:o.image.src,ratio:o.image.width/o.image.height},this.img.ratio||(this.img.ratio=1),"svg"==i.tmp.img_type&&void 0!=i.tmp.source_svg&&(i.fn.vendors.createSvgImg(this),i.tmp.pushing&&(this.img.loaded=!1))}},i.fn.particle.prototype.draw=function(){function e(){i.canvas.ctx.drawImage(r,a.x-t,a.y-t,2*t,2*t/a.img.ratio)}var a=this;if(void 0!=a.radius_bubble)var t=a.radius_bubble;else var t=a.radius;if(void 0!=a.opacity_bubble)var s=a.opacity_bubble;else var s=a.opacity;if(a.color.rgb)var n="rgba("+a.color.rgb.r+","+a.color.rgb.g+","+a.color.rgb.b+","+s+")";else var n="hsla("+a.color.hsl.h+","+a.color.hsl.s+"%,"+a.color.hsl.l+"%,"+s+")";switch(i.canvas.ctx.fillStyle=n,i.canvas.ctx.beginPath(),a.shape){case"circle":i.canvas.ctx.arc(a.x,a.y,t,0,2*Math.PI,!1);break;case"edge":i.canvas.ctx.rect(a.x-t,a.y-t,2*t,2*t);break;case"triangle":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t,a.y+t/1.66,2*t,3,2);break;case"polygon":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t/(i.particles.shape.polygon.nb_sides/3.5),a.y-t/.76,2.66*t/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,1);break;case"star":i.fn.vendors.drawShape(i.canvas.ctx,a.x-2*t/(i.particles.shape.polygon.nb_sides/4),a.y-t/1.52,2*t*2.66/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,2);break;case"image":if("svg"==i.tmp.img_type)var r=a.img.obj;else var r=i.tmp.img_obj;r&&e()}i.canvas.ctx.closePath(),i.particles.shape.stroke.width>0&&(i.canvas.ctx.strokeStyle=i.particles.shape.stroke.color,i.canvas.ctx.lineWidth=i.particles.shape.stroke.width,i.canvas.ctx.stroke()),i.canvas.ctx.fill()},i.fn.particlesCreate=function(){for(var e=0;e=i.particles.opacity.value&&(a.opacity_status=!1),a.opacity+=a.vo):(a.opacity<=i.particles.opacity.anim.opacity_min&&(a.opacity_status=!0),a.opacity-=a.vo),a.opacity<0&&(a.opacity=0)),i.particles.size.anim.enable&&(1==a.size_status?(a.radius>=i.particles.size.value&&(a.size_status=!1),a.radius+=a.vs):(a.radius<=i.particles.size.anim.size_min&&(a.size_status=!0),a.radius-=a.vs),a.radius<0&&(a.radius=0)),"bounce"==i.particles.move.out_mode)var s={x_left:a.radius,x_right:i.canvas.w,y_top:a.radius,y_bottom:i.canvas.h};else var s={x_left:-a.radius,x_right:i.canvas.w+a.radius,y_top:-a.radius,y_bottom:i.canvas.h+a.radius};switch(a.x-a.radius>i.canvas.w?(a.x=s.x_left,a.y=Math.random()*i.canvas.h):a.x+a.radius<0&&(a.x=s.x_right,a.y=Math.random()*i.canvas.h),a.y-a.radius>i.canvas.h?(a.y=s.y_top,a.x=Math.random()*i.canvas.w):a.y+a.radius<0&&(a.y=s.y_bottom,a.x=Math.random()*i.canvas.w),i.particles.move.out_mode){case"bounce":a.x+a.radius>i.canvas.w?a.vx=-a.vx:a.x-a.radius<0&&(a.vx=-a.vx),a.y+a.radius>i.canvas.h?a.vy=-a.vy:a.y-a.radius<0&&(a.vy=-a.vy)}if(isInArray("grab",i.interactivity.events.onhover.mode)&&i.fn.modes.grabParticle(a),(isInArray("bubble",i.interactivity.events.onhover.mode)||isInArray("bubble",i.interactivity.events.onclick.mode))&&i.fn.modes.bubbleParticle(a),(isInArray("repulse",i.interactivity.events.onhover.mode)||isInArray("repulse",i.interactivity.events.onclick.mode))&&i.fn.modes.repulseParticle(a),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var n=e+1;n0){var c=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+c.r+","+c.g+","+c.b+","+r+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(a.x,a.y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}},i.fn.interact.attractParticles=function(e,a){var t=e.x-a.x,s=e.y-a.y,n=Math.sqrt(t*t+s*s);if(n<=i.particles.line_linked.distance){var r=t/(1e3*i.particles.move.attract.rotateX),c=s/(1e3*i.particles.move.attract.rotateY);e.vx-=r,e.vy-=c,a.vx+=r,a.vy+=c}},i.fn.interact.bounceParticles=function(e,a){var t=e.x-a.x,i=e.y-a.y,s=Math.sqrt(t*t+i*i),n=e.radius+a.radius;n>=s&&(e.vx=-e.vx,e.vy=-e.vy,a.vx=-a.vx,a.vy=-a.vy)},i.fn.modes.pushParticles=function(e,a){i.tmp.pushing=!0;for(var t=0;e>t;t++)i.particles.array.push(new i.fn.particle(i.particles.color,i.particles.opacity.value,{x:a?a.pos_x:Math.random()*i.canvas.w,y:a?a.pos_y:Math.random()*i.canvas.h})),t==e-1&&(i.particles.move.enable||i.fn.particlesDraw(),i.tmp.pushing=!1)},i.fn.modes.removeParticles=function(e){i.particles.array.splice(0,e),i.particles.move.enable||i.fn.particlesDraw()},i.fn.modes.bubbleParticle=function(e){function a(){e.opacity_bubble=e.opacity,e.radius_bubble=e.radius}function t(a,t,s,n,c){if(a!=t)if(i.tmp.bubble_duration_end){if(void 0!=s){var o=n-p*(n-a)/i.interactivity.modes.bubble.duration,l=a-o;d=a+l,"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else if(r<=i.interactivity.modes.bubble.distance){if(void 0!=s)var v=s;else var v=n;if(v!=a){var d=n-p*(n-a)/i.interactivity.modes.bubble.duration;"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else"size"==c&&(e.radius_bubble=void 0),"opacity"==c&&(e.opacity_bubble=void 0)}if(i.interactivity.events.onhover.enable&&isInArray("bubble",i.interactivity.events.onhover.mode)){var s=e.x-i.interactivity.mouse.pos_x,n=e.y-i.interactivity.mouse.pos_y,r=Math.sqrt(s*s+n*n),c=1-r/i.interactivity.modes.bubble.distance;if(r<=i.interactivity.modes.bubble.distance){if(c>=0&&"mousemove"==i.interactivity.status){if(i.interactivity.modes.bubble.size!=i.particles.size.value)if(i.interactivity.modes.bubble.size>i.particles.size.value){var o=e.radius+i.interactivity.modes.bubble.size*c;o>=0&&(e.radius_bubble=o)}else{var l=e.radius-i.interactivity.modes.bubble.size,o=e.radius-l*c;o>0?e.radius_bubble=o:e.radius_bubble=0}if(i.interactivity.modes.bubble.opacity!=i.particles.opacity.value)if(i.interactivity.modes.bubble.opacity>i.particles.opacity.value){var v=i.interactivity.modes.bubble.opacity*c;v>e.opacity&&v<=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}else{var v=e.opacity-(i.particles.opacity.value-i.interactivity.modes.bubble.opacity)*c;v=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}}}else a();"mouseleave"==i.interactivity.status&&a()}else if(i.interactivity.events.onclick.enable&&isInArray("bubble",i.interactivity.events.onclick.mode)){if(i.tmp.bubble_clicking){var s=e.x-i.interactivity.mouse.click_pos_x,n=e.y-i.interactivity.mouse.click_pos_y,r=Math.sqrt(s*s+n*n),p=((new Date).getTime()-i.interactivity.mouse.click_time)/1e3;p>i.interactivity.modes.bubble.duration&&(i.tmp.bubble_duration_end=!0),p>2*i.interactivity.modes.bubble.duration&&(i.tmp.bubble_clicking=!1,i.tmp.bubble_duration_end=!1)}i.tmp.bubble_clicking&&(t(i.interactivity.modes.bubble.size,i.particles.size.value,e.radius_bubble,e.radius,"size"),t(i.interactivity.modes.bubble.opacity,i.particles.opacity.value,e.opacity_bubble,e.opacity,"opacity"))}},i.fn.modes.repulseParticle=function(e){function a(){var a=Math.atan2(d,p);if(e.vx=u*Math.cos(a),e.vy=u*Math.sin(a),"bounce"==i.particles.move.out_mode){var t={x:e.x+e.vx,y:e.y+e.vy};t.x+e.radius>i.canvas.w?e.vx=-e.vx:t.x-e.radius<0&&(e.vx=-e.vx),t.y+e.radius>i.canvas.h?e.vy=-e.vy:t.y-e.radius<0&&(e.vy=-e.vy)}}if(i.interactivity.events.onhover.enable&&isInArray("repulse",i.interactivity.events.onhover.mode)&&"mousemove"==i.interactivity.status){var t=e.x-i.interactivity.mouse.pos_x,s=e.y-i.interactivity.mouse.pos_y,n=Math.sqrt(t*t+s*s),r={x:t/n,y:s/n},c=i.interactivity.modes.repulse.distance,o=100,l=clamp(1/c*(-1*Math.pow(n/c,2)+1)*c*o,0,50),v={x:e.x+r.x*l,y:e.y+r.y*l};"bounce"==i.particles.move.out_mode?(v.x-e.radius>0&&v.x+e.radius0&&v.y+e.radius=m&&a()}else 0==i.tmp.repulse_clicking&&(e.vx=e.vx_i,e.vy=e.vy_i)},i.fn.modes.grabParticle=function(e){if(i.interactivity.events.onhover.enable&&"mousemove"==i.interactivity.status){var a=e.x-i.interactivity.mouse.pos_x,t=e.y-i.interactivity.mouse.pos_y,s=Math.sqrt(a*a+t*t);if(s<=i.interactivity.modes.grab.distance){var n=i.interactivity.modes.grab.line_linked.opacity-s/(1/i.interactivity.modes.grab.line_linked.opacity)/i.interactivity.modes.grab.distance;if(n>0){var r=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+r.r+","+r.g+","+r.b+","+n+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(i.interactivity.mouse.pos_x,i.interactivity.mouse.pos_y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}}},i.fn.vendors.eventsListeners=function(){"window"==i.interactivity.detect_on?i.interactivity.el=window:i.interactivity.el=i.canvas.el,(i.interactivity.events.onhover.enable||i.interactivity.events.onclick.enable)&&(i.interactivity.el.addEventListener("mousemove",function(e){if(i.interactivity.el==window)var a=e.clientX,t=e.clientY;else var a=e.offsetX||e.clientX,t=e.offsetY||e.clientY;i.interactivity.mouse.pos_x=a,i.interactivity.mouse.pos_y=t,i.tmp.retina&&(i.interactivity.mouse.pos_x*=i.canvas.pxratio,i.interactivity.mouse.pos_y*=i.canvas.pxratio),i.interactivity.status="mousemove"}),i.interactivity.el.addEventListener("mouseleave",function(e){i.interactivity.mouse.pos_x=null,i.interactivity.mouse.pos_y=null,i.interactivity.status="mouseleave"})),i.interactivity.events.onclick.enable&&i.interactivity.el.addEventListener("click",function(){if(i.interactivity.mouse.click_pos_x=i.interactivity.mouse.pos_x,i.interactivity.mouse.click_pos_y=i.interactivity.mouse.pos_y,i.interactivity.mouse.click_time=(new Date).getTime(),i.interactivity.events.onclick.enable)switch(i.interactivity.events.onclick.mode){case"push":i.particles.move.enable?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):1==i.interactivity.modes.push.particles_nb?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):i.interactivity.modes.push.particles_nb>1&&i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb);break;case"remove":i.fn.modes.removeParticles(i.interactivity.modes.remove.particles_nb);break;case"bubble":i.tmp.bubble_clicking=!0;break;case"repulse":i.tmp.repulse_clicking=!0,i.tmp.repulse_count=0,i.tmp.repulse_finish=!1,setTimeout(function(){i.tmp.repulse_clicking=!1},1e3*i.interactivity.modes.repulse.duration)}})},i.fn.vendors.densityAutoParticles=function(){if(i.particles.number.density.enable){var e=i.canvas.el.width*i.canvas.el.height/1e3;i.tmp.retina&&(e/=2*i.canvas.pxratio);var a=e*i.particles.number.value/i.particles.number.density.value_area,t=i.particles.array.length-a;0>t?i.fn.modes.pushParticles(Math.abs(t)):i.fn.modes.removeParticles(t)}},i.fn.vendors.checkOverlap=function(e,a){for(var t=0;tv;v++)e.lineTo(i,0),e.translate(i,0),e.rotate(l);e.fill(),e.restore()},i.fn.vendors.exportImg=function(){window.open(i.canvas.el.toDataURL("image/png"),"_blank")},i.fn.vendors.loadImg=function(e){if(i.tmp.img_error=void 0,""!=i.particles.shape.image.src)if("svg"==e){var a=new XMLHttpRequest;a.open("GET",i.particles.shape.image.src),a.onreadystatechange=function(e){4==a.readyState&&(200==a.status?(i.tmp.source_svg=e.currentTarget.response,i.fn.vendors.checkBeforeDraw()):(console.log("Error pJS - Image not found"),i.tmp.img_error=!0))},a.send()}else{var t=new Image;t.addEventListener("load",function(){i.tmp.img_obj=t,i.fn.vendors.checkBeforeDraw()}),t.src=i.particles.shape.image.src}else console.log("Error pJS - No image.src"),i.tmp.img_error=!0},i.fn.vendors.draw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type?i.tmp.count_svg>=i.particles.number.value?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):void 0!=i.tmp.img_obj?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame))},i.fn.vendors.checkBeforeDraw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type&&void 0==i.tmp.source_svg?i.tmp.checkAnimFrame=requestAnimFrame(check):(cancelRequestAnimFrame(i.tmp.checkAnimFrame),i.tmp.img_error||(i.fn.vendors.init(),i.fn.vendors.draw())):(i.fn.vendors.init(),i.fn.vendors.draw())},i.fn.vendors.init=function(){i.fn.retinaInit(),i.fn.canvasInit(),i.fn.canvasSize(),i.fn.canvasPaint(),i.fn.particlesCreate(),i.fn.vendors.densityAutoParticles(),i.particles.line_linked.color_rgb_line=hexToRgb(i.particles.line_linked.color)},i.fn.vendors.start=function(){isInArray("image",i.particles.shape.type)?(i.tmp.img_type=i.particles.shape.image.src.substr(i.particles.shape.image.src.length-3),i.fn.vendors.loadImg(i.tmp.img_type)):i.fn.vendors.checkBeforeDraw()},i.fn.vendors.eventsListeners(),i.fn.vendors.start()};Object.deepExtend=function(e,a){for(var t in a)a[t]&&a[t].constructor&&a[t].constructor===Object?(e[t]=e[t]||{},arguments.callee(e[t],a[t])):e[t]=a[t];return e},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),window.cancelRequestAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),window.pJSDom=[],window.particlesJS=function(e,a){"string"!=typeof e&&(a=e,e="particles-js"),e||(e="particles-js");var t=document.getElementById(e),i="particles-js-canvas-el",s=t.getElementsByClassName(i);if(s.length)for(;s.length>0;)t.removeChild(s[0]);var n=document.createElement("canvas");n.className=i,n.style.width="100%",n.style.height="100%";var r=document.getElementById(e).appendChild(n);null!=r&&pJSDom.push(new pJS(e,a))},window.particlesJS.load=function(e,a,t){var i=new XMLHttpRequest;i.open("GET",a),i.onreadystatechange=function(a){if(4==i.readyState)if(200==i.status){var s=JSON.parse(a.currentTarget.response);window.particlesJS(e,s),t&&t()}else console.log("Error pJS - XMLHttpRequest status: "+i.status),console.log("Error pJS - File config not found")},i.send()}; \ No newline at end of file diff --git a/assets/sass/_particles.scss b/assets/sass/_particles.scss deleted file mode 100755 index 0952486c4..000000000 --- a/assets/sass/_particles.scss +++ /dev/null @@ -1,8 +0,0 @@ -.elementor-section.eael-particles-section .elementor-container { - z-index: 1; -} - -.elementor-section.eael-particles-section > canvas{ - position: absolute; - top:0; -} \ No newline at end of file diff --git a/assets/sass/essential-addons-elementor.scss b/assets/sass/essential-addons-elementor.scss index 8c7897385..60d7f2c9f 100755 --- a/assets/sass/essential-addons-elementor.scss +++ b/assets/sass/essential-addons-elementor.scss @@ -80,5 +80,4 @@ @import "tooltip"; @import "progress-bar"; @import "img-accordion"; -@import "particles"; @import "feature-list"; From 236f8d3892b3d6a54e3bd80f90ed26af42490583 Mon Sep 17 00:00:00 2001 From: Rupok Date: Thu, 7 Mar 2019 17:29:57 +0600 Subject: [PATCH 18/19] update to v2.9.9 --- essential_adons_elementor.php | 6 +++--- readme.txt | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/essential_adons_elementor.php b/essential_adons_elementor.php index 5f921b542..ac434a6d4 100755 --- a/essential_adons_elementor.php +++ b/essential_adons_elementor.php @@ -4,7 +4,7 @@ * Description: The ultimate elements library for Elementor page builder plugin for WordPress. * Plugin URI: https://essential-addons.com/elementor/ * Author: WPDeveloper - * Version: 2.9.8 + * Version: 2.9.9 * Author URI: https://wpdeveloper.net/ * * Text Domain: essential-addons-elementor @@ -78,8 +78,8 @@ public function define_constants() { define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) ); define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) ); define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ ); - define( 'ESSENTIAL_ADDONS_VERSION', '2.9.8' ); - define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.8' ); + define( 'ESSENTIAL_ADDONS_VERSION', '2.9.9' ); + define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.9' ); define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) ); } diff --git a/readme.txt b/readme.txt index 60febe203..771a7c89b 100755 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: elementor, elements, addons, elementor addon, elementor widget, page build Requires at least: 4.0 Tested up to: 5.1 Requires PHP: 5.4 -Stable tag: 2.9.8 +Stable tag: 2.9.9 License: GPLv3 License URI: https://opensource.org/licenses/GPL-3.0 @@ -36,7 +36,7 @@ We have extra-ordinary support team ready to help you. Ask your questions in the ### [Elementor](https://wordpress.org/plugins/elementor/) page builder is required for this plugin. -### 28+ FREE WIDGETS AND COUNTING +### 29+ FREE WIDGETS AND COUNTING We have designed 29 of the most useful widgets to enhance your Elementor Page Building experience and allow you to climb the top of your design capabilities. @@ -68,10 +68,7 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu 26. [Advanced Tabs](https://essential-addons.com/elementor/advanced-tabs/) - Include tab to put information in different styles. Supports nested tabs. 27. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions. 28. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles - -Extensions: - -1. [Particle Effect](https://essential-addons.com/elementor/particle-effect/) - Add creative particle effects to your section, your visitors will love it. +29. [Feature List](https://essential-addons.com/elementor/feature-list/) - Display feature lists with icon and images beautifully ### More elements (29+) on [Premium Version](https://essential-addons.com/elementor/buy.php) @@ -106,10 +103,6 @@ Extensions: 28. [Advanced Menu](https://essential-addons.com/elementor/advanced-menu/) - Use advanced navigation menu anywhere. Choose design from different skins and customize. 29. [Image Scroller](https://essential-addons.com/elementor/image-scroller/) - Show your panaromic or long height images within image scroller widget. -Extensions: - -1. [Parallax Scrolling](https://essential-addons.com/elementor/parallax-scrolling/) - Add creative parallax scrolling effects to your section, your visitors will love it. - More coming soon (weekly update) ... @@ -167,6 +160,12 @@ Your existing elements/content will work with premium version. So you won't lose == Changelog == += 2.9.9 - 07/03/2019 = + +- Added : Feature List element +- Particles extension removed +- Few minor bugfix and improvements + = 2.9.8 - 28/02/2019 = - Facebook Feed removed as it doesn't work with new API @@ -177,7 +176,7 @@ Your existing elements/content will work with premium version. So you won't lose - Particles extension revamped -= 2.9.6 - 17/02/2019= += 2.9.6 - 17/02/2019 = - Admin side performance improved - Few minor bugfix and improvements From 6208e4b530089ec6f26e1ed60e7e7dcae60675ef Mon Sep 17 00:00:00 2001 From: Rupok Date: Tue, 2 Apr 2019 11:46:32 +0600 Subject: [PATCH 19/19] update to v2.10.x --- admin/assets/css/admin.css | 607 - admin/assets/css/eael-notice.css | 101 - admin/assets/js/admin.js | 80 - admin/settings.php | 227 - assets/admin/css/admin.css | 626 + assets/admin/css/eael-notice.css | 99 + .../admin}/images/ea-icon-color.png | Bin .../admin}/images/ea-icon.png | Bin .../admin}/images/ea-logo.png | Bin .../admin}/images/ea-logo.svg | 0 .../admin}/images/eael-featured.png | Bin .../admin}/images/gift-icon.png | Bin .../admin}/images/icon-bolt.svg | 0 .../admin}/images/icon-christmas-gift.svg | 0 .../admin}/images/icon-extensions.svg | 0 .../admin}/images/icon-heart.svg | 0 .../admin}/images/icon-modules.svg | 0 .../admin}/images/icon-settings.svg | 0 .../admin}/images/icon-upgrade.svg | 0 .../admin}/images/icon-version-control.svg | 0 .../admin}/images/lock-icon.png | Bin .../admin}/images/wpsp-logo.svg | 0 assets/admin/js/admin.js | 81 + .../sweetalert2/css/sweetalert2.min.css | 0 .../admin}/vendor/sweetalert2/js/core.js | 0 .../vendor/sweetalert2/js/sweetalert2.min.js | 0 assets/css/tooltipster.bundle.min.css | 20 - assets/front-end/css/adv-accordion.css | 74 + assets/front-end/css/adv-tabs.css | 162 + assets/front-end/css/caldera-form.css | 53 + assets/front-end/css/call-to-action.css | 258 + assets/front-end/css/contact-form-7.css | 83 + assets/front-end/css/content-ticker.css | 58 + assets/front-end/css/count-down.css | 58 + assets/front-end/css/creative-btn.css | 252 + assets/front-end/css/data-table.css | 276 + assets/front-end/css/dual-header.css | 45 + assets/front-end/css/eael-editor.css | 40 + .../css/eael.css} | 2137 +-- assets/front-end/css/eael.min.css | 1 + assets/front-end/css/fancy-text.css | 67 + assets/front-end/css/feature-list.css | 572 + assets/front-end/css/filter-gallery.css | 823 + assets/front-end/css/flip-box.css | 293 + assets/front-end/css/general.css | 185 + assets/front-end/css/gravity-form.css | 56 + assets/front-end/css/image-accordion.css | 90 + assets/front-end/css/info-box.css | 199 + assets/front-end/css/magnific-popup.css | 463 + assets/front-end/css/ninja-form.css | 70 + assets/front-end/css/post-grid-column.css | 78 + assets/front-end/css/post-grid.css | 384 + assets/front-end/css/post-timeline.css | 344 + assets/front-end/css/price-table.css | 612 + assets/front-end/css/product-grid.css | 443 + assets/front-end/css/progress-bar.css | 219 + assets/front-end/css/team-members.css | 120 + assets/front-end/css/testimonials.css | 378 + assets/front-end/css/tooltip.css | 183 + assets/front-end/css/twitter-feed.css | 296 + assets/front-end/css/weforms.css | 37 + assets/front-end/css/wpforms.css | 41 + assets/{ => front-end}/img/accordion.png | Bin assets/{ => front-end}/img/bg.jpg | Bin assets/{ => front-end}/img/flexia-preview.jpg | Bin assets/{ => front-end}/img/play-icon.png | Bin assets/front-end/js/adv-accordion/index.js | 60 + assets/front-end/js/adv-tabs/index.js | 74 + assets/front-end/js/content-ticker/index.js | 119 + assets/front-end/js/count-down/index.js | 66 + assets/front-end/js/data-table/index.js | 28 + assets/front-end/js/eael.js | 14347 ++++++++++++++++ assets/front-end/js/eael.min.js | 689 + assets/front-end/js/fancy-text/index.js | 61 + assets/front-end/js/filter-gallery/index.js | 130 + assets/front-end/js/general.js | 7 + assets/front-end/js/image-accordion/index.js | 48 + assets/front-end/js/post-timeline/index.js | 53 + assets/front-end/js/price-table/index.js | 46 + assets/front-end/js/progress-bar/index.js | 9 + assets/front-end/js/twitter-feed/index.js | 125 + .../js/vendor/count-down/count-down.min.js | 1 + .../js/vendor/count-down/countdown.js | 270 + .../js/vendor/fancy-text}/fancy-text.js | 3 - .../js/vendor/fancy-text/morphext.js | 77 + .../front-end/js/vendor/fancy-text/typed.js | 1045 ++ assets/front-end/js/vendor/inview/inview.js | 142 + .../front-end/js/vendor/inview/inview.min.js | 1 + .../js/vendor/isotope/isotope.pkgd.js | 3563 ++++ .../js/vendor/isotope}/isotope.pkgd.min.js | 10 - .../js/vendor/load-more/load-more.js | 115 + .../magnific-popup/jquery.magnific-popup.js | 1861 ++ .../jquery.magnific-popup.min.js | 3 - .../js/vendor/progress-bar/progress-bar.js | 47 + .../vendor/progress-bar/progress-bar.min.js | 1 + .../js/vendor}/social-feeds/codebird.js | 0 .../js/vendor}/social-feeds/doT.min.js | 0 .../vendor}/social-feeds/jquery.socialfeed.js | 0 .../js/vendor}/social-feeds/moment.js | 0 .../vendor/tooltipster/tooltipster.bundle.js | 4273 +++++ .../tooltipster/tooltipster.bundle.min.js | 2 + .../sass/adv-accordion.scss} | 0 .../sass/adv-tabs.scss} | 37 +- .../sass/caldera-form.scss} | 0 .../sass/call-to-action.scss} | 0 .../sass/contact-form-7.scss} | 0 .../sass/content-ticker.scss} | 0 .../sass/count-down.scss} | 1 - .../sass/creative-btn.scss} | 0 .../sass/data-table.scss} | 0 .../sass/dual-header.scss} | 0 .../sass/eael-editor.scss} | 3 + .../sass/eael.scss} | 40 +- .../sass/fancy-text.scss} | 0 .../sass/feature-list.scss} | 120 +- .../sass/filter-gallery.scss} | 0 .../sass/flip-box.scss} | 0 assets/front-end/sass/general.scss | 185 + .../sass/gravity-form.scss} | 0 .../sass/image-accordion.scss} | 8 +- .../sass/info-box.scss} | 0 .../sass/magnific-popup.scss} | 0 .../sass/ninja-form.scss} | 0 .../sass/post-grid.scss} | 79 + .../sass/post-timeline.scss} | 0 .../sass/price-table.scss} | 0 .../sass/product-grid.scss} | 0 .../sass/progress-bar.scss} | 21 +- .../sass/team-members.scss} | 0 .../sass/testimonials.scss} | 0 .../sass/tooltip.scss} | 0 .../sass/twitter-feed.scss} | 0 .../sass/weforms.scss} | 0 .../sass/wpforms.scss} | 0 assets/js/countdown.min.js | 9 - assets/js/eael-scripts.js | 598 - assets/js/jquery.resize.min.js | 1 - assets/js/load-more.js | 114 - assets/js/masonry.min.js | 9 - assets/js/mixitup.min.js | 18 - assets/js/post-grid-editor.js | 26 - assets/js/progress-bar.js | 169 - assets/js/tooltipster.bundle.min.js | 2 - assets/sass/_contact-forms.scss | 94 - assets/sass/_general-slider.scss | 15 - assets/sass/_general.scss | 9 - assets/sass/_mixins.scss | 29 - assets/sass/_post-grid-column.scss | 82 - assets/sass/_swiper.scss | 66 - assets/sass/_variables.scss | 11 - composer.json | 14 + composer.lock | 127 + config.rb | 4 +- elements/Eael_Adv_Accordion.php | 787 + elements/Eael_Adv_Tabs.php | 790 + ...aldera-form.php => Eael_Caldera_Forms.php} | 22 +- ...act-form-7.php => Eael_Contact_Form_7.php} | 28 +- ...ent-ticker.php => Eael_Content_Ticker.php} | 26 +- .../count-down.php => Eael_Countdown.php} | 32 +- ...ative-btn.php => Eael_Creative_Button.php} | 29 +- .../call-to-action.php => Eael_Cta_Box.php} | 33 +- .../data-table.php => Eael_Data_Table.php} | 27 +- ...-header.php => Eael_Dual_Color_Header.php} | 26 +- .../fancy-text.php => Eael_Fancy_Text.php} | 28 +- ...feature-list.php => Eael_Feature_List.php} | 190 +- ...allery.php => Eael_Filterable_Gallery.php} | 27 +- .../flip-box.php => Eael_Flip_Box.php} | 25 +- ...gravity-form.php => Eael_GravityForms.php} | 23 +- elements/Eael_Image_Accordion.php | 358 + .../info-box.php => Eael_Info_Box.php} | 33 +- .../ninja-form.php => Eael_NinjaForms.php} | 31 +- .../post-grid.php => Eael_Post_Grid.php} | 34 +- ...st-timeline.php => Eael_Post_Timeline.php} | 32 +- ...price-table.php => Eael_Pricing_Table.php} | 27 +- ...product-grid.php => Eael_Product_Grid.php} | 45 +- elements/Eael_Progress_Bar.php | 753 + .../team-members.php => Eael_Team_Member.php} | 30 +- .../testimonials.php => Eael_Testimonial.php} | 20 +- .../{tooltip/tooltip.php => Eael_Tooltip.php} | 19 +- ...twitter-feed.php => Eael_Twitter_Feed.php} | 27 +- .../{weforms/weforms.php => Eael_WeForms.php} | 36 +- .../{wpforms/wpforms.php => Eael_WpForms.php} | 23 +- elements/adv-accordion/adv-accordion.php | 770 - elements/adv-tabs/adv-tabs.php | 772 - elements/image-accordion/image-accordion.php | 383 - elements/progress-bar/progress-bar.php | 740 - essential_adons_elementor.php | 453 +- gulpfile.js | 4 +- includes/class-eae-elements.php | 142 - includes/class-eae-scripts.php | 182 - includes/class-plugin-usage-tracker.php | 1038 -- includes/class-wpdev-core-install.php | 102 - includes/classes/Group_Control_EA_Posts.php | 150 + includes/classes/Plugin_Usage_Tracker.php | 1063 ++ .../classes/WPDeveloper_Core_Installer.php | 106 + .../WPDeveloper_Notice.php} | 90 +- includes/eae-posts-group-control.php | 145 - includes/elementor-helper.php | 769 - includes/queries.php | 549 - .../templates/admin}/elements.php | 62 +- .../templates/admin}/extensions.php | 6 + .../templates/admin}/general.php | 4 +- .../templates/admin}/go-pro.php | 0 includes/templates/content.php | 122 - includes/templates/content/grid.php | 67 + includes/templates/content/ticker.php | 5 + includes/templates/content/timeline.php | 20 + includes/templates/product-loop.php | 5 +- includes/traits/Admin.php | 198 + includes/traits/Core.php | 153 + includes/traits/Elements.php | 68 + includes/traits/Enqueue.php | 116 + includes/traits/Generator.php | 239 + includes/traits/Helper.php | 1320 ++ package.json | 52 +- readme.txt | 32 +- vendor/autoload.php | 7 + vendor/bin/minifycss | 1 + vendor/bin/minifyjs | 1 + vendor/composer/ClassLoader.php | 445 + vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 15 + vendor/composer/autoload_real.php | 52 + vendor/composer/autoload_static.php | 59 + vendor/composer/installed.json | 115 + vendor/matthiasmullie/minify/CONTRIBUTING.md | 59 + vendor/matthiasmullie/minify/Dockerfile | 13 + vendor/matthiasmullie/minify/LICENSE | 18 + vendor/matthiasmullie/minify/bin/minifycss | 45 + vendor/matthiasmullie/minify/bin/minifyjs | 45 + vendor/matthiasmullie/minify/composer.json | 38 + .../minify/data/js/keywords_after.txt | 7 + .../minify/data/js/keywords_before.txt | 26 + .../minify/data/js/keywords_reserved.txt | 63 + .../minify/data/js/operators.txt | 46 + .../minify/data/js/operators_after.txt | 43 + .../minify/data/js/operators_before.txt | 43 + .../matthiasmullie/minify/docker-compose.yml | 31 + vendor/matthiasmullie/minify/src/CSS.php | 751 + .../matthiasmullie/minify/src/Exception.php | 20 + .../minify/src/Exceptions/BasicException.php | 23 + .../src/Exceptions/FileImportException.php | 21 + .../minify/src/Exceptions/IOException.php | 21 + vendor/matthiasmullie/minify/src/JS.php | 612 + vendor/matthiasmullie/minify/src/Minify.php | 459 + vendor/matthiasmullie/path-converter/LICENSE | 18 + .../path-converter/composer.json | 28 + .../path-converter/src/Converter.php | 196 + .../path-converter/src/ConverterInterface.php | 24 + .../path-converter/src/NoConverter.php | 23 + 252 files changed, 47082 insertions(+), 10271 deletions(-) delete mode 100755 admin/assets/css/admin.css delete mode 100755 admin/assets/css/eael-notice.css delete mode 100755 admin/assets/js/admin.js delete mode 100755 admin/settings.php create mode 100755 assets/admin/css/admin.css create mode 100755 assets/admin/css/eael-notice.css rename {admin/assets => assets/admin}/images/ea-icon-color.png (100%) rename {admin/assets => assets/admin}/images/ea-icon.png (100%) rename {admin/assets => assets/admin}/images/ea-logo.png (100%) rename {admin/assets => assets/admin}/images/ea-logo.svg (100%) rename {admin/assets => assets/admin}/images/eael-featured.png (100%) rename {admin/assets => assets/admin}/images/gift-icon.png (100%) rename {admin/assets => assets/admin}/images/icon-bolt.svg (100%) rename {admin/assets => assets/admin}/images/icon-christmas-gift.svg (100%) rename {admin/assets => assets/admin}/images/icon-extensions.svg (100%) rename {admin/assets => assets/admin}/images/icon-heart.svg (100%) rename {admin/assets => assets/admin}/images/icon-modules.svg (100%) rename {admin/assets => assets/admin}/images/icon-settings.svg (100%) rename {admin/assets => assets/admin}/images/icon-upgrade.svg (100%) rename {admin/assets => assets/admin}/images/icon-version-control.svg (100%) rename {admin/assets => assets/admin}/images/lock-icon.png (100%) rename {admin/assets => assets/admin}/images/wpsp-logo.svg (100%) create mode 100755 assets/admin/js/admin.js rename {admin/assets => assets/admin}/vendor/sweetalert2/css/sweetalert2.min.css (100%) rename {admin/assets => assets/admin}/vendor/sweetalert2/js/core.js (100%) rename {admin/assets => assets/admin}/vendor/sweetalert2/js/sweetalert2.min.js (100%) delete mode 100755 assets/css/tooltipster.bundle.min.css create mode 100644 assets/front-end/css/adv-accordion.css create mode 100644 assets/front-end/css/adv-tabs.css create mode 100644 assets/front-end/css/caldera-form.css create mode 100644 assets/front-end/css/call-to-action.css create mode 100644 assets/front-end/css/contact-form-7.css create mode 100644 assets/front-end/css/content-ticker.css create mode 100644 assets/front-end/css/count-down.css create mode 100644 assets/front-end/css/creative-btn.css create mode 100644 assets/front-end/css/data-table.css create mode 100644 assets/front-end/css/dual-header.css create mode 100644 assets/front-end/css/eael-editor.css rename assets/{css/essential-addons-elementor.css => front-end/css/eael.css} (73%) create mode 100644 assets/front-end/css/eael.min.css create mode 100644 assets/front-end/css/fancy-text.css create mode 100644 assets/front-end/css/feature-list.css create mode 100644 assets/front-end/css/filter-gallery.css create mode 100644 assets/front-end/css/flip-box.css create mode 100644 assets/front-end/css/general.css create mode 100644 assets/front-end/css/gravity-form.css create mode 100644 assets/front-end/css/image-accordion.css create mode 100644 assets/front-end/css/info-box.css create mode 100644 assets/front-end/css/magnific-popup.css create mode 100644 assets/front-end/css/ninja-form.css create mode 100755 assets/front-end/css/post-grid-column.css create mode 100644 assets/front-end/css/post-grid.css create mode 100644 assets/front-end/css/post-timeline.css create mode 100644 assets/front-end/css/price-table.css create mode 100644 assets/front-end/css/product-grid.css create mode 100644 assets/front-end/css/progress-bar.css create mode 100644 assets/front-end/css/team-members.css create mode 100644 assets/front-end/css/testimonials.css create mode 100644 assets/front-end/css/tooltip.css create mode 100644 assets/front-end/css/twitter-feed.css create mode 100644 assets/front-end/css/weforms.css create mode 100644 assets/front-end/css/wpforms.css rename assets/{ => front-end}/img/accordion.png (100%) rename assets/{ => front-end}/img/bg.jpg (100%) rename assets/{ => front-end}/img/flexia-preview.jpg (100%) rename assets/{ => front-end}/img/play-icon.png (100%) create mode 100755 assets/front-end/js/adv-accordion/index.js create mode 100755 assets/front-end/js/adv-tabs/index.js create mode 100755 assets/front-end/js/content-ticker/index.js create mode 100755 assets/front-end/js/count-down/index.js create mode 100755 assets/front-end/js/data-table/index.js create mode 100755 assets/front-end/js/eael.js create mode 100644 assets/front-end/js/eael.min.js create mode 100755 assets/front-end/js/fancy-text/index.js create mode 100755 assets/front-end/js/filter-gallery/index.js create mode 100755 assets/front-end/js/general.js create mode 100755 assets/front-end/js/image-accordion/index.js create mode 100755 assets/front-end/js/post-timeline/index.js create mode 100755 assets/front-end/js/price-table/index.js create mode 100755 assets/front-end/js/progress-bar/index.js create mode 100755 assets/front-end/js/twitter-feed/index.js create mode 100644 assets/front-end/js/vendor/count-down/count-down.min.js create mode 100755 assets/front-end/js/vendor/count-down/countdown.js rename assets/{js => front-end/js/vendor/fancy-text}/fancy-text.js (97%) create mode 100755 assets/front-end/js/vendor/fancy-text/morphext.js create mode 100755 assets/front-end/js/vendor/fancy-text/typed.js create mode 100755 assets/front-end/js/vendor/inview/inview.js create mode 100755 assets/front-end/js/vendor/inview/inview.min.js create mode 100755 assets/front-end/js/vendor/isotope/isotope.pkgd.js rename assets/{js => front-end/js/vendor/isotope}/isotope.pkgd.min.js (99%) create mode 100755 assets/front-end/js/vendor/load-more/load-more.js create mode 100755 assets/front-end/js/vendor/magnific-popup/jquery.magnific-popup.js rename assets/{js => front-end/js/vendor/magnific-popup}/jquery.magnific-popup.min.js (99%) create mode 100755 assets/front-end/js/vendor/progress-bar/progress-bar.js create mode 100644 assets/front-end/js/vendor/progress-bar/progress-bar.min.js rename assets/{ => front-end/js/vendor}/social-feeds/codebird.js (100%) rename assets/{ => front-end/js/vendor}/social-feeds/doT.min.js (100%) rename assets/{ => front-end/js/vendor}/social-feeds/jquery.socialfeed.js (100%) rename assets/{ => front-end/js/vendor}/social-feeds/moment.js (100%) create mode 100755 assets/front-end/js/vendor/tooltipster/tooltipster.bundle.js create mode 100755 assets/front-end/js/vendor/tooltipster/tooltipster.bundle.min.js rename assets/{sass/_advance-accordion.scss => front-end/sass/adv-accordion.scss} (100%) rename assets/{sass/_advance-tabs.scss => front-end/sass/adv-tabs.scss} (79%) rename assets/{sass/_caldera-form.scss => front-end/sass/caldera-form.scss} (100%) rename assets/{sass/_call-to-action.scss => front-end/sass/call-to-action.scss} (100%) rename assets/{sass/_contact-form7.scss => front-end/sass/contact-form-7.scss} (100%) rename assets/{sass/_content-ticker.scss => front-end/sass/content-ticker.scss} (100%) rename assets/{sass/_countdown.scss => front-end/sass/count-down.scss} (99%) rename assets/{sass/_creative-button.scss => front-end/sass/creative-btn.scss} (100%) rename assets/{sass/_data-table.scss => front-end/sass/data-table.scss} (100%) rename assets/{sass/_dual-color-heading.scss => front-end/sass/dual-header.scss} (100%) rename assets/{css/essential-addons-editor.css => front-end/sass/eael-editor.scss} (95%) rename assets/{sass/essential-addons-elementor.scss => front-end/sass/eael.scss} (72%) rename assets/{sass/_fancy-text.scss => front-end/sass/fancy-text.scss} (100%) rename assets/{sass/_feature-list.scss => front-end/sass/feature-list.scss} (86%) rename assets/{sass/_filterable-gallery.scss => front-end/sass/filter-gallery.scss} (100%) rename assets/{sass/_flipbox.scss => front-end/sass/flip-box.scss} (100%) create mode 100644 assets/front-end/sass/general.scss rename assets/{sass/_gravity-form.scss => front-end/sass/gravity-form.scss} (100%) rename assets/{sass/_img-accordion.scss => front-end/sass/image-accordion.scss} (92%) rename assets/{sass/_infobox.scss => front-end/sass/info-box.scss} (100%) rename assets/{sass/_magnific-popup.scss => front-end/sass/magnific-popup.scss} (100%) rename assets/{sass/_ninja-form.scss => front-end/sass/ninja-form.scss} (100%) rename assets/{sass/_post-grid.scss => front-end/sass/post-grid.scss} (79%) rename assets/{sass/_post-timeline.scss => front-end/sass/post-timeline.scss} (100%) rename assets/{sass/_pricing-table.scss => front-end/sass/price-table.scss} (100%) rename assets/{sass/_woo-products.scss => front-end/sass/product-grid.scss} (100%) rename assets/{sass/_progress-bar.scss => front-end/sass/progress-bar.scss} (89%) rename assets/{sass/_team-members.scss => front-end/sass/team-members.scss} (100%) rename assets/{sass/_testimonial-slider.scss => front-end/sass/testimonials.scss} (100%) rename assets/{sass/_tooltip.scss => front-end/sass/tooltip.scss} (100%) rename assets/{sass/_social-feeds.scss => front-end/sass/twitter-feed.scss} (100%) rename assets/{sass/_weform.scss => front-end/sass/weforms.scss} (100%) rename assets/{sass/_wp-form.scss => front-end/sass/wpforms.scss} (100%) delete mode 100755 assets/js/countdown.min.js delete mode 100755 assets/js/eael-scripts.js delete mode 100755 assets/js/jquery.resize.min.js delete mode 100755 assets/js/load-more.js delete mode 100755 assets/js/masonry.min.js delete mode 100755 assets/js/mixitup.min.js delete mode 100755 assets/js/post-grid-editor.js delete mode 100755 assets/js/progress-bar.js delete mode 100755 assets/js/tooltipster.bundle.min.js delete mode 100755 assets/sass/_contact-forms.scss delete mode 100755 assets/sass/_general-slider.scss delete mode 100755 assets/sass/_general.scss delete mode 100755 assets/sass/_mixins.scss delete mode 100755 assets/sass/_post-grid-column.scss delete mode 100755 assets/sass/_swiper.scss delete mode 100755 assets/sass/_variables.scss create mode 100755 composer.json create mode 100755 composer.lock create mode 100755 elements/Eael_Adv_Accordion.php create mode 100755 elements/Eael_Adv_Tabs.php rename elements/{caldera-form/caldera-form.php => Eael_Caldera_Forms.php} (98%) rename elements/{contact-form-7/contact-form-7.php => Eael_Contact_Form_7.php} (98%) rename elements/{content-ticker/content-ticker.php => Eael_Content_Ticker.php} (97%) rename elements/{count-down/count-down.php => Eael_Countdown.php} (97%) rename elements/{creative-btn/creative-btn.php => Eael_Creative_Button.php} (96%) rename elements/{call-to-action/call-to-action.php => Eael_Cta_Box.php} (97%) rename elements/{data-table/data-table.php => Eael_Data_Table.php} (98%) rename elements/{dual-header/dual-header.php => Eael_Dual_Color_Header.php} (96%) rename elements/{fancy-text/fancy-text.php => Eael_Fancy_Text.php} (96%) rename elements/{feature-list/feature-list.php => Eael_Feature_List.php} (85%) rename elements/{filter-gallery/filter-gallery.php => Eael_Filterable_Gallery.php} (98%) rename elements/{flip-box/flip-box.php => Eael_Flip_Box.php} (98%) rename elements/{gravity-form/gravity-form.php => Eael_GravityForms.php} (99%) create mode 100755 elements/Eael_Image_Accordion.php rename elements/{info-box/info-box.php => Eael_Info_Box.php} (98%) rename elements/{ninja-form/ninja-form.php => Eael_NinjaForms.php} (98%) rename elements/{post-grid/post-grid.php => Eael_Post_Grid.php} (94%) rename elements/{post-timeline/post-timeline.php => Eael_Post_Timeline.php} (92%) rename elements/{price-table/price-table.php => Eael_Pricing_Table.php} (99%) rename elements/{product-grid/product-grid.php => Eael_Product_Grid.php} (95%) create mode 100755 elements/Eael_Progress_Bar.php rename elements/{team-members/team-members.php => Eael_Team_Member.php} (96%) rename elements/{testimonials/testimonials.php => Eael_Testimonial.php} (97%) rename elements/{tooltip/tooltip.php => Eael_Tooltip.php} (97%) rename elements/{twitter-feed/twitter-feed.php => Eael_Twitter_Feed.php} (97%) rename elements/{weforms/weforms.php => Eael_WeForms.php} (96%) rename elements/{wpforms/wpforms.php => Eael_WpForms.php} (98%) delete mode 100755 elements/adv-accordion/adv-accordion.php delete mode 100755 elements/adv-tabs/adv-tabs.php delete mode 100755 elements/image-accordion/image-accordion.php delete mode 100755 elements/progress-bar/progress-bar.php delete mode 100644 includes/class-eae-elements.php delete mode 100644 includes/class-eae-scripts.php delete mode 100755 includes/class-plugin-usage-tracker.php delete mode 100755 includes/class-wpdev-core-install.php create mode 100755 includes/classes/Group_Control_EA_Posts.php create mode 100755 includes/classes/Plugin_Usage_Tracker.php create mode 100755 includes/classes/WPDeveloper_Core_Installer.php rename includes/{class-wpdev-notices.php => classes/WPDeveloper_Notice.php} (91%) delete mode 100755 includes/eae-posts-group-control.php delete mode 100755 includes/elementor-helper.php delete mode 100755 includes/queries.php rename {admin/partials => includes/templates/admin}/elements.php (89%) rename {admin/partials => includes/templates/admin}/extensions.php (78%) mode change 100644 => 100755 rename {admin/partials => includes/templates/admin}/general.php (98%) rename {admin/partials => includes/templates/admin}/go-pro.php (100%) delete mode 100755 includes/templates/content.php create mode 100644 includes/templates/content/grid.php create mode 100644 includes/templates/content/ticker.php create mode 100644 includes/templates/content/timeline.php create mode 100755 includes/traits/Admin.php create mode 100755 includes/traits/Core.php create mode 100755 includes/traits/Elements.php create mode 100755 includes/traits/Enqueue.php create mode 100755 includes/traits/Generator.php create mode 100755 includes/traits/Helper.php create mode 100644 vendor/autoload.php create mode 120000 vendor/bin/minifycss create mode 120000 vendor/bin/minifyjs create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/matthiasmullie/minify/CONTRIBUTING.md create mode 100644 vendor/matthiasmullie/minify/Dockerfile create mode 100644 vendor/matthiasmullie/minify/LICENSE create mode 100755 vendor/matthiasmullie/minify/bin/minifycss create mode 100755 vendor/matthiasmullie/minify/bin/minifyjs create mode 100644 vendor/matthiasmullie/minify/composer.json create mode 100644 vendor/matthiasmullie/minify/data/js/keywords_after.txt create mode 100644 vendor/matthiasmullie/minify/data/js/keywords_before.txt create mode 100644 vendor/matthiasmullie/minify/data/js/keywords_reserved.txt create mode 100644 vendor/matthiasmullie/minify/data/js/operators.txt create mode 100644 vendor/matthiasmullie/minify/data/js/operators_after.txt create mode 100644 vendor/matthiasmullie/minify/data/js/operators_before.txt create mode 100644 vendor/matthiasmullie/minify/docker-compose.yml create mode 100644 vendor/matthiasmullie/minify/src/CSS.php create mode 100644 vendor/matthiasmullie/minify/src/Exception.php create mode 100644 vendor/matthiasmullie/minify/src/Exceptions/BasicException.php create mode 100644 vendor/matthiasmullie/minify/src/Exceptions/FileImportException.php create mode 100644 vendor/matthiasmullie/minify/src/Exceptions/IOException.php create mode 100644 vendor/matthiasmullie/minify/src/JS.php create mode 100644 vendor/matthiasmullie/minify/src/Minify.php create mode 100644 vendor/matthiasmullie/path-converter/LICENSE create mode 100644 vendor/matthiasmullie/path-converter/composer.json create mode 100644 vendor/matthiasmullie/path-converter/src/Converter.php create mode 100644 vendor/matthiasmullie/path-converter/src/ConverterInterface.php create mode 100644 vendor/matthiasmullie/path-converter/src/NoConverter.php diff --git a/admin/assets/css/admin.css b/admin/assets/css/admin.css deleted file mode 100755 index 645830416..000000000 --- a/admin/assets/css/admin.css +++ /dev/null @@ -1,607 +0,0 @@ -/** - *============================================================= - * Essential Addons Elementor Admin Settings Page Styles - *============================================================= - */ - -/* General Style */ - -.eael-settings-wrap { - padding: 15px; -} -.eael-header-bar { - height: auto; - padding: 10px; - background: #fff; - border: 1px solid rgba( 0,0,0,0.1 ); - -webkit-display: flex; - display: flex; - -webkit-justify-content: flex-end; - justify-content: flex-end; - -webkit-align-items: center; - align-items: center; -} - -.eael-settings-wrap .eael-header-left { - display: flex; - align-content: center; - align-items: center; -} -.eael-header-bar .eael-admin-logo-inline { - width: 32px; - box-shadow: 1px 0 0 0 rgba(0,0,0,0.1); - padding: 10px 10px 5px; - margin-right: 10px; -} -.eael-header-bar .eael-admin-logo-inline img{ - width: 100%; -} -.eael-header-bar .title { - font-size: 24px; - color: #444; - font-weight: 600; - margin: 0px; - line-height: 1; -} - -.eael-header-left, -.eael-header-right { - -webkit-flex-grow: 1; - flex-grow: 1; -} -.eael-header-right { - text-align: right; -} -.eael-settings-tabs { - padding-top: 15px; -} - -.eael-settings-tab h4 { - font-size: 22px; -} - -.eael-settings-tab p { - font-size: 14px; -} - -.eael-settings-tabs ul { - width: 100%; - height: auto; - margin: 25px 0px 20px 0px; -} -.eael-settings-tabs ul li { - display: inline-block; -} -.eael-settings-tabs ul li a { - padding: 15px 20px; - background: #f8fafb; - color: #516378; - font-size: 15px; - font-weight: 600; - text-decoration: none; - border-top: 2px solid #f8fafb; -} -.eael-settings-tabs ul li:first-child a { - border-left: 1px solid rgba( 0,0,0,0.1 ) -} -.eael-settings-tabs ul li a:focus { - outline: none; - box-shadow: none; -} -.eael-settings-tabs ul li a img { - width: 20px; - margin: 0 5px -3px 0; -} -.eael-settings-tab { - background: #fff; - padding: 15px 25px; - margin-top: -8px; - border: 1px solid rgba( 0,0,0,0.1 ); - border-top: none; - position: relative; -} -.eael-settings-tabs ul li.ui-tabs-active a { - background: #fff; - outline: none; - box-shadow: none; - color: #343434; -} -p.eael-el-title { - font-size: 15px; - font-weight: 600; - color: #333; - margin: .5em; -} -.eael-settings-tab p.eael-elements-control-notice { - color: #42418e; - font-size: 16px; - border: 1px solid #42418e; - padding: 10px; - text-align: center; - display: block; -} -.eael-form-control { - width: 100%; -} -textarea.eael-form-control { - padding: 15px; - font-size: 14px; - font-weight: 600; - color: #5d5d5d; -} -.row { - width: 100%; - height: auto; - display: flex; - flex-flow: row wrap; - justify-content: space-between; - align-content: flex-start; - padding: 15px 0px; -} -.col-full { - width: 100%; - height: auto; -} -.col-half { - width: 49%; - height: auto; -} -.col-one-third { - width: 32%; - height: auto; -} -/* Checkbox Style */ - -.eael-checkbox-container { - display: flex; - flex-flow: row wrap; - align-items: center; -} -.eael-checkbox { - min-width: 250px; - font-size: 24px; - flex: 0 0 auto; - display: flex; - align-items: center; - margin: 10px; -} -.eael-checkbox input[type=checkbox] { - visibility: hidden; - display: none; -} -.eael-checkbox label { - width: 2em; - height: 1em; - position: relative; - cursor: pointer; - display: block; -} -.eael-checkbox label:before { - content: ''; - position: absolute; - width: 2em; - height: 1em; - left: 0.1em; - transition: background 0.1s 0.1s ease; - background: #CBCFD0; - border-radius: 50px; -} -.eael-checkbox label:after { - content: ''; - position: absolute; - width: .8em; - height: .8em; - border-radius: 100%; - left: .2em; - top: .1em; - transition: all 0.2s ease; - box-shadow: 0 0 0 5px #fcfff4 inset; - background: #CBCFD0; - z-index: 2; - animation: switch-off .3s ease-out; -} -.eael-checkbox input[type=checkbox]:checked + label:before { - background: #7E86F9; - box-shadow: inset 0px 1px 1px rgba(84, 152, 140, 0.5); -} -.eael-checkbox input[type=checkbox]:checked + label:after { - left: 1.2em; - background: #7E86F9; - animation: switch-on .3s ease-out; -} - -@keyframes switch-on { - 50% { - transform: scaleX(1.3); - } -} - -@keyframes switch-off { - 50% { - transform: scaleX(1.3); - } -} -/* Eael Tab Toggles */ -.eael-settings-tab { - display: none; -} -.eael-settings-tab.active { - display: block; -} -.eael-tabs li a.active { - background-color: #fff; - border-top: 2px solid #6648FE; -} -/* Footer Style */ - -.eael-settings-footer { - padding: 20px 25px 15px 25px; - background: #fff; - margin-top: 10px; - border: 1px solid rgba( 0,0,0,0.1 ); -} -.eael-settings-footer .submit { - padding: 0px; -} -.eael-settings-footer p.submit { - margin-top: 0px; -} - -.eael-settings-tab img { - max-width: 100%; -} -.button.eael-btn { - background-color: #0099CC; - color: #fff; - padding: 6px 20px; - border: none; - box-shadow: none; - font-size: 14px; - height: auto; - text-transform: uppercase; - text-shadow: none; - letter-spacing: .05em; -} - -.button.eael-btn:hover, .button.eael-btn:focus { - background-color: #1E96F1; - color: #fff; -} - -.eael-save-btn-wrap { - margin: 30px 0 20px; -} - -.eael-save-btn-wrap .eael-btn { - background-color: #3CCD94; - color: #fff; - padding: 10px 20px -} -.eael-save-btn-wrap .eael-btn:hover, .eael-save-btn-wrap .eael-btn:focus { - background-color: #02CC7B; - color: #fff; -} - -.eael-btn.eael-demo-btn { - background-color: #42418e; - color: #fff; -} -.eael-btn.eael-demo-btn:hover, .eael-btn.eael-demo-btn:focus { - background-color: #FF0188; - color: #fff; -} - - -.eael-btn.eael-license-btn { - background-color: #0dc9c3; -} -.eael-btn.eael-license-btn:hover, .eael-btn.eael-license-btn:focus { - background-color: #08d1ca; -} -.eael-btn.eael-demo-btn, .eael-btn.eael-license-btn, .eael-btn.eael-review-btn { - padding: 10px; - display: block; - max-width: 250px; - margin-bottom: 15px; - text-align: center; - font-size: 13px; -} -#eael-spinner { - width: 18px; - display: inline-block; - float: left; - margin: 3px 5px 0 0; - - -webkit-transition-property: -webkit-transform; - -webkit-transition-duration: 1.2s; - -webkit-animation-name: rotate; - -webkit-animation-iteration-count: infinite; - -webkit-animation-timing-function: linear; - - -moz-transition-property: -moz-transform; - -moz-animation-name: rotate; - -moz-animation-duration: 1.2s; - -moz-animation-iteration-count: infinite; - -moz-animation-timing-function: linear; - - transition-property: transform; - animation-name: rotate; - animation-duration: 1.2s; - animation-iteration-count: infinite; - animation-timing-function: linear; -} - -@-webkit-keyframes rotate { - from {-webkit-transform: rotate(0deg);} - to {-webkit-transform: rotate(360deg);} -} - -@-moz-keyframes rotate { - from {-moz-transform: rotate(0deg);} - to {-moz-transform: rotate(360deg);} -} - -@keyframes rotate { - from {transform: rotate(0deg);} - to {transform: rotate(360deg);} -} -.premium-elements-title { - margin: 50px 0 30px; -} - -.premium-elements-title img { - width: 75px; - float: left; -} - -.premium-elements-title .section-title { - color: #157EFB; - margin: 35px 5px 0; - text-transform: uppercase; - letter-spacing: 1px; - font-size: 20px; - border-bottom: 6px double #157EFB; - padding-bottom: 10px; - display: inline-block; -} - -.go-premium .eael-btn.eael-license-btn { - margin-top: 30px; -} - -.go-premium img { - width: 100%; - max-width: 400px; - display: block; - float: right; -} -.eael-notice { - background-color: #F7F6D4; - padding: 10px 15px; - border-radius: 5px; - box-shadow: 0 0 15px 0 rgba(0,0,0, .15); - max-width: 90%; - color: #9A7223; -} - -.eael-notice h5 { - font-size: 1.2em; - font-weight: bold; -} - -.essential-addons-community-link { - background-color: #475A96; - margin: 15px 0; - display: inline-block; - border-radius: 3px; -} - -.essential-addons-community-link:hover { - background-color: #3351b2; -} - -.essential-addons-community-link a { - color: #fff; - text-decoration: none; - padding: 15px 20px; - font-size: 1.4em; - display: flex; - align-items: center; - align-content: center; -} - -/* Header Button */ -.eael-header-bar .eael-btn { - background-color: #3CCD94; -} -.eael-header-bar .eael-btn:hover, .eael-header-bar .eael-btn:focus { - background-color: #02CC7B; -} -.eael-save-btn-wrap .eael-btn.save-now, -.eael-header-bar .eael-btn.save-now, -.eael-fb-feed-btn.save-now { - background: #E74C3C; -} -.eael-save-btn-wrap .eael-btn.save-now:hover, -.eael-header-bar .eael-btn.save-now:hover, -.eael-fb-feed-btn.save-now:hover { - background: #ff5544; -} - -/* Admin Blocks */ - -.eael-admin-general-wrapper { - width: 100%; - display: flex; - flex-flow: row wrap; - align-content: center; -} -.eael-admin-general-wrapper .eael-admin-general-inner { - max-width: 70em; - height: auto; - flex: 1 1 70%; -} -.eael-admin-general-wrapper .eael-sidebar { - flex: 1 1 200px; - padding: 20px; -} -.eael-admin-block-wrapper { - display: flex; - flex-flow: row wrap; - justify-content: space-between; - margin: -10px; -} -.eael-admin-block-wrapper .eael-admin-block { - background-color: #fff; - flex: 1 1 auto; - min-width: 250px; - width: 300px; - margin: 10px 10px 25px 10px; - box-shadow: 0 1px 4px rgba(0,0,0,0.1); -} -.eael-admin-block-large, -.eael-sidebar-widget { - background: #fff; - margin-bottom: 25px; - padding: 1em; - box-shadow: 0 1px 4px rgba(0,0,0,0.1); -} -.eael-admin-block-wrapper .eael-admin-block.eael-admin-block-banner { - padding: 8px; -} -.eael-admin-block-header { - max-height: 4em; - overflow: hidden; - border-bottom: 1px solid rgba(0,0,0,0.1); - background-color: #fff; - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - display: flex; - align-content: center; - align-items: center; -} -.eael-admin-block-header-icon { - width: 42px; - box-shadow: 1px 0 0 0 rgba(0,0,0,0.1); - padding: 10px; -} -.eael-admin-block-header-icon svg { - width: 80%; - display: block; - margin: 0 auto; -} -.eael-admin-block-review .eael-admin-block-header-icon svg { - width: 100%; -} -.eael-admin-block-support .eael-admin-block-header-icon { - width: 30px; -} -.eael-settings-tab .eael-admin-title { - margin: 1em 0; - padding: 0 1.26582em; - font-size: 1.185em; - font-weight: 600; - text-overflow: ellipsis; - white-space: nowrap; -} -.eael-admin-block-content { - overflow: hidden; - position: relative; - padding: 1em 1.5em 1.5em; - background-color: #fff; -} -.eael-preview-img { - width: 100%; - height: 100%; - vertical-align: middle; - object-fit: cover; - transition: all .3s; -} -.eael-preview-img:hover{ - opacity: .9; -} - -.eael-admin-sidebar { - flex: 1 1 200px; - padding: 20px; -} -.eael-sidebar-block { - margin: calc(10% + 1.5em) auto; -} -.eael-sidebar-block .eael-admin-sidebar-logo { - max-width: 150px; - display: block; - margin: 0 auto; -} -.eael-sidebar-block .eael-admin-sidebar-logo > img, .eael-sidebar-block .eael-admin-sidebar-logo > svg { - width: 100%; - display: block; - margin: 10px auto; -} -.eael-admin-sidebar-cta a { - font-size: 1em; - color: rgba(35,40,45,0.45); - text-decoration: none; - text-transform: uppercase; - letter-spacing: .065em; - text-align: center; - margin: 20px auto; - display: block; - border: 1px solid rgba(35,40,45,0.185); - border-radius: 4px; - padding: 15px; - width: 200px; - outline: none; - box-shadow: none; - transition: all .3s; -} - -.eael-admin-sidebar-cta a:hover { - color: #23282d; - box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.715); -} - -/* Facebook Settings CSS */ - -#social-networks input { - padding: 10px; -} -#eaelFBbtn, #eaelFBbtnOwnApp { - cursor: pointer; - display: none; - /* color: red; */ - -} - -.page-list-with-access > ul { - list-style: none; -} -.page-list-with-access > ul > li { - display: block; - cursor: pointer; - padding: 5px 0px; -} -.eael-fb-own-app-settings { - display: none; -} -.eael-fb-own-app-settings.eael-active, #eaelFBbtn.eael-active, #eaelFBbtnOwnApp.eael-active { - display: block; -} - -.warning { - margin: 10px 0; - padding: 10px; - border-radius: 3px 3px 3px 3px; - color: #D8000C; - background-color: #FFBABA; - overflow: hidden; -} - -.warning > * { - float: left; -} -#eael_plugins_versions { - height: 36px; -} -.eael-notice-text { - padding-left: 10px; -} \ No newline at end of file diff --git a/admin/assets/css/eael-notice.css b/admin/assets/css/eael-notice.css deleted file mode 100755 index 2ec4f6391..000000000 --- a/admin/assets/css/eael-notice.css +++ /dev/null @@ -1,101 +0,0 @@ -/* review notice */ - -.wpdeveloper-review-notice { - padding: 10px; - background-color: #fff; - border-radius: 3px; - margin: 15px; - border-left: 4px solid transparent; - display: flex; - align-items: center; -} - -.wpdeveloper-review-notice:after { - content: ''; - display: table; - clear: both; -} - -.wpdeveloper-notice-thumbnail { - width: 90px; - float: left; - padding: 5px; - text-align: center; - border-right: 4px solid transparent; -} - -.wpdeveloper-notice-thumbnail img { - width: 72px; - opacity: .85; - transition: all .3s; -} - -.wpdeveloper-notice-thumbnail img:hover { - opacity: 1; -} - -.eael-review-text { - overflow: hidden; -} - -.eael-review-text h3 { - font-size: 24px; - margin: 0 0 5px; - font-weight: 400; - line-height: 1.3; -} - -.eael-review-text p { - font-size: 13px; - margin: 0 0 5px; -} - -.wpdeveloper-notice-link { - margin: 8px 0 0 0; - padding: 0; -} - -.wpdeveloper-notice-link li { - display: inline-block; - margin-right: 15px; -} - -.wpdeveloper-notice-link li a { - display: inline-block; - color: #10738B; - text-decoration: none; - padding-left: 26px; - position: relative; -} - -.wpdeveloper-notice-link li a span { - position: absolute; - left: 0; - top: -2px; -} - -.wpdeveloper-notice-message { - padding: 10px 0; -} -.wpdeveloper-upsale-notice .wpdeveloper-notice-message { - display: flex; - align-items: center; - padding: 10px 0; -} -.wpdeveloper-upsale-notice .wpdeveloper-notice-message + .notice-dismiss { - top: 18px; -} -.wpdeveloper-upsale-notice #plugin-install-core { - margin-left: 10px; -} -.notice.notice-has-thumbnail { - padding-left: 0px; -} - -.wpdeveloper-upsale-notice { - display: flex; -} -.wpdeveloper-upsale-notice .wpdeveloper-notice-thumbnail { - padding: 0; - width: 80px; -} \ No newline at end of file diff --git a/admin/assets/js/admin.js b/admin/assets/js/admin.js deleted file mode 100755 index f915d4c27..000000000 --- a/admin/assets/js/admin.js +++ /dev/null @@ -1,80 +0,0 @@ -( function( $ ) { - 'use strict'; - /** - * Eael Tabs - */ - $( '.eael-tabs li a' ).on( 'click', function(e) { - e.preventDefault(); - $( '.eael-tabs li a' ).removeClass( 'active' ); - $(this).addClass( 'active' ); - var tab = $(this).attr( 'href' ); - $( '.eael-settings-tab' ).removeClass( 'active' ); - $( '.eael-settings-tabs' ).find( tab ).addClass( 'active' ); - }); - - $( '.eael-get-pro' ).on( 'click', function() { - swal({ - title: '

Go Premium', - type: 'warning', - html: - 'Purchase our premium version to unlock these pro components!', - showCloseButton: true, - showCancelButton: false, - focusConfirm: true, - }); - } ); - - // Save Button reacting on any changes - var headerSaveBtn = $( '.eael-header-bar .eael-btn' ); - var footerSaveBtn = $( '.eael-save-btn-wrap .eael-btn' ); - $('.eael-checkbox input[type="checkbox"]').on( 'click', function( e ) { - headerSaveBtn.addClass( 'save-now' ); - footerSaveBtn.addClass( 'save-now' ); - headerSaveBtn.removeAttr('disabled').css('cursor', 'pointer'); - footerSaveBtn.removeAttr('disabled').css('cursor', 'pointer'); - } ); - - // Saving Data With Ajax Request - $( '.js-eael-settings-save' ).on( 'click', function(event) { - event.preventDefault(); - - var _this = $(this); - - if( $(this).hasClass('save-now') ) { - $.ajax( { - url: js_eael_lite_settings.ajaxurl, - type: 'post', - data: { - action: 'save_settings_with_ajax', - fields: $( 'form#eael-settings' ).serialize(), - }, - beforeSend: function() { - _this.html('Saving Data..'); - }, - success: function( response ) { - setTimeout(function() { - _this.html('Save Settings'); - swal( - 'Settings Saved!', - 'Click OK to continue', - 'success' - ); - headerSaveBtn.removeClass( 'save-now' ); - footerSaveBtn.removeClass( 'save-now' ); - }, 2000); - }, - error: function() { - swal( - 'Oops...', - 'Something went wrong!', - 'error' - ); - } - } ); - }else { - $(this).attr('disabled', 'true').css('cursor', 'not-allowed'); - } - } ); - - -} )( jQuery ); diff --git a/admin/settings.php b/admin/settings.php deleted file mode 100755 index df2c4818a..000000000 --- a/admin/settings.php +++ /dev/null @@ -1,227 +0,0 @@ - 5, - 'redirection' => 5, - 'httpversion' => '1.0', - 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url(), - 'blocking' => true, - 'headers' => array(), - 'cookies' => array(), - 'sslverify' => false, - ); - $otherurl = $_POST['url']; - - $otherurl = $otherurl . 'wp-json/wp/v2/types'; - - $response = wp_remote_get( $otherurl, $remoteargs ); - $response = json_decode( $response['body'] ); - // echo '
', print_r( $response, 1 ), '
'; - foreach( $response as $type ){ - $post_types[ $type->rest_base ] = $type->name; - } - $eael_exclude_cpts = array( 'elementor_library', 'media', 'product' ); - foreach ( $eael_exclude_cpts as $exclude_cpt ) { - unset($post_types[$exclude_cpt]); - } - // echo '
', print_r( $post_types, 1 ), '
'; - echo json_encode( $post_types ); - - add_action( 'wp_ajax_save_facebook_feed_settings', array( $this, 'eael_save_facebook_feed_settings' ) ); - - } - - /** - * Loading all essential scripts - * @param - * @return void - * @since 1.1.2 - */ - public function enqueue_eael_admin_scripts( $hook ) { - wp_enqueue_style( 'essential_addons_elementor-notice-css', plugins_url( '/', __FILE__ ).'assets/css/eael-notice.css' ); - if( isset( $hook ) && $hook == 'plugins.php' ) { - wp_enqueue_style( 'essential_addons_elementor-sweetalert2-css', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/css/sweetalert2.min.css' ); - wp_enqueue_script( 'essential_addons_core-js', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/js/core.js', array( 'jquery' ), '1.0', true ); - wp_enqueue_script( 'essential_addons_sweetalert2-js', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/js/sweetalert2.min.js', array( 'jquery', 'essential_addons_core-js' ), '1.0', true ); - } - if( isset( $hook ) && $hook == 'elementor_page_eael-settings' ) { - wp_enqueue_style( 'essential_addons_elementor-admin-css', plugins_url( '/', __FILE__ ).'assets/css/admin.css' ); - wp_enqueue_style( 'essential_addons_elementor-sweetalert2-css', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/css/sweetalert2.min.css' ); - wp_enqueue_script( 'essential_addons_elementor-admin-js', plugins_url( '/', __FILE__ ).'assets/js/admin.js', array( 'jquery'), '1.0', true ); - wp_enqueue_script( 'essential_addons_core-js', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/js/core.js', array( 'jquery' ), '1.0', true ); - wp_enqueue_script( 'essential_addons_sweetalert2-js', plugins_url( '/', __FILE__ ).'assets/vendor/sweetalert2/js/sweetalert2.min.js', array( 'jquery', 'essential_addons_core-js' ), '1.0', true ); - } - - } - - /** - * Create an admin menu. - * @param - * @return void - * @since 1.1.2 - */ - public function create_eael_admin_menu() { - - add_submenu_page( - 'elementor', - 'Essential Addons', - 'Essential Addons', - 'manage_options', - 'eael-settings', - array( $this, 'eael_admin_settings_page' ) - ); - - } - - /** - * Create settings page. - * @param - * @return void - * @since 1.1.2 - */ - public function eael_admin_settings_page() { - - $js_info = array( - 'ajaxurl' => admin_url( 'admin-ajax.php' ) - ); - wp_localize_script( 'essential_addons_elementor-admin-js', 'js_eael_lite_settings', $js_info ); - - /** - * This section will handle the "eael_save_settings" array. If any new settings options is added - * then it will matches with the older array and then if it founds anything new then it will update the entire array. - */ - $this->eael_default_settings = array_fill_keys( $this->eael_default_keys, true ); - $this->eael_get_settings = get_option( 'eael_save_settings', $this->eael_default_settings ); - $eael_new_settings = array_diff_key( $this->eael_default_settings, $this->eael_get_settings ); - - if( ! empty( $eael_new_settings ) ) { - $eael_updated_settings = array_merge( $this->eael_get_settings, $eael_new_settings ); - update_option( 'eael_save_settings', $eael_updated_settings ); - } - $this->eael_get_settings = get_option( 'eael_save_settings', $this->eael_default_settings ); - ?> -
-
-
-
-
- -
-

-
-
- -
-
- -
-
- eael_settings = []; - - foreach( $this->eael_default_keys as $key ){ - if( isset( $settings[ $key ] ) ) { - $this->eael_settings[ $key ] = 1; - } else { - $this->eael_settings[ $key ] = 0; - } - } - update_option( 'eael_save_settings', $this->eael_settings ); - return true; - die(); - - } - -} - -new Eael_Admin_Settings(); \ No newline at end of file diff --git a/assets/admin/css/admin.css b/assets/admin/css/admin.css new file mode 100755 index 000000000..e1657a6c5 --- /dev/null +++ b/assets/admin/css/admin.css @@ -0,0 +1,626 @@ +/** + *============================================================= + * Essential Addons Elementor Admin Settings Page Styles + *============================================================= + */ + +/* General Style */ +.eael-settings-wrap { + padding: 15px; +} +.eael-header-bar { + height: auto; + padding: 10px; + background: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-display: flex; + display: flex; + -webkit-justify-content: flex-end; + justify-content: flex-end; + -webkit-align-items: center; + align-items: center; +} + +.eael-settings-wrap .eael-header-left { + display: flex; + align-content: center; + align-items: center; +} +.eael-header-bar .eael-admin-logo-inline { + width: 32px; + box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.1); + padding: 10px 10px 5px; + margin-right: 10px; +} +.eael-header-bar .eael-admin-logo-inline img { + width: 100%; +} +.eael-header-bar .title { + font-size: 24px; + color: #444; + font-weight: 600; + margin: 0px; + line-height: 1; +} + +.eael-header-left, +.eael-header-right { + -webkit-flex-grow: 1; + flex-grow: 1; +} +.eael-header-right { + text-align: right; +} +.eael-settings-tabs { + padding-top: 15px; +} + +.eael-settings-tab h4 { + font-size: 22px; +} + +.eael-settings-tab p { + font-size: 14px; +} + +.eael-settings-tabs ul { + width: 100%; + height: auto; + margin: 25px 0px 20px 0px; +} +.eael-settings-tabs ul li { + display: inline-block; +} +.eael-settings-tabs ul li a { + padding: 15px 20px; + background: #f8fafb; + color: #516378; + font-size: 15px; + font-weight: 600; + text-decoration: none; + border-top: 2px solid #f8fafb; +} +.eael-settings-tabs ul li:first-child a { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} +.eael-settings-tabs ul li a:focus { + outline: none; + box-shadow: none; +} +.eael-settings-tabs ul li a img { + width: 20px; + margin: 0 5px -3px 0; +} +.eael-settings-tab { + background: #fff; + padding: 15px 25px; + margin-top: -8px; + border: 1px solid rgba(0, 0, 0, 0.1); + border-top: none; + position: relative; +} +.eael-settings-tabs ul li.ui-tabs-active a { + background: #fff; + outline: none; + box-shadow: none; + color: #343434; +} +p.eael-el-title { + font-size: 15px; + font-weight: 600; + color: #333; + margin: 0.5em; +} +.eael-settings-tab p.eael-elements-control-notice { + color: #42418e; + font-size: 16px; + border: 1px solid #42418e; + padding: 10px; + text-align: center; + display: block; +} +.eael-form-control { + width: 100%; +} +textarea.eael-form-control { + padding: 15px; + font-size: 14px; + font-weight: 600; + color: #5d5d5d; +} +.row { + width: 100%; + height: auto; + display: flex; + flex-flow: row wrap; + justify-content: space-between; + align-content: flex-start; + padding: 15px 0px; +} +.col-full { + width: 100%; + height: auto; +} +.col-half { + width: 49%; + height: auto; +} +.col-one-third { + width: 32%; + height: auto; +} + +/* Checkbox Style */ +.eael-checkbox-container { + display: flex; + flex-flow: row wrap; + align-items: center; +} +.eael-checkbox { + min-width: 250px; + font-size: 24px; + flex: 0 0 auto; + display: flex; + align-items: center; + margin: 10px; +} +.eael-checkbox input[type="checkbox"] { + visibility: hidden; + display: none; +} +.eael-checkbox label { + width: 2em; + height: 1em; + position: relative; + cursor: pointer; + display: block; +} +.eael-checkbox label:before { + content: ""; + position: absolute; + width: 2em; + height: 1em; + left: 0.1em; + transition: background 0.1s 0.1s ease; + background: #cbcfd0; + border-radius: 50px; +} +.eael-checkbox label:after { + content: ""; + position: absolute; + width: 0.8em; + height: 0.8em; + border-radius: 100%; + left: 0.2em; + top: 0.1em; + transition: all 0.2s ease; + box-shadow: 0 0 0 5px #fcfff4 inset; + background: #cbcfd0; + z-index: 2; + animation: switch-off 0.3s ease-out; +} +.eael-checkbox input[type="checkbox"]:checked + label:before { + background: #7e86f9; + box-shadow: inset 0px 1px 1px rgba(84, 152, 140, 0.5); +} +.eael-checkbox input[type="checkbox"]:checked + label:after { + left: 1.2em; + background: #7e86f9; + animation: switch-on 0.3s ease-out; +} + +@keyframes switch-on { + 50% { + transform: scaleX(1.3); + } +} + +@keyframes switch-off { + 50% { + transform: scaleX(1.3); + } +} + +/* Eael Tab Toggles */ +.eael-settings-tab { + display: none; +} +.eael-settings-tab.active { + display: block; +} +.eael-tabs li a.active { + background-color: #fff; + border-top: 2px solid #6648fe; +} + +/* Footer Style */ +.eael-settings-footer { + padding: 20px 25px 15px 25px; + background: #fff; + margin-top: 10px; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.eael-settings-footer .submit { + padding: 0px; +} +.eael-settings-footer p.submit { + margin-top: 0px; +} + +.eael-settings-tab img { + max-width: 100%; +} +.button.eael-btn { + background-color: #0099cc; + color: #fff; + padding: 6px 20px; + border: none; + box-shadow: none; + font-size: 14px; + height: auto; + text-transform: uppercase; + text-shadow: none; + letter-spacing: 0.05em; +} + +.button.eael-btn:hover, +.button.eael-btn:focus { + background-color: #1e96f1; + color: #fff; +} + +.eael-save-btn-wrap { + margin: 30px 0 20px; +} + +.eael-save-btn-wrap .eael-btn { + background-color: #3ccd94; + color: #fff; + padding: 10px 20px; +} +.eael-save-btn-wrap .eael-btn:hover, +.eael-save-btn-wrap .eael-btn:focus { + background-color: #02cc7b; + color: #fff; +} + +.eael-btn.eael-demo-btn { + background-color: #42418e; + color: #fff; +} +.eael-btn.eael-demo-btn:hover, +.eael-btn.eael-demo-btn:focus { + background-color: #ff0188; + color: #fff; +} + +.eael-btn.eael-license-btn { + background-color: #0dc9c3; +} +.eael-btn.eael-license-btn:hover, +.eael-btn.eael-license-btn:focus { + background-color: #08d1ca; +} +.eael-btn.eael-demo-btn, +.eael-btn.eael-license-btn, +.eael-btn.eael-review-btn { + padding: 10px; + display: block; + max-width: 250px; + margin-bottom: 15px; + text-align: center; + font-size: 13px; +} +#eael-spinner { + width: 18px; + display: inline-block; + float: left; + margin: 3px 5px 0 0; + + -webkit-transition-property: -webkit-transform; + -webkit-transition-duration: 1.2s; + -webkit-animation-name: rotate; + -webkit-animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + + -moz-transition-property: -moz-transform; + -moz-animation-name: rotate; + -moz-animation-duration: 1.2s; + -moz-animation-iteration-count: infinite; + -moz-animation-timing-function: linear; + + transition-property: transform; + animation-name: rotate; + animation-duration: 1.2s; + animation-iteration-count: infinite; + animation-timing-function: linear; +} + +@-webkit-keyframes rotate { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + } +} + +@-moz-keyframes rotate { + from { + -moz-transform: rotate(0deg); + } + to { + -moz-transform: rotate(360deg); + } +} + +@keyframes rotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +.premium-elements-title { + margin: 50px 0 30px; +} + +.premium-elements-title img { + width: 75px; + float: left; +} + +.premium-elements-title .section-title { + color: #157efb; + margin: 35px 5px 0; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 20px; + border-bottom: 6px double #157efb; + padding-bottom: 10px; + display: inline-block; +} + +.go-premium .eael-btn.eael-license-btn { + margin-top: 30px; +} + +.go-premium img { + width: 100%; + max-width: 400px; + display: block; + float: right; +} +.eael-notice { + background-color: #f7f6d4; + padding: 10px 15px; + border-radius: 5px; + box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15); + max-width: 90%; + color: #9a7223; +} + +.eael-notice h5 { + font-size: 1.2em; + font-weight: bold; +} + +.essential-addons-community-link { + background-color: #475a96; + margin: 15px 0; + display: inline-block; + border-radius: 3px; +} + +.essential-addons-community-link:hover { + background-color: #3351b2; +} + +.essential-addons-community-link a { + color: #fff; + text-decoration: none; + padding: 15px 20px; + font-size: 1.4em; + display: flex; + align-items: center; + align-content: center; +} + +/* Header Button */ +.eael-header-bar .eael-btn { + background-color: #3ccd94; +} +.eael-header-bar .eael-btn:hover, +.eael-header-bar .eael-btn:focus { + background-color: #02cc7b; +} +.eael-save-btn-wrap .eael-btn.save-now, +.eael-header-bar .eael-btn.save-now, +.eael-fb-feed-btn.save-now { + background: #e74c3c; +} +.eael-save-btn-wrap .eael-btn.save-now:hover, +.eael-header-bar .eael-btn.save-now:hover, +.eael-fb-feed-btn.save-now:hover { + background: #ff5544; +} + +/* Admin Blocks */ +.eael-admin-general-wrapper { + width: 100%; + display: flex; + flex-flow: row wrap; + align-content: center; +} +.eael-admin-general-wrapper .eael-admin-general-inner { + max-width: 70em; + height: auto; + flex: 1 1 70%; +} +.eael-admin-general-wrapper .eael-sidebar { + flex: 1 1 200px; + padding: 20px; +} +.eael-admin-block-wrapper { + display: flex; + flex-flow: row wrap; + justify-content: space-between; + margin: -10px; +} +.eael-admin-block-wrapper .eael-admin-block { + background-color: #fff; + flex: 1 1 auto; + min-width: 250px; + width: 300px; + margin: 10px 10px 25px 10px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +} +.eael-admin-block-large, +.eael-sidebar-widget { + background: #fff; + margin-bottom: 25px; + padding: 1em; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +} +.eael-admin-block-wrapper .eael-admin-block.eael-admin-block-banner { + padding: 8px; +} +.eael-admin-block-header { + max-height: 4em; + overflow: hidden; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + background-color: #fff; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + display: flex; + align-content: center; + align-items: center; +} +.eael-admin-block-header-icon { + width: 42px; + box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.1); + padding: 10px; +} +.eael-admin-block-header-icon svg { + width: 80%; + display: block; + margin: 0 auto; +} +.eael-admin-block-review .eael-admin-block-header-icon svg { + width: 100%; +} +.eael-admin-block-support .eael-admin-block-header-icon { + width: 30px; +} +.eael-settings-tab .eael-admin-title { + margin: 1em 0; + padding: 0 1.26582em; + font-size: 1.185em; + font-weight: 600; + text-overflow: ellipsis; + white-space: nowrap; +} +.eael-admin-block-content { + overflow: hidden; + position: relative; + padding: 1em 1.5em 1.5em; + background-color: #fff; +} +.eael-preview-img { + width: 100%; + height: 100%; + vertical-align: middle; + object-fit: cover; + transition: all 0.3s; +} +.eael-preview-img:hover { + opacity: 0.9; +} + +.eael-admin-sidebar { + flex: 1 1 200px; + padding: 20px; +} +.eael-sidebar-block { + margin: calc(10% + 1.5em) auto; +} +.eael-sidebar-block .eael-admin-sidebar-logo { + max-width: 150px; + display: block; + margin: 0 auto; +} +.eael-sidebar-block .eael-admin-sidebar-logo > img, +.eael-sidebar-block .eael-admin-sidebar-logo > svg { + width: 100%; + display: block; + margin: 10px auto; +} +.eael-admin-sidebar-cta a { + font-size: 1em; + color: rgba(35, 40, 45, 0.45); + text-decoration: none; + text-transform: uppercase; + letter-spacing: 0.065em; + text-align: center; + margin: 20px auto; + display: block; + border: 1px solid rgba(35, 40, 45, 0.185); + border-radius: 4px; + padding: 15px; + width: 200px; + outline: none; + box-shadow: none; + transition: all 0.3s; +} + +.eael-admin-sidebar-cta a:hover { + color: #23282d; + box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.715); +} + +/* Facebook Settings CSS */ +#social-networks input { + padding: 10px; +} +#eaelFBbtn, +#eaelFBbtnOwnApp { + cursor: pointer; + display: none; + /* color: red; */ +} + +.page-list-with-access > ul { + list-style: none; +} +.page-list-with-access > ul > li { + display: block; + cursor: pointer; + padding: 5px 0px; +} +.eael-fb-own-app-settings { + display: none; +} +.eael-fb-own-app-settings.eael-active, +#eaelFBbtn.eael-active, +#eaelFBbtnOwnApp.eael-active { + display: block; +} + +.warning { + margin: 10px 0; + padding: 10px; + border-radius: 3px 3px 3px 3px; + color: #d8000c; + background-color: #ffbaba; + overflow: hidden; +} + +.warning > * { + float: left; +} +#eael_plugins_versions { + height: 36px; +} +.eael-notice-text { + padding-left: 10px; +} diff --git a/assets/admin/css/eael-notice.css b/assets/admin/css/eael-notice.css new file mode 100755 index 000000000..0e597a341 --- /dev/null +++ b/assets/admin/css/eael-notice.css @@ -0,0 +1,99 @@ +/* review notice */ +.wpdeveloper-review-notice { + padding: 10px; + background-color: #fff; + border-radius: 3px; + margin: 15px; + border-left: 4px solid transparent; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.wpdeveloper-review-notice:after { + content: ""; + display: table; + clear: both; +} +.wpdeveloper-notice-thumbnail { + width: 90px; + float: left; + padding: 5px; + text-align: center; + border-right: 4px solid transparent; +} +.wpdeveloper-notice-thumbnail img { + width: 72px; + opacity: 0.85; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} +.wpdeveloper-notice-thumbnail img:hover { + opacity: 1; +} +.eael-review-text { + overflow: hidden; +} +.eael-review-text h3 { + font-size: 24px; + margin: 0 0 5px; + font-weight: 400; + line-height: 1.3; +} +.eael-review-text p { + font-size: 13px; + margin: 0 0 5px; +} +.wpdeveloper-notice-link { + margin: 8px 0 0 0; + padding: 0; +} +.wpdeveloper-notice-link li { + display: inline-block; + margin-right: 15px; +} +.wpdeveloper-notice-link li a { + display: inline-block; + color: #10738b; + text-decoration: none; + padding-left: 26px; + position: relative; +} +.wpdeveloper-notice-link li a span { + position: absolute; + left: 0; + top: -2px; +} +.wpdeveloper-notice-message { + padding: 10px 0; +} +.wpdeveloper-upsale-notice .wpdeveloper-notice-message { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px 0; +} +.wpdeveloper-upsale-notice .wpdeveloper-notice-message + .notice-dismiss { + top: 18px; +} +.wpdeveloper-upsale-notice #plugin-install-core { + margin-left: 10px; +} +.notice.notice-has-thumbnail { + padding-left: 0; +} +.wpdeveloper-upsale-notice { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.wpdeveloper-upsale-notice .wpdeveloper-notice-thumbnail { + padding: 0; + width: 80px; +} diff --git a/admin/assets/images/ea-icon-color.png b/assets/admin/images/ea-icon-color.png similarity index 100% rename from admin/assets/images/ea-icon-color.png rename to assets/admin/images/ea-icon-color.png diff --git a/admin/assets/images/ea-icon.png b/assets/admin/images/ea-icon.png similarity index 100% rename from admin/assets/images/ea-icon.png rename to assets/admin/images/ea-icon.png diff --git a/admin/assets/images/ea-logo.png b/assets/admin/images/ea-logo.png similarity index 100% rename from admin/assets/images/ea-logo.png rename to assets/admin/images/ea-logo.png diff --git a/admin/assets/images/ea-logo.svg b/assets/admin/images/ea-logo.svg similarity index 100% rename from admin/assets/images/ea-logo.svg rename to assets/admin/images/ea-logo.svg diff --git a/admin/assets/images/eael-featured.png b/assets/admin/images/eael-featured.png similarity index 100% rename from admin/assets/images/eael-featured.png rename to assets/admin/images/eael-featured.png diff --git a/admin/assets/images/gift-icon.png b/assets/admin/images/gift-icon.png similarity index 100% rename from admin/assets/images/gift-icon.png rename to assets/admin/images/gift-icon.png diff --git a/admin/assets/images/icon-bolt.svg b/assets/admin/images/icon-bolt.svg similarity index 100% rename from admin/assets/images/icon-bolt.svg rename to assets/admin/images/icon-bolt.svg diff --git a/admin/assets/images/icon-christmas-gift.svg b/assets/admin/images/icon-christmas-gift.svg similarity index 100% rename from admin/assets/images/icon-christmas-gift.svg rename to assets/admin/images/icon-christmas-gift.svg diff --git a/admin/assets/images/icon-extensions.svg b/assets/admin/images/icon-extensions.svg similarity index 100% rename from admin/assets/images/icon-extensions.svg rename to assets/admin/images/icon-extensions.svg diff --git a/admin/assets/images/icon-heart.svg b/assets/admin/images/icon-heart.svg similarity index 100% rename from admin/assets/images/icon-heart.svg rename to assets/admin/images/icon-heart.svg diff --git a/admin/assets/images/icon-modules.svg b/assets/admin/images/icon-modules.svg similarity index 100% rename from admin/assets/images/icon-modules.svg rename to assets/admin/images/icon-modules.svg diff --git a/admin/assets/images/icon-settings.svg b/assets/admin/images/icon-settings.svg similarity index 100% rename from admin/assets/images/icon-settings.svg rename to assets/admin/images/icon-settings.svg diff --git a/admin/assets/images/icon-upgrade.svg b/assets/admin/images/icon-upgrade.svg similarity index 100% rename from admin/assets/images/icon-upgrade.svg rename to assets/admin/images/icon-upgrade.svg diff --git a/admin/assets/images/icon-version-control.svg b/assets/admin/images/icon-version-control.svg similarity index 100% rename from admin/assets/images/icon-version-control.svg rename to assets/admin/images/icon-version-control.svg diff --git a/admin/assets/images/lock-icon.png b/assets/admin/images/lock-icon.png similarity index 100% rename from admin/assets/images/lock-icon.png rename to assets/admin/images/lock-icon.png diff --git a/admin/assets/images/wpsp-logo.svg b/assets/admin/images/wpsp-logo.svg similarity index 100% rename from admin/assets/images/wpsp-logo.svg rename to assets/admin/images/wpsp-logo.svg diff --git a/assets/admin/js/admin.js b/assets/admin/js/admin.js new file mode 100755 index 000000000..fd213c6f1 --- /dev/null +++ b/assets/admin/js/admin.js @@ -0,0 +1,81 @@ +(function($) { + "use strict"; + /** + * Eael Tabs + */ + $(".eael-tabs li a").on("click", function(e) { + e.preventDefault(); + $(".eael-tabs li a").removeClass("active"); + $(this).addClass("active"); + var tab = $(this).attr("href"); + $(".eael-settings-tab").removeClass("active"); + $(".eael-settings-tabs") + .find(tab) + .addClass("active"); + }); + + $(".eael-get-pro").on("click", function() { + swal({ + title: "

Go Premium", + type: "warning", + html: + 'Purchase our premium version to unlock these pro components!', + showCloseButton: true, + showCancelButton: false, + focusConfirm: true + }); + }); + + // Save Button reacting on any changes + var headerSaveBtn = $(".eael-header-bar .eael-btn"); + var footerSaveBtn = $(".eael-save-btn-wrap .eael-btn"); + $('.eael-checkbox input[type="checkbox"]').on("click", function(e) { + headerSaveBtn.addClass("save-now"); + footerSaveBtn.addClass("save-now"); + headerSaveBtn.removeAttr("disabled").css("cursor", "pointer"); + footerSaveBtn.removeAttr("disabled").css("cursor", "pointer"); + }); + + // Saving Data With Ajax Request + $(".js-eael-settings-save").on("click", function(event) { + event.preventDefault(); + + var _this = $(this); + + if ($(this).hasClass("save-now")) { + $.ajax({ + url: localize.ajaxurl, + type: "post", + data: { + action: "save_settings_with_ajax", + security: localize.nonce, + fields: $("form#eael-settings").serialize() + }, + beforeSend: function() { + _this.html( + 'Saving Data..' + ); + }, + success: function(response) { + setTimeout(function() { + _this.html("Save Settings"); + swal( + "Settings Saved!", + "Click OK to continue", + "success" + ); + headerSaveBtn.removeClass("save-now"); + footerSaveBtn.removeClass("save-now"); + }, 2000); + }, + error: function() { + swal("Oops...", "Something went wrong!", "error"); + } + }); + } else { + $(this) + .attr("disabled", "true") + .css("cursor", "not-allowed"); + } + }); +})(jQuery); diff --git a/admin/assets/vendor/sweetalert2/css/sweetalert2.min.css b/assets/admin/vendor/sweetalert2/css/sweetalert2.min.css similarity index 100% rename from admin/assets/vendor/sweetalert2/css/sweetalert2.min.css rename to assets/admin/vendor/sweetalert2/css/sweetalert2.min.css diff --git a/admin/assets/vendor/sweetalert2/js/core.js b/assets/admin/vendor/sweetalert2/js/core.js similarity index 100% rename from admin/assets/vendor/sweetalert2/js/core.js rename to assets/admin/vendor/sweetalert2/js/core.js diff --git a/admin/assets/vendor/sweetalert2/js/sweetalert2.min.js b/assets/admin/vendor/sweetalert2/js/sweetalert2.min.js similarity index 100% rename from admin/assets/vendor/sweetalert2/js/sweetalert2.min.js rename to assets/admin/vendor/sweetalert2/js/sweetalert2.min.js diff --git a/assets/css/tooltipster.bundle.min.css b/assets/css/tooltipster.bundle.min.css deleted file mode 100755 index 015b77e18..000000000 --- a/assets/css/tooltipster.bundle.min.css +++ /dev/null @@ -1,20 +0,0 @@ -.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px} - - - -/* Borderless Theme */ -.tooltipster-sidetip.tooltipster-borderless .tooltipster-box{border:none;background:#1b1b1b;background:rgba(10,10,10,.9)}.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-borderless.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow{height:8px;margin-left:-8px;width:16px}.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-arrow,.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow{height:16px;margin-left:0;margin-top:-8px;width:8px}.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow-background{display:none}.tooltipster-sidetip.tooltipster-borderless .tooltipster-arrow-border{border:8px solid transparent}.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#1b1b1b;border-bottom-color:rgba(10,10,10,.9)}.tooltipster-sidetip.tooltipster-borderless.tooltipster-left .tooltipster-arrow-border{border-left-color:#1b1b1b;border-left-color:rgba(10,10,10,.9)}.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow-border{border-right-color:#1b1b1b;border-right-color:rgba(10,10,10,.9)}.tooltipster-sidetip.tooltipster-borderless.tooltipster-top .tooltipster-arrow-border{border-top-color:#1b1b1b;border-top-color:rgba(10,10,10,.9)}.tooltipster-sidetip.tooltipster-borderless.tooltipster-bottom .tooltipster-arrow-uncropped{top:-8px}.tooltipster-sidetip.tooltipster-borderless.tooltipster-right .tooltipster-arrow-uncropped{left:-8px} - - -/* Light Theme */ -.tooltipster-sidetip.tooltipster-light .tooltipster-box{border-radius:3px;border:1px solid #ccc;background:#ededed}.tooltipster-sidetip.tooltipster-light .tooltipster-content{color:#666}.tooltipster-sidetip.tooltipster-light .tooltipster-arrow{height:9px;margin-left:-9px;width:18px}.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow,.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow{height:18px;margin-left:0;margin-top:-9px;width:9px}.tooltipster-sidetip.tooltipster-light .tooltipster-arrow-background{border:9px solid transparent}.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#ededed;top:1px}.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow-background{border-left-color:#ededed;left:-1px}.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-background{border-right-color:#ededed;left:1px}.tooltipster-sidetip.tooltipster-light.tooltipster-top .tooltipster-arrow-background{border-top-color:#ededed;top:-1px}.tooltipster-sidetip.tooltipster-light .tooltipster-arrow-border{border:9px solid transparent}.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#ccc}.tooltipster-sidetip.tooltipster-light.tooltipster-left .tooltipster-arrow-border{border-left-color:#ccc}.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-border{border-right-color:#ccc}.tooltipster-sidetip.tooltipster-light.tooltipster-top .tooltipster-arrow-border{border-top-color:#ccc}.tooltipster-sidetip.tooltipster-light.tooltipster-bottom .tooltipster-arrow-uncropped{top:-9px}.tooltipster-sidetip.tooltipster-light.tooltipster-right .tooltipster-arrow-uncropped{left:-9px} - -/* Noir Theme */ -.tooltipster-sidetip.tooltipster-noir .tooltipster-box{border-radius:0;border:3px solid #000;background:#fff}.tooltipster-sidetip.tooltipster-noir .tooltipster-content{color:#000}.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow{height:11px;margin-left:-11px;width:22px}.tooltipster-sidetip.tooltipster-noir.tooltipster-left .tooltipster-arrow,.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow{height:22px;margin-left:0;margin-top:-11px;width:11px}.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow-background{border:11px solid transparent}.tooltipster-sidetip.tooltipster-noir.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#fff;top:4px}.tooltipster-sidetip.tooltipster-noir.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff;left:-4px}.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow-background{border-right-color:#fff;left:4px}.tooltipster-sidetip.tooltipster-noir.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff;top:-4px}.tooltipster-sidetip.tooltipster-noir .tooltipster-arrow-border{border-width:11px}.tooltipster-sidetip.tooltipster-noir.tooltipster-bottom .tooltipster-arrow-uncropped{top:-11px}.tooltipster-sidetip.tooltipster-noir.tooltipster-right .tooltipster-arrow-uncropped{left:-11px} - - -/* Punk Theme */ -.tooltipster-sidetip.tooltipster-punk .tooltipster-box{border-radius:5px;border:none;border-bottom:3px solid #f71169;background:#2a2a2a}.tooltipster-sidetip.tooltipster-punk.tooltipster-top .tooltipster-box{margin-bottom:7px}.tooltipster-sidetip.tooltipster-punk .tooltipster-content{color:#fff;padding:8px 16px}.tooltipster-sidetip.tooltipster-punk .tooltipster-arrow-background{display:none}.tooltipster-sidetip.tooltipster-punk.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2a2a2a}.tooltipster-sidetip.tooltipster-punk.tooltipster-left .tooltipster-arrow-border{border-left-color:#2a2a2a}.tooltipster-sidetip.tooltipster-punk.tooltipster-right .tooltipster-arrow-border{border-right-color:#2a2a2a}.tooltipster-sidetip.tooltipster-punk.tooltipster-top .tooltipster-arrow-border{border-top-color:#f71169} - -/* Shadow Theme */ -.tooltipster-sidetip.tooltipster-shadow .tooltipster-box{border:none;border-radius:5px;background:#fff;box-shadow:0 0 10px 6px rgba(0,0,0,.1)}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-box{margin-top:6px}.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-box{margin-right:6px}.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-box{margin-left:6px}.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-box{margin-bottom:6px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-content{color:#8d8d8d}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow{height:6px;margin-left:-6px;width:12px}.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow,.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow{height:12px;margin-left:0;margin-top:-6px;width:6px}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-background{display:none}.tooltipster-sidetip.tooltipster-shadow .tooltipster-arrow-border{border:6px solid transparent}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#fff}.tooltipster-sidetip.tooltipster-shadow.tooltipster-left .tooltipster-arrow-border{border-left-color:#fff}.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-border{border-right-color:#fff}.tooltipster-sidetip.tooltipster-shadow.tooltipster-top .tooltipster-arrow-border{border-top-color:#fff}.tooltipster-sidetip.tooltipster-shadow.tooltipster-bottom .tooltipster-arrow-uncropped{top:-6px}.tooltipster-sidetip.tooltipster-shadow.tooltipster-right .tooltipster-arrow-uncropped{left:-6px} \ No newline at end of file diff --git a/assets/front-end/css/adv-accordion.css b/assets/front-end/css/adv-accordion.css new file mode 100644 index 000000000..5438c6c5a --- /dev/null +++ b/assets/front-end/css/adv-accordion.css @@ -0,0 +1,74 @@ +/*------------------------------*/ +/* 31. Advance Accordion +/*------------------------------*/ +.eael-adv-accordion { + width: auto; + height: auto; + transition: all 0.3s ease-in-out; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-header { + padding: 15px; + border: 1px solid rgba(0, 0, 0, 0.02); + font-size: 1rem; + font-weight: 600; + line-height: 1; + transition: all 0.3s ease-in-out; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-header .fa-toggle { + transform: rotate(0deg); + z-index: 10; + transition: all 0.3s ease-in-out; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-header.active .fa-toggle { + transform: rotate(90deg); + z-index: 10; + transition: all 0.3s ease-in-out; +} + +.fa-accordion-icon { + display: inline-block; + margin-right: 10px; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-content { + display: none; + border: 1px solid #eee; + padding: 15px; + box-sizing: border-box; + font-size: 1rem; + line-height: 1.7; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-content p { + margin: 0; +} + +.eael-adv-accordion .eael-accordion-list .eael-accordion-content.active { + display: block; +} + +@keyframes rotate-90 { + 0% { + transform: rotateY(0deg); + } + 100% { + transform: rotateY(-180deg); + } +} +@keyframes fadeIn { + 0% { + opacity: 1; + transition: all 0.3s ease-in-out; + } + 100% { + opacity: 1; + transition: all 0.3s ease-in-out; + } +} diff --git a/assets/front-end/css/adv-tabs.css b/assets/front-end/css/adv-tabs.css new file mode 100644 index 000000000..eb355b8e5 --- /dev/null +++ b/assets/front-end/css/adv-tabs.css @@ -0,0 +1,162 @@ +/*----------------------------*/ +/* 30. Advance Tabs +/*----------------------------*/ +.eael-advance-tabs { + display: block; +} + +.eael-advance-tabs .eael-tabs-nav > ul { + position: relative; + padding: 0px; + margin: 0px; + list-style-type: none; + display: flex; + justify-content: flex-start; + align-items: center; + z-index: 1; +} + +.eael-advance-tabs .eael-tabs-nav > ul li { + position: relative; + padding: 1em 1.5em; + flex: 1 1 auto; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.eael-advance-tabs .eael-tabs-nav > ul li:after { + content: ""; + position: absolute; + bottom: -10px; + left: 0px; + right: 0px; + margin: 0 auto; + z-index: 1; + width: 0px; + height: 0px; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px solid #444; + border-bottom: 0px; + display: none; +} + +.eael-advance-tabs.active-caret-on .eael-tabs-nav > ul li.active:after, +.eael-advance-tabs.active-caret-on .eael-tabs-nav > ul li.active-default:after { + display: none; +} + +.eael-advance-tabs .eael-tabs-nav > ul li.active:after, +.eael-advance-tabs .eael-tabs-nav > ul li.active-default:after { + display: block; +} + +.eael-tabs-content { + display: flex; + flex: 1 1 auto; +} + +.eael-advance-tabs .eael-tabs-content > div { + display: none; + opacity: 0; +} + +.eael-advance-tabs .eael-tabs-content > div.active, +.eael-advance-tabs .eael-tabs-content > div.active-default { + display: block; + width: 100%; + padding: 1em; + opacity: 1; + animation: fadeIn linear 0.3s; +} + +/*--- Inline Icon ---*/ +.eael-tab-inline-icon li a .fa { + margin-right: 10px; + line-height: 1; +} + +.eael-tab-top-icon li a { + display: flex; + flex-wrap: wrap; + text-align: center; +} + +.eael-tab-top-icon li a .fa, +.eael-tab-top-icon li a .eael-tab-title { + flex: 1 1 100%; + line-height: 1; +} + +.eael-tab-top-icon li a .eael-tab-title { + margin-top: 10px; +} + +/*--- Vertical Tabs ---*/ +.eael-advance-tabs.eael-tabs-vertical { + display: flex; +} + +.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav { + flex: 0 0 auto; +} + +.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul { + flex-flow: column wrap; +} + +.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul > li { + width: 100%; + justify-content: start; +} + +.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul li::after { + bottom: auto !important; + right: -10px; + top: calc(50% - 10px); + left: auto !important; + border-left: 10px solid #444; + border-right: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; +} + +@media only screen and (max-width: 767px) { + .eael-advance-tabs .eael-tabs-nav > ul { + flex-wrap: wrap; + } + + .eael-advance-tabs .eael-tabs-nav > ul li { + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical { + flex-wrap: wrap; + } + + .eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav { + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical ul { + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical ul li { + flex: 1 100%; + } + + div.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav > ul li::after { + border-left-color: transparent !important; + bottom: -20px !important; + left: 0 !important; + right: 0 !important; + top: auto !important; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top-color: #444 !important; + } +} diff --git a/assets/front-end/css/caldera-form.css b/assets/front-end/css/caldera-form.css new file mode 100644 index 000000000..a7f6f5dfd --- /dev/null +++ b/assets/front-end/css/caldera-form.css @@ -0,0 +1,53 @@ +/* ----------------------------------------- */ +/* 22. Caldera Contact Form Styler +/* ----------------------------------------- */ +.eael-caldera-form-align-left, +.eael-caldera-form-btn-align-left { + text-align: left; +} + +.eael-caldera-form-align-right, +.eael-caldera-form-btn-align-right { + text-align: right; +} + +.eael-caldera-form-align-center, +.eael-caldera-form-btn-align-center { + text-align: center; +} + +.eael-caldera-form .control-label { + display: none; +} + +.eael-caldera-form-labels-yes .control-label { + display: block; +} + +.eael-caldera-form-button-center .form-group input[type=button], +.eael-caldera-form-button-center .form-group input[type=submit] { + display: block; + margin: 0 auto; +} + +.eael-caldera-form-button-right .form-group input[type=button], +.eael-caldera-form-button-right .form-group input[type=submit] { + float: right; +} + +.eael-caldera-form .intl-tel-input { + display: inherit; +} + +.eael-custom-radio-checkbox .caldera-grid input[type=checkbox], +.eael-custom-radio-checkbox .caldera-grid input[type=radio] { + border-style: solid; + border-width: 0; + padding: 3px; + -webkit-appearance: none; +} + +.eael-caldera-form-button-full-width .form-group input[type=submit], +.eael-caldera-form-button-full-width .form-group input[type=button] { + width: 100%; +} diff --git a/assets/front-end/css/call-to-action.css b/assets/front-end/css/call-to-action.css new file mode 100644 index 000000000..20ca5be41 --- /dev/null +++ b/assets/front-end/css/call-to-action.css @@ -0,0 +1,258 @@ +/*--------------------------*/ +/* 19. Call To Action +/*-------------------------*/ +.eael-call-to-action { + width: 100%; + height: auto; + display: block; + padding: 30px; + font-size: 16px; + color: #4d4d4d; + font-weight: 400; + line-height: 27px; + margin: 0 auto; +} + +.eael-call-to-action p { + margin-bottom: 10px; +} + +.eael-call-to-action .title { + font-size: 36px; + font-weight: 600; + line-height: 36px; + margin-bottom: 10px; + text-transform: capitalize; + font-style: normal; +} + +.eael-call-to-action.cta-center { + text-align: center; +} + +.eael-call-to-action.cta-right { + text-align: right; +} + +.eael-call-to-action.cta-left { + text-align: left; +} + +.eael-call-to-action.bg-lite { + background: #f4f4f4; +} + +.eael-call-to-action.bg-img { + background-image: url("../img/bg.jpg"); + background-repeat: no-repeat; + background-position: center; + background-size: cover; + position: relative; + z-index: 0; + color: rgba(255, 255, 255, 0.7); +} + +.eael-call-to-action.bg-img .icon { + color: #fff; +} + +.eael-call-to-action.bg-img:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + z-index: -1; + background: rgba(0, 0, 0, 0.8); +} + +.eael-call-to-action.bg-img.bg-fixed { + background-attachment: fixed; + background-position: center center; +} + +.eael-call-to-action.bg-img .title { + color: rgba(255, 255, 255, 0.9); +} + +/*--- Cta Flex ---*/ +.eael-call-to-action.cta-flex, +.eael-call-to-action.cta-icon-flex { + display: flex; + justify-content: space-between; + align-items: flex-start; +} + +/*--- Cta Icon Flex ---*/ +.eael-call-to-action.cta-icon-flex .icon { + flex-grow: 1; + font-size: 80px; + text-align: left; + line-height: 130px; +} + +.eael-call-to-action.cta-icon-flex .action { + flex-grow: 1; + text-align: right; + padding-top: 22px; + flex-basis: 22%; +} + +.eael-call-to-action.cta-icon-flex .content { + flex-grow: 1; + padding: 0px 30px; +} + +/*--- Cta Flex ---*/ +.eael-call-to-action.cta-flex .content { + padding: 0px 15px; + flex-grow: 1; +} + +.eael-call-to-action.cta-flex .action { + flex-grow: 1; + text-align: right; + padding-top: 25px; + flex-basis: 23%; +} + +/*--- Cta Button ---*/ +.eael-call-to-action .cta-button { + position: relative; + display: inline-block; + padding: 12px 30px; + background: #f9f9f9; + font-size: 16px; + text-decoration: none; + color: #4d4d4d; + -webkit-transition: .5s; + -ms-transition: .5s; + transition: .5s; + -webkit-box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.2); + -ms-box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.2); + box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.2); + margin-right: 10px; + margin-top: 10px; + z-index: 0; + overflow: hidden; +} + +.eael-call-to-action .cta-button:last-child { + margin-right: 0px; +} + +.eael-call-to-action .cta-button:focus { + outline: none; +} + +/*--- Hover ---*/ +.eael-call-to-action .cta-button:hover { + color: #fff; + background: #3F51B5; + -webkit-box-shadow: 0px 1px 12px 1px rgba(0, 0, 0, 0.1); + -ms-box-shadow: 0px 1px 12px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0px 1px 12px 1px rgba(0, 0, 0, 0.1); +} + +/*--- Cta Button effect 1 ---*/ +.eael-call-to-action .cta-button.effect-1:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + background: #3F51B5; + top: 0px; + left: 0px; + transform: translateY(-100%); + -webkit-transform: translateY(-100%); + -ms-transform: translateY(-100%); + z-index: -1; + -webkit-transition: .5s; + -ms-transition: .5s; + transition: .5s; + color: #fff; +} + +.eael-call-to-action .cta-button.effect-1:hover::after { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); +} + +/*--- Cta Button effect 2 ---*/ +.eael-call-to-action .cta-button.effect-2:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + background: #3F51B5; + top: 0px; + left: 0px; + z-index: -1; + -webkit-transition: .5s; + -ms-transition: .5s; + transition: .5s; + color: #fff; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); +} + +.eael-call-to-action .cta-button.effect-2:hover::after { + -webkit-transform: translateX(0); + transform: translateX(0); +} + +/*--- Media Queries ---*/ +@media only screen and (max-width: 768px) { + .eael-call-to-action.cta-flex, + .eael-call-to-action.cta-icon-flex { + flex-wrap: wrap; + } + + .eael-call-to-action .title { + font-size: 28px; + line-height: 36px; + margin-top: 0px; + } + + .eael-call-to-action.cta-icon-flex .icon { + flex-grow: 1; + font-size: 48px; + line-height: 90px; + text-align: center; + } + + .eael-call-to-action.cta-flex .content, + .eael-call-to-action.cta-icon-flex .content { + flex-grow: 1; + text-align: center; + padding: 0px; + } + + .eael-call-to-action.cta-flex .action, + .eael-call-to-action.cta-icon-flex .action { + text-align: center; + padding-top: 0px; + } + + .eael-call-to-action .cta-button { + padding: 12px 25px; + } +} +@media only screen and (max-width: 360px) { + .eael-call-to-action { + font-size: 14px; + line-height: 26px; + } + + .eael-call-to-action .cta-button { + padding: 4px 20px; + font-size: 12px; + } + + .eael-call-to-action .title { + font-size: 20px; + line-height: 30px; + } +} diff --git a/assets/front-end/css/contact-form-7.css b/assets/front-end/css/contact-form-7.css new file mode 100644 index 000000000..6d0511334 --- /dev/null +++ b/assets/front-end/css/contact-form-7.css @@ -0,0 +1,83 @@ +/*--------------------------------*/ +/* 11. Contact Form 7 Styles +/*--------------------------------*/ +.eael-contact-form.eael-contact-form-align-center, +.eael-contact-form-7.eael-contact-form-btn-align-center input.wpcf7-submit { + margin-left: auto !important; + margin-right: auto !important; + display: block; + float: none; +} + +.eael-contact-form.eael-contact-form-align-left, +.eael-contact-form-7.eael-contact-form-btn-align-left input.wpcf7-submit { + float: left; + width: auto; +} + +.eael-contact-form.eael-contact-form-align-right, +.eael-contact-form-7.eael-contact-form-btn-align-right input.wpcf7-submit { + float: right; + width: auto; +} + +.eael-contact-form-7 textarea, +.eael-contact-form-7 input[type="text"], +.eael-contact-form-7 input[type="password"], +.eael-contact-form-7 input[type="datetime"], +.eael-contact-form-7 input[type="datetime-local"], +.eael-contact-form-7 input[type="date"], +.eael-contact-form-7 input[type="month"], +.eael-contact-form-7 input[type="time"], +.eael-contact-form-7 input[type="week"], +.eael-contact-form-7 input[type="number"], +.eael-contact-form-7 input[type="email"], +.eael-contact-form-7 input[type="url"], +.eael-contact-form-7 input[type="search"], +.eael-contact-form-7 input[type="tel"], +.eael-contact-form-7 input[type="color"], +.eael-contact-form-7 .uneditable-input { + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +.eael-contact-form-7 .wpcf7-form::before, +.eael-contact-form-7 .wpcf7-form::after { + content: " "; + clear: both; + display: table; +} + +.eael-contact-form-7 .wpcf7-form:after { + clear: both; + content: ""; + font-size: 0; + height: 0; + display: block; + visibility: hidden; +} + +.eael-contact-form-7 .wpcf7-form label, +.eael-contact-form-7 .wpcf7-form .wpcf7-form-control-wrap { + display: block; +} + +.eael-contact-form-7 .wpcf7-form p { + margin-bottom: 0; +} + +.eael-contact-form-7.labels-hide .wpcf7-form label { + display: none; +} + +.eael-contact-form-7-title { + margin-bottom: 10px; +} + +.eael-contact-form-7-description { + margin-bottom: 20px; +} + +.eael-contact-form-7-button-full-width .wpcf7-form-control.wpcf7-submit { + width: 100%; +} diff --git a/assets/front-end/css/content-ticker.css b/assets/front-end/css/content-ticker.css new file mode 100644 index 000000000..d96555ca9 --- /dev/null +++ b/assets/front-end/css/content-ticker.css @@ -0,0 +1,58 @@ +/*----------------------------*/ +/* 29. Content Ticker +/*----------------------------*/ +.eael-ticker-wrap { + overflow: hidden; + display: flex; + flex-flow: row nowrap; + align-items: center; + width: 100%; +} + +.eael-ticker-wrap .ticker-badge { + flex: 0 0 auto; + padding: 8px 12px; +} + +.eael-ticker-wrap .eael-ticker { + overflow: hidden; + flex: 1 1 auto; +} + +.eael-ticker-wrap .eael-ticker .ticker-content { + padding: 8px 12px; + line-height: 1.8; +} + +.eael-ticker-wrap .eael-ticker .ticker-content p { + margin: 0; +} + +.eael-ticker-wrap .swiper-button-prev { + left: auto !important; + right: 25px; +} + +.eael-ticker-wrap div.swiper-slide, +.eael-ticker-wrap div.swiper-slide.swiper-slide-prev, +.eael-ticker-wrap div.swiper-slide.swiper-slide-next { + opacity: 0 !important; +} + +.eael-ticker-wrap div.swiper-slide.swiper-slide-active { + opacity: 1 !important; +} + +.eael-ticker-wrap .eael-content-ticker.swiper-container .swiper-slide { + text-align: left; +} + +@media only screen and (max-width: 767px) { + .eael-ticker-wrap { + flex-flow: row wrap; + } + + .content-ticker-pagination { + display: none; + } +} diff --git a/assets/front-end/css/count-down.css b/assets/front-end/css/count-down.css new file mode 100644 index 000000000..724ebf7a8 --- /dev/null +++ b/assets/front-end/css/count-down.css @@ -0,0 +1,58 @@ +/*---------------------------------*/ +/* 05. Countdown Styles +/*---------------------------------*/ +/*--- General ---*/ +.eael-countdown-items { + list-style: none; + margin: 0; + padding: 0; + display: table; + table-layout: fixed; + width: 100%; +} + +.eael-countdown-items > li { + list-style: none; + margin: 0; + padding: 0; + display: table-cell; + position: relative; +} + +.eael-countdown-item > div { + text-align: center; + padding: 20px; +} + +.eael-countdown-label-block .eael-countdown-digits, +.eael-countdown-label-block .eael-countdown-label { + display: block; + text-align: center; +} + +.eael-countdown-digits { + font-size: 54px; + line-height: 1; +} + +.eael-countdown-label { + font-size: 18px; + line-height: 1; + color: #ffffff; +} + +.eael-countdown-show-separator .eael-countdown-digits::after { + content: ":"; + position: absolute; + left: 98%; + z-index: 9999; +} + +.eael-countdown-item:last-child .eael-countdown-digits::after { + display: none; +} + +/*--- Style 1 ---*/ +.eael-countdown-items.style-1 .eael-countdown-item > div { + background: #262625; +} diff --git a/assets/front-end/css/creative-btn.css b/assets/front-end/css/creative-btn.css new file mode 100644 index 000000000..e018fd8db --- /dev/null +++ b/assets/front-end/css/creative-btn.css @@ -0,0 +1,252 @@ +/*-----------------------------*/ +/* 04. Creative Button styles +/*-----------------------------*/ +.eael-creative-button-align-center { + text-align: center; +} + +.eael-creative-button-wrapper { + display: flex; +} + +.eael-creative-button { + flex: 0 0 auto; + min-width: 150px; + text-align: center; + vertical-align: middle; + position: relative; + z-index: 1; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-osx-font-smoothing: grayscale; +} + +.eael-creative-button:focus { + outline: none; +} + +.eael-creative-button > span { + vertical-align: middle; +} + +.eael-creative-button { + border-radius: 2px; + padding: 20px 30px; + font-size: 16px; + line-height: 1; +} + +/*--- Winona ---*/ +.eael-creative-button--winona { + overflow: hidden; + padding: 0 !important; + -webkit-transition: border-color 0.3s, background-color 0.3s; + transition: border-color 0.3s, background-color 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--winona::after { + content: attr(data-text); + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + opacity: 0; + -webkit-transform: translate3d(0, 25%, 0); + transform: translate3d(0, 25%, 0); +} + +.eael-creative-button--winona > span { + display: block; +} + +.eael-creative-button--winona::after, +.eael-creative-button--winona > span { + padding: 1em 2em; + -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; + transition: transform 0.3s, opacity 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--winona:hover::after { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.eael-creative-button--winona:hover > span { + opacity: 0; + -webkit-transform: translate3d(0, -25%, 0); + transform: translate3d(0, -25%, 0); +} + +/*--- Ujarak ---*/ +.eael-creative-button--ujarak { + -webkit-transition: border-color 0.4s, color 0.4s; + transition: border-color 0.4s, color 0.4s; +} + +.eael-creative-button--ujarak::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; + opacity: 0; + -webkit-transform: scale3d(0.7, 1, 1); + transform: scale3d(0.7, 1, 1); + -webkit-transition: -webkit-transform 0.4s, opacity 0.4s; + transition: transform 0.4s, opacity 0.4s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--ujarak, +.eael-creative-button--ujarak::before { + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--ujarak:hover::before { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +/*--- Wayra ---*/ +.eael-creative-button--wayra { + overflow: hidden; + -webkit-transition: border-color 0.3s, color 0.3s; + transition: border-color 0.3s, color 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--wayra::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 150%; + height: 100%; + z-index: -1; + -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0); + transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0); + -webkit-transform-origin: 0% 100%; + transform-origin: 0% 100%; + -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s; + transition: transform 0.3s, opacity 0.3s, background-color 0.3s; +} + +.eael-creative-button--wayra:hover::before { + opacity: 1; + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +/*--- Tamaya ---*/ +.eael-creative-button--tamaya { + overflow: hidden; +} + +.eael-creative-button--tamaya::before, +.eael-creative-button--tamaya::after { + content: attr(data-text); + position: absolute; + width: 100%; + height: 50%; + left: 0; + overflow: hidden; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--tamaya::before { + top: 0; + padding: 20px 30px; +} + +.eael-creative-button--tamaya::after { + bottom: 0; + line-height: 0; +} + +.eael-creative-button--tamaya:hover::after { + bottom: -1px; +} + +.eael-creative-button--tamaya > span { + display: block; + -webkit-transform: scale3d(0.2, 0.2, 1); + transform: scale3d(0.2, 0.2, 1); + opacity: 0; + -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; + transition: transform 0.3s, opacity 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); +} + +.eael-creative-button--tamaya:hover::before { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); +} + +.eael-creative-button--tamaya:hover::after { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} + +.eael-creative-button--tamaya:hover > span { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); +} + +/*--- Rayen ---*/ +.eael-creative-button--rayen { + overflow: hidden; + padding: 0 !important; +} + +.eael-creative-button--rayen::before { + content: attr(data-text); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} + +.eael-creative-button--rayen > span { + display: block; +} + +.eael-creative-button--rayen::before, +.eael-creative-button--rayen > span { + padding: 1em 2em; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); + transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); +} + +.eael-creative-button--rayen:hover::before { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.eael-creative-button--rayen:hover > span { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); +} diff --git a/assets/front-end/css/data-table.css b/assets/front-end/css/data-table.css new file mode 100644 index 000000000..a46d95414 --- /dev/null +++ b/assets/front-end/css/data-table.css @@ -0,0 +1,276 @@ +table.eael-data-table thead .sorting, table.eael-data-table thead .sorting_desc, table.eael-data-table thead .sorting_asc { + position: relative; + z-index: 0; + outline: 0; + cursor: pointer; +} + +table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting_desc:after, table.eael-data-table thead .sorting_asc:after { + position: absolute; + top: 50%; + right: 10px; + font-family: "FontAwesome"; + color: #fff; + z-index: 1; + transform: translateY(-50%); +} + +.eael-data-table-wrap .eael-data-tables_wrapper { + display: flex; + flex-flow: row wrap; + justify-content: flex-start; + width: 100%; +} +.eael-data-table-wrap .eael-data-tables_filter { + flex-grow: 1; + flex-basis: 50%; + text-align: right; +} +.eael-data-table-wrap .eael-data-tables_filter label { + font-weight: 700; +} +.eael-data-table-wrap .eael-data-tables_filter label input[type="search"] { + height: 40px; + border: 1px solid rgba(0, 0, 0, 0.09); + outline: 0; + padding: 10px; + margin-left: 10px; +} +.eael-data-table-wrap .eael-data-tables_length { + flex-grow: 1; + flex-basis: 50%; +} +.eael-data-table-wrap .eael-data-tables_length select { + width: auto; + max-width: 120px; + height: 40px; + border: 1px solid rgba(0, 0, 0, 0.09); + outline: 0; + margin-left: 10px; + margin-right: 10px; +} +.eael-data-table-wrap .eael-data-tables_length label { + font-weight: 700; +} +.eael-data-table-wrap .eael-data-tables_info { + flex-grow: 1; + flex-basis: 50%; + font-weight: 700; +} +.eael-data-table-wrap .eael-data-tables_paginate { + flex-grow: 1; + flex-basis: 50%; + text-align: right; +} +.eael-data-table-wrap .eael-data-tables_paginate .paginate_button { + padding: 10px 15px; + background: #f2f2f2; + margin-right: 2px; + cursor: pointer; + transition: all .3s; +} +.eael-data-table-wrap .eael-data-tables_paginate .paginate_button:hover { + color: #fff; + background: #4a4893; +} +.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.current { + color: #fff; + background: #4a4893; +} +.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled { + cursor: no-drop; + background: #f2f2f2; + opacity: .5; + color: #888; +} + +.data-header-icon { + margin-right: 10px; +} + +.eael-data-table { + width: 100%; + height: auto; + margin: 0; + border-collapse: collapse; + border: none; +} +.eael-data-table tr { + border-style: none; +} +.eael-data-table thead tr { + text-align: left; +} +.eael-data-table thead tr th { + padding: 20px 15px; + background: #4a4893; + font-size: 16px; + font-weight: 600; + font-family: "Montserrat", "sans-serif"; + line-height: 1; + color: #fff; + border-color: #000; + border-width: 2px; + border-style: none; + background-clip: padding-box; +} +.eael-data-table thead tr th:hover { + border-color: #000; +} +.eael-data-table tbody tr.even { + transition: background 0.4s ease-in-out; +} +.eael-data-table tbody tr.even:hover { + background: rgba(242, 242, 242, 0.7); +} +.eael-data-table tbody tr.even:last-child { + border-bottom: 1px solid rgba(0, 0, 0, 0.09); +} +.eael-data-table tbody tr.odd { + background: rgba(242, 242, 242, 0.5); + transition: background 0.2s ease-in-out; +} +.eael-data-table tbody tr.odd:hover { + background: rgba(242, 242, 242, 0.7); +} +.eael-data-table tbody tr.odd:last-child { + border-bottom: 1px solid rgba(0, 0, 0, 0.09); +} +.eael-data-table tbody tr td { + padding: 20px 15px; + font-size: 14px; + font-family: "Montserrat", "sans-serif"; + line-height: 1; + border-width: 2px; + border-style: none; + background-clip: padding-box; +} + +.eael-data-table-th-img { + display: inline-block; + margin: 0 15px 0 0; + line-height: 1; +} + +.th-mobile-screen { + display: none; +} + +@media (max-width: 39.9375em) { + .eael-data-table-wrap { + overflow-x: scroll !important; + padding-bottom: 5px; + } + + .th-mobile-screen { + display: inline-block; + padding: 0 .6em; + margin-right: 10px; + text-align: center; + flex-grow: 0; + flex-shrink: 0; + flex-basis: 100px; + } + .th-mobile-screen .eael-data-table-th-img { + margin: 0 auto 15px auto; + display: block; + } + .th-mobile-screen .data-header-icon { + margin: 0 auto 15px auto; + display: block; + } + + .td-content-wrapper { + display: flex; + width: 100%; + } + + .td-content { + width: 100%; + justify-content: center; + } + .td-content > p { + width: 100%; + justify-content: center; + } + + .custom-responsive-option-enable .eael-data-table thead { + display: none; + } + .custom-responsive-option-enable .eael-data-table tbody tr td { + float: none; + clear: left; + width: 100%; + text-align: left; + display: flex; + align-items: center; + } + + .eael-data-table .td-content { + align-items: center; + display: flex; + } +} +table.eael-data-table thead .sorting:after { + content: "\f0dc"; +} +table.eael-data-table thead .headerSortDown:after { + content: "\f0dd"; +} +table.eael-data-table thead .headerSortUp:after { + content: "\f0de"; +} +table.eael-data-table thead .sorting_disabled.sorting:after { + display: none; +} +table.eael-data-table .sorting.sorting-none:after { + display: none; +} +table.eael-data-table .sorting_desc.sorting-none:after { + display: none; +} +table.eael-data-table .sorting_asc.sorting-none:after { + display: none; +} + +.eael-table-align-left table.eael-data-table { + float: left; +} + +.eael-table-align-center table.eael-data-table { + margin: 0 auto; +} + +.eael-table-align-right table.eael-data-table { + float: right; +} + +.eael-hide-elements .eael-data-tables_info { + display: none; +} + +.eael-dt-th-align-left .eael-data-table thead tr th { + text-align: left; +} + +.eael-dt-td-align-left .eael-data-table tbody tr td { + text-align: left; +} + +.eael-dt-th-align-right .eael-data-table thead tr th { + text-align: right; + padding-right: 30px; +} + +.eael-dt-td-align-right .eael-data-table tbody tr td { + text-align: right; + padding-right: 30px; +} + +.eael-dt-th-align-center .eael-data-table thead tr th { + text-align: center; +} + +.eael-dt-td-align-center .eael-data-table tbody tr td { + text-align: center; +} diff --git a/assets/front-end/css/dual-header.css b/assets/front-end/css/dual-header.css new file mode 100644 index 000000000..5a857f78f --- /dev/null +++ b/assets/front-end/css/dual-header.css @@ -0,0 +1,45 @@ +/* -------------------------------- */ +/* 20. Dual Color Heading +/* -------------------------------- */ +.eael-dual-header { + display: block; + margin-bottom: 50px; +} + +.eael-dual-header .title, +.eael-dual-header .title span { + font-size: 36px; + font-weight: 700; + text-transform: uppercase; + line-height: 48px; + margin: 10px 0px; +} + +.eael-dual-header .subtext { + font-size: 16px; + display: block; +} + +.eael-dual-header i { + display: block; + padding: 0px; + margin: 20px 0px 10px 0px; + font-size: 36px; +} + +.eael-dual-header .title span.lead { + color: #1abc9c; +} + +/*--- Builder Related Css ---*/ +.eael-dual-header-content-align-center { + text-align: center; +} + +.eael-dual-header-content-align-left { + text-align: left; +} + +.eael-dual-header-content-align-right { + text-align: right; +} diff --git a/assets/front-end/css/eael-editor.css b/assets/front-end/css/eael-editor.css new file mode 100644 index 000000000..ce1d8a9c0 --- /dev/null +++ b/assets/front-end/css/eael-editor.css @@ -0,0 +1,40 @@ +.elementor-panel .pro-feature, .elementor-panel .pro-feature a { + color: #a4afb7; + text-transform: uppercase; + letter-spacing: 1px; + line-height: 1.8; + font-style: normal; +} + +.elementor-panel .pro-feature a { + text-decoration: underline; + color: #f54 !important; +} + +.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-title.elementor-panel-heading-title, +.elementor-panel .elementor-control-eael_section_pro .elementor-panel-heading-toggle, +.elementor-control-data_table_header_colspan_pro_alert .elementor-control-title, +.elementor-control-data_table_header_img_pro_alert .elementor-control-title, +.elementor-control-data_table_content_rowspan_pro_alert .elementor-control-title, +.elementor-control-data_table_content_colspan_pro_alert .elementor-control-title, +.elementor-control-data_table_content_template_pro_alert .elementor-control-title { + color: #f54; +} + +.elementor-panel .elementor-control-eael_control_get_pro .elementor-control-field { + display: none !important; +} + +.elementor-control-eael_pricing_table_style_pro_alert .elementor-control-title, +.elementor-control-eael_section_countdown_style_pro_alert .elementor-control-title, +.elementor-control-eael_fancy_text_style_pro_alert .elementor-control-title, +.elementor-control-eael_section_data_table_enabled_pro_alert .elementor-control-title, +.elementor-control-eael_img_accordion_type_pro_alert .elementor-control-title, +.elementor-control-eael_ticker_type_pro_alert .elementor-control-title, +.elementor-control-eael_team_members_preset_pro_alert .elementor-control-title { + color: #f54; +} + +.elementor-control-eael_feature_list_icon_background_image { + display: none; +} diff --git a/assets/css/essential-addons-elementor.css b/assets/front-end/css/eael.css similarity index 73% rename from assets/css/essential-addons-elementor.css rename to assets/front-end/css/eael.css index fd41b13f3..e0b2cb51a 100644 --- a/assets/css/essential-addons-elementor.css +++ b/assets/front-end/css/eael.css @@ -1,5 +1,5 @@ /* - ______ _ _ _ _ _ +______ _ _ _ _ _ | ____| | | (_) | | /\ | | | | | |__ ___ ___ ___ _ __ | |_ _ __ _| | / \ __| | __| | ___ _ __ ___ | __| / __/ __|/ _ \ '_ \| __| |/ _` | | / /\ \ / _` |/ _` |/ _ \| '_ \/ __| @@ -69,6 +69,166 @@ padding-top: 40px; } +/*----------------------------*/ +/* 28. Swiper +/*----------------------------*/ +.swiper-container-wrap .swiper-slide, +.swiper-container .swiper-slide { + text-align: center; +} + +.swiper-container-wrap .swiper-slide img, +.swiper-container .swiper-slide img { + width: auto; +} + +.swiper-container-wrap-dots-outside .swiper-pagination, +.swiper-container-dots-outside .swiper-pagination { + position: static; +} + +.swiper-container-wrap .swiper-button-next, +.swiper-container-wrap .swiper-button-prev, +.swiper-container .swiper-button-next, +.swiper-container .swiper-button-prev { + background: transparent; + font-size: 20px; + height: auto; + line-height: 1; + margin: 0; + text-align: center; + transform: translateY(-50%); + width: auto; +} + +.swiper-container-wrap .swiper-button-next .fa, +.swiper-container-wrap .swiper-button-prev .fa, +.swiper-container .swiper-button-next .fa, +.swiper-container .swiper-button-prev .fa { + vertical-align: top; +} + +.swiper-container-wrap .swiper-pagination { + bottom: 10px; + left: 0; + width: 100%; +} + +.swiper-container-wrap-dots-outside .swiper-pagination { + position: static; +} + +.swiper-container-wrap .swiper-pagination-bullet { + background: #ccc; + margin: 0 4px; + opacity: 1; + height: 8px; + width: 8px; +} + +.swiper-container-wrap .swiper-pagination-bullet-active { + background: #000; +} + +.swiper-container-3d .swiper-slide { + transition-property: all; + -webkit-transition-property: all; +} + +/*--------------------------------*/ +/* 10. Contact forms common +/*--------------------------------*/ +.eael-contact-form input[type=text], +.eael-contact-form input[type=email], +.eael-contact-form input[type=url], +.eael-contact-form input[type=tel], +.eael-contact-form input[type=date], +.eael-contact-form input[type=number], +.eael-contact-form textarea { + background: #fff; + box-shadow: none; + -webkit-box-shadow: none; + float: none; + height: auto; + margin: 0; + outline: 0; + width: auto; +} + +.eael-contact-form input[type=submit] { + border: 0; + float: none; + height: auto; + margin: 0; + padding: 10px 20px; + width: auto; + -webkit-transition: all 0.25s linear 0s; + transition: all 0.25s linear 0s; +} + +.eael-contact-form.placeholder-hide input::-webkit-input-placeholder, +.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input::-moz-placeholder, +.eael-contact-form.placeholder-hide textarea::-moz-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input:-ms-input-placeholder, +.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input:-moz-placeholder, +.eael-contact-form.placeholder-hide textarea:-moz-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-custom-radio-checkbox input[type=checkbox], +.eael-custom-radio-checkbox input[type=radio] { + -webkit-appearance: none; + -moz-appearance: none; + border-style: solid; + border-width: 0; + outline: none; + min-width: 1px; + width: 15px; + height: 15px; + background: #ddd; + padding: 3px; +} + +.eael-custom-radio-checkbox input[type=checkbox]:before, +.eael-custom-radio-checkbox input[type=radio]:before { + content: ""; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + display: block; +} + +.eael-custom-radio-checkbox input[type=checkbox]:checked:before, +.eael-custom-radio-checkbox input[type=radio]:checked:before { + background: #999; + -webkit-transition: all 0.25s linear 0s; + transition: all 0.25s linear 0s; +} + +.eael-custom-radio-checkbox input[type=radio] { + border-radius: 50%; +} + +.eael-custom-radio-checkbox input[type=radio]:before { + border-radius: 50%; +} + /*--------------------------*/ /* 03. Fancy Text Style /*--------------------------*/ @@ -89,6 +249,7 @@ .typed-cursor { opacity: 1; -webkit-animation: blink_cursor 0.7s infinite; + -moz-animation: blink_cursor 0.7s infinite; animation: blink_cursor 0.7s infinite; } @@ -114,6 +275,17 @@ opacity: 1; } } +@-moz-keyframes blink_cursor { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} /*--- Style 2 ---*/ .eael-fancy-text-container.style-2 { font-size: 24px; @@ -133,17 +305,11 @@ } .eael-creative-button-wrapper { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .eael-creative-button { - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; + flex: 0 0 auto; min-width: 150px; text-align: center; vertical-align: middle; @@ -163,8 +329,7 @@ } .eael-creative-button { - -webkit-border-radius: 2px; - border-radius: 2px; + border-radius: 2px; padding: 20px 30px; font-size: 16px; line-height: 1; @@ -175,11 +340,9 @@ overflow: hidden; padding: 0 !important; -webkit-transition: border-color 0.3s, background-color 0.3s; - -o-transition: border-color 0.3s, background-color 0.3s; transition: border-color 0.3s, background-color 0.3s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--winona::after { @@ -202,14 +365,9 @@ .eael-creative-button--winona > span { padding: 1em 2em; -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; - -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; - transition: opacity 0.3s, -webkit-transform 0.3s; - -o-transition: transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; - transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--winona:hover::after { @@ -227,7 +385,6 @@ /*--- Ujarak ---*/ .eael-creative-button--ujarak { -webkit-transition: border-color 0.4s, color 0.4s; - -o-transition: border-color 0.4s, color 0.4s; transition: border-color 0.4s, color 0.4s; } @@ -243,21 +400,15 @@ -webkit-transform: scale3d(0.7, 1, 1); transform: scale3d(0.7, 1, 1); -webkit-transition: -webkit-transform 0.4s, opacity 0.4s; - -webkit-transition: opacity 0.4s, -webkit-transform 0.4s; - transition: opacity 0.4s, -webkit-transform 0.4s; - -o-transition: transform 0.4s, opacity 0.4s; transition: transform 0.4s, opacity 0.4s; - transition: transform 0.4s, opacity 0.4s, -webkit-transform 0.4s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--ujarak, .eael-creative-button--ujarak::before { -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--ujarak:hover::before { @@ -270,11 +421,9 @@ .eael-creative-button--wayra { overflow: hidden; -webkit-transition: border-color 0.3s, color 0.3s; - -o-transition: border-color 0.3s, color 0.3s; transition: border-color 0.3s, color 0.3s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--wayra::before { @@ -288,14 +437,9 @@ -webkit-transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0); transform: rotate3d(0, 0, 1, -45deg) translate3d(0, -3em, 0); -webkit-transform-origin: 0% 100%; - -ms-transform-origin: 0% 100%; - transform-origin: 0% 100%; + transform-origin: 0% 100%; -webkit-transition: -webkit-transform 0.3s, opacity 0.3s, background-color 0.3s; - -webkit-transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s; - transition: opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s; - -o-transition: transform 0.3s, opacity 0.3s, background-color 0.3s; transition: transform 0.3s, opacity 0.3s, background-color 0.3s; - transition: transform 0.3s, opacity 0.3s, background-color 0.3s, -webkit-transform 0.3s; } .eael-creative-button--wayra:hover::before { @@ -303,8 +447,7 @@ -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } /*--- Tamaya ---*/ @@ -321,13 +464,9 @@ left: 0; overflow: hidden; -webkit-transition: -webkit-transform 0.3s; - transition: -webkit-transform 0.3s; - -o-transition: transform 0.3s; transition: transform 0.3s; - transition: transform 0.3s, -webkit-transform 0.3s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--tamaya::before { @@ -350,14 +489,9 @@ transform: scale3d(0.2, 0.2, 1); opacity: 0; -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; - -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; - transition: opacity 0.3s, -webkit-transform 0.3s; - -o-transition: transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; - transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s; -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - -o-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); - transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); } .eael-creative-button--tamaya:hover::before { @@ -401,13 +535,9 @@ .eael-creative-button--rayen > span { padding: 1em 2em; -webkit-transition: -webkit-transform 0.3s; - transition: -webkit-transform 0.3s; - -o-transition: transform 0.3s; transition: transform 0.3s; - transition: transform 0.3s, -webkit-transform 0.3s; -webkit-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); - -o-transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); - transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); + transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); } .eael-creative-button--rayen:hover::before { @@ -517,10 +647,8 @@ .eael-timeline-bullet { background-color: #9fa9af; border: 5px solid #fff; - -webkit-border-radius: 50%; - border-radius: 50%; - -webkit-box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1); + border-radius: 50%; + box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1); content: ""; height: 20px; position: absolute; @@ -534,8 +662,7 @@ .eael-timeline-post:nth-child(2n) .eael-timeline-bullet { background-color: #9fa9af; border: 5px solid #fff; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; bottom: 36px; content: ""; height: 20px; @@ -547,12 +674,9 @@ } .eael-timeline-post-inner { - background: -webkit-linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent; - background: -o-linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent; background: linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent; border: 8px solid #e5eaed; - -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); float: right; margin: 30px 40px 30px auto; position: relative; @@ -600,8 +724,7 @@ } .eael-timeline-post-image { - -webkit-background-size: cover; - background-size: cover; + background-size: cover; background-position: center center; background-repeat: no-repeat; display: block; @@ -610,7 +733,7 @@ position: relative; opacity: .6; -webkit-transition: all .3s; - -o-transition: all .3s; + -moz-transition: all .3s; transition: all .3s; } @@ -637,7 +760,7 @@ top: 0; left: 0; -webkit-transition: all .3s; - -o-transition: all .3s; + -moz-transition: all .3s; transition: all .3s; } @@ -661,8 +784,7 @@ background-color: rgba(0, 0, 0, 0.7); color: #fff; font-size: 10px; - -webkit-border-radius: 20px; - border-radius: 20px; + border-radius: 20px; position: absolute; right: -97px; width: 100px; @@ -672,14 +794,13 @@ top: 50px; z-index: 99; -webkit-transition: all .5s; - -o-transition: all .5s; + -moz-transition: all .5s; transition: all .5s; } .eael-timeline-post:nth-child(2n) time { background-color: rgba(0, 0, 0, 0.7); - -webkit-border-radius: 20px; - border-radius: 20px; + border-radius: 20px; color: #fff; font-size: 10px; height: 30px; @@ -789,8 +910,7 @@ .eael-timeline-post time, .eael-timeline-post:nth-child(2n) time { background-color: #fff; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; color: #444; font-size: 12px; text-transform: uppercase; @@ -842,8 +962,7 @@ } .team-avatar-rounded figure img { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; height: auto; } @@ -933,13 +1052,11 @@ padding-top: 15%; opacity: 0; overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; + text-overflow: ellipsis; position: absolute; right: 10px; top: 10px; -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s; - -o-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s; transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s; } @@ -950,7 +1067,6 @@ .eael-team-member-social-link > a { display: inline-block; -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s; - -o-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s; transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s; } @@ -1020,8 +1136,7 @@ } .testimonial-avatar-rounded figure img { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; height: auto; } @@ -1445,11 +1560,9 @@ span.eael-testimonial-quote { overflow: hidden; text-align: center; padding: 0; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; background-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .eael-product-grid.eael-product-simple .woocommerce ul.products li.product a, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a, .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a, @@ -1460,16 +1573,14 @@ span.eael-testimonial-quote { .eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover, .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover { outline: none; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .eael-product-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img, .eael-post-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img { width: 100%; height: auto; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; + backface-visibility: hidden; } .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, @@ -1493,11 +1604,9 @@ span.eael-testimonial-quote { text-transform: uppercase; color: #fff; background-color: #ff2a13; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; border: none; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; position: absolute; height: 100px; width: 200px; @@ -1507,9 +1616,7 @@ span.eael-testimonial-quote { right: auto; margin: 0; padding: 0; - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price, .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price, @@ -1551,8 +1658,7 @@ span.eael-testimonial-quote { background-color: #333; padding: 0; margin: 15px; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; } .eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, @@ -1584,8 +1690,6 @@ span.eael-testimonial-quote { .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button, .eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart { visibility: hidden; - -webkit-transition: none; - -o-transition: none; transition: none; } .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover, @@ -1605,11 +1709,9 @@ span.eael-testimonial-quote { overflow: hidden; text-align: center; padding: 0 0 15px 0; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; background-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a { @@ -1618,16 +1720,14 @@ span.eael-testimonial-quote { .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover { outline: none; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img { width: 100%; height: auto; margin: 0; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; + backface-visibility: hidden; } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay { @@ -1642,9 +1742,7 @@ span.eael-testimonial-quote { left: 0; right: 0; text-align: center; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link, .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button, @@ -1661,20 +1759,13 @@ span.eael-testimonial-quote { width: 38px; height: 38px; border-style: none; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; vertical-align: middle; padding: 0; margin: 0 5px; - -webkit-transform: translateY(20px); - -ms-transform: translateY(20px); - transform: translateY(20px); + transform: translateY(20px); opacity: 0; - -webkit-transition: opacity 300ms, -webkit-transform 200ms; - transition: opacity 300ms, -webkit-transform 200ms; - -o-transition: transform 200ms, opacity 300ms; transition: transform 200ms, opacity 300ms; - transition: transform 200ms, opacity 300ms, -webkit-transform 200ms; } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus, .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus, @@ -1761,11 +1852,9 @@ span.eael-testimonial-quote { text-transform: uppercase; color: #fff; background-color: #ff2a13; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; border: none; - -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; position: absolute; height: 100px; width: 200px; @@ -1775,9 +1864,7 @@ span.eael-testimonial-quote { right: auto; margin: 0; padding: 0; - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price { @@ -1805,109 +1892,9 @@ span.eael-testimonial-quote { .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a, .eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button, .eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a, -.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button { - opacity: 1; - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); -} - -/*--------------------------------*/ -/* 10. Contact forms common -/*--------------------------------*/ -.eael-contact-form input[type=text], -.eael-contact-form input[type=email], -.eael-contact-form input[type=url], -.eael-contact-form input[type=tel], -.eael-contact-form input[type=date], -.eael-contact-form input[type=number], -.eael-contact-form textarea { - background: #fff; - box-shadow: none; - -webkit-box-shadow: none; - float: none; - height: auto; - margin: 0; - outline: 0; - width: auto; -} - -.eael-contact-form input[type=submit] { - border: 0; - float: none; - height: auto; - margin: 0; - padding: 10px 20px; - width: auto; - -webkit-transition: all 0.25s linear 0s; - -o-transition: all 0.25s linear 0s; - transition: all 0.25s linear 0s; -} - -.eael-contact-form.placeholder-hide input::-webkit-input-placeholder, -.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder { - opacity: 0; - visibility: hidden; -} - -.eael-contact-form.placeholder-hide input::-moz-placeholder, -.eael-contact-form.placeholder-hide textarea::-moz-placeholder { - opacity: 0; - visibility: hidden; -} - -.eael-contact-form.placeholder-hide input:-ms-input-placeholder, -.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder { - opacity: 0; - visibility: hidden; -} - -.eael-contact-form.placeholder-hide input:-moz-placeholder, -.eael-contact-form.placeholder-hide textarea:-moz-placeholder { - opacity: 0; - visibility: hidden; -} - -.eael-custom-radio-checkbox input[type=checkbox], -.eael-custom-radio-checkbox input[type=radio] { - -webkit-appearance: none; - -moz-appearance: none; - border-style: solid; - border-width: 0; - outline: none; - min-width: 1px; - width: 15px; - height: 15px; - background: #ddd; - padding: 3px; -} - -.eael-custom-radio-checkbox input[type=checkbox]:before, -.eael-custom-radio-checkbox input[type=radio]:before { - content: ""; - width: 100%; - height: 100%; - padding: 0; - margin: 0; - display: block; -} - -.eael-custom-radio-checkbox input[type=checkbox]:checked:before, -.eael-custom-radio-checkbox input[type=radio]:checked:before { - background: #999; - -webkit-transition: all 0.25s linear 0s; - -o-transition: all 0.25s linear 0s; - transition: all 0.25s linear 0s; -} - -.eael-custom-radio-checkbox input[type=radio] { - -webkit-border-radius: 50%; - border-radius: 50%; -} - -.eael-custom-radio-checkbox input[type=radio]:before { - -webkit-border-radius: 50%; - border-radius: 50%; +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button { + opacity: 1; + transform: translateY(0); } /*--------------------------------*/ @@ -1950,11 +1937,7 @@ span.eael-testimonial-quote { .eael-contact-form-7 input[type="color"], .eael-contact-form-7 .uneditable-input { -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -webkit-transition: border linear 0.2s, -webkit-box-shadow linear 0.2s; - transition: border linear 0.2s, -webkit-box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s, -webkit-box-shadow linear 0.2s; } .eael-contact-form-7 .wpcf7-form::before, @@ -2100,8 +2083,7 @@ span.eael-testimonial-quote { .eael-ninja-form .submit-container input[type=button] { border: 0; - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; } .eael-ninja-form-button-full-width .submit-container input[type=button] { @@ -2202,10 +2184,8 @@ span.eael-testimonial-quote { height: 100%; z-index: 2; -webkit-transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); - transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); - -o-transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); + -moz-transition: opacity 0.2s ease-in-out, -moz-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); - transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); } .eael-entry-overlay > a { @@ -2237,8 +2217,7 @@ span.eael-testimonial-quote { } .eael-entry-footer .eael-author-avatar .avatar { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-post-grid .eael-entry-footer .eael-entry-meta { @@ -2247,23 +2226,12 @@ span.eael-testimonial-quote { } .eael-grid-post .eael-entry-meta { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; + flex-direction: row; } .eael-grid-post .eael-entry-footer .eael-entry-meta { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; + flex-direction: column; } .eael-entry-meta > div { @@ -2300,25 +2268,13 @@ span.eael-testimonial-quote { } .eael-load-more-button-wrap { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .eael-load-more-button { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; } .eael-load-more-button { @@ -2331,8 +2287,6 @@ span.eael-testimonial-quote { left: -100%; top: auto; margin-right: 5px; - -webkit-transition: all .2s; - -o-transition: all .2s; transition: all .2s; } @@ -2350,8 +2304,7 @@ span.eael-testimonial-quote { .eael-btn-loader, .eael-btn-loader:after { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; width: 20px; height: 20px; } @@ -2364,31 +2317,16 @@ span.eael-testimonial-quote { border-right: 4px solid rgba(255, 255, 255, 0.2); border-bottom: 4px solid rgba(255, 255, 255, 0.2); border-left: 4px solid #ffffff; - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-animation: loaderSpin 1.1s infinite linear; - animation: loaderSpin 1.1s infinite linear; -} - -@-webkit-keyframes loaderSpin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } + transform: translateZ(0); + animation: loaderSpin 1.1s infinite linear; } @keyframes loaderSpin { 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); } 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); + transform: rotate(360deg); } } /*--- Post Grid Thumbnail Hover Effects ---*/ @@ -2397,18 +2335,9 @@ span.eael-testimonial-quote { } .eael-entry-overlay { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; } .eael-entry-overlay > i { @@ -2419,8 +2348,6 @@ span.eael-testimonial-quote { .eael-entry-overlay.fade-in { visibility: hidden; opacity: 0; - -webkit-transition: 300ms; - -o-transition: 300ms; transition: 300ms; } @@ -2430,48 +2357,34 @@ span.eael-testimonial-quote { } .eael-entry-medianone:hover .eael-entry-overlay.fade-in > i { - -webkit-transform: translate(0); - -ms-transform: translate(0); - transform: translate(0); + transform: translate(0); opacity: 1; } /*--- zoom in --- */ .eael-entry-overlay.zoom-in { - -webkit-transform: scale(0.9); - -ms-transform: scale(0.9); - transform: scale(0.9); + transform: scale(0.9); visibility: hidden; opacity: 0; - -webkit-transition: 300ms; - -o-transition: 300ms; transition: 300ms; } .eael-entry-medianone:hover .eael-entry-overlay.zoom-in { visibility: visible; opacity: 1; - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); + transform: scale(1); } /*--- slide up ---*/ .eael-entry-overlay.slide-up { - -webkit-transform: translateY(100%); - -ms-transform: translateY(100%); - transform: translateY(100%); + transform: translateY(100%); visibility: hidden; opacity: 0; - -webkit-transition: 300ms; - -o-transition: 300ms; transition: 300ms; } .eael-entry-medianone:hover .eael-entry-overlay.slide-up { - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); + transform: translateY(0); visibility: visible; opacity: 1; } @@ -2494,86 +2407,56 @@ span.eael-testimonial-quote { } .eael-entry-media.grid-hover-style-zoom-in .eael-entry-overlay { - -webkit-transform: scale(0.4); - -ms-transform: scale(0.4); - transform: scale(0.4); + transform: scale(0.4); opacity: 0; } .eael-entry-media.grid-hover-style-zoom-in:hover .eael-entry-overlay { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); + transform: scale(1); opacity: 1; } .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay { - -webkit-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); + transform: translateY(-100%); } .eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay > i { - -webkit-transform: translateY(-100px); - -ms-transform: translateY(-100px); - transform: translateY(-100px); - -webkit-transition-delay: 100ms; - -o-transition-delay: 100ms; - transition-delay: 100ms; - -webkit-transition-duration: 300ms; - -o-transition-duration: 300ms; - transition-duration: 300ms; + transform: translateY(-100px); + transition-delay: 100ms; + transition-duration: 300ms; } .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay { - -webkit-transform: translate(0); - -ms-transform: translate(0); - transform: translate(0); + transform: translate(0); } .eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay > i { - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); + transform: translateY(0); } .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay { - -webkit-transform: translateY(100%); - -ms-transform: translateY(100%); - transform: translateY(100%); + transform: translateY(100%); visibility: hidden; opacity: 0; } .eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay > i { - -webkit-transform: translateY(100px); - -ms-transform: translateY(100px); - transform: translateY(100px); - -webkit-transition-delay: 100ms; - -o-transition-delay: 100ms; - transition-delay: 100ms; - -webkit-transition-duration: 300ms; - -o-transition-duration: 300ms; - transition-duration: 300ms; + transform: translateY(100px); + transition-delay: 100ms; + transition-duration: 300ms; } .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay { - -webkit-transform: translate(0); - -ms-transform: translate(0); - transform: translate(0); + transform: translate(0); visibility: visible; opacity: 1; } .eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay > i { - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); + transform: translateY(0); } -/*-----------------------------*/ -/* 16. Post Grid Column -/*-----------------------------*/ +/*--- Post Grid Column Styles ---*/ .eael-col-1 .eael-post-grid-column { float: none; width: 100%; @@ -2604,7 +2487,6 @@ span.eael-testimonial-quote { width: 16.6666%; } -/*--- Post Grid Column Styles ---*/ @media only screen and (max-width: 979px) { .eael-col-1 .eael-post-grid-column, .eael-col-2 .eael-post-grid-column, @@ -2642,9 +2524,6 @@ span.eael-testimonial-quote { .eael-entry-footer { overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } @@ -2665,14 +2544,10 @@ span.eael-testimonial-quote { display: block; width: 100%; height: auto; - -webkit-transition: .3s; - -o-transition: .3s; transition: .3s; } .eael-infobox .infobox-icon .infobox-icon-wrap i { - -webkit-transition: .3s; - -o-transition: .3s; transition: .3s; } @@ -2705,43 +2580,29 @@ span.eael-testimonial-quote { } .eael-infobox-icon-hover-bg-shape-square:hover .infobox-icon .infobox-icon-wrap { - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; } .eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap, .eael-infobox-icon-hover-bg-shape-radius:hover .infobox-icon .infobox-icon-wrap { - -webkit-border-radius: 15px; - border-radius: 15px; + border-radius: 15px; } .eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; } .eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap, .eael-infobox-icon-hover-bg-shape-circle:hover .infobox-icon .infobox-icon-wrap { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap i, .eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap i { margin-top: 50%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); } /*--- Infobox Button ---*/ @@ -2757,66 +2618,36 @@ span.eael-testimonial-quote { .eael-infobox-content-align-left.eael-infobox-icon-bg-shape-square .infobox-icon, .eael-infobox-content-align-left.eael-infobox-icon-bg-shape-radius .infobox-icon, .eael-infobox-content-align-left.eael-infobox-icon-bg-shape-circle .infobox-icon { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: start; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; + justify-content: flex-start; } .eael-infobox-content-align-center.eael-infobox-icon-bg-shape-square .infobox-icon, .eael-infobox-content-align-center.eael-infobox-icon-bg-shape-radius .infobox-icon, .eael-infobox-content-align-center.eael-infobox-icon-bg-shape-circle .infobox-icon { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; } .eael-infobox-content-align-right.eael-infobox-icon-bg-shape-square .infobox-icon, .eael-infobox-content-align-right.eael-infobox-icon-bg-shape-radius .infobox-icon, .eael-infobox-content-align-right.eael-infobox-icon-bg-shape-circle .infobox-icon { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; + justify-content: flex-end; } /*--- Image/Icon On Left ---*/ .eael-infobox.icon-on-left { position: relative; z-index: 0; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .eael-infobox.icon-on-right .infobox-icon-wrap, .eael-infobox.icon-on-left .infobox-icon-wrap { - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - display: -webkit-box !important; - display: -webkit-flex !important; - display: -ms-flexbox !important; + justify-content: center; display: flex !important; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; } .eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap { @@ -2833,17 +2664,12 @@ span.eael-testimonial-quote { .eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap i { margin-top: 0px; - -webkit-transform: translateY(0%); - -ms-transform: translateY(0%); - transform: translateY(0%); + transform: translateY(0%); } .eael-infobox.icon-on-left .infobox-content { padding-left: 15px; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; } .eael-infobox.icon-on-left .infobox-content .title { @@ -2855,15 +2681,8 @@ span.eael-testimonial-quote { .eael-infobox.icon-on-right { position: relative; z-index: 0; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: reverse; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; + flex-direction: row-reverse; } .eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap { @@ -2877,20 +2696,14 @@ span.eael-testimonial-quote { .eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap i { margin-top: 0px; - -webkit-transform: translateY(0%); - -ms-transform: translateY(0%); - transform: translateY(0%); + transform: translateY(0%); } .eael-infobox.icon-on-right .infobox-content { padding-right: 15px; text-align: right; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - -webkit-box-sizing: border-box; - box-sizing: border-box; + flex: 1 1 auto; + box-sizing: border-box; } .eael-infobox.icon-on-right .infobox-content .title { @@ -2906,20 +2719,17 @@ span.eael-testimonial-quote { } .eael-infobox-hover-img-shape-square:hover .eael-infobox .infobox-icon img { - -webkit-border-radius: 0; - border-radius: 0; + border-radius: 0; } .eael-infobox-shape-circle .eael-infobox .infobox-icon img, .eael-infobox-hover-img-shape-circle:hover .eael-infobox .infobox-icon img { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-infobox-shape-radius .eael-infobox .infobox-icon img, .eael-infobox-hover-img-shape-radius:hover .eael-infobox .infobox-icon img { - -webkit-border-radius: 15px; - border-radius: 15px; + border-radius: 15px; } /*---------------------------*/ @@ -2965,8 +2775,7 @@ span.eael-testimonial-quote { } .eael_flip_box_icon_border_round { - -webkit-border-radius: 100px; - border-radius: 100px; + border-radius: 100px; } .eael_eleements_flip_front_icon_style_background, @@ -2996,13 +2805,9 @@ span.eael-testimonial-quote { color: #ffffff; border-color: #000000; -webkit-display: flex; - display: -webkit-box; - display: -ms-flexbox; display: flex; -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; } .eael-elements-flip-box-content, @@ -3025,14 +2830,9 @@ span.eael-testimonial-quote { height: 100%; background: #444444; color: #ffffff; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; border-color: #000000; } @@ -3066,66 +2866,51 @@ span.eael-testimonial-quote { /*--- CSS3 Transitions ---*/ .eael-elements-flip-box-container { - -webkit-perspective: 1000px; - perspective: 1000px; + perspective: 1000px; } .eael-elements-flip-box-front-container, .eael-elements-flip-box-rear-container { - -webkit-transition-duration: 500ms; - -o-transition-duration: 500ms; - transition-duration: 500ms; - -webkit-transition-property: all; - -o-transition-property: all; + transition-duration: 500ms; transition-property: all; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; + transition-timing-function: ease; } .eael-elements-flip-box-flip-card { width: 100%; height: 100%; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transition: all 500ms ease; - -o-transition: all 500ms ease; + transform-style: preserve-3d; transition: all 500ms ease; } .eael-elements-flip-box-rear-container, .eael-elements-flip-box-front-container { + -moz-backface-visibility: hidden; -webkit-backface-visibility: hidden; backface-visibility: hidden; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); + transform: rotateX(0deg); + transform: rotateY(0deg); } /*--- Flip ---*/ .eael-animate-flip.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, .eael-animate-flip.eael-animate-up .eael-elements-flip-box-rear-container { - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); + transform: rotateX(180deg); } .eael-animate-flip.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, .eael-animate-flip.eael-animate-down .eael-elements-flip-box-rear-container { - -webkit-transform: rotateX(-180deg); - transform: rotateX(-180deg); + transform: rotateX(-180deg); } .eael-animate-flip.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, .eael-animate-flip.eael-animate-left .eael-elements-flip-box-rear-container { - -webkit-transform: rotateY(-180deg); - transform: rotateY(-180deg); + transform: rotateY(-180deg); } .eael-animate-flip.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, .eael-animate-flip.eael-animate-right .eael-elements-flip-box-rear-container { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); + transform: rotateY(180deg); } /*--- Slide ---*/ @@ -3203,25 +2988,19 @@ span.eael-testimonial-quote { /*--- Zoom In ---*/ .eael-animate-zoom-in .eael-elements-flip-box-rear-container { opacity: 0; - -webkit-transform: scale(0.75); - -ms-transform: scale(0.75); - transform: scale(0.75); + transform: scale(0.75); z-index: 3; } .eael-animate-zoom-in.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { opacity: 1; - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); + transform: scale(1); } /*--- Zoom Out ---*/ .eael-animate-zoom-out.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { opacity: 0; - -webkit-transform: scale(0.75); - -ms-transform: scale(0.75); - transform: scale(0.75); + transform: scale(0.75); } .eael-animate-fade.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { @@ -3243,8 +3022,7 @@ span.eael-testimonial-quote { .eael-flipbox-img-circle .eael-elements-flip-box-icon-image img, .eael-flipbox-img-circle .flipbox-back-image-icon img { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; overflow: hidden; } @@ -3296,8 +3074,7 @@ span.eael-testimonial-quote { background-image: url("../img/bg.jpg"); background-repeat: no-repeat; background-position: center; - -webkit-background-size: cover; - background-size: cover; + background-size: cover; position: relative; z-index: 0; color: rgba(255, 255, 255, 0.7); @@ -3330,70 +3107,42 @@ span.eael-testimonial-quote { /*--- Cta Flex ---*/ .eael-call-to-action.cta-flex, .eael-call-to-action.cta-icon-flex { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; + justify-content: space-between; + align-items: flex-start; } /*--- Cta Icon Flex ---*/ .eael-call-to-action.cta-icon-flex .icon { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; font-size: 80px; text-align: left; line-height: 130px; } .eael-call-to-action.cta-icon-flex .action { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; text-align: right; padding-top: 22px; - -webkit-flex-basis: 22%; - -ms-flex-preferred-size: 22%; - flex-basis: 22%; + flex-basis: 22%; } .eael-call-to-action.cta-icon-flex .content { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; padding: 0px 30px; } /*--- Cta Flex ---*/ .eael-call-to-action.cta-flex .content { padding: 0px 15px; - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; } .eael-call-to-action.cta-flex .action { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; text-align: right; padding-top: 25px; - -webkit-flex-basis: 23%; - -ms-flex-preferred-size: 23%; - flex-basis: 23%; + flex-basis: 23%; } /*--- Cta Button ---*/ @@ -3406,7 +3155,7 @@ span.eael-testimonial-quote { text-decoration: none; color: #4d4d4d; -webkit-transition: .5s; - -o-transition: .5s; + -ms-transition: .5s; transition: .5s; -webkit-box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.2); -ms-box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.2); @@ -3448,7 +3197,7 @@ span.eael-testimonial-quote { -ms-transform: translateY(-100%); z-index: -1; -webkit-transition: .5s; - -o-transition: .5s; + -ms-transition: .5s; transition: .5s; color: #fff; } @@ -3470,27 +3219,23 @@ span.eael-testimonial-quote { left: 0px; z-index: -1; -webkit-transition: .5s; - -o-transition: .5s; + -ms-transition: .5s; transition: .5s; color: #fff; -webkit-transform: translateX(-100%); - -ms-transform: translateX(-100%); - transform: translateX(-100%); + transform: translateX(-100%); } .eael-call-to-action .cta-button.effect-2:hover::after { -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + transform: translateX(0); } /*--- Media Queries ---*/ @media only screen and (max-width: 768px) { .eael-call-to-action.cta-flex, .eael-call-to-action.cta-icon-flex { - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; + flex-wrap: wrap; } .eael-call-to-action .title { @@ -3500,10 +3245,7 @@ span.eael-testimonial-quote { } .eael-call-to-action.cta-icon-flex .icon { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; font-size: 48px; line-height: 90px; text-align: center; @@ -3511,10 +3253,7 @@ span.eael-testimonial-quote { .eael-call-to-action.cta-flex .content, .eael-call-to-action.cta-icon-flex .content { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; + flex-grow: 1; text-align: center; padding: 0px; } @@ -3596,17 +3335,11 @@ span.eael-testimonial-quote { /* -------------------------------- */ .eael-pricing { -webkit-display: flex; - display: -webkit-box; - display: -ms-flexbox; display: flex; -webkit-justify-content: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; } .eael-pricing .eael-pricing-item { @@ -3625,7 +3358,6 @@ span.eael-testimonial-quote { text-transform: uppercase; text-decoration: none; -webkit-transition: .3s; - -o-transition: .3s; transition: .3s; -webkit-border-radius: 4px; border-radius: 4px; @@ -3668,7 +3400,6 @@ span.eael-testimonial-quote { -webkit-border-radius: 5px; border-radius: 5px; -webkit-transition: .5s; - -o-transition: .5s; transition: .5s; } @@ -3836,8 +3567,7 @@ span.eael-testimonial-quote { .eael-pricing.style-2 .eael-pricing-item { padding: 30px 0px; - -webkit-border-radius: 5px; - border-radius: 5px; + border-radius: 5px; margin: 0px; border: 1px solid rgba(9, 9, 9, 0.1); } @@ -3910,12 +3640,10 @@ span.eael-testimonial-quote { width: 80px; height: 80px; background: #00c853; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; margin-bottom: 30px; text-align: center; -webkit-transition: .5s; - -o-transition: .5s; transition: .5s; overflow: hidden; } @@ -3925,7 +3653,6 @@ span.eael-testimonial-quote { color: #fff; line-height: 80px; -webkit-transition: .5s; - -o-transition: .5s; transition: .5s; } @@ -4113,21 +3840,18 @@ span.eael-testimonial-quote { .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after { -webkit-transform: translateX(-80%); - -ms-transform: translateX(-80%); - transform: translateX(-80%); + transform: translateX(-80%); } .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after { -webkit-transform: translateX(80%); - -ms-transform: translateX(80%); - transform: translateX(80%); + transform: translateX(80%); } .eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after, .eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after { -webkit-transform: translateX(0%); - -ms-transform: translateX(0%); - transform: translateX(0%); + transform: translateX(0%); } .eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after, @@ -4176,17 +3900,11 @@ span.eael-testimonial-quote { .only-in-pro { width: 100%; -webkit-display: flex; - display: -webkit-box; - display: -ms-flexbox; display: flex; -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + align-items: center; -webkit-justify-content: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; padding: 15px; min-width: 200px; background: #EF5350; @@ -4407,8 +4125,7 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { .eael-social-feed-element p.social-feed-text { margin: 0; overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; + text-overflow: ellipsis; -webkit-line-clamp: 5; -webkit-box-orient: vertical; } @@ -4445,8 +4162,7 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { .eael-social-feed-element .media-object { display: block; width: 48px; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-social-feed-element .media-heading { @@ -4468,8 +4184,6 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { } .eael-social-feed-element { - -webkit-transition: 0.25s; - -o-transition: 0.25s; transition: 0.25s; -webkit-backface-visibility: hidden; backface-visibility: hidden; @@ -4484,8 +4198,6 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { .eael-social-feed-element .eael-content { padding: 20px 15px 15px; - -webkit-transition: .4s; - -o-transition: .4s; transition: .4s; background: #fff; } @@ -4540,27 +4252,15 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { display: block; text-align: center; z-index: 10; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-transition: .5s; - -o-transition: .5s; + align-items: center; + justify-content: center; transition: .5s; } .eael-loading-feed .loader { border: 3px solid #f3f3f3; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; border-top: 3px solid #3498db; width: 30px; height: 30px; @@ -4581,12 +4281,10 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { } @keyframes spin { 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); } 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); + transform: rotate(360deg); } } /*--- List View ---*/ @@ -4615,13 +4313,11 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { /*--- Editor Related Style ---*/ .eael-social-feed-avatar-circle .eael-social-feed-element .media-object { - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-social-feed-avatar-square .eael-social-feed-element .media-object { - -webkit-border-radius: 0%; - border-radius: 0%; + border-radius: 0%; } .eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date .eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date { @@ -4653,35 +4349,18 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting font-family: "FontAwesome"; color: #fff; z-index: 1; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); } .eael-data-table-wrap .eael-data-tables_wrapper { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-flow: row wrap; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - -webkit-box-pack: start; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; + flex-flow: row wrap; + justify-content: flex-start; width: 100%; } .eael-data-table-wrap .eael-data-tables_filter { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; + flex-grow: 1; + flex-basis: 50%; text-align: right; } .eael-data-table-wrap .eael-data-tables_filter label { @@ -4695,13 +4374,8 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting margin-left: 10px; } .eael-data-table-wrap .eael-data-tables_length { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; + flex-grow: 1; + flex-basis: 50%; } .eael-data-table-wrap .eael-data-tables_length select { width: auto; @@ -4716,23 +4390,13 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting font-weight: 700; } .eael-data-table-wrap .eael-data-tables_info { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; + flex-grow: 1; + flex-basis: 50%; font-weight: 700; } .eael-data-table-wrap .eael-data-tables_paginate { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-basis: 50%; - -ms-flex-preferred-size: 50%; - flex-basis: 50%; + flex-grow: 1; + flex-basis: 50%; text-align: right; } .eael-data-table-wrap .eael-data-tables_paginate .paginate_button { @@ -4740,8 +4404,6 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting background: #f2f2f2; margin-right: 2px; cursor: pointer; - -webkit-transition: all .3s; - -o-transition: all .3s; transition: all .3s; } .eael-data-table-wrap .eael-data-tables_paginate .paginate_button:hover { @@ -4793,8 +4455,6 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting border-color: #000; } .eael-data-table tbody tr.even { - -webkit-transition: background 0.4s ease-in-out; - -o-transition: background 0.4s ease-in-out; transition: background 0.4s ease-in-out; } .eael-data-table tbody tr.even:hover { @@ -4805,8 +4465,6 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting } .eael-data-table tbody tr.odd { background: rgba(242, 242, 242, 0.5); - -webkit-transition: background 0.2s ease-in-out; - -o-transition: background 0.2s ease-in-out; transition: background 0.2s ease-in-out; } .eael-data-table tbody tr.odd:hover { @@ -4846,16 +4504,9 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting padding: 0 .6em; margin-right: 10px; text-align: center; - -webkit-box-flex: 0; - -webkit-flex-grow: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-flex-basis: 100px; - -ms-flex-preferred-size: 100px; - flex-basis: 100px; + flex-grow: 0; + flex-shrink: 0; + flex-basis: 100px; } .th-mobile-screen .eael-data-table-th-img { margin: 0 auto 15px auto; @@ -4867,26 +4518,17 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting } .td-content-wrapper { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; } .td-content { width: 100%; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; } .td-content > p { width: 100%; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; } .custom-responsive-option-enable .eael-data-table thead { @@ -4897,24 +4539,12 @@ table.eael-data-table thead .sorting:after, table.eael-data-table thead .sorting clear: left; width: 100%; text-align: left; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; } .eael-data-table .td-content { - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; + align-items: center; display: flex; } } @@ -5018,8 +4648,7 @@ table.eael-data-table .sorting_asc.sorting-none:after { left: 0; top: 0; padding: 0 8px; - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; } .mfp-container:before { @@ -5054,6 +4683,7 @@ table.eael-data-table .sorting_asc.sorting-none:after { .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { + cursor: -moz-zoom-out; cursor: -webkit-zoom-out; cursor: zoom-out; } @@ -5061,6 +4691,7 @@ table.eael-data-table .sorting_asc.sorting-none:after { .mfp-zoom { cursor: pointer; cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; cursor: zoom-in; } @@ -5074,8 +4705,7 @@ table.eael-data-table .sorting_asc.sorting-none:after { .mfp-counter { -webkit-user-select: none; -moz-user-select: none; - -ms-user-select: none; - user-select: none; + user-select: none; } .mfp-loading.mfp-figure { @@ -5125,10 +4755,8 @@ button.mfp-arrow { outline: none; padding: 0; z-index: 1046; - -webkit-box-shadow: none; - box-shadow: none; - -ms-touch-action: manipulation; - touch-action: manipulation; + box-shadow: none; + touch-action: manipulation; } button::-moz-focus-inner { @@ -5288,8 +4916,7 @@ button::-moz-focus-inner { left: 0; width: 100%; height: 100%; - -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); background: #000; } @@ -5300,8 +4927,7 @@ img.mfp-img { height: auto; display: block; line-height: 0; - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; padding: 40px 0 40px; margin: 0 auto; } @@ -5322,8 +4948,7 @@ img.mfp-img { width: auto; height: auto; z-index: -1; - -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); background: #444; } @@ -5405,8 +5030,7 @@ button.mfp-close:hover { top: auto; padding: 3px 5px; position: fixed; - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; } .mfp-img-mobile .mfp-bottom-bar:empty { @@ -5433,20 +5057,17 @@ button.mfp-close:hover { @media all and (max-width: 900px) { .mfp-arrow { -webkit-transform: scale(0.75); - -ms-transform: scale(0.75); - transform: scale(0.75); + transform: scale(0.75); } .mfp-arrow-left { -webkit-transform-origin: 0; - -ms-transform-origin: 0; - transform-origin: 0; + transform-origin: 0; } .mfp-arrow-right { -webkit-transform-origin: 100%; - -ms-transform-origin: 100%; - transform-origin: 100%; + transform-origin: 100%; } .mfp-container { @@ -5473,26 +5094,11 @@ button.mfp-close:hover { } .eael-filter-gallery-control { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-flow: 1 1 auto; - -ms-flex-flow: 1 1 auto; - flex-flow: 1 1 auto; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-flex-flow: row wrap; - -ms-flex-flow: row wrap; - flex-flow: row wrap; + flex-flow: 1 1 auto; + align-items: center; + justify-content: center; + flex-flow: row wrap; padding: 0px; margin: 0px; } @@ -5531,33 +5137,16 @@ button.mfp-close:hover { .eael-filter-gallery-container .item .caption { position: absolute; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-flow: 1 1 100%; - -ms-flex-flow: 1 1 100%; - flex-flow: 1 1 100%; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + flex-flow: 1 1 100%; + align-items: center; + justify-content: center; z-index: 1; top: 0px; left: 0px; right: 0px; bottom: 0px; - -webkit-transition: -webkit-transform .4s; - transition: -webkit-transform .4s; - -o-transition: transform .4s; transition: transform .4s; - transition: transform .4s, -webkit-transform .4s; } .eael-filter-gallery-container.eael-cards .item .caption { @@ -5566,33 +5155,16 @@ button.mfp-close:hover { .eael-filter-gallery-container.eael-cards .item .item-img .caption { position: absolute; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-flow: 1 1 100%; - -ms-flex-flow: 1 1 100%; - flex-flow: 1 1 100%; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + flex-flow: 1 1 100%; + align-items: center; + justify-content: center; z-index: 10; top: 0px; left: 0px; right: 0px; bottom: 0px; - -webkit-transition: -webkit-transform .4s; - transition: -webkit-transform .4s; - -o-transition: transform .4s; transition: transform .4s; - transition: transform .4s, -webkit-transform .4s; } .gallery-item-caption-over { @@ -5607,72 +5179,52 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { /*--- Caption Animation ---*/ .eael-filter-gallery-container .item .caption.eael-zoom-in, .eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-zoom-in { - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); + transform: scale(0); } .eael-filter-gallery-container .item:hover .caption.eael-zoom-in, .eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-zoom-in { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); + transform: scale(1); } .eael-filter-gallery-container .item .caption.eael-slide-left, .eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-left { - -webkit-transform: translateX(-100%); - -ms-transform: translateX(-100%); - transform: translateX(-100%); + transform: translateX(-100%); } .eael-filter-gallery-container .item:hover .caption.eael-slide-left, .eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-left { - -webkit-transform: translateX(0%); - -ms-transform: translateX(0%); - transform: translateX(0%); + transform: translateX(0%); } .eael-filter-gallery-container .item .caption.eael-slide-right, .eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-right { - -webkit-transform: translateX(100%); - -ms-transform: translateX(100%); - transform: translateX(100%); + transform: translateX(100%); } .eael-filter-gallery-container .item:hover .caption.eael-slide-right, .eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-right { - -webkit-transform: translateX(0%); - -ms-transform: translateX(0%); - transform: translateX(0%); + transform: translateX(0%); } .eael-filter-gallery-container .item .caption.eael-slide-top, .eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-top { - -webkit-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); + transform: translateY(-100%); } .eael-filter-gallery-container .item:hover .caption.eael-slide-top, .eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-top { - -webkit-transform: translateY(0%); - -ms-transform: translateY(0%); - transform: translateY(0%); + transform: translateY(0%); } .eael-filter-gallery-container .item .caption.eael-slide-bottom, .eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-bottom { - -webkit-transform: translateY(100%); - -ms-transform: translateY(100%); - transform: translateY(100%); + transform: translateY(100%); } .eael-filter-gallery-container .item:hover .caption.eael-slide-bottom, .eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-bottom { - -webkit-transform: translateY(0%); - -ms-transform: translateY(0%); - transform: translateY(0%); + transform: translateY(0%); } .eael-filter-gallery-container .item .caption a { @@ -5681,41 +5233,30 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { height: 50px; text-align: center; line-height: 50px; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; margin: 0 5px; font-size: 20px; cursor: pointer; - -webkit-transition: .3s; - -o-transition: .3s; transition: .3s; } .eael-filter-gallery-container .item .caption a:nth-child(1), .eael-container .item .caption a:nth-child(2) { - -webkit-transition: .6s; - -o-transition: .6s; transition: .6s; opacity: 0; } .eael-filter-gallery-container .item .caption a:nth-child(1) { - -webkit-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); + transform: translateY(-100%); } .eael-filter-gallery-container .item .caption a:nth-child(2) { - -webkit-transform: translateY(100%); - -ms-transform: translateY(100%); - transform: translateY(100%); + transform: translateY(100%); } .eael-filter-gallery-container .item .caption:hover a:nth-child(1), .eael-filter-gallery-container .item .caption:hover a:nth-child(2) { - -webkit-transform: translateY(0%); - -ms-transform: translateY(0%); - transform: translateY(0%); + transform: translateY(0%); opacity: 1; } @@ -5732,8 +5273,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { position: relative; background-repeat: no-repeat; background-position: center; - -webkit-background-size: cover; - background-size: cover; + background-size: cover; height: 220px; z-index: 0; overflow: hidden; @@ -5748,8 +5288,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { font-size: 20px; line-height: 1; margin-bottom: 0px; - -webkit-transition: .3s; - -o-transition: .3s; transition: .3s; } @@ -5856,8 +5394,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .eael-filterable-gallery-item-wrap .gallery-grid-item .gallery-item-thumbnail-wrap > img { height: 100%; width: 100%; - -o-object-fit: cover; - object-fit: cover; + object-fit: cover; } /*--- Gallery content css ---*/ @@ -5902,8 +5439,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .gallery-item-caption-wrap.caption-style-card { padding: 10px; - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; font-family: inherit; } @@ -5923,17 +5459,9 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .gallery-item-caption-wrap.caption-style-hoverer { visibility: hidden; opacity: 0; - -webkit-transition: 0.6s all ease; - -o-transition: 0.6s all ease; transition: 0.6s all ease; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + align-items: center; } .gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer { @@ -5948,11 +5476,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5 { - -webkit-transform: translateY(20px); - -ms-transform: translateY(20px); - transform: translateY(20px); - -webkit-transition: 0.6s all ease; - -o-transition: 0.6s all ease; + transform: translateY(20px); transition: 0.6s all ease; } @@ -5961,60 +5485,41 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p { - -webkit-transform: translateY(40px); - -ms-transform: translateY(40px); - transform: translateY(40px); - -webkit-transition: 0.6s all ease; - -o-transition: 0.6s all ease; + transform: translateY(40px); transition: 0.6s all ease; } .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons { - -webkit-transform: translateY(40px); - -ms-transform: translateY(40px); - transform: translateY(40px); - -webkit-transition: 0.6s all ease; - -o-transition: 0.6s all ease; + transform: translateY(40px); transition: 0.6s all ease; } .gallery-item-caption-wrap .gallery-item-buttons > a { padding: 5px 15px; display: inline-block; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; outline: none; text-decoration: none; } .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in { - -webkit-transform: scale(0.8); - -ms-transform: scale(0.8); - transform: scale(0.8); - -webkit-transition: 0.6s all ease; - -o-transition: 0.6s all ease; + transform: scale(0.8); transition: 0.6s all ease; } .gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5, .gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons, .gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p { - -webkit-transform: translate(0); - -ms-transform: translate(0); - transform: translate(0); + transform: translate(0); } .gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); + transform: scale(1); visibility: visible; opacity: 1; } .gallery-item-caption-wrap.caption-style-hoverer.eael-none { - -webkit-transition: none; - -o-transition: none; transition: none; } @@ -6036,37 +5541,22 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { width: 62px; position: relative; z-index: 1; - -webkit-transition: 300ms; - -o-transition: 300ms; transition: 300ms; } .video-popup { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; } .video-popup:hover > img { - -webkit-transform: scale(1.1); - -ms-transform: scale(1.1); - transform: scale(1.1); + transform: scale(1.1); } .video-popup-bg { visibility: hidden; opacity: 0; - -webkit-transition: 350ms; - -o-transition: 350ms; transition: 350ms; } @@ -6081,25 +5571,14 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { top: 0; height: 100%; width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; } .gallery-item-caption-wrap.card-hover-bg { visibility: hidden; opacity: 0; - -webkit-transition: 800ms; - -o-transition: 800ms; transition: 800ms; } @@ -6109,18 +5588,9 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .gallery-item-caption-wrap .gallery-item-buttons > a > i { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; height: 100%; } @@ -6428,110 +5898,25 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { clear: left; } } -/*----------------------------*/ -/* 28. Swiper -/*----------------------------*/ -.swiper-container-wrap .swiper-slide, -.swiper-container .swiper-slide { - text-align: center; -} - -.swiper-container-wrap .swiper-slide img, -.swiper-container .swiper-slide img { - width: auto; -} - -.swiper-container-wrap-dots-outside .swiper-pagination, -.swiper-container-dots-outside .swiper-pagination { - position: static; -} - -.swiper-container-wrap .swiper-button-next, -.swiper-container-wrap .swiper-button-prev, -.swiper-container .swiper-button-next, -.swiper-container .swiper-button-prev { - background: transparent; - font-size: 20px; - height: auto; - line-height: 1; - margin: 0; - text-align: center; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); - width: auto; -} - -.swiper-container-wrap .swiper-button-next .fa, -.swiper-container-wrap .swiper-button-prev .fa, -.swiper-container .swiper-button-next .fa, -.swiper-container .swiper-button-prev .fa { - vertical-align: top; -} - -.swiper-container-wrap .swiper-pagination { - bottom: 10px; - left: 0; - width: 100%; -} - -.swiper-container-wrap-dots-outside .swiper-pagination { - position: static; -} - -.swiper-container-wrap .swiper-pagination-bullet { - background: #ccc; - margin: 0 4px; - opacity: 1; - height: 8px; - width: 8px; -} - -.swiper-container-wrap .swiper-pagination-bullet-active { - background: #000; -} - -.swiper-container-3d .swiper-slide { - -o-transition-property: all; - transition-property: all; - -webkit-transition-property: all; -} - /*----------------------------*/ /* 29. Content Ticker /*----------------------------*/ .eael-ticker-wrap { overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-flow: row nowrap; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + flex-flow: row nowrap; + align-items: center; width: 100%; } .eael-ticker-wrap .ticker-badge { - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; + flex: 0 0 auto; padding: 8px 12px; } .eael-ticker-wrap .eael-ticker { overflow: hidden; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; } .eael-ticker-wrap .eael-ticker .ticker-content { @@ -6564,11 +5949,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { @media only screen and (max-width: 767px) { .eael-ticker-wrap { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-flow: row wrap; - -ms-flex-flow: row wrap; - flex-flow: row wrap; + flex-flow: row wrap; } .content-ticker-pagination { @@ -6587,41 +5968,20 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { padding: 0px; margin: 0px; list-style-type: none; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: start; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + justify-content: flex-start; + align-items: center; z-index: 1; } .eael-advance-tabs .eael-tabs-nav > ul li { position: relative; padding: 1em 1.5em; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; cursor: pointer; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + justify-content: center; + align-items: center; text-align: center; } @@ -6653,14 +6013,8 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .eael-tabs-content { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1 1 auto; - -ms-flex: 1 1 auto; - flex: 1 1 auto; + flex: 1 1 auto; } .eael-advance-tabs .eael-tabs-content > div { @@ -6674,8 +6028,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { width: 100%; padding: 1em; opacity: 1; - -webkit-animation: fadeIn linear 0.3s; - animation: fadeIn linear 0.3s; + animation: fadeIn linear 0.3s; } /*--- Inline Icon ---*/ @@ -6685,22 +6038,14 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .eael-tab-top-icon li a { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; + flex-wrap: wrap; text-align: center; } .eael-tab-top-icon li a .fa, .eael-tab-top-icon li a .eael-tab-title { - -webkit-box-flex: 1; - -webkit-flex: 1 1 100%; - -ms-flex: 1 1 100%; - flex: 1 1 100%; + flex: 1 1 100%; line-height: 1; } @@ -6710,39 +6055,26 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { /*--- Vertical Tabs ---*/ .eael-advance-tabs.eael-tabs-vertical { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; } .eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav { - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; + flex: 0 0 auto; } .eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-flow: column wrap; - -ms-flex-flow: column wrap; - flex-flow: column wrap; + flex-flow: column wrap; } .eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul > li { width: 100%; - -webkit-box-pack: start; - -webkit-justify-content: start; - -ms-flex-pack: start; - justify-content: start; + justify-content: start; } .eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav > ul li::after { bottom: auto !important; right: -10px; - top: calc(50% - 10px) !important; + top: calc(50% - 10px); left: auto !important; border-left: 10px solid #444; border-right: 0; @@ -6752,16 +6084,38 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { @media only screen and (max-width: 767px) { .eael-advance-tabs .eael-tabs-nav > ul { - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; + flex-wrap: wrap; } .eael-advance-tabs .eael-tabs-nav > ul li { - -webkit-box-flex: 1; - -webkit-flex: 1 100%; - -ms-flex: 1 100%; - flex: 1 100%; + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical { + flex-wrap: wrap; + } + + .eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav { + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical ul { + flex: 1 100%; + } + + .eael-advance-tabs.eael-tabs-vertical ul li { + flex: 1 100%; + } + + div.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav > ul li::after { + border-left-color: transparent !important; + bottom: -20px !important; + left: 0 !important; + right: 0 !important; + top: auto !important; + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top-color: #444 !important; } } /*------------------------------*/ @@ -6770,8 +6124,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .eael-adv-accordion { width: auto; height: auto; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } @@ -6781,41 +6133,22 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { font-size: 1rem; font-weight: 600; line-height: 1; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + justify-content: space-between; + align-items: center; cursor: pointer; } .eael-adv-accordion .eael-accordion-list .eael-accordion-header .fa-toggle { - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); z-index: 10; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } .eael-adv-accordion .eael-accordion-list .eael-accordion-header.active .fa-toggle { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); + transform: rotate(90deg); z-index: 10; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } @@ -6828,8 +6161,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { display: none; border: 1px solid #eee; padding: 15px; - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; font-size: 1rem; line-height: 1.7; } @@ -6842,52 +6174,21 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { display: block; } -@-webkit-keyframes rotate-90 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(-180deg); - transform: rotateY(-180deg); - } -} - @keyframes rotate-90 { 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(-180deg); - transform: rotateY(-180deg); - } -} -@-webkit-keyframes fadeIn { - 0% { - opacity: 1; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; + transform: rotateY(0deg); } 100% { - opacity: 1; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; + transform: rotateY(-180deg); } } @keyframes fadeIn { 0% { opacity: 1; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } 100% { opacity: 1; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } } @@ -6904,8 +6205,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { color: #333; line-height: 1; cursor: pointer; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } @@ -6916,8 +6215,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { background-color: black; color: #fff; text-align: center; - -webkit-border-radius: 4px; - border-radius: 4px; + border-radius: 4px; padding: 10px; position: absolute; z-index: 1; @@ -6940,15 +6238,12 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .eael-tooltip .eael-tooltip-text.eael-tooltip-left { top: 50%; right: 100%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); margin-right: 10px; } .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left { - -webkit-animation: tooltipLeftIn 300ms ease-in-out; - animation: tooltipLeftIn 300ms ease-in-out; + animation: tooltipLeftIn 300ms ease-in-out; } .eael-tooltip .eael-tooltip-text.eael-tooltip-left::after { @@ -6961,18 +6256,13 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .eael-tooltip .eael-tooltip-text.eael-tooltip-right { top: 50%; left: 100%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; + transform: translateY(-50%); transition: all 0.3s ease-in-out; margin-left: 10px; } .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right { - -webkit-animation: tooltipRightIn 300ms linear; - animation: tooltipRightIn 300ms linear; + animation: tooltipRightIn 300ms linear; } .eael-tooltip .eael-tooltip-text.eael-tooltip-right::after { @@ -6997,8 +6287,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top { - -webkit-animation: tooltipTopIn 300ms linear; - animation: tooltipTopIn 300ms linear; + animation: tooltipTopIn 300ms linear; } /*--- Bottom ---*/ @@ -7017,73 +6306,35 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom { - -webkit-animation: tooltipBottomIn 300ms linear; - animation: tooltipBottomIn 300ms linear; + animation: tooltipBottomIn 300ms linear; } /*--- Alignments ---*/ .eael-tooltip-align-left { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; - -webkit-box-pack: start; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; + justify-content: flex-start; } .eael-tooltip-align-right { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; - -webkit-box-pack: end; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; + justify-content: flex-end; } .eael-tooltip-align-center { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; width: 100%; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; } .eael-tooltip-align-justify .eael-tooltip { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; + justify-content: center; + align-items: center; } /*--- Tooltip Keyframes ---*/ -@-webkit-keyframes tooltipRightIn { - 0% { - opacity: 0; - left: 105%; - } - 100% { - opacity: 1; - left: 100%; - } -} @keyframes tooltipRightIn { 0% { opacity: 0; @@ -7094,16 +6345,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { left: 100%; } } -@-webkit-keyframes tooltipLeftIn { - 0% { - opacity: 0; - right: 105%; - } - 100% { - opacity: 1; - right: 100%; - } -} @keyframes tooltipLeftIn { 0% { opacity: 0; @@ -7114,16 +6355,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { right: 100%; } } -@-webkit-keyframes tooltipTopIn { - 0% { - opacity: 0; - bottom: 110%; - } - 100% { - opacity: 1; - bottom: 100%; - } -} @keyframes tooltipTopIn { 0% { opacity: 0; @@ -7134,16 +6365,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { bottom: 100%; } } -@-webkit-keyframes tooltipBottomIn { - 0% { - opacity: 0; - top: 110%; - } - 100% { - opacity: 1; - top: 100%; - } -} @keyframes tooltipBottomIn { 0% { opacity: 0; @@ -7156,42 +6377,34 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } @-webkit-keyframes animateStripe { 0% { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); + transform: translate(0, 0); } 100% { - -webkit-transform: translate(35px, 0); - transform: translate(35px, 0); + transform: translate(35px, 0); } } @keyframes animateStripe { 0% { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); + transform: translate(0, 0); } 100% { - -webkit-transform: translate(35px, 0); - transform: translate(35px, 0); + transform: translate(35px, 0); } } @-webkit-keyframes animateStripeRTL { 0% { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); + transform: translate(0, 0); } 100% { - -webkit-transform: translate(-35px, 0); - transform: translate(-35px, 0); + transform: translate(-35px, 0); } } @keyframes animateStripeRTL { 0% { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); + transform: translate(0, 0); } 100% { - -webkit-transform: translate(-35px, 0); - transform: translate(-35px, 0); + transform: translate(-35px, 0); } } .eael-progressbar { @@ -7227,11 +6440,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { width: 0; height: 12px; background-color: #000000; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); - -webkit-transition: width 1500ms linear; - -o-transition: width 1500ms linear; + transform: translateY(-50%); transition: width 1500ms linear; overflow: hidden; } @@ -7254,8 +6463,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { width: 220px; height: 220px; padding: 10px; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-progressbar-circle-pie { @@ -7264,8 +6472,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { left: 0; width: 100%; height: 100%; - -webkit-clip-path: inset(0 0 0 50%); - clip-path: inset(0 0 0 50%); + clip-path: inset(0 0 0 50%); } .eael-progressbar-circle-inner { @@ -7274,8 +6481,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { border-width: 12px; border-style: solid; border-color: #eeeeee; - -webkit-border-radius: 50%; - border-radius: 50%; + border-radius: 50%; } .eael-progressbar-circle-half { @@ -7287,22 +6493,16 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { border-width: 12px; border-style: solid; border-color: #000000; - -webkit-border-radius: 50%; - border-radius: 50%; - -webkit-clip-path: inset(0 50% 0 0); - clip-path: inset(0 50% 0 0); + border-radius: 50%; + clip-path: inset(0 50% 0 0); } .eael-progressbar-circle-half-left { - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); } .eael-progressbar-circle-half-right { - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); + transform: rotate(180deg); visibility: hidden; } @@ -7310,9 +6510,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { position: absolute; top: 50%; width: 100%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); + transform: translateY(-50%); text-align: center; } @@ -7323,27 +6521,17 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { overflow: hidden; } .eael-progressbar-half-circle .eael-progressbar-circle-pie { - -webkit-clip-path: inset(0 0 50% 0); - clip-path: inset(0 0 50% 0); + clip-path: inset(0 0 50% 0); } .eael-progressbar-half-circle .eael-progressbar-circle-half { - -webkit-clip-path: inset(50% 0 0 0); - clip-path: inset(50% 0 0 0); - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transition: -webkit-transform 1500ms linear; - transition: -webkit-transform 1500ms linear; - -o-transition: transform 1500ms linear; + clip-path: inset(50% 0 0 0); + transform: rotate(0deg); transition: transform 1500ms linear; - transition: transform 1500ms linear, -webkit-transform 1500ms linear; } .eael-progressbar-half-circle .eael-progressbar-circle-inner-content { top: initial; bottom: 0; - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); + transform: translateY(0); } .eael-progressbar-half-circle .eael-progressbar-title { font-size: 16px; @@ -7372,86 +6560,75 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { left: -35px; width: calc(100% + 70px); height: 100%; - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 35px 35px; - background-size: 35px 35px; + background-size: 35px 35px; } .eael-progressbar-line-animate .eael-progressbar-line-fill:after { - -webkit-animation: animateStripe 2s linear infinite; - animation: animateStripe 2s linear infinite; + animation: animateStripe 2s linear infinite; } .eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after { - -webkit-animation: animateStripeRTL 2s linear infinite; - animation: animateStripeRTL 2s linear infinite; + animation: animateStripeRTL 2s linear infinite; } .eael-progressbar-circle-wrap > div { margin: 0 auto; } +/*alignment*/ +.eael-progressbar-line-container.left, +.eael-progressbar-circle-container.left > div, +.eael-progressbar-box-container.left > div { + margin: 0 auto 0 0; +} + +.eael-progressbar-line-container.center, +.eael-progressbar-circle-container.center > div, +.eael-progressbar-box-container.center > div { + margin: 0 auto; +} + +.eael-progressbar-line-container.right, +.eael-progressbar-circle-container.right > div, +.eael-progressbar-box-container.right > div { + margin: 0 0 0 auto; +} + /*------------------------------*/ /* 34. Image accordion /*------------------------------*/ .eael-img-accordion { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; height: 50vh; } .eael-img-accordion a { position: relative; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + flex: 1; text-align: center; text-decoration: none; color: #fff; - -webkit-background-size: cover; - background-size: cover; + background-size: cover; background-position: center; background-repeat: no-repeat; - -webkit-transition: -webkit-box-flex .4s, -webkit-flex .4s; - transition: -webkit-box-flex .4s, -webkit-flex .4s; - -o-transition: flex .4s; transition: flex .4s; - transition: flex .4s, -webkit-box-flex .4s, -webkit-flex .4s, -ms-flex .4s; } .eael-grow-accordion { - -webkit-box-flex: 3; - -webkit-flex: 3; - -ms-flex: 3; - flex: 3; + flex: 3; } .eael-img-accordion .overlay { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; + align-items: center; + justify-content: center; padding: 0 10px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; - -webkit-transition: background-color .4s; - -o-transition: background-color .4s; transition: background-color .4s; } @@ -7469,69 +6646,44 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { left: 0px; bottom: 0px; right: 0px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out; } .eael-img-accordion .overlay-inner * { visibility: hidden; opacity: 0; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; + transform-style: preserve-3d; } .eael-img-accordion .overlay h2 { color: #fff; - -webkit-transform: translate3d(0, -60px, 0); - transform: translate3d(0, -60px, 0); + transform: translate3d(0, -60px, 0); } .eael-img-accordion .overlay p { color: #fff; - -webkit-transform: translate3d(0, 60px, 0); - transform: translate3d(0, 60px, 0); + transform: translate3d(0, 60px, 0); } .eael-img-accordion .overlay-inner-show * { opacity: 1; visibility: visible; - -webkit-transform: none !important; - -ms-transform: none !important; - transform: none !important; - -webkit-transition: all .3s .3s; - -o-transition: all .3s .3s; + transform: none !important; transition: all .3s .3s; } @media screen and (max-width: 800px) { .eael-img-accordion { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; + flex-direction: column; } .eael-img-accordion a:hover { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + flex: 1; } .eael-img-accordion a:hover .overlay { background-color: transparent; } - - .eael-img-accordion .overlay h2, - .eael-img-accordion .overlay p { - opacity: 1; - visibility: visible; - -webkit-transform: none; - -ms-transform: none; - transform: none; - } } /*----------------------------*/ /* 35. Feature List @@ -7590,25 +6742,34 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box { z-index: 2; + transition: all 0.5s; +} +@media (prefers-reduced-motion: reduce) { + .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box { + transition: none; + } +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner { + background-color: #37368e; + transition: all 0.5s; + display: inline-flex; +} +@media (prefers-reduced-motion: reduce) { + .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner { + transition: none; + } } .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon { - padding: .5em; - -webkit-transition: all 0.5s; - -o-transition: all 0.5s; + padding: 0.5em; transition: all 0.5s; font-size: 30px; line-height: 1; - color: #818a91; + color: #37368e; text-align: center; - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; display: inline-flex; } @media (prefers-reduced-motion: reduce) { .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon { - -webkit-transition: none; - -o-transition: none; transition: none; } } @@ -7628,41 +6789,41 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img { font-size: 8px; line-height: 1; + max-width: inherit; } .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box { margin: 0 0 0 20px; } .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title { - margin-top: 0; + margin-top: -2px; line-height: 1.5em; } .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content { padding: 0; margin: 0; + font-size: 14px; line-height: 1.5em; } .elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon { - background-color: #818a91; color: #fff; } .elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon { - border: 1px solid #818a91; background-color: #fff; } -.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon { - -webkit-border-radius: 50%; - border-radius: 50%; +.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner { + border-radius: 50%; } -.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon { - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); +.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner .eael-feature-list-icon { + border-radius: 50%; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon-inner { + transform: rotate(45deg); margin: 15px; } .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i { - -ms-transform: rotate(-43deg); - -webkit-transform: rotate(-43deg); - transform: rotate(-43deg); + -ms-transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img { -ms-transform: rotate(-45deg); @@ -7683,7 +6844,7 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { } } .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { - content: ''; + content: ""; position: absolute; display: block; } @@ -7793,21 +6954,33 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-top: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 50px; } } @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 30px; } } @media (min-width: 768px) and (max-width: 1024px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { left: 0; right: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: 5px; top: 30px; } @@ -7816,21 +6989,33 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-right: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 50px; } } @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 30px; } } @media (min-width: 768px) and (max-width: 1024px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { left: 0; right: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: 5px; } .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-content-box { @@ -7838,21 +7023,33 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-top: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 50px 0 0; } } @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 30px 0 0; } } @media (min-width: 768px) and (max-width: 1024px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { right: 0; left: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: auto; right: 5px; } @@ -7889,21 +7086,57 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-top: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 50px; } } @media (max-width: 767px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 30px; } } @media (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { left: 0; right: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: 5px; } .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box { @@ -7911,21 +7144,57 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-right: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 50px; } } @media (max-width: 767px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 0 0 30px; } } @media (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { left: 0; right: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: 5px; } .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box { @@ -7933,21 +7202,57 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover { margin-top: 0 !important; margin-bottom: 0 !important; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 50px 0 0; } } @media (max-width: 767px) and (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { padding: 0 30px 0 0; } } @media (max-width: 767px) { - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { right: 0; left: auto; } - .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { left: auto; right: 5px; } diff --git a/assets/front-end/css/eael.min.css b/assets/front-end/css/eael.min.css new file mode 100644 index 000000000..0a37cb2ab --- /dev/null +++ b/assets/front-end/css/eael.min.css @@ -0,0 +1 @@ +.clearfix::after,.clearfix::before{content:" ";display:table;clear:both}.eael-logo-carousel.nav-top-left,.eael-logo-carousel.nav-top-right,.eael-post-carousel.nav-top-left,.eael-post-carousel.nav-top-right,.eael-product-carousel.nav-top-left,.eael-product-carousel.nav-top-right,.eael-team-slider.nav-top-left,.eael-team-slider.nav-top-right,.eael-testimonial-slider.nav-top-left,.eael-testimonial-slider.nav-top-right{padding-top:40px}.swiper-container .swiper-slide,.swiper-container-wrap .swiper-slide{text-align:center}.swiper-container .swiper-slide img,.swiper-container-wrap .swiper-slide img{width:auto}.swiper-container-dots-outside .swiper-pagination,.swiper-container-wrap-dots-outside .swiper-pagination{position:static}.swiper-container .swiper-button-next,.swiper-container .swiper-button-prev,.swiper-container-wrap .swiper-button-next,.swiper-container-wrap .swiper-button-prev{background:0 0;font-size:20px;height:auto;line-height:1;margin:0;text-align:center;transform:translateY(-50%);width:auto}.swiper-container .swiper-button-next .fa,.swiper-container .swiper-button-prev .fa,.swiper-container-wrap .swiper-button-next .fa,.swiper-container-wrap .swiper-button-prev .fa{vertical-align:top}.swiper-container-wrap .swiper-pagination{bottom:10px;left:0;width:100%}.swiper-container-wrap-dots-outside .swiper-pagination{position:static}.swiper-container-wrap .swiper-pagination-bullet{background:#ccc;margin:0 4px;opacity:1;height:8px;width:8px}.swiper-container-wrap .swiper-pagination-bullet-active{background:#000}.swiper-container-3d .swiper-slide{transition-property:all;-webkit-transition-property:all}.eael-contact-form input[type=date],.eael-contact-form input[type=email],.eael-contact-form input[type=number],.eael-contact-form input[type=tel],.eael-contact-form input[type=text],.eael-contact-form input[type=url],.eael-contact-form textarea{background:#fff;box-shadow:none;-webkit-box-shadow:none;float:none;height:auto;margin:0;outline:0;width:auto}.eael-contact-form input[type=submit]{border:0;float:none;height:auto;margin:0;padding:10px 20px;width:auto;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-contact-form.placeholder-hide input::-webkit-input-placeholder,.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input::-moz-placeholder,.eael-contact-form.placeholder-hide textarea::-moz-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-ms-input-placeholder,.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder{opacity:0;visibility:hidden}.eael-contact-form.placeholder-hide input:-moz-placeholder,.eael-contact-form.placeholder-hide textarea:-moz-placeholder{opacity:0;visibility:hidden}.eael-custom-radio-checkbox input[type=checkbox],.eael-custom-radio-checkbox input[type=radio]{-webkit-appearance:none;-moz-appearance:none;border-style:solid;border-width:0;outline:0;min-width:1px;width:15px;height:15px;background:#ddd;padding:3px}.eael-custom-radio-checkbox input[type=checkbox]:before,.eael-custom-radio-checkbox input[type=radio]:before{content:"";width:100%;height:100%;padding:0;margin:0;display:block}.eael-custom-radio-checkbox input[type=checkbox]:checked:before,.eael-custom-radio-checkbox input[type=radio]:checked:before{background:#999;-webkit-transition:all .25s linear 0s;transition:all .25s linear 0s}.eael-custom-radio-checkbox input[type=radio]{border-radius:50%}.eael-custom-radio-checkbox input[type=radio]:before{border-radius:50%}.eael-fancy-text-container p{margin:0}.eael-fancy-text-prefix,.eael-fancy-text-strings,.eael-fancy-text-suffix{display:inline-block}.morphext>.animated{display:inline-block}.typed-cursor{opacity:1;-webkit-animation:blink_cursor .7s infinite;-moz-animation:blink_cursor .7s infinite;animation:blink_cursor .7s infinite}@keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}@-webkit-keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}@-moz-keyframes blink_cursor{0%{opacity:1}50%{opacity:0}100%{opacity:1}}.eael-fancy-text-container.style-2{font-size:24px}.eael-fancy-text-container.style-2 .eael-fancy-text-strings{background:#f54;color:#fff;padding:10px 25px}.eael-creative-button-align-center{text-align:center}.eael-creative-button-wrapper{display:flex}.eael-creative-button{flex:0 0 auto;min-width:150px;text-align:center;vertical-align:middle;position:relative;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-moz-osx-font-smoothing:grayscale}.eael-creative-button:focus{outline:0}.eael-creative-button>span{vertical-align:middle}.eael-creative-button{border-radius:2px;padding:20px 30px;font-size:16px;line-height:1}.eael-creative-button--winona{overflow:hidden;padding:0!important;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona::after{content:attr(data-text);position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;-webkit-transform:translate3d(0,25%,0);transform:translate3d(0,25%,0)}.eael-creative-button--winona>span{display:block}.eael-creative-button--winona::after,.eael-creative-button--winona>span{padding:1em 2em;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--winona:hover::after{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--winona:hover>span{opacity:0;-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.eael-creative-button--ujarak{-webkit-transition:border-color .4s,color .4s;transition:border-color .4s,color .4s}.eael-creative-button--ujarak::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;opacity:0;-webkit-transform:scale3d(.7,1,1);transform:scale3d(.7,1,1);-webkit-transition:-webkit-transform .4s,opacity .4s;transition:transform .4s,opacity .4s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak,.eael-creative-button--ujarak::before{-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--ujarak:hover::before{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--wayra{overflow:hidden;-webkit-transition:border-color .3s,color .3s;transition:border-color .3s,color .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--wayra::before{content:'';position:absolute;top:0;left:0;width:150%;height:100%;z-index:-1;-webkit-transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);transform:rotate3d(0,0,1,-45deg) translate3d(0,-3em,0);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transition:-webkit-transform .3s,opacity .3s,background-color .3s;transition:transform .3s,opacity .3s,background-color .3s}.eael-creative-button--wayra:hover::before{opacity:1;-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg);-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya{overflow:hidden}.eael-creative-button--tamaya::after,.eael-creative-button--tamaya::before{content:attr(data-text);position:absolute;width:100%;height:50%;left:0;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya::before{top:0;padding:20px 30px}.eael-creative-button--tamaya::after{bottom:0;line-height:0}.eael-creative-button--tamaya:hover::after{bottom:-1px}.eael-creative-button--tamaya>span{display:block;-webkit-transform:scale3d(.2,.2,1);transform:scale3d(.2,.2,1);opacity:0;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transition-timing-function:cubic-bezier(.2,1,.3,1);transition-timing-function:cubic-bezier(.2,1,.3,1)}.eael-creative-button--tamaya:hover::before{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.eael-creative-button--tamaya:hover::after{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-creative-button--tamaya:hover>span{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.eael-creative-button--rayen{overflow:hidden;padding:0!important}.eael-creative-button--rayen::before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.eael-creative-button--rayen>span{display:block}.eael-creative-button--rayen::before,.eael-creative-button--rayen>span{padding:1em 2em;-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transition-timing-function:cubic-bezier(.75,0,.125,1);transition-timing-function:cubic-bezier(.75,0,.125,1)}.eael-creative-button--rayen:hover::before{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.eael-creative-button--rayen:hover>span{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.eael-countdown-items{list-style:none;margin:0;padding:0;display:table;table-layout:fixed;width:100%}.eael-countdown-items>li{list-style:none;margin:0;padding:0;display:table-cell;position:relative}.eael-countdown-item>div{text-align:center;padding:20px}.eael-countdown-label-block .eael-countdown-digits,.eael-countdown-label-block .eael-countdown-label{display:block;text-align:center}.eael-countdown-digits{font-size:54px;line-height:1}.eael-countdown-label{font-size:18px;line-height:1;color:#fff}.eael-countdown-show-separator .eael-countdown-digits::after{content:":";position:absolute;left:98%;z-index:9999}.eael-countdown-item:last-child .eael-countdown-digits::after{display:none}.eael-countdown-items.style-1 .eael-countdown-item>div{background:#262625}.eael-post-timeline{margin-bottom:0;min-height:100%;overflow:hidden;position:relative}.eael-timeline-column{width:50%;margin-left:0;float:left;margin-top:0!important}.eael-timeline-post{position:relative}.eael-timeline-post:after{background-color:rgba(83,85,86,.2);content:"";width:2px;height:245px;position:absolute;right:0;top:70px}.eael-timeline-post:nth-child(2n):after{display:none}.eael-timeline-bullet{background-color:#9fa9af;border:5px solid #fff;border-radius:50%;box-shadow:0 1px 0 1px rgba(0,0,0,.1);content:"";height:20px;position:absolute;right:-9px;top:60px;width:20px;z-index:3;cursor:pointer}.eael-timeline-post:nth-child(2n) .eael-timeline-bullet{background-color:#9fa9af;border:5px solid #fff;border-radius:50%;bottom:36px;content:"";height:20px;left:-11px;position:absolute;top:300px;width:20px;z-index:3}.eael-timeline-post-inner{background:linear-gradient(45deg,#3f3f46 0,#05abe0 100%) repeat scroll 0 0 transparent;border:8px solid #e5eaed;box-shadow:0 1px 3px 0 rgba(0,0,0,.15);float:right;margin:30px 40px 30px auto;position:relative;height:320px;width:calc(100% - 40px)}.eael-timeline-post:nth-child(even) .eael-timeline-post-inner{float:left;margin-left:40px}.eael-timeline-post-inner:after{border-color:transparent transparent transparent #e5eaed;border-style:solid;border-width:15px;content:"";height:0;position:absolute;right:-36px;top:17px;width:0}.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner:after{border-color:transparent #e5eaed transparent transparent;border-style:solid;border-width:15px;content:"";height:0;left:-36px;position:absolute;top:257px;width:0}.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after{border-left-color:transparent!important}.eael-timeline-post p{margin:1.6rem 0 0 0;font-size:.9em;line-height:1.6em}.eael-timeline-post-image{background-size:cover;background-position:center center;background-repeat:no-repeat;display:block;height:100%;overflow:hidden;position:relative;opacity:.6;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.eael-timeline-post-title{bottom:40px;position:absolute;width:100%}.eael-timeline-post-title h2{color:#fff;font-size:20px;font-weight:700;letter-spacing:1px;line-height:24px;padding:0 25px;text-align:left;text-transform:uppercase}.eael-timeline-post-excerpt{opacity:0;position:absolute;top:0;left:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.eael-timeline-post-excerpt p{color:#fff;font-size:14px;padding:25px}.eael-timeline-post-inner:hover .eael-timeline-post-excerpt{opacity:1;top:10px}.eael-timeline-post-inner:hover .eael-timeline-post-image{opacity:.3}.eael-timeline-post time{opacity:0;background-color:rgba(0,0,0,.7);color:#fff;font-size:10px;border-radius:20px;position:absolute;right:-97px;width:100px;height:30px;line-height:30px;text-align:center;top:50px;z-index:99;-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.eael-timeline-post:nth-child(2n) time{background-color:rgba(0,0,0,.7);border-radius:20px;color:#fff;font-size:10px;height:30px;left:-99px;line-height:30px;position:absolute;text-align:center;top:290px;width:100px;z-index:99}.eael-timeline-post time:before{border-bottom:5px solid rgba(0,0,0,.7);border-left:5px solid transparent;border-right:5px solid transparent;content:"";height:0;left:45px;position:absolute;top:-5px;width:0}.eael-timeline-post:hover time{opacity:1}.eael-timeline-post::after{height:100%}.eael-post-timeline .eael-timeline-post:nth-last-child(2)::after{height:245px}.eael-post-timeline .eael-timeline-post:last-child::after{display:none}@media only screen and (max-width:1366px){.eael-timeline-post-title h2{font-size:.8em}.eael-timeline-post-excerpt p{font-size:13px}}@media only screen and (max-width:1169px){.eael-timeline-post-inner{height:320px}}@media only screen and (max-width:992px){.eael-post-timeline{margin-left:0}.eael-timeline-bullet,.eael-timeline-post-inner:after,.eael-timeline-post:after,.eael-timeline-post:before{display:none}.eael-timeline-post{display:inline-block;float:left!important;width:50%!important;margin:15px auto}.eael-timeline-post-inner{height:320px;padding-bottom:30px}.eael-timeline-post-title{bottom:50px}.eael-timeline-post-title h2{font-size:.8em;line-height:1.2em}.eael-timeline-post .eael-timeline-post-inner{margin:0 10px auto 0;width:90%}.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner{margin:0 auto 0 10px;width:90%}.eael-timeline-post-excerpt{opacity:0!important}.eael-timeline-post-image{opacity:.3}.eael-timeline-post time,.eael-timeline-post:nth-child(2n) time{background-color:#fff;border-radius:0;color:#444;font-size:12px;text-transform:uppercase;left:0;opacity:1;padding-top:3px;top:275px;width:100%}time:before{display:none}}@media only screen and (max-width:767px){.eael-timeline-post{display:block;float:none!important;margin:20px auto;width:100%!important}.eael-timeline-post .eael-timeline-post-inner,.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner{display:block;float:none;margin:0 auto}}@media only screen and (max-width:479px){.eael-timeline-post .eael-timeline-post-inner,.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner{height:250px;margin:0 auto;width:95%}.eael-timeline-post time,.eael-timeline-post:nth-child(2n) time{top:205px}}.eael-team-item{overflow:hidden;position:relative}.team-avatar-rounded figure img{border-radius:50%;height:auto}.eael-team-image>figure{margin:0;padding:0}.eael-team-image>figure img{display:block;margin:0 auto}.eael-team-item .eael-team-content{padding:10px}.eael-team-item .eael-team-member-name{font-size:20px;font-weight:700;letter-spacing:.05em;margin:5px 0;text-transform:uppercase}.eael-team-item .eael-team-member-position{font-size:14px;font-weight:400;letter-spacing:.05em;margin:5px 0 10px;text-transform:uppercase}.eael-team-item .eael-team-content,.eael-team-item .eael-team-content .eael-team-text{font-size:14px;line-height:1.5}.eael-team-content>ul{margin:0;padding:0}.eael-team-content li{display:inline-block;list-style:outside none none;margin-right:10px;text-align:center}.eael-team-content li a{font-size:2.5rem}.eael-team-align-left .eael-team-item .eael-team-content li,.eael-team-align-left .eael-team-item .eael-team-content p,.eael-team-align-left .eael-team-item .eael-team-content ul,.eael-team-align-left .eael-team-item .eael-team-member-name,.eael-team-align-left .eael-team-item .eael-team-member-position,.eael-team-align-left .eael-team-item .eael-team-text{text-align:left}.eael-team-align-right .eael-team-item .eael-team-content li,.eael-team-align-right .eael-team-item .eael-team-content p,.eael-team-align-right .eael-team-item .eael-team-content ul,.eael-team-align-right .eael-team-item .eael-team-member-name,.eael-team-align-right .eael-team-item .eael-team-member-position,.eael-team-align-right .eael-team-item .eael-team-text{text-align:right}.eael-team-align-centered .eael-team-item .eael-team-content li,.eael-team-align-centered .eael-team-item .eael-team-content p,.eael-team-align-centered .eael-team-item .eael-team-content ul,.eael-team-align-centered .eael-team-item .eael-team-member-name,.eael-team-align-centered .eael-team-item .eael-team-member-position,.eael-team-align-centered .eael-team-item .eael-team-text{text-align:center}.eael-team-item.eael-team-members-overlay .eael-team-content{bottom:10px;left:10px;margin-bottom:0;padding-top:15%;opacity:0;overflow:hidden;text-overflow:ellipsis;position:absolute;right:10px;top:10px;-webkit-transition:all 615ms cubic-bezier(.19,1,.22,1) 0s;transition:all 615ms cubic-bezier(.19,1,.22,1) 0s}.eael-team-item.eael-team-members-overlay:hover .eael-team-content{opacity:1}.eael-team-member-social-link>a{display:inline-block;-webkit-transition:all .3s cubic-bezier(.19,1,.22,1) 0s;transition:all .3s cubic-bezier(.19,1,.22,1) 0s}.eael-team-member-social-link>a:focus{outline:0}.eael-testimonial-slider{position:relative}.testimonial-star-rating{padding:0;margin:0}.testimonial-star-rating li{list-style:none;display:inline-block}.testimonial-star-rating li i{color:#d8d8d8}.rating-five .testimonial-star-rating li i{color:#f2b01e}.rating-one .testimonial-star-rating li:first-child i{color:#f2b01e}.rating-two .testimonial-star-rating li:nth-child(1) i,.rating-two .testimonial-star-rating li:nth-child(2) i{color:#f2b01e}.rating-three .testimonial-star-rating li:nth-child(1) i,.rating-three .testimonial-star-rating li:nth-child(2) i,.rating-three .testimonial-star-rating li:nth-child(3) i{color:#f2b01e}.rating-four .testimonial-star-rating li:nth-child(1) i,.rating-four .testimonial-star-rating li:nth-child(2) i,.rating-four .testimonial-star-rating li:nth-child(3) i,.rating-four .testimonial-star-rating li:nth-child(4) i{color:#f2b01e}.eael-testimonial-image img{max-width:100%}.eael-testimonial-image{padding:10px 0 0 0}.eael-testimonial-image>figure{display:block;margin:0}.testimonial-avatar-rounded figure img{border-radius:50%;height:auto}.eael-testimonial-content{margin:0;padding:10px}.eael-testimonial-item>figure{margin:0 auto;padding:0 20px}.eael-testimonial-item .center-text{text-align:center}.eael-testimonial-item .right-text{text-align:right}.eael-testimonial-item .left-text{text-align:left}.eael-testimonial-item .justify-text{text-align:justify}.eael-testimonial-content .eael-testimonial-text{font-size:100%;font-style:italic;line-height:1.5;margin-top:0;margin-bottom:10px;word-wrap:break-word}.eael-testimonial-content .eael-testimonial-user{display:inline-block;font-family:inherit;font-size:105%;font-style:italic;font-weight:400;line-height:1.5;margin-top:0;margin-bottom:0;margin-right:5px}.eael-testimonial-content .eael-testimonial-user-company{display:inline-block;font-family:inherit;font-size:90%;font-style:italic;font-weight:lighter;line-height:1.75;margin-bottom:0;margin-top:1px}.eael-testimonial-image{position:relative}.eael-testimonial-item .eael-testimonial-quote::after{color:inherit!important;content:"\f10e";font-family:FontAwesome;font-size:200%}.eael-testimonial-slider.default-style .eael-testimonial-align-centered .eael-testimonial-image figure img{margin:0 auto}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure img,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure img{margin:0}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure{text-align:left}.eael-testimonial-slider.classic-style .eael-testimonial-align-right .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-right .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-right .middle-style-content{text-align:right}.eael-testimonial-slider.classic-style .eael-testimonial-align-center .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-center .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-center .middle-style-content{text-align:center}.eael-testimonial-slider.classic-style .eael-testimonial-align-left .testimonial-classic-style-content,.eael-testimonial-slider.default-style .eael-testimonial-align-left .default-style-testimonial-content,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-text,.eael-testimonial-slider.middle-style .eael-testimonial-align-left .middle-style-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-text>p,.eael-testimonial-slider.icon-img-right-content .eael-testimonial-text>p{margin:0}.icon-img-left-content .eael-testimonial-image{float:left;width:30%}.icon-img-left-content .eael-testimonial-content{float:left;width:70%;text-align:left}.icon-img-left-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-left-content .eael-testimonial-quote{position:absolute;right:0}.icon-img-left-content .eael-testimonial-text{margin-top:0}.eael-testimonial-align-centered .eael-testimonial-user,.eael-testimonial-align-centered .eael-testimonial-user-company{float:none;text-align:center}.eael-testimonial-align-centered .eael-testimonial-image>figure img{display:block;margin-left:auto!important;margin-right:auto!important}.icon-img-right-content .eael-testimonial-image{float:right;width:30%}.icon-img-right-content .eael-testimonial-content{float:right;width:70%;text-align:right}.icon-img-right-content.eael-testimonial-item{overflow:hidden;position:relative}.icon-img-right-content .eael-testimonial-quote{position:absolute}.icon-img-right-content .eael-testimonial-text{margin-top:0}.eael-testimonial-item{position:relative}.classic-style.testimonial-alignment-center .eael-testimonial-image,.default-style.testimonial-alignment-center .eael-testimonial-image{text-align:center}.classic-style.testimonial-alignment-right .eael-testimonial-image,.default-style.testimonial-alignment-right .eael-testimonial-image{text-align:right}.classic-style.testimonial-alignment-center .eael-testimonial-image>figure,.default-style.testimonial-alignment-center .eael-testimonial-image>figure{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content{text-align:center}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content{text-align:left}.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content{text-align:right}span.eael-testimonial-quote{position:absolute;right:10px;top:10px}.eael-testimonial-item.left .eael-testimonial-image{text-align:left}.eael-testimonial-item.center .eael-testimonial-image{text-align:center}.eael-testimonial-item.right .eael-testimonial-image{text-align:right}.eael-testimonial-inline-bio .eael-testimonial-image{float:left}.eael-testimonial-inline-bio .bio-text{padding-top:10px}.eael-testimonial-content.eael-testimonial-inline-bio{overflow:hidden;margin-bottom:0;padding-bottom:0}.eael-testimonial-inline-bio .bio-text,.eael-testimonial-inline-bio .testimonial-star-rating{float:left;width:65%}.eael-testimonial-content.eael-testimonial-inline-bio{text-align:left!important}.testimonial-inline-style .eael-testimonial-image{float:left;max-width:100%;padding:0;margin-right:15px}.testimonial-inline-style{overflow:hidden;text-align:left}.content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-top-icon-title-inline .eael-testimonial-text{text-align:left}.content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}.content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text,.content-bottom-icon-title-inline .eael-testimonial-text{text-align:left}.content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text{text-align:center}.content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text{text-align:right}.eael-post-grid .woocommerce ul.products,.eael-product-grid .woocommerce ul.products{display:grid;grid-gap:25px;margin:0!important;padding:0!important}.eael-post-grid .woocommerce ul.products:after,.eael-post-grid .woocommerce ul.products:before,.eael-product-grid .woocommerce ul.products:after,.eael-product-grid .woocommerce ul.products:before{display:none}.eael-post-grid .woocommerce ul.products .product,.eael-product-grid .woocommerce ul.products .product{width:100%;margin:0;padding:0}.eael-post-grid .woocommerce ul.products.eael-product-columns-1,.eael-product-grid .woocommerce ul.products.eael-product-columns-1{grid-template-columns:100%}.eael-post-grid .woocommerce ul.products.eael-product-columns-2,.eael-product-grid .woocommerce ul.products.eael-product-columns-2{grid-template-columns:repeat(2,1fr)}@media screen and (max-width:480px){.eael-post-grid .woocommerce ul.products.eael-product-columns-2,.eael-product-grid .woocommerce ul.products.eael-product-columns-2{grid-template-columns:repeat(1,1fr)}}.eael-post-grid .woocommerce ul.products.eael-product-columns-3,.eael-product-grid .woocommerce ul.products.eael-product-columns-3{grid-template-columns:repeat(3,1fr)}@media screen and (max-width:767px){.eael-post-grid .woocommerce ul.products.eael-product-columns-3,.eael-product-grid .woocommerce ul.products.eael-product-columns-3{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:480px){.eael-post-grid .woocommerce ul.products.eael-product-columns-3,.eael-product-grid .woocommerce ul.products.eael-product-columns-3{grid-template-columns:repeat(1,1fr)}}.eael-post-grid .woocommerce ul.products.eael-product-columns-4,.eael-product-grid .woocommerce ul.products.eael-product-columns-4{grid-template-columns:repeat(4,1fr)}@media screen and (max-width:767px){.eael-post-grid .woocommerce ul.products.eael-product-columns-4,.eael-product-grid .woocommerce ul.products.eael-product-columns-4{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:480px){.eael-post-grid .woocommerce ul.products.eael-product-columns-4,.eael-product-grid .woocommerce ul.products.eael-product-columns-4{grid-template-columns:repeat(1,1fr)}}.eael-post-grid .woocommerce ul.products.eael-product-columns-5,.eael-product-grid .woocommerce ul.products.eael-product-columns-5{grid-template-columns:repeat(5,1fr)}@media screen and (max-width:767px){.eael-post-grid .woocommerce ul.products.eael-product-columns-5,.eael-product-grid .woocommerce ul.products.eael-product-columns-5{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:480px){.eael-post-grid .woocommerce ul.products.eael-product-columns-5,.eael-product-grid .woocommerce ul.products.eael-product-columns-5{grid-template-columns:repeat(1,1fr)}}.eael-post-grid .woocommerce ul.products.eael-product-columns-6,.eael-product-grid .woocommerce ul.products.eael-product-columns-6{grid-template-columns:repeat(6,1fr)}@media screen and (max-width:767px){.eael-post-grid .woocommerce ul.products.eael-product-columns-6,.eael-product-grid .woocommerce ul.products.eael-product-columns-6{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:480px){.eael-post-grid .woocommerce ul.products.eael-product-columns-6,.eael-product-grid .woocommerce ul.products.eael-product-columns-6{grid-template-columns:repeat(1,1fr)}}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product img,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product img{width:100%;height:auto;backface-visibility:hidden}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;transform:rotate(-45deg)}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button{display:block;font-size:14px;font-weight:400;line-height:38px;text-align:center;text-transform:uppercase;color:#fff;background-color:#333;padding:0;margin:15px;border-radius:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus{outline:0}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart{display:block;margin:0 0 15px 0;padding:0;font-size:14px;line-height:1;text-transform:capitalize;color:#333;background-color:transparent}.eael-post-grid.eael-product-simple .woocommerce ul.products li.product,.eael-product-grid.eael-product-simple .woocommerce ul.products li.product{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product{border:1px solid transparent}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart{visibility:hidden;transition:none}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover{border:1px solid #eee}.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button,.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart{visibility:visible}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product{position:relative;float:left;overflow:hidden;text-align:center;padding:0 0 15px 0;border-radius:0;background-color:#fff;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a{text-decoration:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover{outline:0;box-shadow:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img{width:100%;height:auto;margin:0;backface-visibility:hidden}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay{position:relative;overflow:hidden;line-height:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap{position:absolute;top:50%;left:0;right:0;text-align:center;transform:translateY(-50%)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link{display:inline-block;font-size:14px;line-height:38px;text-align:center;color:#fff;background-color:#333;width:38px;height:38px;border-style:none;border-radius:50%;vertical-align:middle;padding:0;margin:0 5px;transform:translateY(20px);opacity:0;transition:transform .2s,opacity .3s}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus{outline:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after{content:"\f217";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before{display:none}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after{content:"\f110";display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;height:auto;width:auto;position:relative;top:0;left:0;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart{font-size:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after{content:"\f06e";font:normal normal normal 14px/1 FontAwesome;font-size:14px;line-height:38px;color:#fff;text-rendering:auto;-webkit-font-smoothing:antialiased;vertical-align:middle;margin:0;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1;color:#333;margin:25px 0 12px;padding:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale{display:block;line-height:170px;font-size:13px;text-align:center;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.6);text-transform:uppercase;color:#fff;background-color:#ff2a13;border-radius:0;border:none;box-shadow:none;position:absolute;height:100px;width:200px;z-index:1;left:-100px;top:-50px;right:auto;margin:0;padding:0;transform:rotate(-45deg)}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price{font-size:14px;margin-bottom:0}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del{opacity:.5;display:inline-block}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins{font-weight:400;background-color:transparent;color:#ff2a13}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating{display:block;float:none;font-size:14px;margin:10px auto}.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button,.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a{opacity:1;transform:translateY(0)}.eael-contact-form-7.eael-contact-form-btn-align-center input.wpcf7-submit,.eael-contact-form.eael-contact-form-align-center{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-7.eael-contact-form-btn-align-left input.wpcf7-submit,.eael-contact-form.eael-contact-form-align-left{float:left;width:auto}.eael-contact-form-7.eael-contact-form-btn-align-right input.wpcf7-submit,.eael-contact-form.eael-contact-form-align-right{float:right;width:auto}.eael-contact-form-7 .uneditable-input,.eael-contact-form-7 input[type=color],.eael-contact-form-7 input[type=date],.eael-contact-form-7 input[type=datetime-local],.eael-contact-form-7 input[type=datetime],.eael-contact-form-7 input[type=email],.eael-contact-form-7 input[type=month],.eael-contact-form-7 input[type=number],.eael-contact-form-7 input[type=password],.eael-contact-form-7 input[type=search],.eael-contact-form-7 input[type=tel],.eael-contact-form-7 input[type=text],.eael-contact-form-7 input[type=time],.eael-contact-form-7 input[type=url],.eael-contact-form-7 input[type=week],.eael-contact-form-7 textarea{-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.eael-contact-form-7 .wpcf7-form::after,.eael-contact-form-7 .wpcf7-form::before{content:" ";clear:both;display:table}.eael-contact-form-7 .wpcf7-form:after{clear:both;content:"";font-size:0;height:0;display:block;visibility:hidden}.eael-contact-form-7 .wpcf7-form .wpcf7-form-control-wrap,.eael-contact-form-7 .wpcf7-form label{display:block}.eael-contact-form-7 .wpcf7-form p{margin-bottom:0}.eael-contact-form-7.labels-hide .wpcf7-form label{display:none}.eael-contact-form-7-title{margin-bottom:10px}.eael-contact-form-7-description{margin-bottom:20px}.eael-contact-form-7-button-full-width .wpcf7-form-control.wpcf7-submit{width:100%}.eael-weform-container input,.eael-weform-container textarea{height:auto;padding:10px}.eael-contact-form-align-center .eael-weform-container,.eael-contact-form-btn-align-center .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-align-left .eael-weform-container,.eael-contact-form-btn-align-left .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:left;width:auto}.eael-contact-form-align-right .eael-weform-container,.eael-contact-form-btn-align-right .eael-weform-container ul.wpuf-form .wpuf-submit input[type=submit]{float:right;width:auto}.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=email],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=number],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=password],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=text],.eael-weform-container ul.wpuf-form li .wpuf-fields input[type=url],.eael-weform-container ul.wpuf-form li .wpuf-fields textarea{max-width:100%}.eael-ninja-container input,.eael-ninja-container textarea{height:auto;padding:10px}.eael-contact-form-align-center .eael-ninja-container,.eael-contact-form-btn-align-center .eael-ninja-container .nf-field .nf-field-element input[type=button]{margin-left:auto!important;margin-right:auto!important;display:block;float:none}.eael-contact-form-align-left .eael-ninja-container,.eael-contact-form-btn-align-left .eael-ninja-container .nf-field .nf-field-element input[type=button]{float:left;width:auto}.eael-contact-form-align-right .eael-ninja-container,.eael-contact-form-btn-align-right .eael-ninja-container .nf-field .nf-field-element input[type=button]{float:right;width:auto}.eael-ninja-container .nf-field .nf-field-element input[type=password],.eael-ninja-container .nf-field .nf-field-element input[type=url],.eael-ninja-container .nf-field .nf-field-element textarea,.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type=email],.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type=number],.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type=text]{max-width:100%}.eael-ninja-form .nf-form-title{display:none}.eael-ninja-form-title-yes .nf-form-title{display:block}.eael-ninja-form .title-description-hide .nf-form-title{display:none}.eael-ninja-form.title-description-hide .nf-form-title{display:none}.eael-ninja-form .nf-field-label{display:none}.eael-ninja-form-labels-yes .nf-field-label{display:block}.eael-ninja-form .submit-container input[type=button]{border:0;border-radius:0}.eael-ninja-form-button-full-width .submit-container input[type=button]{width:100%}.eael-gravity-form-align-default,.eael-gravity-form-align-left,.eael-gravity-form-btn-align-left{text-align:left}.eael-gravity-form-align-right,.eael-gravity-form-btn-align-right{text-align:right}.eael-gravity-form-align-center,.eael-gravity-form-btn-align-center{text-align:center}.eael-gravity-form .gform_wrapper .gform_footer{margin:0;padding:0}.gform_wrapper form li,.gform_wrapper li{list-style:none}.eael-gravity-form .gform_wrapper ul.gform_fields li.gfield{padding:0}.eael-gravity-form .gform_wrapper textarea{padding:0}.eael-gravity-form .gform_wrapper .gform_footer input.button,.eael-gravity-form .gform_wrapper .gform_footer input[type=submit],.eael-gravity-form .gform_wrapper .gform_page_footer input.button,.eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit]{margin:0}.eael-gravity-form.title-description-hide .gform_heading{display:none}.eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,.eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label{display:none}.eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type=submit]{width:100%}.eael-post-grid{margin:0 -10px}.eael-grid-post{float:left;padding:10px}.eael-post-carousel .eael-grid-post{float:none;padding:0}.eael-grid-post-holder{border:1px solid rgba(0,0,0,.1)}.eael-grid-post-holder-inner{height:100%}.eael-entry-media{position:relative}.eael-entry-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;-webkit-transition:opacity .2s ease-in-out,-webkit-transform .25s cubic-bezier(.19,1,.22,1);-moz-transition:opacity .2s ease-in-out,-moz-transform .25s cubic-bezier(.19,1,.22,1);transition:opacity .2s ease-in-out,transform .25s cubic-bezier(.19,1,.22,1)}.eael-entry-overlay>a{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.eael-entry-title{margin:10px 0 5px;font-size:1.2em}.eael-entry-thumbnail img{width:100%;max-width:100%;vertical-align:middle}.eael-entry-thumbnail>img{height:100%}.eael-entry-footer .eael-author-avatar{width:50px}.eael-entry-footer .eael-author-avatar .avatar{border-radius:50%}.eael-post-grid .eael-entry-footer .eael-entry-meta{padding-left:8px;text-align:left}.eael-grid-post .eael-entry-meta{display:flex;flex-direction:row}.eael-grid-post .eael-entry-footer .eael-entry-meta{flex-direction:column}.eael-entry-meta>div{font-size:12px;line-height:1.2;padding-bottom:5px}.eael-grid-post-excerpt p{margin:0;font-size:14px}.eael-entry-meta .eael-entry-footer .eael-posted-by{display:block}.eael-grid-post .eael-entry-footer,.eael-grid-post .eael-entry-wrapper{padding:15px}.eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on{padding-left:5px}.eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on::before{content:'\f111';font-family:FontAwesome;color:inherit;opacity:.4;font-size:.8em;padding-right:7px}.eael-load-more-button-wrap{display:flex}.eael-load-more-button{display:flex;align-items:center;justify-content:center}.eael-load-more-button{padding:1em 2em;border:0 solid;font-size:16px}.eael-load-more-button .button__loader{left:-100%;top:auto;margin-right:5px;transition:all .2s}.eael-load-more-button>span{margin-left:-20px}.eael-load-more-button.button--loading>span{margin-left:0}.eael-load-more-button.button--loading .button__loader{left:0}.eael-btn-loader,.eael-btn-loader:after{border-radius:50%;width:20px;height:20px}.eael-btn-loader{font-size:10px;position:relative;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-right:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-left:4px solid #fff;transform:translateZ(0);animation:loaderSpin 1.1s infinite linear}@keyframes loaderSpin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.eael-entry-medianone{position:relative}.eael-entry-overlay{display:flex;align-items:center;justify-content:center}.eael-entry-overlay>i{color:#fff}.eael-entry-overlay.fade-in{visibility:hidden;opacity:0;transition:.3s}.eael-entry-medianone:hover .eael-entry-overlay.fade-in{visibility:visible;opacity:1}.eael-entry-medianone:hover .eael-entry-overlay.fade-in>i{transform:translate(0);opacity:1}.eael-entry-overlay.zoom-in{transform:scale(.9);visibility:hidden;opacity:0;transition:.3s}.eael-entry-medianone:hover .eael-entry-overlay.zoom-in{visibility:visible;opacity:1;transform:scale(1)}.eael-entry-overlay.slide-up{transform:translateY(100%);visibility:hidden;opacity:0;transition:.3s}.eael-entry-medianone:hover .eael-entry-overlay.slide-up{transform:translateY(0);visibility:visible;opacity:1}.eael-entry-medianone{overflow:hidden}.eael-entry-media.grid-hover-style-fade-in .eael-entry-overlay{opacity:0}.eael-entry-media.grid-hover-style-fade-in:hover .eael-entry-overlay{opacity:1}.eael-entry-media.grid-hover-style-none .eael-entry-overlay{display:none}.eael-entry-media.grid-hover-style-zoom-in .eael-entry-overlay{transform:scale(.4);opacity:0}.eael-entry-media.grid-hover-style-zoom-in:hover .eael-entry-overlay{transform:scale(1);opacity:1}.eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay{transform:translateY(-100%)}.eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay>i{transform:translateY(-100px);transition-delay:.1s;transition-duration:.3s}.eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay{transform:translate(0)}.eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay>i{transform:translateY(0)}.eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay{transform:translateY(100%);visibility:hidden;opacity:0}.eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay>i{transform:translateY(100px);transition-delay:.1s;transition-duration:.3s}.eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay{transform:translate(0);visibility:visible;opacity:1}.eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay>i{transform:translateY(0)}.eael-col-1 .eael-post-grid-column{float:none;width:100%}.eael-col-2 .eael-post-grid-column{float:left;width:50%}.eael-col-3 .eael-post-grid-column{float:left;width:33.3333%}.eael-col-4 .eael-post-grid-column{float:left;width:25%}.eael-col-5 .eael-post-grid-column{float:left;width:20%}.eael-col-6 .eael-post-grid-column{float:left;width:16.6666%}@media only screen and (max-width:979px){.eael-col-1 .eael-post-grid-column,.eael-col-2 .eael-post-grid-column,.eael-col-3 .eael-post-grid-column,.eael-col-4 .eael-post-grid-column,.eael-col-5 .eael-post-grid-column,.eael-col-6 .eael-post-grid-column{width:33.3333%}}@media only screen and (max-width:767px){.eael-col-1 .eael-post-grid-column,.eael-col-2 .eael-post-grid-column,.eael-col-3 .eael-post-grid-column,.eael-col-4 .eael-post-grid-column,.eael-col-5 .eael-post-grid-column,.eael-col-6 .eael-post-grid-column{width:50%}}@media only screen and (max-width:480px){.eael-col-1 .eael-post-grid-column,.eael-col-2 .eael-post-grid-column,.eael-col-3 .eael-post-grid-column,.eael-col-4 .eael-post-grid-column,.eael-col-5 .eael-post-grid-column,.eael-col-6 .eael-post-grid-column{float:none;width:100%}}.eael-author-avatar>a{display:block}.eael-entry-footer{overflow:hidden;display:flex}.eael-entry-footer>div{display:inline-block;float:left}.eael-infobox .infobox-icon{height:auto}.eael-infobox .infobox-icon .infobox-icon-wrap{display:block;width:100%;height:auto;transition:.3s}.eael-infobox .infobox-icon .infobox-icon-wrap i{transition:.3s}.eael-infobox-content-align-left .eael-infobox .infobox-button,.eael-infobox-content-align-left .eael-infobox .infobox-content,.eael-infobox-content-align-left .eael-infobox .infobox-icon{text-align:left}.eael-infobox-content-align-right .eael-infobox .infobox-button,.eael-infobox-content-align-right .eael-infobox .infobox-content,.eael-infobox-content-align-right .eael-infobox .infobox-icon{text-align:right}.eael-infobox-content-align-center .eael-infobox .infobox-button,.eael-infobox-content-align-center .eael-infobox .infobox-content,.eael-infobox-content-align-center .eael-infobox .infobox-icon{text-align:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap{width:90px;height:90px;text-align:center}.eael-infobox-icon-hover-bg-shape-square:hover .infobox-icon .infobox-icon-wrap{border-radius:0}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-radius:hover .infobox-icon .infobox-icon-wrap{border-radius:15px}.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap{display:flex;align-items:center;justify-content:center}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap,.eael-infobox-icon-hover-bg-shape-circle:hover .infobox-icon .infobox-icon-wrap{border-radius:50%}.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap i,.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap i{margin-top:50%;transform:translateY(-50%)}.eael-infobox .infobox-button a.eael-infobox-button{display:inline-block;padding:5px 10px;-webkit-transition:all .3s ease-in-out 0s;-o-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-square .infobox-icon{display:flex;justify-content:flex-start}.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-square .infobox-icon{display:flex;justify-content:center}.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-circle .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-radius .infobox-icon,.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-square .infobox-icon{display:flex;justify-content:flex-end}.eael-infobox.icon-on-left{position:relative;z-index:0;display:flex}.eael-infobox.icon-on-left .infobox-icon-wrap,.eael-infobox.icon-on-right .infobox-icon-wrap{justify-content:center;display:flex!important;align-items:center}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:left;height:auto;display:block}.eael-infobox .infobox-content p{margin:0 0 15px}.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap i{margin-top:0;transform:translateY(0)}.eael-infobox.icon-on-left .infobox-content{padding-left:15px;flex:1 1 auto}.eael-infobox.icon-on-left .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox.icon-on-right{position:relative;z-index:0;display:flex;flex-direction:row-reverse}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap{background:0 0;border:0;text-align:right;width:auto;height:auto;display:block}.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap i{margin-top:0;transform:translateY(0)}.eael-infobox.icon-on-right .infobox-content{padding-right:15px;text-align:right;flex:1 1 auto;box-sizing:border-box}.eael-infobox.icon-on-right .infobox-content .title{line-height:1;margin:0 0 10px 0}.eael-infobox .infobox-icon img{-webkit-transition:all .3s ease-in-out 0s;-o-transition:all .3s ease-in-out 0s;transition:all .3s ease-in-out 0s}.eael-infobox-hover-img-shape-square:hover .eael-infobox .infobox-icon img{border-radius:0}.eael-infobox-hover-img-shape-circle:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-circle .eael-infobox .infobox-icon img{border-radius:50%}.eael-infobox-hover-img-shape-radius:hover .eael-infobox .infobox-icon img,.eael-infobox-shape-radius .eael-infobox .infobox-icon img{border-radius:15px}.eael-elements-flip-box-container{position:relative;height:300px;width:100%}.eael-elements-flip-box-container .flipbox-button{display:inline-block;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.eael-elements-flip-box-container a{display:block}.eael-elements-flip-box-vertical-align{width:100%}.eael-elements-flip-box-padding{padding:0 30px 5px 30px}.eael-elements-flip-box-icon-image{display:inline-block;margin:0 auto 0 auto;line-height:1}.eael-elements-flip-box-icon-image.eael_eleements_flip_front_icon_style_background{background:#ccc}.eael_eleements_flip_front_icon_style_bordered{border:2px solid #fff}.eael_flip_box_icon_border_round{border-radius:100px}.eael_eleements_flip_front_icon_style_background,.eael_eleements_flip_front_icon_style_bordered{padding:15px}.eael-elements-flip-box-icon-image i{font-size:40px;line-height:40px;width:40px}.eael-elements-slider-display-table{width:100%}.eael-elements-flip-box-front-container{text-align:center;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background:#0e9dd2;color:#fff;border-color:#000;-webkit-display:flex;display:flex;-webkit-align-items:center;align-items:center}.eael-elements-flip-box-content,.eael-elements-flip-box-heading{color:#fff}.eael-elements-flip-box-heading.flipbox-linked-title{color:#fff;font-size:1.5em;font-weight:700}.eael-elements-flip-box-rear-container{text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;background:#444;color:#fff;display:flex;-webkit-align-items:center;align-items:center;border-color:#000}.eael-elements-button-floating-container{position:fixed;z-index:100}.eael-elements-button-floating-container .eael-elements-button{margin-top:0;font-size:14px;position:relative;padding:14px 20px}.eael-elements-button{cursor:pointer;display:inline-block;background:#077bbe;color:#fff;line-height:1;padding:16px 25px;margin-top:15px}.eael-elements-button:hover{background:#077bbe;color:#fff}.eael-elements-flip-box-container{perspective:1000px}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{transition-duration:.5s;transition-property:all;transition-timing-function:ease}.eael-elements-flip-box-flip-card{width:100%;height:100%;transform-style:preserve-3d;transition:all .5s ease}.eael-elements-flip-box-front-container,.eael-elements-flip-box-rear-container{-moz-backface-visibility:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateX(0);transform:rotateY(0)}.eael-animate-flip.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{transform:rotateX(180deg)}.eael-animate-flip.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{transform:rotateX(-180deg)}.eael-animate-flip.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{transform:rotateY(-180deg)}.eael-animate-flip.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-flip.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card{transform:rotateY(180deg)}.eael-animate-push.eael-elements-flip-box-container,.eael-animate-slide.eael-elements-flip-box-container{overflow:hidden}.eael-animate-push .eael-elements-flip-box-rear-container,.eael-animate-slide .eael-elements-flip-box-rear-container{z-index:3}.eael-animate-push.eael-animate-up .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up .eael-elements-flip-box-rear-container{top:100%}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:0}.eael-animate-push.eael-animate-down .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down .eael-elements-flip-box-rear-container{top:auto;bottom:100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{top:auto;bottom:0}.eael-animate-push.eael-animate-left .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left .eael-elements-flip-box-rear-container{left:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:0}.eael-animate-push.eael-animate-right .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right .eael-elements-flip-box-rear-container{left:auto;right:100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container,.eael-animate-slide.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{left:auto;right:0}.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:-100%}.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{top:100%}.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:-100%}.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{left:100%}.eael-animate-zoom-in .eael-elements-flip-box-rear-container{opacity:0;transform:scale(.75);z-index:3}.eael-animate-zoom-in.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container{opacity:1;transform:scale(1)}.eael-animate-zoom-out.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0;transform:scale(.75)}.eael-animate-fade.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container{opacity:0}.eael-flipbox-content-align-right .eael-elements-flip-box-padding{text-align:right}.eael-flipbox-content-align-left .eael-elements-flip-box-padding{text-align:left}.eael-flipbox-content-align-center .eael-elements-flip-box-padding{text-align:center}.eael-flipbox-img-circle .eael-elements-flip-box-icon-image img,.eael-flipbox-img-circle .flipbox-back-image-icon img{border-radius:50%;overflow:hidden}.eael-call-to-action{width:100%;height:auto;display:block;padding:30px;font-size:16px;color:#4d4d4d;font-weight:400;line-height:27px;margin:0 auto}.eael-call-to-action p{margin-bottom:10px}.eael-call-to-action .title{font-size:36px;font-weight:600;line-height:36px;margin-bottom:10px;text-transform:capitalize;font-style:normal}.eael-call-to-action.cta-center{text-align:center}.eael-call-to-action.cta-right{text-align:right}.eael-call-to-action.cta-left{text-align:left}.eael-call-to-action.bg-lite{background:#f4f4f4}.eael-call-to-action.bg-img{background-image:url(../img/bg.jpg);background-repeat:no-repeat;background-position:center;background-size:cover;position:relative;z-index:0;color:rgba(255,255,255,.7)}.eael-call-to-action.bg-img .icon{color:#fff}.eael-call-to-action.bg-img:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1;background:rgba(0,0,0,.8)}.eael-call-to-action.bg-img.bg-fixed{background-attachment:fixed;background-position:center center}.eael-call-to-action.bg-img .title{color:rgba(255,255,255,.9)}.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{display:flex;justify-content:space-between;align-items:flex-start}.eael-call-to-action.cta-icon-flex .icon{flex-grow:1;font-size:80px;text-align:left;line-height:130px}.eael-call-to-action.cta-icon-flex .action{flex-grow:1;text-align:right;padding-top:22px;flex-basis:22%}.eael-call-to-action.cta-icon-flex .content{flex-grow:1;padding:0 30px}.eael-call-to-action.cta-flex .content{padding:0 15px;flex-grow:1}.eael-call-to-action.cta-flex .action{flex-grow:1;text-align:right;padding-top:25px;flex-basis:23%}.eael-call-to-action .cta-button{position:relative;display:inline-block;padding:12px 30px;background:#f9f9f9;font-size:16px;text-decoration:none;color:#4d4d4d;-webkit-transition:.5s;-ms-transition:.5s;transition:.5s;-webkit-box-shadow:0 0 3px -1px rgba(0,0,0,.2);-ms-box-shadow:0 0 3px -1px rgba(0,0,0,.2);box-shadow:0 0 3px -1px rgba(0,0,0,.2);margin-right:10px;margin-top:10px;z-index:0;overflow:hidden}.eael-call-to-action .cta-button:last-child{margin-right:0}.eael-call-to-action .cta-button:focus{outline:0}.eael-call-to-action .cta-button:hover{color:#fff;background:#3f51b5;-webkit-box-shadow:0 1px 12px 1px rgba(0,0,0,.1);-ms-box-shadow:0 1px 12px 1px rgba(0,0,0,.1);box-shadow:0 1px 12px 1px rgba(0,0,0,.1)}.eael-call-to-action .cta-button.effect-1:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;transform:translateY(-100%);-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);z-index:-1;-webkit-transition:.5s;-ms-transition:.5s;transition:.5s;color:#fff}.eael-call-to-action .cta-button.effect-1:hover::after{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.eael-call-to-action .cta-button.effect-2:after{content:"";position:absolute;width:100%;height:100%;background:#3f51b5;top:0;left:0;z-index:-1;-webkit-transition:.5s;-ms-transition:.5s;transition:.5s;color:#fff;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.eael-call-to-action .cta-button.effect-2:hover::after{-webkit-transform:translateX(0);transform:translateX(0)}@media only screen and (max-width:768px){.eael-call-to-action.cta-flex,.eael-call-to-action.cta-icon-flex{flex-wrap:wrap}.eael-call-to-action .title{font-size:28px;line-height:36px;margin-top:0}.eael-call-to-action.cta-icon-flex .icon{flex-grow:1;font-size:48px;line-height:90px;text-align:center}.eael-call-to-action.cta-flex .content,.eael-call-to-action.cta-icon-flex .content{flex-grow:1;text-align:center;padding:0}.eael-call-to-action.cta-flex .action,.eael-call-to-action.cta-icon-flex .action{text-align:center;padding-top:0}.eael-call-to-action .cta-button{padding:12px 25px}}@media only screen and (max-width:360px){.eael-call-to-action{font-size:14px;line-height:26px}.eael-call-to-action .cta-button{padding:4px 20px;font-size:12px}.eael-call-to-action .title{font-size:20px;line-height:30px}}.eael-dual-header{display:block;margin-bottom:50px}.eael-dual-header .title,.eael-dual-header .title span{font-size:36px;font-weight:700;text-transform:uppercase;line-height:48px;margin:10px 0}.eael-dual-header .subtext{font-size:16px;display:block}.eael-dual-header i{display:block;padding:0;margin:20px 0 10px 0;font-size:36px}.eael-dual-header .title span.lead{color:#1abc9c}.eael-dual-header-content-align-center{text-align:center}.eael-dual-header-content-align-left{text-align:left}.eael-dual-header-content-align-right{text-align:right}.eael-pricing{-webkit-display:flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center}.eael-pricing .eael-pricing-item{width:100%;height:auto;margin:0}.eael-pricing .eael-pricing-button{display:inline-block;padding:12px 25px;background:#00c853;font-size:14px;font-weight:600;color:#fff;text-transform:uppercase;text-decoration:none;-webkit-transition:.3s;transition:.3s;-webkit-border-radius:4px;border-radius:4px}.eael-pricing .eael-pricing-button:hover{background:#03b048}.eael-pricing .eael-pricing-item ul{padding:0;margin:0;list-style:none}.eael-pricing .eael-pricing-item ul li.disable-item{text-decoration:line-through;opacity:.5}.eael-pricing .eael-pricing-item ul li span.li-icon{color:#00c853;margin-right:6px}.eael-pricing .eael-pricing-item ul li.disable-item span.li-icon{color:#ef5350}.eael-pricing.style-1{position:relative;z-index:0;text-align:center}.eael-pricing.style-1 .eael-pricing-item{border:1px solid rgba(9,9,9,.1);padding:30px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-1 .eael-pricing-item:hover{-webkit-box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-1 .eael-pricing-item.featured{position:relative}.eael-pricing.style-1 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;-webkit-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-1 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-1 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-1 .eael-pricing-item .header{display:block;position:relative;z-index:0;padding-bottom:15px;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .header:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.1)}.eael-pricing.style-1 .eael-pricing-item .header .title{font-weight:700;line-height:30px;margin:0}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700}.eael-pricing.style-1 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-1 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-1 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 0;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-1 .eael-pricing-item .body ul li:last-child{border:none}.eael-pricing.style-1 .eael-pricing-item.featured-large{padding:60px 0}.eael-pricing.style-2{position:relative;z-index:0;text-align:center}.eael-pricing.style-2 .eael-pricing-item{padding:30px 0;border-radius:5px;margin:0;border:1px solid rgba(9,9,9,.1)}.eael-pricing.style-2 .eael-pricing-item.featured{-webkit-box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);box-shadow:0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22)}.eael-pricing.style-2 .eael-pricing-item.ribbon-1:before{content:"";position:absolute;width:100%;height:3px;background:#00c853;top:0;left:0;right:0;z-index:1;-webkit-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:before{content:"Featured";position:absolute;width:auto;background:#00c853;color:#fff;top:35px;right:-15px;z-index:10;font-size:10px;font-weight:600;text-transform:uppercase;padding:5px 10px}.eael-pricing.style-2 .eael-pricing-item.ribbon-2:after{content:"";position:absolute;top:20px;right:-15px;width:0;height:0;border-bottom:15px solid #00c853;border-right:15px solid transparent;z-index:9;opacity:.9}.eael-pricing.style-2 .eael-pricing-item.ribbon-3:before{content:"Featured";position:absolute;width:auto;background:rgba(0,0,0,.6);color:#fff;top:15px;right:15px;z-index:10;font-size:11px;font-weight:600;text-transform:uppercase;padding:5px 15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon{display:inline-block;position:relative;width:80px;height:80px;background:#00c853;border-radius:50%;margin-bottom:30px;text-align:center;-webkit-transition:.5s;transition:.5s;overflow:hidden}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i{font-size:30px;color:#fff;line-height:80px;-webkit-transition:.5s;transition:.5s}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon{background:#43a047}.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i{color:#fff}.eael-pricing.style-2 .eael-pricing-item .header{background:#c8e6c9;padding:25px 30px;margin-bottom:15px;position:relative;z-index:0}.eael-pricing.style-2 .eael-pricing-item.featured .header:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:-1;background:rgba(255,255,255,.4)}.eael-pricing.style-2 .eael-pricing-item .header .title{font-size:28px;font-weight:700;line-height:40px;margin:0}.eael-pricing.style-2 .eael-pricing-item .header .subititle{font-size:14px;font-weight:600;color:#6d6d6d}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{position:relative;z-index:0;padding:15px 0;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{content:"";position:absolute;width:140px;height:1px;bottom:0;left:0;right:0;margin:0 auto;z-index:1;background:rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .price-tag{position:relative;display:inline-block;font-size:28px;font-weight:500;line-height:0;margin:0 auto}.eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency{font-size:24px;font-weight:700;color:#00c853}.eael-pricing.style-2 .eael-pricing-item .price-period{color:#999}.eael-pricing.style-2 .eael-pricing-item .body ul{display:block;width:100%;margin-bottom:15px}.eael-pricing.style-2 .eael-pricing-item .body ul li{display:block;width:100%;height:auto;padding:10px 15px;font-size:14px;color:#6d6d6d;border-bottom:1px solid rgba(9,9,9,.04)}.eael-pricing.style-2 .eael-pricing-item .body ul li:last-child{border:none}@media only screen and (min-width:768px) and (max-width:992px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{width:100%;margin:0 auto 30px auto}}@media only screen and (max-width:480px){.eael-pricing{display:block}.eael-pricing .eael-pricing-item{width:100%}.eael-pricing .eael-pricing-item,.eael-pricing.style-2 .eael-pricing-item,.eael-pricing.style-4 .eael-pricing-item{margin:0 auto 30px auto}}.eael-pricing-content-align-center .eael-pricing{text-align:center}.eael-pricing-content-align-left .eael-pricing{text-align:left}.eael-pricing-content-align-right .eael-pricing{text-align:right}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag{padding-left:45px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before{left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header{padding-left:30px;padding-right:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header{padding-right:30px;padding-left:30px}.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-left:30px}.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li,.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li{padding-right:30px}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(-80%);transform:translateX(-80%)}.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after{-webkit-transform:translateX(80%);transform:translateX(80%)}.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after,.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after{-webkit-transform:translateX(0);transform:translateX(0)}.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after,.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after,.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after{margin:0;width:100%}.eael-pricing-button-align-right .eael-pricing.style-1 .footer,.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-button-align-right .eael-pricing.style-3 .footer,.eael-pricing-button-align-right .eael-pricing.style-4 .footer{text-align:right}.eael-pricing-button-align-center .eael-pricing.style-1 .footer,.eael-pricing-button-align-center .eael-pricing.style-2 .footer,.eael-pricing-button-align-center .eael-pricing.style-3 .footer,.eael-pricing-button-align-center .eael-pricing.style-4 .footer{text-align:center}.eael-pricing-button-align-left .eael-pricing.style-1 .footer,.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-button-align-left .eael-pricing.style-3 .footer,.eael-pricing-button-align-left .eael-pricing.style-4 .footer{text-align:left}.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer{padding-right:30px}.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer,.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer{padding-left:30px}.only-in-pro{width:100%;-webkit-display:flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:15px;min-width:200px;background:#ef5350;color:#fff;text-align:center}.only-in-pro .title{font-family:Roboto,sans-serif;font-size:24px;line-height:40px;margin:0}div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow{position:absolute;top:50%}div.tooltipster-sidetip.tooltipster-top div.tooltipster-box{margin-bottom:0!important}div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box{margin-top:0!important}.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{top:auto;bottom:-8px}div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{top:-8px;bottom:auto}.eael-caldera-form-align-left,.eael-caldera-form-btn-align-left{text-align:left}.eael-caldera-form-align-right,.eael-caldera-form-btn-align-right{text-align:right}.eael-caldera-form-align-center,.eael-caldera-form-btn-align-center{text-align:center}.eael-caldera-form .control-label{display:none}.eael-caldera-form-labels-yes .control-label{display:block}.eael-caldera-form-button-center .form-group input[type=button],.eael-caldera-form-button-center .form-group input[type=submit]{display:block;margin:0 auto}.eael-caldera-form-button-right .form-group input[type=button],.eael-caldera-form-button-right .form-group input[type=submit]{float:right}.eael-caldera-form .intl-tel-input{display:inherit}.eael-custom-radio-checkbox .caldera-grid input[type=checkbox],.eael-custom-radio-checkbox .caldera-grid input[type=radio]{border-style:solid;border-width:0;padding:3px;-webkit-appearance:none}.eael-caldera-form-button-full-width .form-group input[type=button],.eael-caldera-form-button-full-width .form-group input[type=submit]{width:100%}.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button,.eael-wpforms .wpforms-container .wpforms-form button[type=submit],.eael-wpforms .wpforms-container .wpforms-form input[type=submit]{border:0}.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button:hover,.eael-wpforms .wpforms-container .wpforms-form button[type=submit]:hover,.eael-wpforms .wpforms-container .wpforms-form input[type=submit]:hover{border:0}.eael-wpforms .wpforms-container .wpforms-form input[type=checkbox],.eael-wpforms .wpforms-container .wpforms-form input[type=radio]{padding:3px}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-label{display:none}.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-name .wpforms-field-row{max-width:100%}.eael-wpforms .wpforms-container .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),.eael-wpforms .wpforms-container .wpforms-field select,.eael-wpforms .wpforms-container .wpforms-field textarea{max-width:100%!important}.eael-wpforms-labels-yes .wpforms-container .wpforms-form .wpforms-field-label{display:block}.eael-wpforms-form-button-full-width .wpforms-submit-container .wpforms-submit{width:100%}.swiper-container-wrap .swiper-slide .eael-social-feed-element img{width:100%}.eael-social-feed-element.hidden{background-color:red!important}.eael-twitter-feed-container::after,.eael-twitter-feed-container::before,.eael-twitter-feed-wrapper::after,.eael-twitter-feed-wrapper::before{content:"";clear:both}.eael-social-feed-element .pull-left{float:left;margin-right:10px}.eael-social-feed-element .pull-right{margin-left:10px}.eael-social-feed-element img{width:100%;height:auto;border:0;vertical-align:middle;-ms-interpolation-mode:bicubic}.eael-social-feed-element .attachment{vertical-align:middle;-ms-interpolation-mode:bicubic}.eael-social-feed-element a{color:#08c;text-decoration:none}.eael-social-feed-element a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.eael-social-feed-element a:active,.eael-social-feed-element a:hover{outline:0;color:#005580;text-decoration:underline}.eael-social-feed-element small{font-size:85%}.eael-social-feed-element strong{font-weight:700}.eael-social-feed-element em{font-style:italic}.eael-social-feed-element p{margin:0 0 10px}.eael-social-feed-element .media-body>p{margin-bottom:4px;min-height:20px}.eael-social-feed-element p.social-feed-text{margin:0;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:5;-webkit-box-orient:vertical}.eael-social-feed-element,.eael-social-feed-element .media-body{overflow:hidden;zoom:1;overflow:visible}.eael-social-feed-element{padding:10px;background:0 0}.eael-social-feed-element .media-body .social-network-icon{margin-top:-3px;margin-right:5px;width:16px}.eael-social-feed-element .media-body div{color:#666;line-height:20px;clear:both}.eael-social-feed-element:first-child{margin-top:0}.eael-social-feed-element .media-object{display:block;width:48px;border-radius:50%}.eael-social-feed-element .media-heading{margin:0 0 5px}.eael-social-feed-element .media-list{margin-left:0;list-style:none}.eael-social-feed-element .muted{color:#999}.eael-social-feed-element a.muted:focus,.eael-social-feed-element a.muted:hover{color:grey}.eael-social-feed-element{transition:.25s;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1px;margin-top:25px;color:#333;text-align:left;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:16px}.eael-social-feed-element .eael-content{padding:20px 15px 15px;transition:.4s;background:#fff}.eael-social-feed-element .social-network-icon{opacity:.7}.eael-social-feed-element .author-title{color:#444;line-height:1.5em;font-weight:500}.media-body .fa-twitter{color:#1da1f2;margin-right:8px}.media-body .fa-facebook{color:#3b5998;margin-right:8px}.text-wrapper p .read-more-link{margin-top:9px;display:block}.eael-social-feed-wrapper{width:100%;height:auto;position:relative;z-index:0}.eael-loading-feed{display:none;position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0}.eael-loading-feed.show-loading{display:block;text-align:center;z-index:10;display:flex;align-items:center;justify-content:center;transition:.5s}.eael-loading-feed .loader{border:3px solid #f3f3f3;border-radius:50%;border-top:3px solid #3498db;width:30px;height:30px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;margin:0 auto}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.eael-social-feed-container.list-view .eael-social-feed-element{margin:15px;border:1px solid rgba(0,0,0,.1);background:0 0}.eael-social-feed-container.carousel-view{width:100%;height:auto}.eael-twitter-feed-container.masonry-view .eael-social-feed-element{width:33.33%;margin-top:0;float:left}.eael-social-feed-element .eael-content{border:1px solid rgba(0,0,0,.1)}.eael-social-feed-avatar-circle .eael-social-feed-element .media-object{border-radius:50%}.eael-social-feed-avatar-square .eael-social-feed-element .media-object{border-radius:0}.eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date .eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date{text-align:left!important}@media only screen and (min-width:768px) and (max-width:992px){.eael-twitter-feed-container.masonry-view .eael-social-feed-element{width:50%!important}}@media only screen and (max-width:480px){.eael-twitter-feed-container.masonry-view .eael-social-feed-element{width:100%!important}}table.eael-data-table thead .sorting,table.eael-data-table thead .sorting_asc,table.eael-data-table thead .sorting_desc{position:relative;z-index:0;outline:0;cursor:pointer}table.eael-data-table thead .sorting:after,table.eael-data-table thead .sorting_asc:after,table.eael-data-table thead .sorting_desc:after{position:absolute;top:50%;right:10px;font-family:FontAwesome;color:#fff;z-index:1;transform:translateY(-50%)}.eael-data-table-wrap .eael-data-tables_wrapper{display:flex;flex-flow:row wrap;justify-content:flex-start;width:100%}.eael-data-table-wrap .eael-data-tables_filter{flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_filter label{font-weight:700}.eael-data-table-wrap .eael-data-tables_filter label input[type=search]{height:40px;border:1px solid rgba(0,0,0,.09);outline:0;padding:10px;margin-left:10px}.eael-data-table-wrap .eael-data-tables_length{flex-grow:1;flex-basis:50%}.eael-data-table-wrap .eael-data-tables_length select{width:auto;max-width:120px;height:40px;border:1px solid rgba(0,0,0,.09);outline:0;margin-left:10px;margin-right:10px}.eael-data-table-wrap .eael-data-tables_length label{font-weight:700}.eael-data-table-wrap .eael-data-tables_info{flex-grow:1;flex-basis:50%;font-weight:700}.eael-data-table-wrap .eael-data-tables_paginate{flex-grow:1;flex-basis:50%;text-align:right}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button{padding:10px 15px;background:#f2f2f2;margin-right:2px;cursor:pointer;transition:all .3s}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button:hover{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.current{color:#fff;background:#4a4893}.eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled{cursor:no-drop;background:#f2f2f2;opacity:.5;color:#888}.data-header-icon{margin-right:10px}.eael-data-table{width:100%;height:auto;margin:0;border-collapse:collapse;border:none}.eael-data-table tr{border-style:none}.eael-data-table thead tr{text-align:left}.eael-data-table thead tr th{padding:20px 15px;background:#4a4893;font-size:16px;font-weight:600;font-family:Montserrat,sans-serif;line-height:1;color:#fff;border-color:#000;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table thead tr th:hover{border-color:#000}.eael-data-table tbody tr.even{transition:background .4s ease-in-out}.eael-data-table tbody tr.even:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.even:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr.odd{background:rgba(242,242,242,.5);transition:background .2s ease-in-out}.eael-data-table tbody tr.odd:hover{background:rgba(242,242,242,.7)}.eael-data-table tbody tr.odd:last-child{border-bottom:1px solid rgba(0,0,0,.09)}.eael-data-table tbody tr td{padding:20px 15px;font-size:14px;font-family:Montserrat,sans-serif;line-height:1;border-width:2px;border-style:none;background-clip:padding-box}.eael-data-table-th-img{display:inline-block;margin:0 15px 0 0;line-height:1}.th-mobile-screen{display:none}@media (max-width:39.9375em){.eael-data-table-wrap{overflow-x:scroll!important;padding-bottom:5px}.th-mobile-screen{display:inline-block;padding:0 .6em;margin-right:10px;text-align:center;flex-grow:0;flex-shrink:0;flex-basis:100px}.th-mobile-screen .eael-data-table-th-img{margin:0 auto 15px auto;display:block}.th-mobile-screen .data-header-icon{margin:0 auto 15px auto;display:block}.td-content-wrapper{display:flex;width:100%}.td-content{width:100%;justify-content:center}.td-content>p{width:100%;justify-content:center}.custom-responsive-option-enable .eael-data-table thead{display:none}.custom-responsive-option-enable .eael-data-table tbody tr td{float:none;clear:left;width:100%;text-align:left;display:flex;align-items:center}.eael-data-table .td-content{align-items:center;display:flex}}table.eael-data-table thead .sorting:after{content:"\f0dc"}table.eael-data-table thead .headerSortDown:after{content:"\f0dd"}table.eael-data-table thead .headerSortUp:after{content:"\f0de"}table.eael-data-table thead .sorting_disabled.sorting:after{display:none}table.eael-data-table .sorting.sorting-none:after{display:none}table.eael-data-table .sorting_desc.sorting-none:after{display:none}table.eael-data-table .sorting_asc.sorting-none:after{display:none}.eael-table-align-left table.eael-data-table{float:left}.eael-table-align-center table.eael-data-table{margin:0 auto}.eael-table-align-right table.eael-data-table{float:right}.eael-hide-elements .eael-data-tables_info{display:none}.eael-dt-th-align-left .eael-data-table thead tr th{text-align:left}.eael-dt-td-align-left .eael-data-table tbody tr td{text-align:left}.eael-dt-th-align-right .eael-data-table thead tr th{text-align:right;padding-right:30px}.eael-dt-td-align-right .eael-data-table tbody tr td{text-align:right;padding-right:30px}.eael-dt-th-align-center .eael-data-table thead tr th{text-align:center}.eael-dt-td-align-center .eael-data-table tbody tr td{text-align:center}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}button.mfp-close,button.mfp-close:hover{display:inline-block!important;background:0 0;width:auto!important}.mfp-arrow,.mfp-arrow:hover{background:0 0}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.eael-filter-gallery-control{width:100%}.eael-filter-gallery-control ul,.eael-filter-gallery-control ul li{text-align:center}.eael-filter-gallery-control ul{margin:0 0 20px 0;padding:0;text-align:center}.eael-filter-gallery-control{display:flex;flex-flow:1 1 auto;align-items:center;justify-content:center;flex-flow:row wrap;padding:0;margin:0}.eael-filter-gallery-control ul li{list-style:none;font-size:24px;display:inline-block;text-align:center}.eael-filter-gallery-control ul li a.control{font-family:Montserrat,sans-serif;font-size:16px;font-weight:600;padding:10px 25px;margin:10px 6px}.eael-filter-gallery-container{text-align:justify;font-size:.1px}.eael-filter-gallery-container:after{content:'';display:inline-block;width:100%}.eael-filter-gallery-container:not(.eael-cards) .item:before{content:'';display:inline-block;padding-top:56.25%}.eael-filter-gallery-container .item .caption{position:absolute;display:flex;flex-flow:1 1 100%;align-items:center;justify-content:center;z-index:1;top:0;left:0;right:0;bottom:0;transition:transform .4s}.eael-filter-gallery-container.eael-cards .item .caption{display:none}.eael-filter-gallery-container.eael-cards .item .item-img .caption{position:absolute;display:flex;flex-flow:1 1 100%;align-items:center;justify-content:center;z-index:10;top:0;left:0;right:0;bottom:0;transition:transform .4s}.gallery-item-caption-over{width:100%;height:auto}a.eael-gallery-load-more,a.eael-gallery-load-more:hover{text-decoration:none}.eael-filter-gallery-container .item .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-zoom-in{transform:scale(0)}.eael-filter-gallery-container .item:hover .caption.eael-zoom-in,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-zoom-in{transform:scale(1)}.eael-filter-gallery-container .item .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-left{transform:translateX(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-left,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-left{transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-right{transform:translateX(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-right,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-right{transform:translateX(0)}.eael-filter-gallery-container .item .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-top{transform:translateY(-100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-top,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-top{transform:translateY(0)}.eael-filter-gallery-container .item .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-bottom{transform:translateY(100%)}.eael-filter-gallery-container .item:hover .caption.eael-slide-bottom,.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-bottom{transform:translateY(0)}.eael-filter-gallery-container .item .caption a{display:inline-block;width:50px;height:50px;text-align:center;line-height:50px;border-radius:50%;margin:0 5px;font-size:20px;cursor:pointer;transition:.3s}.eael-container .item .caption a:nth-child(2),.eael-filter-gallery-container .item .caption a:nth-child(1){transition:.6s;opacity:0}.eael-filter-gallery-container .item .caption a:nth-child(1){transform:translateY(-100%)}.eael-filter-gallery-container .item .caption a:nth-child(2){transform:translateY(100%)}.eael-filter-gallery-container .item .caption:hover a:nth-child(1),.eael-filter-gallery-container .item .caption:hover a:nth-child(2){transform:translateY(0);opacity:1}.eael-filter-gallery-container .item .caption .eael-popup-link{outline:0}.eael-filter-gallery-container.eael-cards .item:before{padding-top:0}.eael-filter-gallery-container.eael-cards .item-img{position:relative;background-repeat:no-repeat;background-position:center;background-size:cover;height:220px;z-index:0;overflow:hidden}.eael-filter-gallery-container.eael-cards .item-content{padding:15px}.eael-filter-gallery-container.eael-cards .item-content .title,.eael-filter-gallery-container.eael-cards .item-content .title a{font-size:20px;line-height:1;margin-bottom:0;transition:.3s}.eael-filter-gallery-container.eael-cards .item-content p{font-size:14px;line-height:26px}.eael-fg-card-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-card-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-hoverer-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:center}.eael-fg-hoverer-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over{text-align:right}.eael-fg-content-align-left .eael-cards .item .item-content{text-align:left}.eael-fg-content-align-center .eael-cards .item .item-content{text-align:center}.eael-fg-content-align-right .eael-cards .item .item-content{text-align:right}.mfp-wrap~div.dialog-widget{display:none!important}.eael-filterable-gallery-item-wrap{float:left;width:33.33%}.eael-filter-gallery-container.eael-col-1 .eael-filterable-gallery-item-wrap{width:100%}.eael-filter-gallery-control>ul li{font-size:13px;line-height:1.8;text-transform:uppercase;letter-spacing:1px;padding:6px 15px;cursor:pointer;margin:0 5px;font-weight:400}.eael-filter-gallery-container.eael-col-2 .eael-filterable-gallery-item-wrap{width:50%}.eael-filter-gallery-container.eael-col-4 .eael-filterable-gallery-item-wrap{width:25%}.eael-filter-gallery-container.eael-col-5 .eael-filterable-gallery-item-wrap{width:20%}.gallery-grid-item{margin-left:calc(20px/2);margin-right:calc(20px/2);margin-bottom:20px;position:relative;overflow:hidden}.gallery-item-caption-wrap,.media-content-wrap{font-size:14px;text-align:left}.gallery-item-thumbnail-wrap.caption-style-card img{max-height:100%;width:100%}.gallery-item-caption-wrap.caption-style-hoverer{position:absolute;left:0;top:0;height:100%;width:100%;padding:15px;z-index:10}.eael-filterable-gallery-item-wrap .gallery-grid-item .gallery-item-thumbnail-wrap>img{height:100%;width:100%;object-fit:cover}.fg-item-content,.fg-item-title{color:#fff;font-family:inherit}.gallery-item-caption-wrap.caption-style-card .fg-item-title{font-size:18px;margin:15px 0 15px;line-height:1}.gallery-item-caption-wrap.caption-style-card{background:#f7f7f7}.gallery-item-caption-wrap.caption-style-card .fg-item-title{margin:10px 0 15px;color:#000}.gallery-item-caption-wrap.caption-style-card .fg-item-content{color:#212529;line-height:1.5;font-weight:400}.gallery-item-buttons>a{display:inline-block;font-size:16px;color:#000;margin-right:15px}.gallery-item-buttons>a:visited{color:#000}.gallery-item-caption-wrap.caption-style-card{padding:10px;box-sizing:border-box;font-family:inherit}.gallery-item-caption-wrap .gallery-item-hoverer-bg{position:absolute;left:0;top:0;height:100%;width:100%;content:'';background:#000;z-index:-1;opacity:.7}.gallery-item-caption-wrap.caption-style-hoverer{visibility:hidden;opacity:0;transition:.6s all ease;display:flex;align-items:center}.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer{opacity:1;visibility:visible}.gallery-item-caption-wrap.caption-style-hoverer h5{font-size:20px;margin-bottom:5px;line-height:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5{transform:translateY(20px);transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer p{margin-bottom:5px}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{transform:translateY(40px);transition:.6s all ease}.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons{transform:translateY(40px);transition:.6s all ease}.gallery-item-caption-wrap .gallery-item-buttons>a{padding:5px 15px;display:inline-block;border-radius:50%;outline:0;text-decoration:none}.gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{transform:scale(.8);transition:.6s all ease}.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons,.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5,.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p{transform:translate(0)}.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in{transform:scale(1);visibility:visible;opacity:1}.gallery-item-caption-wrap.caption-style-hoverer.eael-none{transition:none}.gallery-item-thumbnail-wrap{position:relative}.video-popup,.video-popup-bg{position:absolute;left:0;top:0;height:100%;width:100%}.video-popup>img{width:62px;position:relative;z-index:1;transition:.3s}.video-popup{display:flex;align-items:center;justify-content:center}.video-popup:hover>img{transform:scale(1.1)}.video-popup-bg{visibility:hidden;opacity:0;transition:350ms}.gallery-grid-item:hover .video-popup-bg{visibility:visible;opacity:1}.gallery-item-thumbnail-wrap>.gallery-item-caption-wrap{position:absolute;left:0;top:0;height:100%;width:100%;display:flex;align-items:center;justify-content:center}.gallery-item-caption-wrap.card-hover-bg{visibility:hidden;opacity:0;transition:.8s}.gallery-item-thumbnail-wrap:hover .gallery-item-caption-wrap.card-hover-bg{visibility:visible;opacity:1}.gallery-item-caption-wrap .gallery-item-buttons>a>i{display:flex;align-items:center;justify-content:center;height:100%}@media only screen and (min-width:1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .pp-logo-grid{margin-right:-5px}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap{width:16.6667%;float:left}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:1024px) and (min-width:766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap{width:16.6667%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}@media only screen and (max-width:767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-filterable-gallery-item-wrap{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n){margin-right:0!important}.elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n){margin-right:0!important}.elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n){margin-right:0!important}.elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n){margin-right:0!important}.elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .pp-logo-grid{margin-right:-6px}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap{width:16.6667%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n){margin-right:0!important}.elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1){clear:left}}.eael-ticker-wrap{overflow:hidden;display:flex;flex-flow:row nowrap;align-items:center;width:100%}.eael-ticker-wrap .ticker-badge{flex:0 0 auto;padding:8px 12px}.eael-ticker-wrap .eael-ticker{overflow:hidden;flex:1 1 auto}.eael-ticker-wrap .eael-ticker .ticker-content{padding:8px 12px;line-height:1.8}.eael-ticker-wrap .eael-ticker .ticker-content p{margin:0}.eael-ticker-wrap .swiper-button-prev{left:auto!important;right:25px}.eael-ticker-wrap div.swiper-slide,.eael-ticker-wrap div.swiper-slide.swiper-slide-next,.eael-ticker-wrap div.swiper-slide.swiper-slide-prev{opacity:0!important}.eael-ticker-wrap div.swiper-slide.swiper-slide-active{opacity:1!important}.eael-ticker-wrap .eael-content-ticker.swiper-container .swiper-slide{text-align:left}@media only screen and (max-width:767px){.eael-ticker-wrap{flex-flow:row wrap}.content-ticker-pagination{display:none}}.eael-advance-tabs{display:block}.eael-advance-tabs .eael-tabs-nav>ul{position:relative;padding:0;margin:0;list-style-type:none;display:flex;justify-content:flex-start;align-items:center;z-index:1}.eael-advance-tabs .eael-tabs-nav>ul li{position:relative;padding:1em 1.5em;flex:1 1 auto;cursor:pointer;display:flex;justify-content:center;align-items:center;text-align:center}.eael-advance-tabs .eael-tabs-nav>ul li:after{content:"";position:absolute;bottom:-10px;left:0;right:0;margin:0 auto;z-index:1;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #444;border-bottom:0;display:none}.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs.active-caret-on .eael-tabs-nav>ul li.active:after{display:none}.eael-advance-tabs .eael-tabs-nav>ul li.active-default:after,.eael-advance-tabs .eael-tabs-nav>ul li.active:after{display:block}.eael-tabs-content{display:flex;flex:1 1 auto}.eael-advance-tabs .eael-tabs-content>div{display:none;opacity:0}.eael-advance-tabs .eael-tabs-content>div.active,.eael-advance-tabs .eael-tabs-content>div.active-default{display:block;width:100%;padding:1em;opacity:1;animation:fadeIn linear .3s}.eael-tab-inline-icon li a .fa{margin-right:10px;line-height:1}.eael-tab-top-icon li a{display:flex;flex-wrap:wrap;text-align:center}.eael-tab-top-icon li a .eael-tab-title,.eael-tab-top-icon li a .fa{flex:1 1 100%;line-height:1}.eael-tab-top-icon li a .eael-tab-title{margin-top:10px}.eael-advance-tabs.eael-tabs-vertical{display:flex}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav{flex:0 0 auto}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul{flex-flow:column wrap}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul>li{width:100%;justify-content:start}.eael-advance-tabs.eael-tabs-vertical .eael-tabs-nav>ul li::after{bottom:auto!important;right:-10px;top:calc(50% - 10px);left:auto!important;border-left:10px solid #444;border-right:0;border-top:10px solid transparent;border-bottom:10px solid transparent}@media only screen and (max-width:767px){.eael-advance-tabs .eael-tabs-nav>ul{flex-wrap:wrap}.eael-advance-tabs .eael-tabs-nav>ul li{flex:1 100%}.eael-advance-tabs.eael-tabs-vertical{flex-wrap:wrap}.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav{flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul{flex:1 100%}.eael-advance-tabs.eael-tabs-vertical ul li{flex:1 100%}div.eael-advance-tabs.eael-tabs-vertical div.eael-tabs-nav>ul li::after{border-left-color:transparent!important;bottom:-20px!important;left:0!important;right:0!important;top:auto!important;border-left:10px solid transparent;border-right:10px solid transparent;border-top-color:#444!important}}.eael-adv-accordion{width:auto;height:auto;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header{padding:15px;border:1px solid rgba(0,0,0,.02);font-size:1rem;font-weight:600;line-height:1;transition:all .3s ease-in-out;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.eael-adv-accordion .eael-accordion-list .eael-accordion-header .fa-toggle{transform:rotate(0);z-index:10;transition:all .3s ease-in-out}.eael-adv-accordion .eael-accordion-list .eael-accordion-header.active .fa-toggle{transform:rotate(90deg);z-index:10;transition:all .3s ease-in-out}.fa-accordion-icon{display:inline-block;margin-right:10px}.eael-adv-accordion .eael-accordion-list .eael-accordion-content{display:none;border:1px solid #eee;padding:15px;box-sizing:border-box;font-size:1rem;line-height:1.7}.eael-adv-accordion .eael-accordion-list .eael-accordion-content p{margin:0}.eael-adv-accordion .eael-accordion-list .eael-accordion-content.active{display:block}@keyframes rotate-90{0%{transform:rotateY(0)}100%{transform:rotateY(-180deg)}}@keyframes fadeIn{0%{opacity:1;transition:all .3s ease-in-out}100%{opacity:1;transition:all .3s ease-in-out}}.eael-tooltip{position:relative;display:inline-block;min-width:150px;text-align:center;padding:12px 24px;font-size:.93rem;color:#333;line-height:1;cursor:pointer;transition:all .3s ease-in-out}.eael-tooltip .eael-tooltip-text{display:block;width:100%;visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:4px;padding:10px;position:absolute;z-index:1;font-size:.93rem;line-height:1.3}.eael-tooltip .eael-tooltip-text::after{content:"";position:absolute;border-width:5px;border-style:solid}.eael-tooltip:hover .eael-tooltip-text{visibility:visible}.eael-tooltip .eael-tooltip-text.eael-tooltip-left{top:50%;right:100%;transform:translateY(-50%);margin-right:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left{animation:tooltipLeftIn .3s ease-in-out}.eael-tooltip .eael-tooltip-text.eael-tooltip-left::after{top:calc(50% - 5px);left:100%;border-color:transparent transparent transparent #000}.eael-tooltip .eael-tooltip-text.eael-tooltip-right{top:50%;left:100%;transform:translateY(-50%);transition:all .3s ease-in-out;margin-left:10px}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right{animation:tooltipRightIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-right::after{top:calc(50% - 5px);right:100%;border-color:transparent #000 transparent transparent}.eael-tooltip .eael-tooltip-text.eael-tooltip-top{bottom:calc(100%);left:0;right:0;margin:0 auto 10px auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-top::after{margin-top:0;top:100%;left:calc(50% - 5px);border-color:#000 transparent transparent transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top{animation:tooltipTopIn .3s linear}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom{top:100%;left:0;right:0;margin:10px auto 0 auto}.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after{margin-top:0;bottom:100%;left:calc(50% - 5px);border-color:transparent transparent #000 transparent}.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom{animation:tooltipBottomIn .3s linear}.eael-tooltip-align-left{display:flex;width:100%;justify-content:flex-start}.eael-tooltip-align-right{display:flex;width:100%;justify-content:flex-end}.eael-tooltip-align-center{display:flex;width:100%;justify-content:center}.eael-tooltip-align-justify .eael-tooltip{display:flex;justify-content:center;align-items:center}@keyframes tooltipRightIn{0%{opacity:0;left:105%}100%{opacity:1;left:100%}}@keyframes tooltipLeftIn{0%{opacity:0;right:105%}100%{opacity:1;right:100%}}@keyframes tooltipTopIn{0%{opacity:0;bottom:110%}100%{opacity:1;bottom:100%}}@keyframes tooltipBottomIn{0%{opacity:0;top:110%}100%{opacity:1;top:100%}}@-webkit-keyframes animateStripe{0%{transform:translate(0,0)}100%{transform:translate(35px,0)}}@keyframes animateStripe{0%{transform:translate(0,0)}100%{transform:translate(35px,0)}}@-webkit-keyframes animateStripeRTL{0%{transform:translate(0,0)}100%{transform:translate(-35px,0)}}@keyframes animateStripeRTL{0%{transform:translate(0,0)}100%{transform:translate(-35px,0)}}.eael-progressbar{position:relative}.eael-progressbar-title{font-size:20px;font-weight:400}.eael-progressbar-line{position:relative;display:block;width:100%;height:12px;background-color:#eee}.eael-progressbar-line .eael-progressbar-count-wrap{position:absolute;right:0;bottom:calc(100% + 5px);font-size:16px;font-weight:400;line-height:1}.eael-progressbar-line-fill{display:inline-block;position:absolute;top:50%;left:0;width:0;height:12px;background-color:#000;transform:translateY(-50%);transition:width 1.5s linear;overflow:hidden}.eael-progressbar-circle{position:relative;width:200px;height:200px}.eael-progressbar-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-circle-shadow{width:220px;height:220px;padding:10px;border-radius:50%}.eael-progressbar-circle-pie{position:absolute;top:0;left:0;width:100%;height:100%;clip-path:inset(0 0 0 50%)}.eael-progressbar-circle-inner{height:100%;width:100%;border-width:12px;border-style:solid;border-color:#eee;border-radius:50%}.eael-progressbar-circle-half{position:absolute;left:0;top:0;height:100%;width:100%;border-width:12px;border-style:solid;border-color:#000;border-radius:50%;clip-path:inset(0 50% 0 0)}.eael-progressbar-circle-half-left{transform:rotate(0)}.eael-progressbar-circle-half-right{transform:rotate(180deg);visibility:hidden}.eael-progressbar-circle-inner-content{position:absolute;top:50%;width:100%;transform:translateY(-50%);text-align:center}.eael-progressbar-half-circle{position:relative;width:200px;height:100px;overflow:hidden}.eael-progressbar-half-circle .eael-progressbar-circle-pie{clip-path:inset(0 0 50% 0)}.eael-progressbar-half-circle .eael-progressbar-circle-half{clip-path:inset(50% 0 0 0);transform:rotate(0);transition:transform 1.5s linear}.eael-progressbar-half-circle .eael-progressbar-circle-inner-content{top:initial;bottom:0;transform:translateY(0)}.eael-progressbar-half-circle .eael-progressbar-title{font-size:16px;font-weight:400}.eael-progressbar-half-circle .eael-progressbar-count-wrap{font-size:28px;font-weight:700}.eael-progressbar-half-circle-after{position:relative;font-size:12px;font-weight:400;clear:both}.eael-progressbar-postfix-label{float:right}.eael-progressbar-line-stripe .eael-progressbar-line-fill:after{content:'';position:absolute;top:0;left:-35px;width:calc(100% + 70px);height:100%;background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:35px 35px}.eael-progressbar-line-animate .eael-progressbar-line-fill:after{animation:animateStripe 2s linear infinite}.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after{animation:animateStripeRTL 2s linear infinite}.eael-progressbar-circle-wrap>div{margin:0 auto}.eael-progressbar-box-container.left>div,.eael-progressbar-circle-container.left>div,.eael-progressbar-line-container.left{margin:0 auto 0 0}.eael-progressbar-box-container.center>div,.eael-progressbar-circle-container.center>div,.eael-progressbar-line-container.center{margin:0 auto}.eael-progressbar-box-container.right>div,.eael-progressbar-circle-container.right>div,.eael-progressbar-line-container.right{margin:0 0 0 auto}.eael-img-accordion{display:flex;height:50vh}.eael-img-accordion a{position:relative;flex:1;text-align:center;text-decoration:none;color:#fff;background-size:cover;background-position:center;background-repeat:no-repeat;transition:flex .4s}.eael-grow-accordion{flex:3}.eael-img-accordion .overlay{display:flex;align-items:center;justify-content:center;padding:0 10px;position:absolute;top:0;right:0;bottom:0;left:0;transition:background-color .4s}.eael-img-accordion .overlay .overlay-inner{z-index:1}.eael-img-accordion a:after{content:"";position:absolute;width:100%;height:100%;z-index:0;top:0;left:0;bottom:0;right:0;transition:all .3s ease-in-out}.eael-img-accordion .overlay-inner *{visibility:hidden;opacity:0;transform-style:preserve-3d}.eael-img-accordion .overlay h2{color:#fff;transform:translate3d(0,-60px,0)}.eael-img-accordion .overlay p{color:#fff;transform:translate3d(0,60px,0)}.eael-img-accordion .overlay-inner-show *{opacity:1;visibility:visible;transform:none!important;transition:all .3s .3s}@media screen and (max-width:800px){.eael-img-accordion{flex-direction:column}.eael-img-accordion a:hover{flex:1}.eael-img-accordion a:hover .overlay{background-color:transparent}}.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:before{top:3px!important}.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:after{top:45px!important}.elementor-widget-eael-feature-list.-icon-position-right .connector,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .connector{right:0;left:calc(100% - 60px)}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items{list-style-type:none;margin:0;padding:0}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item{position:relative}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .connector{display:block;position:absolute;width:0;margin:0 auto;z-index:1;height:100%;top:.5em;font-size:60px;left:0;right:calc(100% - 60px);border-left:2px solid #2ecc71;border-right:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item:last-child .connector{display:none}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{z-index:2;transition:all .5s}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box{transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{background-color:#37368e;transition:all .5s;display:inline-flex}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner{transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{padding:.5em;transition:all .5s;font-size:30px;line-height:1;color:#37368e;text-align:center;display:inline-flex}@media (prefers-reduced-motion:reduce){.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon{transition:none}}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i{width:1em;height:1em;position:relative;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img{font-size:8px;line-height:1;max-width:inherit}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box{margin:0 0 0 20px}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title{margin-top:-2px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content{padding:0;margin:0;font-size:14px;line-height:1.5em}.elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon{color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon{background-color:#fff}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner .eael-feature-list-icon{border-radius:50%}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon-inner{transform:rotate(45deg);margin:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i{-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img{-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title{margin-top:15px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px;position:relative}@media (max-width:767px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px;display:block}}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{content:"";position:absolute;display:block}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;top:0;z-index:1;border-left:1px solid #000;border-right:none!important;height:100%}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px;width:23px;display:block;z-index:2;border-bottom:1px dashed #000;border-top:none!important}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item .connector{display:none}@media (min-width:768px){.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item{padding:0 50px 0 0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:before{left:auto;right:0}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:after{left:auto;right:5px;top:30px}.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item .connector{display:none}}@media (min-width:1025px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px;top:30px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (min-width:768px) and (max-width:1024px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (min-width:768px) and (max-width:1024px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item{display:block;text-align:left}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item,.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item{text-align:left;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item{text-align:right;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box{margin-right:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box{margin-left:0!important;margin-right:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 50px}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 0 0 30px}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{left:0;right:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:5px}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box{margin-left:0!important;margin-top:0!important;margin-bottom:0!important}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 50px 0 0}}@media (max-width:767px) and (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item{padding:0 30px 0 0}}@media (max-width:767px){.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before{right:0;left:auto}.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after,.elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after{left:auto;right:5px}} \ No newline at end of file diff --git a/assets/front-end/css/fancy-text.css b/assets/front-end/css/fancy-text.css new file mode 100644 index 000000000..7e37a781f --- /dev/null +++ b/assets/front-end/css/fancy-text.css @@ -0,0 +1,67 @@ +/*--------------------------*/ +/* 03. Fancy Text Style +/*--------------------------*/ +.eael-fancy-text-container p { + margin: 0; +} + +.eael-fancy-text-strings, +.eael-fancy-text-prefix, +.eael-fancy-text-suffix { + display: inline-block; +} + +.morphext > .animated { + display: inline-block; +} + +.typed-cursor { + opacity: 1; + -webkit-animation: blink_cursor 0.7s infinite; + -moz-animation: blink_cursor 0.7s infinite; + animation: blink_cursor 0.7s infinite; +} + +@keyframes blink_cursor { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes blink_cursor { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes blink_cursor { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +/*--- Style 2 ---*/ +.eael-fancy-text-container.style-2 { + font-size: 24px; +} + +.eael-fancy-text-container.style-2 .eael-fancy-text-strings { + background: #ff5544; + color: #fff; + padding: 10px 25px; +} diff --git a/assets/front-end/css/feature-list.css b/assets/front-end/css/feature-list.css new file mode 100644 index 000000000..81abae766 --- /dev/null +++ b/assets/front-end/css/feature-list.css @@ -0,0 +1,572 @@ +/*----------------------------*/ +/* 35. Feature List +/*----------------------------*/ +.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:before { + top: 3px !important; +} +.elementor-widget-eael-feature-list.-icon-position-left .connector-type-modern.rhombus .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top .connector-type-modern.rhombus .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right .connector-type-modern.rhombus .eael-feature-list-item:after { + top: 45px !important; +} +.elementor-widget-eael-feature-list.-icon-position-right .connector, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .connector { + right: 0; + left: calc(100% - 60px); +} +.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + padding: 0 50px 0 0; +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + padding: 0 30px 0 0; + } +} +.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + left: auto; + right: 0; +} +.elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + left: auto; + right: 5px; + top: 30px; +} +.elementor-widget-eael-feature-list .eael-feature-list-items { + list-style-type: none; + margin: 0; + padding: 0; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item { + position: relative; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .connector { + display: block; + position: absolute; + width: 0; + margin: 0 auto; + z-index: 1; + height: 100%; + top: 0.5em; + font-size: 60px; + left: 0; + right: calc(100% - 60px); + border-left: 2px solid #2ecc71; + border-right: none !important; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item:last-child .connector { + display: none; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box { + z-index: 2; + transition: all 0.5s; +} +@media (prefers-reduced-motion: reduce) { + .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box { + transition: none; + } +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner { + background-color: #37368e; + transition: all 0.5s; + display: inline-flex; +} +@media (prefers-reduced-motion: reduce) { + .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon-inner { + transition: none; + } +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon { + padding: 0.5em; + transition: all 0.5s; + font-size: 30px; + line-height: 1; + color: #37368e; + text-align: center; + display: inline-flex; +} +@media (prefers-reduced-motion: reduce) { + .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon { + transition: none; + } +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i { + width: 1em; + height: 1em; + position: relative; + display: block; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i:before { + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img { + font-size: 8px; + line-height: 1; + max-width: inherit; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box { + margin: 0 0 0 20px; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title { + margin-top: -2px; + line-height: 1.5em; +} +.elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content { + padding: 0; + margin: 0; + font-size: 14px; + line-height: 1.5em; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon { + color: #fff; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon { + background-color: #fff; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner { + border-radius: 50%; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon-inner .eael-feature-list-icon { + border-radius: 50%; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon-inner { + transform: rotate(45deg); + margin: 15px; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i { + -ms-transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img { + -ms-transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title { + margin-top: 15px; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + padding: 0 0 0 50px; + position: relative; +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item { + padding: 0 0 0 30px; + display: block; + } +} +.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before, .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + content: ""; + position: absolute; + display: block; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before { + left: 0; + top: 0; + z-index: 1; + border-left: 1px solid #000; + border-right: none !important; + height: 100%; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after { + left: 5px; + top: 30px; + width: 23px; + display: block; + z-index: 2; + border-bottom: 1px dashed #000; + border-top: none !important; +} +.elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item .connector { + display: none; +} +@media (min-width: 768px) { + .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item { + padding: 0 50px 0 0; + } + .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:before { + left: auto; + right: 0; + } + .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:after { + left: auto; + right: 5px; + top: 30px; + } + .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item .connector { + display: none; + } +} +@media (min-width: 1025px) { + .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-content-box { + margin-right: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-content-box { + margin-left: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-top .eael-feature-list-content-box { + margin-left: 0 !important; + margin-right: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + } + .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item { + text-align: left; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + } + .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item { + text-align: right; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + } +} +@media (max-width: 1024px) { + .elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + } + .elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item { + text-align: left; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + } + .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item { + text-align: right; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + } +} +@media (min-width: 768px) and (max-width: 1024px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-content-box { + margin-right: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 50px; + } +} +@media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 30px; + } +} +@media (min-width: 768px) and (max-width: 1024px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + left: 0; + right: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: 5px; + top: 30px; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-content-box { + margin-left: 0 !important; + margin-right: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 50px; + } +} +@media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 30px; + } +} +@media (min-width: 768px) and (max-width: 1024px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + left: 0; + right: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: 5px; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-content-box { + margin-left: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 50px 0 0; + } +} +@media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 30px 0 0; + } +} +@media (min-width: 768px) and (max-width: 1024px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + right: 0; + left: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: auto; + right: 5px; + } +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item, .elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item { + display: block; + text-align: left; + } + .elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + } + .elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item { + text-align: left; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + } + .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item { + text-align: right; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-content-box { + margin-right: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 50px; + } +} +@media (max-width: 767px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 30px; + } +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + left: 0; + right: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: 5px; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-content-box { + margin-left: 0 !important; + margin-right: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 50px; + } +} +@media (max-width: 767px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 0 0 30px; + } +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + left: 0; + right: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: 5px; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-content-box, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-content-box { + margin-left: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 50px 0 0; + } +} +@media (max-width: 767px) and (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item { + padding: 0 30px 0 0; + } +} +@media (max-width: 767px) { + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:before { + right: 0; + left: auto; + } + .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after, .elementor-widget-eael-feature-list.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right .eael-feature-list-items.connector-type-modern + .eael-feature-list-item:after { + left: auto; + right: 5px; + } +} diff --git a/assets/front-end/css/filter-gallery.css b/assets/front-end/css/filter-gallery.css new file mode 100644 index 000000000..4640d5c14 --- /dev/null +++ b/assets/front-end/css/filter-gallery.css @@ -0,0 +1,823 @@ +/*------------------------------*/ +/* 27. Filterable Gallery +/*------------------------------*/ +.eael-filter-gallery-control { + width: 100%; +} + +.eael-filter-gallery-control ul, +.eael-filter-gallery-control ul li { + text-align: center; +} + +.eael-filter-gallery-control ul { + margin: 0px 0px 20px 0px; + padding: 0px; + text-align: center; +} + +.eael-filter-gallery-control { + display: flex; + flex-flow: 1 1 auto; + align-items: center; + justify-content: center; + flex-flow: row wrap; + padding: 0px; + margin: 0px; +} + +.eael-filter-gallery-control ul li { + list-style: none; + font-size: 24px; + display: inline-block; + text-align: center; +} + +.eael-filter-gallery-control ul li a.control { + font-family: 'Montserrat', sans-serif; + font-size: 16px; + font-weight: 600; + padding: 10px 25px; + margin: 10px 6px; +} + +.eael-filter-gallery-container { + text-align: justify; + font-size: 0.1px; +} + +.eael-filter-gallery-container:after { + content: ''; + display: inline-block; + width: 100%; +} + +.eael-filter-gallery-container:not(.eael-cards) .item:before { + content: ''; + display: inline-block; + padding-top: 56.25%; +} + +.eael-filter-gallery-container .item .caption { + position: absolute; + display: flex; + flex-flow: 1 1 100%; + align-items: center; + justify-content: center; + z-index: 1; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + transition: transform .4s; +} + +.eael-filter-gallery-container.eael-cards .item .caption { + display: none; +} + +.eael-filter-gallery-container.eael-cards .item .item-img .caption { + position: absolute; + display: flex; + flex-flow: 1 1 100%; + align-items: center; + justify-content: center; + z-index: 10; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + transition: transform .4s; +} + +.gallery-item-caption-over { + width: 100%; + height: auto; +} + +a.eael-gallery-load-more, a.eael-gallery-load-more:hover { + text-decoration: none; +} + +/*--- Caption Animation ---*/ +.eael-filter-gallery-container .item .caption.eael-zoom-in, +.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-zoom-in { + transform: scale(0); +} + +.eael-filter-gallery-container .item:hover .caption.eael-zoom-in, +.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-zoom-in { + transform: scale(1); +} + +.eael-filter-gallery-container .item .caption.eael-slide-left, +.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-left { + transform: translateX(-100%); +} + +.eael-filter-gallery-container .item:hover .caption.eael-slide-left, +.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-left { + transform: translateX(0%); +} + +.eael-filter-gallery-container .item .caption.eael-slide-right, +.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-right { + transform: translateX(100%); +} + +.eael-filter-gallery-container .item:hover .caption.eael-slide-right, +.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-right { + transform: translateX(0%); +} + +.eael-filter-gallery-container .item .caption.eael-slide-top, +.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-top { + transform: translateY(-100%); +} + +.eael-filter-gallery-container .item:hover .caption.eael-slide-top, +.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-top { + transform: translateY(0%); +} + +.eael-filter-gallery-container .item .caption.eael-slide-bottom, +.eael-filter-gallery-container.eael-cards .item .item-img .caption.eael-slide-bottom { + transform: translateY(100%); +} + +.eael-filter-gallery-container .item:hover .caption.eael-slide-bottom, +.eael-filter-gallery-container.eael-cards .item:hover .item-img .caption.eael-slide-bottom { + transform: translateY(0%); +} + +.eael-filter-gallery-container .item .caption a { + display: inline-block; + width: 50px; + height: 50px; + text-align: center; + line-height: 50px; + border-radius: 50%; + margin: 0 5px; + font-size: 20px; + cursor: pointer; + transition: .3s; +} + +.eael-filter-gallery-container .item .caption a:nth-child(1), +.eael-container .item .caption a:nth-child(2) { + transition: .6s; + opacity: 0; +} + +.eael-filter-gallery-container .item .caption a:nth-child(1) { + transform: translateY(-100%); +} + +.eael-filter-gallery-container .item .caption a:nth-child(2) { + transform: translateY(100%); +} + +.eael-filter-gallery-container .item .caption:hover a:nth-child(1), +.eael-filter-gallery-container .item .caption:hover a:nth-child(2) { + transform: translateY(0%); + opacity: 1; +} + +.eael-filter-gallery-container .item .caption .eael-popup-link { + outline: 0; +} + +/*--- Filter Gallery Card Style ---*/ +.eael-filter-gallery-container.eael-cards .item:before { + padding-top: 0px; +} + +.eael-filter-gallery-container.eael-cards .item-img { + position: relative; + background-repeat: no-repeat; + background-position: center; + background-size: cover; + height: 220px; + z-index: 0; + overflow: hidden; +} + +.eael-filter-gallery-container.eael-cards .item-content { + padding: 15px; +} + +.eael-filter-gallery-container.eael-cards .item-content .title, +.eael-filter-gallery-container.eael-cards .item-content .title a { + font-size: 20px; + line-height: 1; + margin-bottom: 0px; + transition: .3s; +} + +.eael-filter-gallery-container.eael-cards .item-content p { + font-size: 14px; + line-height: 26px; +} + +.eael-fg-card-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over { + text-align: center; +} + +.eael-fg-card-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over { + text-align: right; +} + +.eael-fg-hoverer-content-align-center .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over { + text-align: center; +} + +.eael-fg-hoverer-content-align-right .eael-filterable-gallery-item-wrap .gallery-item-caption-wrap .gallery-item-caption-over { + text-align: right; +} + +/*--- Editor Specific Style ---*/ +.eael-fg-content-align-left .eael-cards .item .item-content { + text-align: left; +} + +.eael-fg-content-align-center .eael-cards .item .item-content { + text-align: center; +} + +.eael-fg-content-align-right .eael-cards .item .item-content { + text-align: right; +} + +/*--- Magnific Gallery Fix ---*/ +.mfp-wrap ~ div.dialog-widget { + display: none !important; +} + +.eael-filterable-gallery-item-wrap { + float: left; + width: 33.33%; +} + +.eael-filter-gallery-container.eael-col-1 .eael-filterable-gallery-item-wrap { + width: 100%; +} + +.eael-filter-gallery-control > ul li { + font-size: 13px; + line-height: 1.8; + text-transform: uppercase; + letter-spacing: 1px; + padding: 6px 15px; + cursor: pointer; + margin: 0 5px; + font-weight: normal; +} + +.eael-filter-gallery-container.eael-col-2 .eael-filterable-gallery-item-wrap { + width: 50%; +} + +.eael-filter-gallery-container.eael-col-4 .eael-filterable-gallery-item-wrap { + width: 25%; +} + +.eael-filter-gallery-container.eael-col-5 .eael-filterable-gallery-item-wrap { + width: 20%; +} + +.gallery-grid-item { + margin-left: calc(20px/2); + margin-right: calc(20px/2); + margin-bottom: 20px; + position: relative; + overflow: hidden; +} + +.gallery-item-caption-wrap, +.media-content-wrap { + font-size: 14px; + text-align: left; +} + +.gallery-item-thumbnail-wrap.caption-style-card img { + max-height: 100%; + width: 100%; +} + +.gallery-item-caption-wrap.caption-style-hoverer { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + padding: 15px; + z-index: 10; +} + +.eael-filterable-gallery-item-wrap .gallery-grid-item .gallery-item-thumbnail-wrap > img { + height: 100%; + width: 100%; + object-fit: cover; +} + +/*--- Gallery content css ---*/ +.fg-item-title, +.fg-item-content { + color: #ffffff; + font-family: inherit; +} + +/*--- Gallery Card Style CSS ---*/ +.gallery-item-caption-wrap.caption-style-card .fg-item-title { + font-size: 18px; + margin: 15px 0 15px; + line-height: 1; +} + +.gallery-item-caption-wrap.caption-style-card { + background: #f7f7f7; +} + +.gallery-item-caption-wrap.caption-style-card .fg-item-title { + margin: 10px 0 15px; + color: #000000; +} + +.gallery-item-caption-wrap.caption-style-card .fg-item-content { + color: #212529; + line-height: 1.5; + font-weight: normal; +} + +.gallery-item-buttons > a { + display: inline-block; + font-size: 16px; + color: #000; + margin-right: 15px; +} + +.gallery-item-buttons > a:visited { + color: #000; +} + +.gallery-item-caption-wrap.caption-style-card { + padding: 10px; + box-sizing: border-box; + font-family: inherit; +} + +/*--- Gallery item hover style ---*/ +.gallery-item-caption-wrap .gallery-item-hoverer-bg { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + content: ''; + background: #000000; + z-index: -1; + opacity: .7; +} + +.gallery-item-caption-wrap.caption-style-hoverer { + visibility: hidden; + opacity: 0; + transition: 0.6s all ease; + display: flex; + align-items: center; +} + +.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer { + opacity: 1; + visibility: visible; +} + +.gallery-item-caption-wrap.caption-style-hoverer h5 { + font-size: 20px; + margin-bottom: 5px; + line-height: 1; +} + +.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5 { + transform: translateY(20px); + transition: 0.6s all ease; +} + +.gallery-item-caption-wrap.caption-style-hoverer p { + margin-bottom: 5px; +} + +.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p { + transform: translateY(40px); + transition: 0.6s all ease; +} + +.gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons { + transform: translateY(40px); + transition: 0.6s all ease; +} + +.gallery-item-caption-wrap .gallery-item-buttons > a { + padding: 5px 15px; + display: inline-block; + border-radius: 50%; + outline: none; + text-decoration: none; +} + +.gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in { + transform: scale(0.8); + transition: 0.6s all ease; +} + +.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up h5, +.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up .gallery-item-buttons, +.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-slide-up p { + transform: translate(0); +} + +.gallery-grid-item:hover .gallery-item-caption-wrap.caption-style-hoverer.eael-zoom-in { + transform: scale(1); + visibility: visible; + opacity: 1; +} + +.gallery-item-caption-wrap.caption-style-hoverer.eael-none { + transition: none; +} + +/*--- Video Gallery ---*/ +.gallery-item-thumbnail-wrap { + position: relative; +} + +.video-popup, +.video-popup-bg { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} + +.video-popup > img { + width: 62px; + position: relative; + z-index: 1; + transition: 300ms; +} + +.video-popup { + display: flex; + align-items: center; + justify-content: center; +} + +.video-popup:hover > img { + transform: scale(1.1); +} + +.video-popup-bg { + visibility: hidden; + opacity: 0; + transition: 350ms; +} + +.gallery-grid-item:hover .video-popup-bg { + visibility: visible; + opacity: 1; +} + +.gallery-item-thumbnail-wrap > .gallery-item-caption-wrap { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.gallery-item-caption-wrap.card-hover-bg { + visibility: hidden; + opacity: 0; + transition: 800ms; +} + +.gallery-item-thumbnail-wrap:hover .gallery-item-caption-wrap.card-hover-bg { + visibility: visible; + opacity: 1; +} + +.gallery-item-caption-wrap .gallery-item-buttons > a > i { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} + +/*--- Gallery Column CSS ---*/ +@media only screen and (min-width: 1025px) { + /* For Desktop: */ + .elementor-element.elementor-grid-1 { + position: relative; + } + + .elementor-element.elementor-grid-1 .eael-filterable-gallery-item-wrap { + width: 100%; + float: left; + } + + .elementor-element.elementor-grid-2 { + position: relative; + } + + .elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap { + width: 50%; + float: left; + } + + .elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1) { + clear: left; + } + + .elementor-element.elementor-grid-3 { + position: relative; + } + + .elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap { + width: 33.3333%; + float: left; + } + + .elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1) { + clear: left; + } + + .elementor-element.elementor-grid-4 { + position: relative; + } + + .elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap { + width: 25%; + float: left; + } + + .elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1) { + clear: left; + } + + .elementor-element.elementor-grid-5 { + position: relative; + } + + .elementor-element.elementor-grid-5 .pp-logo-grid { + margin-right: -5px; + } + + .elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap { + width: 20%; + float: left; + } + + .elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1) { + clear: left; + } + + .elementor-element.elementor-grid-6 { + position: relative; + } + + .elementor-element.elementor-grid-6 .pp-logo-grid { + margin-right: -6px; + } + + .elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap { + width: 16.6667%; + float: left; + } + + .elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1) { + clear: left; + } +} +@media only screen and (max-width: 1024px) and (min-width: 766px) { + /* For tablets: */ + .elementor-element.elementor-grid-tablet-1 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-1 .eael-filterable-gallery-item-wrap { + width: 100%; + float: left; + } + + .elementor-element.elementor-grid-tablet-2 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap { + width: 50%; + float: left; + } + + .elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-tablet-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1) { + clear: left; + } + + .elementor-element.elementor-grid-tablet-3 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap { + width: 33.3333%; + float: left; + } + + .elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-tablet-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1) { + clear: left; + } + + .elementor-element.elementor-grid-tablet-4 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap { + width: 25%; + float: left; + } + + .elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-tablet-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1) { + clear: left; + } + + .elementor-element.elementor-grid-tablet-5 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap { + width: 20%; + float: left; + } + + .elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-tablet-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1) { + clear: left; + } + + .elementor-element.elementor-grid-tablet-6 { + position: relative; + } + + .elementor-element.elementor-grid-tablet-6 .pp-logo-grid { + margin-right: -6px; + } + + .elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap { + width: 16.6667%; + float: left; + } + + .elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-tablet-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1) { + clear: left; + } +} +@media only screen and (max-width: 767px) { + .elementor-element.elementor-grid-mobile-1 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-1 .eael-filterable-gallery-item-wrap { + width: 100%; + float: left; + } + + .elementor-element.elementor-grid-mobile-2 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap { + width: 50%; + float: left; + } + + .elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-mobile-2 .eael-filterable-gallery-item-wrap:nth-of-type(2n+1) { + clear: left; + } + + .elementor-element.elementor-grid-mobile-3 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap { + width: 33.3333%; + float: left; + } + + .elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-mobile-3 .eael-filterable-gallery-item-wrap:nth-of-type(3n+1) { + clear: left; + } + + .elementor-element.elementor-grid-mobile-4 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap { + width: 25%; + float: left; + } + + .elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-mobile-4 .eael-filterable-gallery-item-wrap:nth-of-type(4n+1) { + clear: left; + } + + .elementor-element.elementor-grid-mobile-5 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap { + width: 20%; + float: left; + } + + .elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-mobile-5 .eael-filterable-gallery-item-wrap:nth-of-type(5n+1) { + clear: left; + } + + .elementor-element.elementor-grid-mobile-6 { + position: relative; + } + + .elementor-element.elementor-grid-mobile-6 .pp-logo-grid { + margin-right: -6px; + } + + .elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap { + width: 16.6667%; + float: left; + } + + .elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n) { + margin-right: 0 !important; + } + + .elementor-element.elementor-grid-mobile-6 .eael-filterable-gallery-item-wrap:nth-of-type(6n+1) { + clear: left; + } +} diff --git a/assets/front-end/css/flip-box.css b/assets/front-end/css/flip-box.css new file mode 100644 index 000000000..ac0717537 --- /dev/null +++ b/assets/front-end/css/flip-box.css @@ -0,0 +1,293 @@ +/*---------------------------*/ +/* 18. Flipbox Style +/*---------------------------*/ +.eael-elements-flip-box-container { + position: relative; + height: 300px; + width: 100%; +} + +.eael-elements-flip-box-container .flipbox-button { + display: inline-block; + -webkit-transition: all 400ms; + -o-transition: all 400ms; + transition: all 400ms; +} + +.eael-elements-flip-box-container a { + display: block; +} + +.eael-elements-flip-box-vertical-align { + width: 100%; +} + +.eael-elements-flip-box-padding { + padding: 0px 30px 5px 30px; +} + +.eael-elements-flip-box-icon-image { + display: inline-block; + margin: 0 auto 0px auto; + line-height: 1; +} + +.eael-elements-flip-box-icon-image.eael_eleements_flip_front_icon_style_background { + background: #cccccc; +} + +.eael_eleements_flip_front_icon_style_bordered { + border: 2px solid #ffffff; +} + +.eael_flip_box_icon_border_round { + border-radius: 100px; +} + +.eael_eleements_flip_front_icon_style_background, +.eael_eleements_flip_front_icon_style_bordered { + padding: 15px; +} + +.eael-elements-flip-box-icon-image i { + font-size: 40px; + line-height: 40px; + width: 40px; +} + +.eael-elements-slider-display-table { + width: 100%; +} + +.eael-elements-flip-box-front-container { + text-align: center; + position: absolute; + top: 0px; + left: 0px; + z-index: 2; + width: 100%; + height: 100%; + background: #0e9dd2; + color: #ffffff; + border-color: #000000; + -webkit-display: flex; + display: flex; + -webkit-align-items: center; + align-items: center; +} + +.eael-elements-flip-box-content, +.eael-elements-flip-box-heading { + color: #ffffff; +} + +.eael-elements-flip-box-heading.flipbox-linked-title { + color: #fff; + font-size: 1.5em; + font-weight: 700; +} + +.eael-elements-flip-box-rear-container { + text-align: center; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + background: #444444; + color: #ffffff; + display: flex; + -webkit-align-items: center; + align-items: center; + border-color: #000000; +} + +/*--- Floating Button Styles ---*/ +.eael-elements-button-floating-container { + position: fixed; + z-index: 100; +} + +.eael-elements-button-floating-container .eael-elements-button { + margin-top: 0px; + font-size: 14px; + position: relative; + padding: 14px 20px; +} + +.eael-elements-button { + cursor: pointer; + display: inline-block; + background: #077bbe; + color: #ffffff; + line-height: 1; + padding: 16px 25px; + margin-top: 15px; +} + +.eael-elements-button:hover { + background: #077bbe; + color: #ffffff; +} + +/*--- CSS3 Transitions ---*/ +.eael-elements-flip-box-container { + perspective: 1000px; +} + +.eael-elements-flip-box-front-container, +.eael-elements-flip-box-rear-container { + transition-duration: 500ms; + transition-property: all; + transition-timing-function: ease; +} + +.eael-elements-flip-box-flip-card { + width: 100%; + height: 100%; + transform-style: preserve-3d; + transition: all 500ms ease; +} + +.eael-elements-flip-box-rear-container, +.eael-elements-flip-box-front-container { + -moz-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transform: rotateX(0deg); + transform: rotateY(0deg); +} + +/*--- Flip ---*/ +.eael-animate-flip.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, +.eael-animate-flip.eael-animate-up .eael-elements-flip-box-rear-container { + transform: rotateX(180deg); +} + +.eael-animate-flip.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, +.eael-animate-flip.eael-animate-down .eael-elements-flip-box-rear-container { + transform: rotateX(-180deg); +} + +.eael-animate-flip.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, +.eael-animate-flip.eael-animate-left .eael-elements-flip-box-rear-container { + transform: rotateY(-180deg); +} + +.eael-animate-flip.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-flip-card, +.eael-animate-flip.eael-animate-right .eael-elements-flip-box-rear-container { + transform: rotateY(180deg); +} + +/*--- Slide ---*/ +.eael-animate-push.eael-elements-flip-box-container, +.eael-animate-slide.eael-elements-flip-box-container { + overflow: hidden; +} + +.eael-animate-push .eael-elements-flip-box-rear-container, +.eael-animate-slide .eael-elements-flip-box-rear-container { + z-index: 3; +} + +.eael-animate-push.eael-animate-up .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-up .eael-elements-flip-box-rear-container { + top: 100%; +} + +.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { + top: 0; +} + +.eael-animate-push.eael-animate-down .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-down .eael-elements-flip-box-rear-container { + top: auto; + bottom: 100%; +} + +.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { + top: auto; + bottom: 0; +} + +.eael-animate-push.eael-animate-left .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-left .eael-elements-flip-box-rear-container { + left: 100%; +} + +.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { + left: 0; +} + +.eael-animate-push.eael-animate-right .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-right .eael-elements-flip-box-rear-container { + left: auto; + right: 100%; +} + +.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container, +.eael-animate-slide.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { + left: auto; + right: 0; +} + +/*--- Push + Slide Above ---*/ +.eael-animate-push.eael-animate-up.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + top: -100%; +} + +.eael-animate-push.eael-animate-down.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + top: 100%; +} + +.eael-animate-push.eael-animate-left.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + left: -100%; +} + +.eael-animate-push.eael-animate-right.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + left: 100%; +} + +/*--- Zoom In ---*/ +.eael-animate-zoom-in .eael-elements-flip-box-rear-container { + opacity: 0; + transform: scale(0.75); + z-index: 3; +} + +.eael-animate-zoom-in.eael-elements-flip-box-container:hover .eael-elements-flip-box-rear-container { + opacity: 1; + transform: scale(1); +} + +/*--- Zoom Out ---*/ +.eael-animate-zoom-out.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + opacity: 0; + transform: scale(0.75); +} + +.eael-animate-fade.eael-elements-flip-box-container:hover .eael-elements-flip-box-front-container { + opacity: 0; +} + +/*--- Builder Related Style ---*/ +.eael-flipbox-content-align-right .eael-elements-flip-box-padding { + text-align: right; +} + +.eael-flipbox-content-align-left .eael-elements-flip-box-padding { + text-align: left; +} + +.eael-flipbox-content-align-center .eael-elements-flip-box-padding { + text-align: center; +} + +.eael-flipbox-img-circle .eael-elements-flip-box-icon-image img, +.eael-flipbox-img-circle .flipbox-back-image-icon img { + border-radius: 50%; + overflow: hidden; +} diff --git a/assets/front-end/css/general.css b/assets/front-end/css/general.css new file mode 100644 index 000000000..df76dbb78 --- /dev/null +++ b/assets/front-end/css/general.css @@ -0,0 +1,185 @@ +/*--------------------------*/ +/* 01. General Styles +/*--------------------------*/ +.clearfix::before, +.clearfix::after { + content: " "; + display: table; + clear: both; +} + +/*---------------------------------------*/ +/* 02. Common styles for slider elements +/*---------------------------------------*/ +.eael-testimonial-slider.nav-top-left, +.eael-testimonial-slider.nav-top-right, +.eael-team-slider.nav-top-left, +.eael-team-slider.nav-top-right, +.eael-logo-carousel.nav-top-left, +.eael-logo-carousel.nav-top-right, +.eael-post-carousel.nav-top-left, +.eael-post-carousel.nav-top-right, +.eael-product-carousel.nav-top-left, +.eael-product-carousel.nav-top-right { + padding-top: 40px; +} + +/*----------------------------*/ +/* 28. Swiper +/*----------------------------*/ +.swiper-container-wrap .swiper-slide, +.swiper-container .swiper-slide { + text-align: center; +} + +.swiper-container-wrap .swiper-slide img, +.swiper-container .swiper-slide img { + width: auto; +} + +.swiper-container-wrap-dots-outside .swiper-pagination, +.swiper-container-dots-outside .swiper-pagination { + position: static; +} + +.swiper-container-wrap .swiper-button-next, +.swiper-container-wrap .swiper-button-prev, +.swiper-container .swiper-button-next, +.swiper-container .swiper-button-prev { + background: transparent; + font-size: 20px; + height: auto; + line-height: 1; + margin: 0; + text-align: center; + transform: translateY(-50%); + width: auto; +} + +.swiper-container-wrap .swiper-button-next .fa, +.swiper-container-wrap .swiper-button-prev .fa, +.swiper-container .swiper-button-next .fa, +.swiper-container .swiper-button-prev .fa { + vertical-align: top; +} + +.swiper-container-wrap .swiper-pagination { + bottom: 10px; + left: 0; + width: 100%; +} + +.swiper-container-wrap-dots-outside .swiper-pagination { + position: static; +} + +.swiper-container-wrap .swiper-pagination-bullet { + background: #ccc; + margin: 0 4px; + opacity: 1; + height: 8px; + width: 8px; +} + +.swiper-container-wrap .swiper-pagination-bullet-active { + background: #000; +} + +.swiper-container-3d .swiper-slide { + transition-property: all; + -webkit-transition-property: all; +} + +/*--------------------------------*/ +/* 10. Contact forms common +/*--------------------------------*/ +.eael-contact-form input[type=text], +.eael-contact-form input[type=email], +.eael-contact-form input[type=url], +.eael-contact-form input[type=tel], +.eael-contact-form input[type=date], +.eael-contact-form input[type=number], +.eael-contact-form textarea { + background: #fff; + box-shadow: none; + -webkit-box-shadow: none; + float: none; + height: auto; + margin: 0; + outline: 0; + width: auto; +} + +.eael-contact-form input[type=submit] { + border: 0; + float: none; + height: auto; + margin: 0; + padding: 10px 20px; + width: auto; + -webkit-transition: all 0.25s linear 0s; + transition: all 0.25s linear 0s; +} + +.eael-contact-form.placeholder-hide input::-webkit-input-placeholder, +.eael-contact-form.placeholder-hide textarea::-webkit-input-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input::-moz-placeholder, +.eael-contact-form.placeholder-hide textarea::-moz-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input:-ms-input-placeholder, +.eael-contact-form.placeholder-hide textarea:-ms-input-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-contact-form.placeholder-hide input:-moz-placeholder, +.eael-contact-form.placeholder-hide textarea:-moz-placeholder { + opacity: 0; + visibility: hidden; +} + +.eael-custom-radio-checkbox input[type=checkbox], +.eael-custom-radio-checkbox input[type=radio] { + -webkit-appearance: none; + -moz-appearance: none; + border-style: solid; + border-width: 0; + outline: none; + min-width: 1px; + width: 15px; + height: 15px; + background: #ddd; + padding: 3px; +} + +.eael-custom-radio-checkbox input[type=checkbox]:before, +.eael-custom-radio-checkbox input[type=radio]:before { + content: ""; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + display: block; +} + +.eael-custom-radio-checkbox input[type=checkbox]:checked:before, +.eael-custom-radio-checkbox input[type=radio]:checked:before { + background: #999; + -webkit-transition: all 0.25s linear 0s; + transition: all 0.25s linear 0s; +} + +.eael-custom-radio-checkbox input[type=radio] { + border-radius: 50%; +} + +.eael-custom-radio-checkbox input[type=radio]:before { + border-radius: 50%; +} diff --git a/assets/front-end/css/gravity-form.css b/assets/front-end/css/gravity-form.css new file mode 100644 index 000000000..b7b128fac --- /dev/null +++ b/assets/front-end/css/gravity-form.css @@ -0,0 +1,56 @@ +/*----------------------*/ +/* 14. Gravity Form +/*----------------------*/ +.eael-gravity-form-align-default, +.eael-gravity-form-align-left, +.eael-gravity-form-btn-align-left { + text-align: left; +} + +.eael-gravity-form-align-right, +.eael-gravity-form-btn-align-right { + text-align: right; +} + +.eael-gravity-form-align-center, +.eael-gravity-form-btn-align-center { + text-align: center; +} + +.eael-gravity-form .gform_wrapper .gform_footer { + margin: 0; + padding: 0; +} + +.gform_wrapper form li, +.gform_wrapper li { + list-style: none; +} + +.eael-gravity-form .gform_wrapper ul.gform_fields li.gfield { + padding: 0; +} + +.eael-gravity-form .gform_wrapper textarea { + padding: 0; +} + +.eael-gravity-form .gform_wrapper .gform_footer input.button, +.eael-gravity-form .gform_wrapper .gform_footer input[type=submit], +.eael-gravity-form .gform_wrapper .gform_page_footer input.button, +.eael-gravity-form .gform_wrapper .gform_page_footer input[type=submit] { + margin: 0; +} + +.eael-gravity-form.title-description-hide .gform_heading { + display: none; +} + +.eael-gravity-form.labels-hide .gform_wrapper .top_label .gfield_label, +.eael-gravity-form.labels-hide .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label { + display: none; +} + +.eael-gravity-form-button-full-width .gform_wrapper .gform_footer input[type="submit"] { + width: 100%; +} diff --git a/assets/front-end/css/image-accordion.css b/assets/front-end/css/image-accordion.css new file mode 100644 index 000000000..32189c18c --- /dev/null +++ b/assets/front-end/css/image-accordion.css @@ -0,0 +1,90 @@ +/*------------------------------*/ +/* 34. Image accordion +/*------------------------------*/ +.eael-img-accordion { + display: flex; + height: 50vh; +} + +.eael-img-accordion a { + position: relative; + flex: 1; + text-align: center; + text-decoration: none; + color: #fff; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + transition: flex .4s; +} + +.eael-grow-accordion { + flex: 3; +} + +.eael-img-accordion .overlay { + display: flex; + align-items: center; + justify-content: center; + padding: 0 10px; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transition: background-color .4s; +} + +.eael-img-accordion .overlay .overlay-inner { + z-index: 1; +} + +.eael-img-accordion a:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + z-index: 0; + top: 0px; + left: 0px; + bottom: 0px; + right: 0px; + transition: all 0.3s ease-in-out; +} + +.eael-img-accordion .overlay-inner * { + visibility: hidden; + opacity: 0; + transform-style: preserve-3d; +} + +.eael-img-accordion .overlay h2 { + color: #fff; + transform: translate3d(0, -60px, 0); +} + +.eael-img-accordion .overlay p { + color: #fff; + transform: translate3d(0, 60px, 0); +} + +.eael-img-accordion .overlay-inner-show * { + opacity: 1; + visibility: visible; + transform: none !important; + transition: all .3s .3s; +} + +@media screen and (max-width: 800px) { + .eael-img-accordion { + flex-direction: column; + } + + .eael-img-accordion a:hover { + flex: 1; + } + + .eael-img-accordion a:hover .overlay { + background-color: transparent; + } +} diff --git a/assets/front-end/css/info-box.css b/assets/front-end/css/info-box.css new file mode 100644 index 000000000..fa53a6c10 --- /dev/null +++ b/assets/front-end/css/info-box.css @@ -0,0 +1,199 @@ +/* ------------------------ */ +/* 17. Infobox Style +/* ------------------------ */ +/*--- Image/Icon On Top ---*/ +.eael-infobox .infobox-icon { + height: auto; +} + +.eael-infobox .infobox-icon .infobox-icon-wrap { + display: block; + width: 100%; + height: auto; + transition: .3s; +} + +.eael-infobox .infobox-icon .infobox-icon-wrap i { + transition: .3s; +} + +/*--- For Content Alignment ---*/ +.eael-infobox-content-align-left .eael-infobox .infobox-icon, +.eael-infobox-content-align-left .eael-infobox .infobox-content, +.eael-infobox-content-align-left .eael-infobox .infobox-button { + text-align: left; +} + +.eael-infobox-content-align-right .eael-infobox .infobox-icon, +.eael-infobox-content-align-right .eael-infobox .infobox-content, +.eael-infobox-content-align-right .eael-infobox .infobox-button { + text-align: right; +} + +.eael-infobox-content-align-center .eael-infobox .infobox-icon, +.eael-infobox-content-align-center .eael-infobox .infobox-content, +.eael-infobox-content-align-center .eael-infobox .infobox-button { + text-align: center; +} + +/*--- For icon background shape ---*/ +.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap, +.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap, +.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap { + width: 90px; + height: 90px; + text-align: center; +} + +.eael-infobox-icon-hover-bg-shape-square:hover .infobox-icon .infobox-icon-wrap { + border-radius: 0; +} + +.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap, +.eael-infobox-icon-hover-bg-shape-radius:hover .infobox-icon .infobox-icon-wrap { + border-radius: 15px; +} + +.eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap { + display: flex; + align-items: center; + justify-content: center; +} + +.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap, +.eael-infobox-icon-hover-bg-shape-circle:hover .infobox-icon .infobox-icon-wrap { + border-radius: 50%; +} + +.eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap i, +.eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap i { + margin-top: 50%; + transform: translateY(-50%); +} + +/*--- Infobox Button ---*/ +.eael-infobox .infobox-button a.eael-infobox-button { + display: inline-block; + padding: 5px 10px; + -webkit-transition: all 300ms ease-in-out 0s; + -o-transition: all 300ms ease-in-out 0s; + transition: all 300ms ease-in-out 0s; +} + +/*--- For icon bg shape alignment ---*/ +.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-square .infobox-icon, +.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-radius .infobox-icon, +.eael-infobox-content-align-left.eael-infobox-icon-bg-shape-circle .infobox-icon { + display: flex; + justify-content: flex-start; +} + +.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-square .infobox-icon, +.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-radius .infobox-icon, +.eael-infobox-content-align-center.eael-infobox-icon-bg-shape-circle .infobox-icon { + display: flex; + justify-content: center; +} + +.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-square .infobox-icon, +.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-radius .infobox-icon, +.eael-infobox-content-align-right.eael-infobox-icon-bg-shape-circle .infobox-icon { + display: flex; + justify-content: flex-end; +} + +/*--- Image/Icon On Left ---*/ +.eael-infobox.icon-on-left { + position: relative; + z-index: 0; + display: flex; +} + +.eael-infobox.icon-on-right .infobox-icon-wrap, +.eael-infobox.icon-on-left .infobox-icon-wrap { + justify-content: center; + display: flex !important; + align-items: center; +} + +.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap { + background: none; + border: 0px; + text-align: left; + height: auto; + display: block; +} + +.eael-infobox .infobox-content p { + margin: 0 0 15px; +} + +.eael-infobox.icon-on-left .infobox-icon .infobox-icon-wrap i { + margin-top: 0px; + transform: translateY(0%); +} + +.eael-infobox.icon-on-left .infobox-content { + padding-left: 15px; + flex: 1 1 auto; +} + +.eael-infobox.icon-on-left .infobox-content .title { + line-height: 1; + margin: 0 0 10px 0; +} + +/*--- Image/Icon On Right ---*/ +.eael-infobox.icon-on-right { + position: relative; + z-index: 0; + display: flex; + flex-direction: row-reverse; +} + +.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap { + background: none; + border: 0px; + text-align: right; + width: auto; + height: auto; + display: block; +} + +.eael-infobox.icon-on-right .infobox-icon .infobox-icon-wrap i { + margin-top: 0px; + transform: translateY(0%); +} + +.eael-infobox.icon-on-right .infobox-content { + padding-right: 15px; + text-align: right; + flex: 1 1 auto; + box-sizing: border-box; +} + +.eael-infobox.icon-on-right .infobox-content .title { + line-height: 1; + margin: 0 0 10px 0; +} + +/*--- Imgae Circle On Top ---*/ +.eael-infobox .infobox-icon img { + -webkit-transition: all 300ms ease-in-out 0s; + -o-transition: all 300ms ease-in-out 0s; + transition: all 300ms ease-in-out 0s; +} + +.eael-infobox-hover-img-shape-square:hover .eael-infobox .infobox-icon img { + border-radius: 0; +} + +.eael-infobox-shape-circle .eael-infobox .infobox-icon img, +.eael-infobox-hover-img-shape-circle:hover .eael-infobox .infobox-icon img { + border-radius: 50%; +} + +.eael-infobox-shape-radius .eael-infobox .infobox-icon img, +.eael-infobox-hover-img-shape-radius:hover .eael-infobox .infobox-icon img { + border-radius: 15px; +} diff --git a/assets/front-end/css/magnific-popup.css b/assets/front-end/css/magnific-popup.css new file mode 100644 index 000000000..3dcbbdeb2 --- /dev/null +++ b/assets/front-end/css/magnific-popup.css @@ -0,0 +1,463 @@ +/* ------------------------ */ +/* 26. Magnific Popup +/* ------------------------ */ +/*--- Magnific Popup CSS ---*/ +.mfp-bg { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1042; + overflow: hidden; + position: fixed; + background: #0b0b0b; + opacity: 0.8; +} + +.mfp-wrap { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1043; + position: fixed; + outline: none !important; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.mfp-container { + text-align: center; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + padding: 0 8px; + box-sizing: border-box; +} + +.mfp-container:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.mfp-align-top .mfp-container:before { + display: none; +} + +.mfp-content { + position: relative; + display: inline-block; + vertical-align: middle; + margin: 0 auto; + text-align: left; + z-index: 1045; +} + +.mfp-inline-holder .mfp-content, +.mfp-ajax-holder .mfp-content { + width: 100%; + cursor: auto; +} + +.mfp-ajax-cur { + cursor: progress; +} + +.mfp-zoom-out-cur, +.mfp-zoom-out-cur .mfp-image-holder .mfp-close { + cursor: -moz-zoom-out; + cursor: -webkit-zoom-out; + cursor: zoom-out; +} + +.mfp-zoom { + cursor: pointer; + cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; + cursor: zoom-in; +} + +.mfp-auto-cursor .mfp-content { + cursor: auto; +} + +.mfp-close, +.mfp-arrow, +.mfp-preloader, +.mfp-counter { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.mfp-loading.mfp-figure { + display: none; +} + +.mfp-hide { + display: none !important; +} + +.mfp-preloader { + color: #CCC; + position: absolute; + top: 50%; + width: auto; + text-align: center; + margin-top: -0.8em; + left: 8px; + right: 8px; + z-index: 1044; +} + +.mfp-preloader a { + color: #CCC; +} + +.mfp-preloader a:hover { + color: #FFF; +} + +.mfp-s-ready .mfp-preloader { + display: none; +} + +.mfp-s-error .mfp-content { + display: none; +} + +button.mfp-close, +button.mfp-arrow { + overflow: visible; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + display: block; + outline: none; + padding: 0; + z-index: 1046; + box-shadow: none; + touch-action: manipulation; +} + +button::-moz-focus-inner { + padding: 0; + border: 0; +} + +.mfp-close { + width: 44px; + height: 44px; + line-height: 44px; + position: absolute; + right: 0; + top: 0; + text-decoration: none; + text-align: center; + opacity: 0.65; + padding: 0 0 18px 10px; + color: #FFF; + font-style: normal; + font-size: 28px; + font-family: Arial, Baskerville, monospace; +} + +.mfp-close:hover, +.mfp-close:focus { + opacity: 1; +} + +.mfp-close:active { + top: 1px; +} + +.mfp-close-btn-in .mfp-close { + color: #333; +} + +.mfp-image-holder .mfp-close, +.mfp-iframe-holder .mfp-close { + color: #FFF; + right: -6px; + text-align: right; + padding-right: 6px; + width: 100%; +} + +.mfp-counter { + position: absolute; + top: 0; + right: 0; + color: #CCC; + font-size: 12px; + line-height: 18px; + white-space: nowrap; +} + +.mfp-arrow { + position: absolute; + opacity: 0.65; + margin: 0; + top: 50%; + margin-top: -55px; + padding: 0; + width: 90px; + height: 110px; + -webkit-tap-highlight-color: transparent; +} + +.mfp-arrow:active { + margin-top: -54px; +} + +.mfp-arrow:hover, +.mfp-arrow:focus { + opacity: 1; +} + +.mfp-arrow:before, +.mfp-arrow:after { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + margin-top: 35px; + margin-left: 35px; + border: medium inset transparent; +} + +.mfp-arrow:after { + border-top-width: 13px; + border-bottom-width: 13px; + top: 8px; +} + +.mfp-arrow:before { + border-top-width: 21px; + border-bottom-width: 21px; + opacity: 0.7; +} + +.mfp-arrow-left { + left: 0; +} + +.mfp-arrow-left:after { + border-right: 17px solid #FFF; + margin-left: 31px; +} + +.mfp-arrow-left:before { + margin-left: 25px; + border-right: 27px solid #3F3F3F; +} + +.mfp-arrow-right { + right: 0; +} + +.mfp-arrow-right:after { + border-left: 17px solid #FFF; + margin-left: 39px; +} + +.mfp-arrow-right:before { + border-left: 27px solid #3F3F3F; +} + +.mfp-iframe-holder { + padding-top: 40px; + padding-bottom: 40px; +} + +.mfp-iframe-holder .mfp-content { + line-height: 0; + width: 100%; + max-width: 900px; +} + +.mfp-iframe-holder .mfp-close { + top: -40px; +} + +.mfp-iframe-scaler { + width: 100%; + height: 0; + overflow: hidden; + padding-top: 56.25%; +} + +.mfp-iframe-scaler iframe { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + background: #000; +} + +/*--- Main image in popup ---*/ +img.mfp-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + line-height: 0; + box-sizing: border-box; + padding: 40px 0 40px; + margin: 0 auto; +} + +/*--- The shadow behind the image ---*/ +.mfp-figure { + line-height: 0; +} + +.mfp-figure:after { + content: ''; + position: absolute; + left: 0; + top: 40px; + bottom: 40px; + display: block; + right: 0; + width: auto; + height: auto; + z-index: -1; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + background: #444; +} + +.mfp-figure small { + color: #BDBDBD; + display: block; + font-size: 12px; + line-height: 14px; +} + +.mfp-figure figure { + margin: 0; +} + +.mfp-bottom-bar { + margin-top: -36px; + position: absolute; + top: 100%; + left: 0; + width: 100%; + cursor: auto; +} + +.mfp-title { + text-align: left; + line-height: 18px; + color: #F3F3F3; + word-wrap: break-word; + padding-right: 36px; +} + +.mfp-image-holder .mfp-content { + max-width: 100%; +} + +.mfp-gallery .mfp-image-holder .mfp-figure { + cursor: pointer; +} + +button.mfp-close, +button.mfp-close:hover { + display: inline-block !important; + background: transparent; + width: auto !important; +} + +.mfp-arrow, +.mfp-arrow:hover { + background: transparent; +} + +@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { + /** + * Remove all paddings around the image on small screen + */ + .mfp-img-mobile .mfp-image-holder { + padding-left: 0; + padding-right: 0; + } + + .mfp-img-mobile img.mfp-img { + padding: 0; + } + + .mfp-img-mobile .mfp-figure:after { + top: 0; + bottom: 0; + } + + .mfp-img-mobile .mfp-figure small { + display: inline; + margin-left: 5px; + } + + .mfp-img-mobile .mfp-bottom-bar { + background: rgba(0, 0, 0, 0.6); + bottom: 0; + margin: 0; + top: auto; + padding: 3px 5px; + position: fixed; + box-sizing: border-box; + } + + .mfp-img-mobile .mfp-bottom-bar:empty { + padding: 0; + } + + .mfp-img-mobile .mfp-counter { + right: 5px; + top: 3px; + } + + .mfp-img-mobile .mfp-close { + top: 0; + right: 0; + width: 35px; + height: 35px; + line-height: 35px; + background: rgba(0, 0, 0, 0.6); + position: fixed; + text-align: center; + padding: 0; + } +} +@media all and (max-width: 900px) { + .mfp-arrow { + -webkit-transform: scale(0.75); + transform: scale(0.75); + } + + .mfp-arrow-left { + -webkit-transform-origin: 0; + transform-origin: 0; + } + + .mfp-arrow-right { + -webkit-transform-origin: 100%; + transform-origin: 100%; + } + + .mfp-container { + padding-left: 6px; + padding-right: 6px; + } +} diff --git a/assets/front-end/css/ninja-form.css b/assets/front-end/css/ninja-form.css new file mode 100644 index 000000000..7b6500f14 --- /dev/null +++ b/assets/front-end/css/ninja-form.css @@ -0,0 +1,70 @@ +/*----------------------*/ +/* 13. Ninja Form Styles +/*----------------------*/ +.eael-ninja-container input, +.eael-ninja-container textarea { + height: auto; + padding: 10px; +} + +.eael-contact-form-align-center .eael-ninja-container, +.eael-contact-form-btn-align-center .eael-ninja-container .nf-field .nf-field-element input[type="button"] { + margin-left: auto !important; + margin-right: auto !important; + display: block; + float: none; +} + +.eael-contact-form-align-left .eael-ninja-container, +.eael-contact-form-btn-align-left .eael-ninja-container .nf-field .nf-field-element input[type="button"] { + float: left; + width: auto; +} + +.eael-contact-form-align-right .eael-ninja-container, +.eael-contact-form-btn-align-right .eael-ninja-container .nf-field .nf-field-element input[type="button"] { + float: right; + width: auto; +} + +.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="text"], +.eael-ninja-container .nf-field .nf-field-element input[type="password"], +.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="email"], +.eael-ninja-container .nf-field .nf-field-element input[type="url"], +.eael-ninja-container ul.wpuf-form li .wpuf-fields input[type="number"], +.eael-ninja-container .nf-field .nf-field-element textarea { + max-width: 100%; +} + +.eael-ninja-form .nf-form-title { + display: none; +} + +.eael-ninja-form-title-yes .nf-form-title { + display: block; +} + +.eael-ninja-form .title-description-hide .nf-form-title { + display: none; +} + +.eael-ninja-form.title-description-hide .nf-form-title { + display: none; +} + +.eael-ninja-form .nf-field-label { + display: none; +} + +.eael-ninja-form-labels-yes .nf-field-label { + display: block; +} + +.eael-ninja-form .submit-container input[type=button] { + border: 0; + border-radius: 0; +} + +.eael-ninja-form-button-full-width .submit-container input[type=button] { + width: 100%; +} diff --git a/assets/front-end/css/post-grid-column.css b/assets/front-end/css/post-grid-column.css new file mode 100755 index 000000000..13b860d9d --- /dev/null +++ b/assets/front-end/css/post-grid-column.css @@ -0,0 +1,78 @@ +/*-----------------------------*/ +/* 16. Post Grid Column +/*-----------------------------*/ +.eael-col-1 .eael-post-grid-column { + float: none; + width: 100%; +} + +.eael-col-2 .eael-post-grid-column { + float: left; + width: 50%; +} + +.eael-col-3 .eael-post-grid-column { + float: left; + width: 33.3333%; +} + +.eael-col-4 .eael-post-grid-column { + float: left; + width: 25%; +} + +.eael-col-5 .eael-post-grid-column { + float: left; + width: 20%; +} + +.eael-col-6 .eael-post-grid-column { + float: left; + width: 16.6666%; +} + +/*--- Post Grid Column Styles ---*/ +@media only screen and (max-width: 979px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + width: 33.3333%; + } +} +@media only screen and (max-width: 767px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + width: 50%; + } +} +@media only screen and (max-width: 480px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + float: none; + width: 100%; + } +} +.eael-author-avatar > a { + display: block; +} + +.eael-entry-footer { + overflow: hidden; + display: flex; +} + +.eael-entry-footer > div { + display: inline-block; + float: left; +} diff --git a/assets/front-end/css/post-grid.css b/assets/front-end/css/post-grid.css new file mode 100644 index 000000000..f57626aec --- /dev/null +++ b/assets/front-end/css/post-grid.css @@ -0,0 +1,384 @@ +/*-----------------------------*/ +/* 15. Post Grid Style +/*-----------------------------*/ +.eael-post-grid { + margin: 0 -10px; +} + +.eael-grid-post { + float: left; + padding: 10px; +} + +.eael-post-carousel .eael-grid-post { + float: none; + padding: 0; +} + +.eael-grid-post-holder { + border: 1px solid rgba(0, 0, 0, 0.1); +} + +.eael-grid-post-holder-inner { + height: 100%; +} + +.eael-entry-media { + position: relative; +} + +.eael-entry-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 2; + -webkit-transition: opacity 0.2s ease-in-out, -webkit-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); + -moz-transition: opacity 0.2s ease-in-out, -moz-transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); + transition: opacity 0.2s ease-in-out, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1); +} + +.eael-entry-overlay > a { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 3; +} + +.eael-entry-title { + margin: 10px 0 5px; + font-size: 1.2em; +} + +.eael-entry-thumbnail img { + width: 100%; + max-width: 100%; + vertical-align: middle; +} + +.eael-entry-thumbnail > img { + height: 100%; +} + +.eael-entry-footer .eael-author-avatar { + width: 50px; +} + +.eael-entry-footer .eael-author-avatar .avatar { + border-radius: 50%; +} + +.eael-post-grid .eael-entry-footer .eael-entry-meta { + padding-left: 8px; + text-align: left; +} + +.eael-grid-post .eael-entry-meta { + display: flex; + flex-direction: row; +} + +.eael-grid-post .eael-entry-footer .eael-entry-meta { + flex-direction: column; +} + +.eael-entry-meta > div { + font-size: 12px; + line-height: 1.2; + padding-bottom: 5px; +} + +.eael-grid-post-excerpt p { + margin: 0; + font-size: 14px; +} + +.eael-entry-meta .eael-entry-footer .eael-posted-by { + display: block; +} + +.eael-grid-post .eael-entry-wrapper, +.eael-grid-post .eael-entry-footer { + padding: 15px; +} + +.eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on { + padding-left: 5px; +} + +.eael-post-grid .eael-entry-header .eael-entry-meta span.eael-posted-on::before { + content: '\f111'; + font-family: FontAwesome; + color: inherit; + opacity: .4; + font-size: .8em; + padding-right: 7px; +} + +.eael-load-more-button-wrap { + display: flex; +} + +.eael-load-more-button { + display: flex; + align-items: center; + justify-content: center; +} + +.eael-load-more-button { + padding: 1em 2em; + border: 0px solid; + font-size: 16px; +} + +.eael-load-more-button .button__loader { + left: -100%; + top: auto; + margin-right: 5px; + transition: all .2s; +} + +.eael-load-more-button > span { + margin-left: -20px; +} + +.eael-load-more-button.button--loading > span { + margin-left: 0; +} + +.eael-load-more-button.button--loading .button__loader { + left: 0; +} + +.eael-btn-loader, +.eael-btn-loader:after { + border-radius: 50%; + width: 20px; + height: 20px; +} + +.eael-btn-loader { + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 4px solid rgba(255, 255, 255, 0.2); + border-right: 4px solid rgba(255, 255, 255, 0.2); + border-bottom: 4px solid rgba(255, 255, 255, 0.2); + border-left: 4px solid #ffffff; + transform: translateZ(0); + animation: loaderSpin 1.1s infinite linear; +} + +@keyframes loaderSpin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/*--- Post Grid Thumbnail Hover Effects ---*/ +.eael-entry-medianone { + position: relative; +} + +.eael-entry-overlay { + display: flex; + align-items: center; + justify-content: center; +} + +.eael-entry-overlay > i { + color: #fff; +} + +/*--- fade in ---*/ +.eael-entry-overlay.fade-in { + visibility: hidden; + opacity: 0; + transition: 300ms; +} + +.eael-entry-medianone:hover .eael-entry-overlay.fade-in { + visibility: visible; + opacity: 1; +} + +.eael-entry-medianone:hover .eael-entry-overlay.fade-in > i { + transform: translate(0); + opacity: 1; +} + +/*--- zoom in --- */ +.eael-entry-overlay.zoom-in { + transform: scale(0.9); + visibility: hidden; + opacity: 0; + transition: 300ms; +} + +.eael-entry-medianone:hover .eael-entry-overlay.zoom-in { + visibility: visible; + opacity: 1; + transform: scale(1); +} + +/*--- slide up ---*/ +.eael-entry-overlay.slide-up { + transform: translateY(100%); + visibility: hidden; + opacity: 0; + transition: 300ms; +} + +.eael-entry-medianone:hover .eael-entry-overlay.slide-up { + transform: translateY(0); + visibility: visible; + opacity: 1; +} + +.eael-entry-medianone { + overflow: hidden; +} + +/*--- Post Grid & Carousel Hover Styles ---*/ +.eael-entry-media.grid-hover-style-fade-in .eael-entry-overlay { + opacity: 0; +} + +.eael-entry-media.grid-hover-style-fade-in:hover .eael-entry-overlay { + opacity: 1; +} + +.eael-entry-media.grid-hover-style-none .eael-entry-overlay { + display: none; +} + +.eael-entry-media.grid-hover-style-zoom-in .eael-entry-overlay { + transform: scale(0.4); + opacity: 0; +} + +.eael-entry-media.grid-hover-style-zoom-in:hover .eael-entry-overlay { + transform: scale(1); + opacity: 1; +} + +.eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay { + transform: translateY(-100%); +} + +.eael-entry-media.grid-hover-style-animate-down .eael-entry-overlay > i { + transform: translateY(-100px); + transition-delay: 100ms; + transition-duration: 300ms; +} + +.eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay { + transform: translate(0); +} + +.eael-entry-media.grid-hover-style-animate-down:hover .eael-entry-overlay > i { + transform: translateY(0); +} + +.eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay { + transform: translateY(100%); + visibility: hidden; + opacity: 0; +} + +.eael-entry-media.grid-hover-style-animate-up .eael-entry-overlay > i { + transform: translateY(100px); + transition-delay: 100ms; + transition-duration: 300ms; +} + +.eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay { + transform: translate(0); + visibility: visible; + opacity: 1; +} + +.eael-entry-media.grid-hover-style-animate-up:hover .eael-entry-overlay > i { + transform: translateY(0); +} + +/*--- Post Grid Column Styles ---*/ +.eael-col-1 .eael-post-grid-column { + float: none; + width: 100%; +} + +.eael-col-2 .eael-post-grid-column { + float: left; + width: 50%; +} + +.eael-col-3 .eael-post-grid-column { + float: left; + width: 33.3333%; +} + +.eael-col-4 .eael-post-grid-column { + float: left; + width: 25%; +} + +.eael-col-5 .eael-post-grid-column { + float: left; + width: 20%; +} + +.eael-col-6 .eael-post-grid-column { + float: left; + width: 16.6666%; +} + +@media only screen and (max-width: 979px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + width: 33.3333%; + } +} +@media only screen and (max-width: 767px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + width: 50%; + } +} +@media only screen and (max-width: 480px) { + .eael-col-1 .eael-post-grid-column, + .eael-col-2 .eael-post-grid-column, + .eael-col-3 .eael-post-grid-column, + .eael-col-4 .eael-post-grid-column, + .eael-col-5 .eael-post-grid-column, + .eael-col-6 .eael-post-grid-column { + float: none; + width: 100%; + } +} +.eael-author-avatar > a { + display: block; +} + +.eael-entry-footer { + overflow: hidden; + display: flex; +} + +.eael-entry-footer > div { + display: inline-block; + float: left; +} diff --git a/assets/front-end/css/post-timeline.css b/assets/front-end/css/post-timeline.css new file mode 100644 index 000000000..24705fa73 --- /dev/null +++ b/assets/front-end/css/post-timeline.css @@ -0,0 +1,344 @@ +/*----------------------------*/ +/* 06. Post Timeline Styles +/*----------------------------*/ +.eael-post-timeline { + margin-bottom: 0; + min-height: 100%; + overflow: hidden; + position: relative; +} + +.eael-timeline-column { + width: 50%; + margin-left: 0; + float: left; + margin-top: 0 !important; +} + +.eael-timeline-post { + position: relative; +} + +.eael-timeline-post:after { + background-color: rgba(83, 85, 86, 0.2); + content: ""; + width: 2px; + height: 245px; + position: absolute; + right: 0; + top: 70px; +} + +.eael-timeline-post:nth-child(2n):after { + display: none; +} + +.eael-timeline-bullet { + background-color: #9fa9af; + border: 5px solid #fff; + border-radius: 50%; + box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.1); + content: ""; + height: 20px; + position: absolute; + right: -9px; + top: 60px; + width: 20px; + z-index: 3; + cursor: pointer; +} + +.eael-timeline-post:nth-child(2n) .eael-timeline-bullet { + background-color: #9fa9af; + border: 5px solid #fff; + border-radius: 50%; + bottom: 36px; + content: ""; + height: 20px; + left: -11px; + position: absolute; + top: 300px; + width: 20px; + z-index: 3; +} + +.eael-timeline-post-inner { + background: linear-gradient(45deg, #3f3f46 0%, #05abe0 100%) repeat scroll 0 0 transparent; + border: 8px solid #e5eaed; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.15); + float: right; + margin: 30px 40px 30px auto; + position: relative; + height: 320px; + width: calc(100% - 40px); +} + +.eael-timeline-post:nth-child(even) .eael-timeline-post-inner { + float: left; + margin-left: 40px; +} + +.eael-timeline-post-inner:after { + border-color: transparent transparent transparent #e5eaed; + border-style: solid; + border-width: 15px; + content: ""; + height: 0; + position: absolute; + right: -36px; + top: 17px; + width: 0; +} + +.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner:after { + border-color: transparent #e5eaed transparent transparent; + border-style: solid; + border-width: 15px; + content: ""; + height: 0; + left: -36px; + position: absolute; + top: 257px; + width: 0; +} + +.eael-timeline-post:nth-child(2n) .eael-timeline-post-inner::after { + border-left-color: transparent !important; +} + +.eael-timeline-post p { + margin: 1.6rem 0 0 0; + font-size: 0.9em; + line-height: 1.6em; +} + +.eael-timeline-post-image { + background-size: cover; + background-position: center center; + background-repeat: no-repeat; + display: block; + height: 100%; + overflow: hidden; + position: relative; + opacity: .6; + -webkit-transition: all .3s; + -moz-transition: all .3s; + transition: all .3s; +} + +.eael-timeline-post-title { + bottom: 40px; + position: absolute; + width: 100%; +} + +.eael-timeline-post-title h2 { + color: #fff; + font-size: 20px; + font-weight: bold; + letter-spacing: 1px; + line-height: 24px; + padding: 0 25px; + text-align: left; + text-transform: uppercase; +} + +.eael-timeline-post-excerpt { + opacity: 0; + position: absolute; + top: 0; + left: 0; + -webkit-transition: all .3s; + -moz-transition: all .3s; + transition: all .3s; +} + +.eael-timeline-post-excerpt p { + color: #fff; + font-size: 14px; + padding: 25px; +} + +.eael-timeline-post-inner:hover .eael-timeline-post-excerpt { + opacity: 1; + top: 10px; +} + +.eael-timeline-post-inner:hover .eael-timeline-post-image { + opacity: .3; +} + +.eael-timeline-post time { + opacity: 0; + background-color: rgba(0, 0, 0, 0.7); + color: #fff; + font-size: 10px; + border-radius: 20px; + position: absolute; + right: -97px; + width: 100px; + height: 30px; + line-height: 30px; + text-align: center; + top: 50px; + z-index: 99; + -webkit-transition: all .5s; + -moz-transition: all .5s; + transition: all .5s; +} + +.eael-timeline-post:nth-child(2n) time { + background-color: rgba(0, 0, 0, 0.7); + border-radius: 20px; + color: #fff; + font-size: 10px; + height: 30px; + left: -99px; + line-height: 30px; + position: absolute; + text-align: center; + top: 290px; + width: 100px; + z-index: 99; +} + +.eael-timeline-post time:before { + border-bottom: 5px solid rgba(0, 0, 0, 0.7); + border-left: 5px solid transparent; + border-right: 5px solid transparent; + content: ""; + height: 0; + left: 45px; + position: absolute; + top: -5px; + width: 0; +} + +.eael-timeline-post:hover time { + opacity: 1; +} + +.eael-timeline-post::after { + height: 100%; +} + +.eael-post-timeline .eael-timeline-post:nth-last-child(2)::after { + height: 245px; +} + +.eael-post-timeline .eael-timeline-post:last-child::after { + display: none; +} + +/*--- Responsive Style for Post Timeline ---*/ +@media only screen and (max-width: 1366px) { + .eael-timeline-post-title h2 { + font-size: 0.8em; + } + + .eael-timeline-post-excerpt p { + font-size: 13px; + } +} +@media only screen and (max-width: 1169px) { + .eael-timeline-post-inner { + height: 320px; + } +} +@media only screen and (max-width: 992px) { + .eael-post-timeline { + margin-left: 0; + } + + .eael-timeline-bullet, + .eael-timeline-post:after, + .eael-timeline-post:before, + .eael-timeline-post-inner:after { + display: none; + } + + .eael-timeline-post { + display: inline-block; + float: left !important; + width: 50% !important; + margin: 15px auto; + } + + .eael-timeline-post-inner { + height: 320px; + padding-bottom: 30px; + } + + .eael-timeline-post-title { + bottom: 50px; + } + + .eael-timeline-post-title h2 { + font-size: 0.8em; + line-height: 1.2em; + } + + .eael-timeline-post .eael-timeline-post-inner { + margin: 0 10px auto 0; + width: 90%; + } + + .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner { + margin: 0 auto 0 10px; + width: 90%; + } + + .eael-timeline-post-excerpt { + opacity: 0 !important; + } + + .eael-timeline-post-image { + opacity: .3; + } + + .eael-timeline-post time, + .eael-timeline-post:nth-child(2n) time { + background-color: #fff; + border-radius: 0; + color: #444; + font-size: 12px; + text-transform: uppercase; + left: 0; + opacity: 1; + padding-top: 3px; + top: 275px; + width: 100%; + } + + time:before { + display: none; + } +} +@media only screen and (max-width: 767px) { + .eael-timeline-post { + display: block; + float: none !important; + margin: 20px auto; + width: 100% !important; + } + + .eael-timeline-post .eael-timeline-post-inner, + .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner { + display: block; + float: none; + margin: 0 auto; + } +} +@media only screen and (max-width: 479px) { + .eael-timeline-post .eael-timeline-post-inner, + .eael-timeline-post:nth-child(2n) .eael-timeline-post-inner { + height: 250px; + margin: 0 auto; + width: 95%; + } + + .eael-timeline-post time, + .eael-timeline-post:nth-child(2n) time { + top: 205px; + } +} diff --git a/assets/front-end/css/price-table.css b/assets/front-end/css/price-table.css new file mode 100644 index 000000000..4dc93a060 --- /dev/null +++ b/assets/front-end/css/price-table.css @@ -0,0 +1,612 @@ +/* -------------------------------- */ +/* 21. Pricing Table +/* -------------------------------- */ +.eael-pricing { + -webkit-display: flex; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; +} + +.eael-pricing .eael-pricing-item { + width: 100%; + height: auto; + margin: 0; +} + +.eael-pricing .eael-pricing-button { + display: inline-block; + padding: 12px 25px; + background: #00C853; + font-size: 14px; + font-weight: 600; + color: #fff; + text-transform: uppercase; + text-decoration: none; + -webkit-transition: .3s; + transition: .3s; + -webkit-border-radius: 4px; + border-radius: 4px; +} + +.eael-pricing .eael-pricing-button:hover { + background: #03b048; +} + +.eael-pricing .eael-pricing-item ul { + padding: 0px; + margin: 0px; + list-style: none; +} + +.eael-pricing .eael-pricing-item ul li.disable-item { + text-decoration: line-through; + opacity: 0.5; +} + +.eael-pricing .eael-pricing-item ul li span.li-icon { + color: #00C853; + margin-right: 6px; +} + +.eael-pricing .eael-pricing-item ul li.disable-item span.li-icon { + color: #EF5350; +} + +/*--- Pricing Table: Style 1 ---*/ +.eael-pricing.style-1 { + position: relative; + z-index: 0; + text-align: center; +} + +.eael-pricing.style-1 .eael-pricing-item { + border: 1px solid rgba(9, 9, 9, 0.1); + padding: 30px; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-transition: .5s; + transition: .5s; +} + +.eael-pricing.style-1 .eael-pricing-item:hover { + -webkit-box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); +} + +.eael-pricing.style-1 .eael-pricing-item.featured { + position: relative; +} + +.eael-pricing.style-1 .eael-pricing-item.ribbon-1:before { + content: ""; + position: absolute; + width: 100%; + height: 3px; + background: #00C853; + top: 0px; + left: 0px; + right: 0px; + z-index: 1; + -webkit-border-radius: 5px 5px 0px 0px; + border-radius: 5px 5px 0px 0px; +} + +.eael-pricing.style-1 .eael-pricing-item.ribbon-2:before { + content: "Featured"; + position: absolute; + width: auto; + background: #00C853; + color: #fff; + top: 35px; + right: -15px; + z-index: 10; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + padding: 5px 10px; +} + +.eael-pricing.style-1 .eael-pricing-item.ribbon-2:after { + content: ""; + position: absolute; + top: 20px; + right: -15px; + width: 0; + height: 0; + border-bottom: 15px solid #00C853; + border-right: 15px solid transparent; + z-index: 9; + opacity: 0.9; +} + +.eael-pricing.style-1 .eael-pricing-item.ribbon-3:before { + content: "Featured"; + position: absolute; + width: auto; + background: rgba(0, 0, 0, 0.6); + color: #fff; + top: 15px; + right: 15px; + z-index: 10; + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + padding: 5px 15px; +} + +.eael-pricing.style-1 .eael-pricing-item .header { + display: block; + position: relative; + z-index: 0; + padding-bottom: 15px; + margin-bottom: 15px; +} + +.eael-pricing.style-1 .eael-pricing-item .header:after { + content: ""; + position: absolute; + width: 140px; + height: 1px; + bottom: 0px; + left: 0px; + right: 0px; + margin: 0 auto; + z-index: 1; + background: rgba(9, 9, 9, 0.1); +} + +.eael-pricing.style-1 .eael-pricing-item .header .title { + font-weight: 700; + line-height: 30px; + margin: 0px; +} + +.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag { + position: relative; + z-index: 0; + padding: 15px 0px; + margin-bottom: 15px; +} + +.eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after { + content: ""; + position: absolute; + width: 140px; + height: 1px; + bottom: 0px; + left: 0px; + right: 0px; + margin: 0 auto; + z-index: 1; + background: rgba(9, 9, 9, 0.04); +} + +.eael-pricing.style-1 .eael-pricing-item .price-tag { + position: relative; + display: inline-block; + font-size: 28px; + font-weight: 500; + line-height: 0px; + margin: 0px auto; +} + +.eael-pricing.style-1 .eael-pricing-item .price-tag .price-currency { + font-size: 24px; + font-weight: 700; +} + +.eael-pricing.style-1 .eael-pricing-item .price-period { + color: #999; +} + +.eael-pricing.style-1 .eael-pricing-item .body ul { + display: block; + width: 100%; + margin-bottom: 15px; +} + +.eael-pricing.style-1 .eael-pricing-item .body ul li { + display: block; + width: 100%; + height: auto; + padding: 10px 0px; + font-size: 14px; + color: #6d6d6d; + border-bottom: 1px solid rgba(9, 9, 9, 0.04); +} + +.eael-pricing.style-1 .eael-pricing-item .body ul li:last-child { + border: none; +} + +.eael-pricing.style-1 .eael-pricing-item.featured-large { + padding: 60px 0px; +} + +/*--- Pricing Table : Style 2 ---*/ +.eael-pricing.style-2 { + position: relative; + z-index: 0; + text-align: center; +} + +.eael-pricing.style-2 .eael-pricing-item { + padding: 30px 0px; + border-radius: 5px; + margin: 0px; + border: 1px solid rgba(9, 9, 9, 0.1); +} + +.eael-pricing.style-2 .eael-pricing-item.featured { + -webkit-box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); +} + +.eael-pricing.style-2 .eael-pricing-item.ribbon-1:before { + content: ""; + position: absolute; + width: 100%; + height: 3px; + background: #00C853; + top: 0px; + left: 0px; + right: 0px; + z-index: 1; + -webkit-border-radius: 5px 5px 0px 0px; + border-radius: 5px 5px 0px 0px; +} + +.eael-pricing.style-2 .eael-pricing-item.ribbon-2:before { + content: "Featured"; + position: absolute; + width: auto; + background: #00C853; + color: #fff; + top: 35px; + right: -15px; + z-index: 10; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + padding: 5px 10px; +} + +.eael-pricing.style-2 .eael-pricing-item.ribbon-2:after { + content: ""; + position: absolute; + top: 20px; + right: -15px; + width: 0; + height: 0; + border-bottom: 15px solid #00C853; + border-right: 15px solid transparent; + z-index: 9; + opacity: 0.9; +} + +.eael-pricing.style-2 .eael-pricing-item.ribbon-3:before { + content: "Featured"; + position: absolute; + width: auto; + background: rgba(0, 0, 0, 0.6); + color: #fff; + top: 15px; + right: 15px; + z-index: 10; + font-size: 11px; + font-weight: 600; + text-transform: uppercase; + padding: 5px 15px; +} + +.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon { + display: inline-block; + position: relative; + width: 80px; + height: 80px; + background: #00c853; + border-radius: 50%; + margin-bottom: 30px; + text-align: center; + -webkit-transition: .5s; + transition: .5s; + overflow: hidden; +} + +.eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon i { + font-size: 30px; + color: #fff; + line-height: 80px; + -webkit-transition: .5s; + transition: .5s; +} + +.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon { + background: #43A047; +} + +.eael-pricing.style-2 .eael-pricing-item:hover .eael-pricing-icon .icon i { + color: #fff; +} + +.eael-pricing.style-2 .eael-pricing-item .header { + background: #C8E6C9; + padding: 25px 30px; + margin-bottom: 15px; + position: relative; + z-index: 0; +} + +.eael-pricing.style-2 .eael-pricing-item.featured .header:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + z-index: -1; + background: rgba(255, 255, 255, 0.4); +} + +.eael-pricing.style-2 .eael-pricing-item .header .title { + font-size: 28px; + font-weight: 700; + line-height: 40px; + margin: 0px; +} + +.eael-pricing.style-2 .eael-pricing-item .header .subititle { + font-size: 14px; + font-weight: 600; + color: #6d6d6d; +} + +.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag { + position: relative; + z-index: 0; + padding: 15px 0px; + margin-bottom: 15px; +} + +.eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after { + content: ""; + position: absolute; + width: 140px; + height: 1px; + bottom: 0px; + left: 0px; + right: 0px; + margin: 0 auto; + z-index: 1; + background: rgba(9, 9, 9, 0.04); +} + +.eael-pricing.style-2 .eael-pricing-item .price-tag { + position: relative; + display: inline-block; + font-size: 28px; + font-weight: 500; + line-height: 0px; + margin: 0px auto; +} + +.eael-pricing.style-2 .eael-pricing-item .price-tag .price-currency { + font-size: 24px; + font-weight: 700; + color: #00C853; +} + +.eael-pricing.style-2 .eael-pricing-item .price-period { + color: #999; +} + +.eael-pricing.style-2 .eael-pricing-item .body ul { + display: block; + width: 100%; + margin-bottom: 15px; +} + +.eael-pricing.style-2 .eael-pricing-item .body ul li { + display: block; + width: 100%; + height: auto; + padding: 10px 15px; + font-size: 14px; + color: #6d6d6d; + border-bottom: 1px solid rgba(9, 9, 9, 0.04); +} + +.eael-pricing.style-2 .eael-pricing-item .body ul li:last-child { + border: none; +} + +/*--- Media Query ---*/ +@media only screen and (min-width: 768px) and (max-width: 992px) { + .eael-pricing { + display: block; + } + + .eael-pricing .eael-pricing-item, + .eael-pricing.style-2 .eael-pricing-item, + .eael-pricing.style-4 .eael-pricing-item { + width: 100%; + margin: 0 auto 30px auto; + } +} +@media only screen and (max-width: 480px) { + .eael-pricing { + display: block; + } + + .eael-pricing .eael-pricing-item { + width: 100%; + } + + .eael-pricing .eael-pricing-item, + .eael-pricing.style-2 .eael-pricing-item, + .eael-pricing.style-4 .eael-pricing-item { + margin: 0 auto 30px auto; + } +} +/*--- Page Builder Related Style ---*/ +.eael-pricing-content-align-center .eael-pricing { + text-align: center; +} + +.eael-pricing-content-align-left .eael-pricing { + text-align: left; +} + +.eael-pricing-content-align-right .eael-pricing { + text-align: right; +} + +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag { + padding-left: 45px; +} + +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .price-tag:before { + left: 30px; +} + +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag { + padding-right: 30px; +} + +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .header, +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon, +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .footer, +.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .header, +.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .footer { + padding-left: 30px; + padding-right: 30px; +} + +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .header, +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon, +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .footer, +.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .header, +.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .footer { + padding-right: 30px; + padding-left: 30px; +} + +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .body ul li, +.eael-pricing-content-align-left .eael-pricing.style-4 .eael-pricing-item .body ul li { + padding-left: 30px; +} + +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .body ul li, +.eael-pricing-content-align-right .eael-pricing.style-4 .eael-pricing-item .body ul li { + padding-right: 30px; +} + +.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item .header:after { + -webkit-transform: translateX(-80%); + transform: translateX(-80%); +} + +.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item .header:after { + -webkit-transform: translateX(80%); + transform: translateX(80%); +} + +.eael-pricing-content-align-left .eael-pricing.style-3 .eael-pricing-item:hover .header:after, +.eael-pricing-content-align-right .eael-pricing.style-3 .eael-pricing-item:hover .header:after { + -webkit-transform: translateX(0%); + transform: translateX(0%); +} + +.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .header:after, +.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .header:after, +.eael-pricing-content-align-left .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after, +.eael-pricing-content-align-right .eael-pricing.style-1 .eael-pricing-item .eael-pricing-tag:after, +.eael-pricing-content-align-left .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after, +.eael-pricing-content-align-right .eael-pricing.style-2 .eael-pricing-item .eael-pricing-tag:after { + margin: 0; + width: 100%; +} + +/*--- Button Alignment ---*/ +.eael-pricing-button-align-right .eael-pricing.style-1 .footer, +.eael-pricing-button-align-right .eael-pricing.style-2 .footer, +.eael-pricing-button-align-right .eael-pricing.style-3 .footer, +.eael-pricing-button-align-right .eael-pricing.style-4 .footer { + text-align: right; +} + +.eael-pricing-button-align-center .eael-pricing.style-1 .footer, +.eael-pricing-button-align-center .eael-pricing.style-2 .footer, +.eael-pricing-button-align-center .eael-pricing.style-3 .footer, +.eael-pricing-button-align-center .eael-pricing.style-4 .footer { + text-align: center; +} + +.eael-pricing-button-align-left .eael-pricing.style-1 .footer, +.eael-pricing-button-align-left .eael-pricing.style-2 .footer, +.eael-pricing-button-align-left .eael-pricing.style-3 .footer, +.eael-pricing-button-align-left .eael-pricing.style-4 .footer { + text-align: left; +} + +.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-2 .footer, +.eael-pricing-content-align-center.eael-pricing-button-align-right .eael-pricing.style-4 .footer { + padding-right: 30px; +} + +.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-2 .footer, +.eael-pricing-content-align-center.eael-pricing-button-align-left .eael-pricing.style-4 .footer { + padding-left: 30px; +} + +/*--- Only In Pro Alert ---*/ +.only-in-pro { + width: 100%; + -webkit-display: flex; + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-justify-content: center; + justify-content: center; + padding: 15px; + min-width: 200px; + background: #EF5350; + color: #fff; + text-align: center; +} + +.only-in-pro .title { + font-family: 'Roboto', sans-serif; + font-size: 24px; + line-height: 40px; + margin: 0px; +} + +/*--- Pricing Table Tooltip ---*/ +div.tooltipster-sidetip.tooltipster-base.tooltipster-right .tooltipster-arrow { + position: absolute; + top: 50%; +} + +div.tooltipster-sidetip.tooltipster-top div.tooltipster-box { + margin-bottom: 0px !important; +} + +div.tooltipster-sidetip.tooltipster-bottom div.tooltipster-box { + margin-top: 0px !important; +} + +.tooltipster-base.tooltipster-sidetip.tooltipster-top .tooltipster-arrow { + top: auto; + bottom: -8px; +} + +div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow { + top: -8px; + bottom: auto; +} diff --git a/assets/front-end/css/product-grid.css b/assets/front-end/css/product-grid.css new file mode 100644 index 000000000..933844e8a --- /dev/null +++ b/assets/front-end/css/product-grid.css @@ -0,0 +1,443 @@ +/*--------------------------*/ +/* 09. Product Styles +/*--------------------------*/ +.eael-product-grid .woocommerce ul.products, +.eael-post-grid .woocommerce ul.products { + display: grid; + grid-gap: 25px; + margin: 0 !important; + padding: 0 !important; +} +.eael-product-grid .woocommerce ul.products:before, .eael-product-grid .woocommerce ul.products:after, +.eael-post-grid .woocommerce ul.products:before, +.eael-post-grid .woocommerce ul.products:after { + display: none; +} +.eael-product-grid .woocommerce ul.products .product, +.eael-post-grid .woocommerce ul.products .product { + width: 100%; + margin: 0; + padding: 0; +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-1, +.eael-post-grid .woocommerce ul.products.eael-product-columns-1 { + grid-template-columns: 100%; +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-2, +.eael-post-grid .woocommerce ul.products.eael-product-columns-2 { + grid-template-columns: repeat(2, 1fr); +} +@media screen and (max-width: 480px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-2, + .eael-post-grid .woocommerce ul.products.eael-product-columns-2 { + grid-template-columns: repeat(1, 1fr); + } +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-3, +.eael-post-grid .woocommerce ul.products.eael-product-columns-3 { + grid-template-columns: repeat(3, 1fr); +} +@media screen and (max-width: 767px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-3, + .eael-post-grid .woocommerce ul.products.eael-product-columns-3 { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (max-width: 480px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-3, + .eael-post-grid .woocommerce ul.products.eael-product-columns-3 { + grid-template-columns: repeat(1, 1fr); + } +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-4, +.eael-post-grid .woocommerce ul.products.eael-product-columns-4 { + grid-template-columns: repeat(4, 1fr); +} +@media screen and (max-width: 767px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-4, + .eael-post-grid .woocommerce ul.products.eael-product-columns-4 { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (max-width: 480px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-4, + .eael-post-grid .woocommerce ul.products.eael-product-columns-4 { + grid-template-columns: repeat(1, 1fr); + } +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-5, +.eael-post-grid .woocommerce ul.products.eael-product-columns-5 { + grid-template-columns: repeat(5, 1fr); +} +@media screen and (max-width: 767px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-5, + .eael-post-grid .woocommerce ul.products.eael-product-columns-5 { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (max-width: 480px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-5, + .eael-post-grid .woocommerce ul.products.eael-product-columns-5 { + grid-template-columns: repeat(1, 1fr); + } +} +.eael-product-grid .woocommerce ul.products.eael-product-columns-6, +.eael-post-grid .woocommerce ul.products.eael-product-columns-6 { + grid-template-columns: repeat(6, 1fr); +} +@media screen and (max-width: 767px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-6, + .eael-post-grid .woocommerce ul.products.eael-product-columns-6 { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (max-width: 480px) { + .eael-product-grid .woocommerce ul.products.eael-product-columns-6, + .eael-post-grid .woocommerce ul.products.eael-product-columns-6 { + grid-template-columns: repeat(1, 1fr); + } +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product { + position: relative; + float: left; + overflow: hidden; + text-align: center; + padding: 0; + border-radius: 0; + background-color: #fff; + box-shadow: none; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a { + text-decoration: none; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a:hover, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a:hover, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a:hover, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a:hover { + outline: none; + box-shadow: none; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product img, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product img, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product img, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product img { + width: 100%; + height: auto; + backface-visibility: hidden; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .woocommerce-loop-product__title, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .woocommerce-loop-product__title { + font-size: 16px; + font-weight: 700; + line-height: 1; + color: #333; + margin: 25px 0 12px; + padding: 0; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .onsale, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .onsale, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .onsale, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .onsale { + display: block; + line-height: 170px; + font-size: 13px; + text-align: center; + letter-spacing: 0; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); + text-transform: uppercase; + color: #fff; + background-color: #ff2a13; + border-radius: 0; + border: none; + box-shadow: none; + position: absolute; + height: 100px; + width: 200px; + z-index: 1; + left: -100px; + top: -50px; + right: auto; + margin: 0; + padding: 0; + transform: rotate(-45deg); +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price { + font-size: 14px; + margin-bottom: 0; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price del, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price del, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price del, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price del { + opacity: 0.5; + display: inline-block; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .price ins, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .price ins, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .price ins, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .price ins { + font-weight: 400; + background-color: transparent; + color: #ff2a13; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .star-rating, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .star-rating, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .star-rating { + display: block; + float: none; + font-size: 14px; + margin: 10px auto; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button { + display: block; + font-size: 14px; + font-weight: 400; + line-height: 38px; + text-align: center; + text-transform: uppercase; + color: #fff; + background-color: #333; + padding: 0; + margin: 15px; + border-radius: 0; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product .button.add_to_cart_button:focus, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button:focus { + outline: none; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart, .eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product a.added_to_cart, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart { + display: block; + margin: 0 0 15px 0; + padding: 0; + font-size: 14px; + line-height: 1; + text-transform: capitalize; + color: #333; + background-color: transparent; +} +.eael-product-grid.eael-product-simple .woocommerce ul.products li.product, +.eael-post-grid.eael-product-simple .woocommerce ul.products li.product { + border: 1px solid #eee; +} +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product { + border: 1px solid transparent; +} +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button, +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product .button.add_to_cart_button, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product a.added_to_cart { + visibility: hidden; + transition: none; +} +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover { + border: 1px solid #eee; +} +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button, +.eael-product-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover .button.add_to_cart_button, +.eael-post-grid.eael-product-reveal .woocommerce ul.products li.product:hover a.added_to_cart { + visibility: visible; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product { + position: relative; + float: left; + overflow: hidden; + text-align: center; + padding: 0 0 15px 0; + border-radius: 0; + background-color: #fff; + box-shadow: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a { + text-decoration: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product a:hover, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product a:hover { + outline: none; + box-shadow: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product img, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product img { + width: 100%; + height: auto; + margin: 0; + backface-visibility: hidden; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay { + position: relative; + overflow: hidden; + line-height: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .button-wrap { + position: absolute; + top: 50%; + left: 0; + right: 0; + text-align: center; + transform: translateY(-50%); +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link, +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button, +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart { + display: inline-block; + font-size: 14px; + line-height: 38px; + text-align: center; + color: #fff; + background-color: #333; + width: 38px; + height: 38px; + border-style: none; + border-radius: 50%; + vertical-align: middle; + padding: 0; + margin: 0 5px; + transform: translateY(20px); + opacity: 0; + transition: transform 200ms, opacity 300ms; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus, +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus, +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .product-link:focus, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:focus, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:focus { + outline: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button { + font-size: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:before { + display: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button:after { + content: "\f217"; + font: normal normal normal 14px/1 FontAwesome; + font-size: 14px; + line-height: 38px; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + vertical-align: middle; + margin: 0; + padding: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:before { + display: none; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .add_to_cart_button.loading:after { + content: "\f110"; + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: 14px; + line-height: 38px; + color: #fff; + height: auto; + width: auto; + position: relative; + top: 0; + left: 0; + margin: 0; + padding: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart { + font-size: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .overlay .added_to_cart:after { + content: "\f06e"; + font: normal normal normal 14px/1 FontAwesome; + font-size: 14px; + line-height: 38px; + color: #fff; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + vertical-align: middle; + margin: 0; + padding: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .woocommerce-loop-product__title { + font-size: 16px; + font-weight: 700; + line-height: 1; + color: #333; + margin: 25px 0 12px; + padding: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .onsale, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .onsale { + display: block; + line-height: 170px; + font-size: 13px; + text-align: center; + letter-spacing: 0; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.6); + text-transform: uppercase; + color: #fff; + background-color: #ff2a13; + border-radius: 0; + border: none; + box-shadow: none; + position: absolute; + height: 100px; + width: 200px; + z-index: 1; + left: -100px; + top: -50px; + right: auto; + margin: 0; + padding: 0; + transform: rotate(-45deg); +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price { + font-size: 14px; + margin-bottom: 0; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price del, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price del { + opacity: 0.5; + display: inline-block; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .price ins, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .price ins { + font-weight: 400; + background-color: transparent; + color: #ff2a13; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product .star-rating { + display: block; + float: none; + font-size: 14px; + margin: 10px auto; +} +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a, +.eael-product-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay a, +.eael-post-grid.eael-product-overlay .woocommerce ul.products li.product:hover .overlay .add_to_cart_button { + opacity: 1; + transform: translateY(0); +} diff --git a/assets/front-end/css/progress-bar.css b/assets/front-end/css/progress-bar.css new file mode 100644 index 000000000..0917a449a --- /dev/null +++ b/assets/front-end/css/progress-bar.css @@ -0,0 +1,219 @@ +@-webkit-keyframes animateStripe { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(35px, 0); + } +} +@keyframes animateStripe { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(35px, 0); + } +} +@-webkit-keyframes animateStripeRTL { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(-35px, 0); + } +} +@keyframes animateStripeRTL { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(-35px, 0); + } +} +.eael-progressbar { + position: relative; +} + +.eael-progressbar-title { + font-size: 20px; + font-weight: 400; +} + +.eael-progressbar-line { + position: relative; + display: block; + width: 100%; + height: 12px; + background-color: #eeeeee; +} +.eael-progressbar-line .eael-progressbar-count-wrap { + position: absolute; + right: 0; + bottom: calc(100% + 5px); + font-size: 16px; + font-weight: 400; + line-height: 1; +} + +.eael-progressbar-line-fill { + display: inline-block; + position: absolute; + top: 50%; + left: 0; + width: 0; + height: 12px; + background-color: #000000; + transform: translateY(-50%); + transition: width 1500ms linear; + overflow: hidden; +} + +.eael-progressbar-circle { + position: relative; + width: 200px; + height: 200px; +} +.eael-progressbar-circle .eael-progressbar-title { + font-size: 16px; + font-weight: 400; +} +.eael-progressbar-circle .eael-progressbar-count-wrap { + font-size: 28px; + font-weight: 700; +} + +.eael-progressbar-circle-shadow { + width: 220px; + height: 220px; + padding: 10px; + border-radius: 50%; +} + +.eael-progressbar-circle-pie { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + clip-path: inset(0 0 0 50%); +} + +.eael-progressbar-circle-inner { + height: 100%; + width: 100%; + border-width: 12px; + border-style: solid; + border-color: #eeeeee; + border-radius: 50%; +} + +.eael-progressbar-circle-half { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; + border-width: 12px; + border-style: solid; + border-color: #000000; + border-radius: 50%; + clip-path: inset(0 50% 0 0); +} + +.eael-progressbar-circle-half-left { + transform: rotate(0deg); +} + +.eael-progressbar-circle-half-right { + transform: rotate(180deg); + visibility: hidden; +} + +.eael-progressbar-circle-inner-content { + position: absolute; + top: 50%; + width: 100%; + transform: translateY(-50%); + text-align: center; +} + +.eael-progressbar-half-circle { + position: relative; + width: 200px; + height: 100px; + overflow: hidden; +} +.eael-progressbar-half-circle .eael-progressbar-circle-pie { + clip-path: inset(0 0 50% 0); +} +.eael-progressbar-half-circle .eael-progressbar-circle-half { + clip-path: inset(50% 0 0 0); + transform: rotate(0deg); + transition: transform 1500ms linear; +} +.eael-progressbar-half-circle .eael-progressbar-circle-inner-content { + top: initial; + bottom: 0; + transform: translateY(0); +} +.eael-progressbar-half-circle .eael-progressbar-title { + font-size: 16px; + font-weight: 400; +} +.eael-progressbar-half-circle .eael-progressbar-count-wrap { + font-size: 28px; + font-weight: 700; +} + +.eael-progressbar-half-circle-after { + position: relative; + font-size: 12px; + font-weight: 400; + clear: both; +} + +.eael-progressbar-postfix-label { + float: right; +} + +.eael-progressbar-line-stripe .eael-progressbar-line-fill:after { + content: ''; + position: absolute; + top: 0; + left: -35px; + width: calc(100% + 70px); + height: 100%; + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 35px 35px; +} + +.eael-progressbar-line-animate .eael-progressbar-line-fill:after { + animation: animateStripe 2s linear infinite; +} + +.eael-progressbar-line-animate-rtl .eael-progressbar-line-fill:after { + animation: animateStripeRTL 2s linear infinite; +} + +.eael-progressbar-circle-wrap > div { + margin: 0 auto; +} + +/*alignment*/ +.eael-progressbar-line-container.left, +.eael-progressbar-circle-container.left > div, +.eael-progressbar-box-container.left > div { + margin: 0 auto 0 0; +} + +.eael-progressbar-line-container.center, +.eael-progressbar-circle-container.center > div, +.eael-progressbar-box-container.center > div { + margin: 0 auto; +} + +.eael-progressbar-line-container.right, +.eael-progressbar-circle-container.right > div, +.eael-progressbar-box-container.right > div { + margin: 0 0 0 auto; +} diff --git a/assets/front-end/css/team-members.css b/assets/front-end/css/team-members.css new file mode 100644 index 000000000..322ad3257 --- /dev/null +++ b/assets/front-end/css/team-members.css @@ -0,0 +1,120 @@ +/*----------------------------*/ +/* 07. Team Members Styles +/*----------------------------*/ +.eael-team-item { + overflow: hidden; + position: relative; +} + +.team-avatar-rounded figure img { + border-radius: 50%; + height: auto; +} + +.eael-team-image > figure { + margin: 0; + padding: 0; +} + +.eael-team-image > figure img { + display: block; + margin: 0 auto; +} + +.eael-team-item .eael-team-content { + padding: 10px; +} + +.eael-team-item .eael-team-member-name { + font-size: 20px; + font-weight: bold; + letter-spacing: 0.05em; + margin: 5px 0; + text-transform: uppercase; +} + +.eael-team-item .eael-team-member-position { + font-size: 14px; + font-weight: normal; + letter-spacing: 0.05em; + margin: 5px 0 10px; + text-transform: uppercase; +} + +.eael-team-item .eael-team-content, +.eael-team-item .eael-team-content .eael-team-text { + font-size: 14px; + line-height: 1.5; +} + +.eael-team-content > ul { + margin: 0; + padding: 0; +} + +.eael-team-content li { + display: inline-block; + list-style: outside none none; + margin-right: 10px; + text-align: center; +} + +.eael-team-content li a { + font-size: 2.5rem; +} + +.eael-team-align-left .eael-team-item .eael-team-member-name, +.eael-team-align-left .eael-team-item .eael-team-member-position, +.eael-team-align-left .eael-team-item .eael-team-text, +.eael-team-align-left .eael-team-item .eael-team-content p, +.eael-team-align-left .eael-team-item .eael-team-content ul, +.eael-team-align-left .eael-team-item .eael-team-content li { + text-align: left; +} + +.eael-team-align-right .eael-team-item .eael-team-member-name, +.eael-team-align-right .eael-team-item .eael-team-member-position, +.eael-team-align-right .eael-team-item .eael-team-text, +.eael-team-align-right .eael-team-item .eael-team-content p, +.eael-team-align-right .eael-team-item .eael-team-content ul, +.eael-team-align-right .eael-team-item .eael-team-content li { + text-align: right; +} + +.eael-team-align-centered .eael-team-item .eael-team-member-name, +.eael-team-align-centered .eael-team-item .eael-team-member-position, +.eael-team-align-centered .eael-team-item .eael-team-text, +.eael-team-align-centered .eael-team-item .eael-team-content p, +.eael-team-align-centered .eael-team-item .eael-team-content ul, +.eael-team-align-centered .eael-team-item .eael-team-content li { + text-align: center; +} + +.eael-team-item.eael-team-members-overlay .eael-team-content { + bottom: 10px; + left: 10px; + margin-bottom: 0; + padding-top: 15%; + opacity: 0; + overflow: hidden; + text-overflow: ellipsis; + position: absolute; + right: 10px; + top: 10px; + -webkit-transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s; + transition: all 0.615s cubic-bezier(0.19, 1, 0.22, 1) 0s; +} + +.eael-team-item.eael-team-members-overlay:hover .eael-team-content { + opacity: 1; +} + +.eael-team-member-social-link > a { + display: inline-block; + -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s; + transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) 0s; +} + +.eael-team-member-social-link > a:focus { + outline: none; +} diff --git a/assets/front-end/css/testimonials.css b/assets/front-end/css/testimonials.css new file mode 100644 index 000000000..05bb5f621 --- /dev/null +++ b/assets/front-end/css/testimonials.css @@ -0,0 +1,378 @@ +/*----------------------------*/ +/* 08. Testimonials Styles +/*----------------------------*/ +.eael-testimonial-slider { + position: relative; +} + +.testimonial-star-rating { + padding: 0; + margin: 0; +} + +.testimonial-star-rating li { + list-style: none; + display: inline-block; +} + +.testimonial-star-rating li i { + color: #d8d8d8; +} + +.rating-five .testimonial-star-rating li i { + color: #f2b01e; +} + +.rating-one .testimonial-star-rating li:first-child i { + color: #f2b01e; +} + +.rating-two .testimonial-star-rating li:nth-child(1) i, +.rating-two .testimonial-star-rating li:nth-child(2) i { + color: #f2b01e; +} + +.rating-three .testimonial-star-rating li:nth-child(1) i, +.rating-three .testimonial-star-rating li:nth-child(2) i, +.rating-three .testimonial-star-rating li:nth-child(3) i { + color: #f2b01e; +} + +.rating-four .testimonial-star-rating li:nth-child(1) i, +.rating-four .testimonial-star-rating li:nth-child(2) i, +.rating-four .testimonial-star-rating li:nth-child(3) i, +.rating-four .testimonial-star-rating li:nth-child(4) i { + color: #f2b01e; +} + +/*--- Default styles ---*/ +.eael-testimonial-image img { + max-width: 100%; +} + +.eael-testimonial-image { + padding: 10px 0px 0px 0px; +} + +.eael-testimonial-image > figure { + display: block; + margin: 0; +} + +.testimonial-avatar-rounded figure img { + border-radius: 50%; + height: auto; +} + +.eael-testimonial-content { + margin: 0; + padding: 10px; +} + +.eael-testimonial-item > figure { + margin: 0 auto; + padding: 0 20px; +} + +.eael-testimonial-item .center-text { + text-align: center; +} + +.eael-testimonial-item .right-text { + text-align: right; +} + +.eael-testimonial-item .left-text { + text-align: left; +} + +.eael-testimonial-item .justify-text { + text-align: justify; +} + +.eael-testimonial-content .eael-testimonial-text { + font-size: 100%; + font-style: italic; + line-height: 1.5; + margin-top: 0px; + margin-bottom: 10px; + word-wrap: break-word; +} + +.eael-testimonial-content .eael-testimonial-user { + display: inline-block; + font-family: inherit; + font-size: 105%; + font-style: italic; + font-weight: normal; + line-height: 1.5; + margin-top: 0; + margin-bottom: 0; + margin-right: 5px; +} + +.eael-testimonial-content .eael-testimonial-user-company { + display: inline-block; + font-family: inherit; + font-size: 90%; + font-style: italic; + font-weight: lighter; + line-height: 1.75; + margin-bottom: 0; + margin-top: 1px; +} + +.eael-testimonial-image { + position: relative; +} + +.eael-testimonial-item .eael-testimonial-quote::after { + color: inherit !important; + content: "\f10e"; + font-family: "FontAwesome"; + font-size: 200%; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-centered .eael-testimonial-image figure img { + margin: 0 auto; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure img, +.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure img, +.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure img, +.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure img, +.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure img, +.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure img { + margin: 0; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-right .eael-testimonial-image figure, +.eael-testimonial-slider.classic-style .eael-testimonial-align-right .eael-testimonial-image figure, +.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-image figure { + text-align: right; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-left .eael-testimonial-image figure, +.eael-testimonial-slider.classic-style .eael-testimonial-align-left .eael-testimonial-image figure, +.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-image figure { + text-align: left; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-right .default-style-testimonial-content, +.eael-testimonial-slider.classic-style .eael-testimonial-align-right .testimonial-classic-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-right .middle-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-right .eael-testimonial-text { + text-align: right; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-center .default-style-testimonial-content, +.eael-testimonial-slider.classic-style .eael-testimonial-align-center .testimonial-classic-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-center .middle-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-center .eael-testimonial-text { + text-align: center; +} + +.eael-testimonial-slider.default-style .eael-testimonial-align-left .default-style-testimonial-content, +.eael-testimonial-slider.classic-style .eael-testimonial-align-left .testimonial-classic-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-left .middle-style-content, +.eael-testimonial-slider.middle-style .eael-testimonial-align-left .eael-testimonial-text { + text-align: left; +} + +.eael-testimonial-slider.icon-img-left-content .eael-testimonial-text > p, +.eael-testimonial-slider.icon-img-right-content .eael-testimonial-text > p { + margin: 0px; +} + +/*--- Left align ---*/ +.icon-img-left-content .eael-testimonial-image { + float: left; + width: 30%; +} + +.icon-img-left-content .eael-testimonial-content { + float: left; + width: 70%; + text-align: left; +} + +.icon-img-left-content.eael-testimonial-item { + overflow: hidden; + position: relative; +} + +.icon-img-left-content .eael-testimonial-quote { + position: absolute; + right: 0; +} + +.icon-img-left-content .eael-testimonial-text { + margin-top: 0; +} + +/*--- Center align ---*/ +.eael-testimonial-align-centered .eael-testimonial-user, +.eael-testimonial-align-centered .eael-testimonial-user-company { + float: none; + text-align: center; +} + +.eael-testimonial-align-centered .eael-testimonial-image > figure img { + display: block; + margin-left: auto !important; + margin-right: auto !important; +} + +/* .eael-testimonial-align-centered .testimonial-star-rating{ + text-align: center; +} */ +/*--- Right align ---*/ +.icon-img-right-content .eael-testimonial-image { + float: right; + width: 30%; +} + +.icon-img-right-content .eael-testimonial-content { + float: right; + width: 70%; + text-align: right; +} + +.icon-img-right-content.eael-testimonial-item { + overflow: hidden; + position: relative; +} + +.icon-img-right-content .eael-testimonial-quote { + position: absolute; +} + +.icon-img-right-content .eael-testimonial-text { + margin-top: 0; +} + +.eael-testimonial-item { + position: relative; +} + +.classic-style.testimonial-alignment-center .eael-testimonial-image, +.default-style.testimonial-alignment-center .eael-testimonial-image { + text-align: center; +} + +.classic-style.testimonial-alignment-right .eael-testimonial-image, +.default-style.testimonial-alignment-right .eael-testimonial-image { + text-align: right; +} + +.classic-style.testimonial-alignment-center .eael-testimonial-image > figure, +.default-style.testimonial-alignment-center .eael-testimonial-image > figure { + text-align: center; +} + +.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-centered .eael-testimonial-content { + text-align: center; +} + +.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-left .eael-testimonial-content { + text-align: left; +} + +.eael-testimonial-slider.icon-img-left-content .eael-testimonial-align-right .eael-testimonial-content { + text-align: right; +} + +.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-centered .eael-testimonial-content { + text-align: center; +} + +.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-left .eael-testimonial-content { + text-align: left; +} + +.eael-testimonial-slider.icon-img-right-content .eael-testimonial-align-right .eael-testimonial-content { + text-align: right; +} + +span.eael-testimonial-quote { + position: absolute; + right: 10px; + top: 10px; +} + +/*--- Image align ---*/ +.eael-testimonial-item.left .eael-testimonial-image { + text-align: left; +} + +.eael-testimonial-item.center .eael-testimonial-image { + text-align: center; +} + +.eael-testimonial-item.right .eael-testimonial-image { + text-align: right; +} + +/*--- Float title image style ---*/ +.eael-testimonial-inline-bio .eael-testimonial-image { + float: left; +} + +.eael-testimonial-inline-bio .bio-text { + padding-top: 10px; +} + +.eael-testimonial-content.eael-testimonial-inline-bio { + overflow: hidden; + margin-bottom: 0; + padding-bottom: 0; +} + +.eael-testimonial-inline-bio .testimonial-star-rating, +.eael-testimonial-inline-bio .bio-text { + float: left; + width: 65%; +} + +.eael-testimonial-content.eael-testimonial-inline-bio { + text-align: left !important; +} + +/*--- Float inline style ---*/ +.testimonial-inline-style .eael-testimonial-image { + float: left; + max-width: 100%; + padding: 0; + margin-right: 15px; +} + +.testimonial-inline-style { + overflow: hidden; + text-align: left; +} + +.content-top-icon-title-inline .eael-testimonial-text, +.content-top-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text { + text-align: left; +} + +.content-top-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text { + text-align: center; +} + +.content-top-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text { + text-align: right; +} + +.content-bottom-icon-title-inline .eael-testimonial-text, +.content-bottom-icon-title-inline .eael-testimonial-align-left .eael-testimonial-text { + text-align: left; +} + +.content-bottom-icon-title-inline .eael-testimonial-align-centered .eael-testimonial-text { + text-align: center; +} + +.content-bottom-icon-title-inline .eael-testimonial-align-right .eael-testimonial-text { + text-align: right; +} diff --git a/assets/front-end/css/tooltip.css b/assets/front-end/css/tooltip.css new file mode 100644 index 000000000..4cfd63e01 --- /dev/null +++ b/assets/front-end/css/tooltip.css @@ -0,0 +1,183 @@ +/*------------------------------*/ +/* 32. Tooltip +/*------------------------------*/ +.eael-tooltip { + position: relative; + display: inline-block; + min-width: 150px; + text-align: center; + padding: 12px 24px; + font-size: .93rem; + color: #333; + line-height: 1; + cursor: pointer; + transition: all 0.3s ease-in-out; +} + +.eael-tooltip .eael-tooltip-text { + display: block; + width: 100%; + visibility: hidden; + background-color: black; + color: #fff; + text-align: center; + border-radius: 4px; + padding: 10px; + position: absolute; + z-index: 1; + font-size: .93rem; + line-height: 1.3; +} + +.eael-tooltip .eael-tooltip-text::after { + content: ""; + position: absolute; + border-width: 5px; + border-style: solid; +} + +.eael-tooltip:hover .eael-tooltip-text { + visibility: visible; +} + +/*--- Left ---*/ +.eael-tooltip .eael-tooltip-text.eael-tooltip-left { + top: 50%; + right: 100%; + transform: translateY(-50%); + margin-right: 10px; +} + +.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-left { + animation: tooltipLeftIn 300ms ease-in-out; +} + +.eael-tooltip .eael-tooltip-text.eael-tooltip-left::after { + top: calc(50% - 5px); + left: 100%; + border-color: transparent transparent transparent black; +} + +/*--- Right ---*/ +.eael-tooltip .eael-tooltip-text.eael-tooltip-right { + top: 50%; + left: 100%; + transform: translateY(-50%); + transition: all 0.3s ease-in-out; + margin-left: 10px; +} + +.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-right { + animation: tooltipRightIn 300ms linear; +} + +.eael-tooltip .eael-tooltip-text.eael-tooltip-right::after { + top: calc(50% - 5px); + right: 100%; + border-color: transparent black transparent transparent; +} + +/*--- Top ---*/ +.eael-tooltip .eael-tooltip-text.eael-tooltip-top { + bottom: calc(100%); + left: 0; + right: 0; + margin: 0 auto 10px auto; +} + +.eael-tooltip .eael-tooltip-text.eael-tooltip-top::after { + margin-top: 0px; + top: 100%; + left: calc( 50% - 5px); + border-color: black transparent transparent transparent; +} + +.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-top { + animation: tooltipTopIn 300ms linear; +} + +/*--- Bottom ---*/ +.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom { + top: 100%; + left: 0; + right: 0; + margin: 10px auto 0px auto; +} + +.eael-tooltip .eael-tooltip-text.eael-tooltip-bottom::after { + margin-top: 0px; + bottom: 100%; + left: calc( 50% - 5px); + border-color: transparent transparent black transparent; +} + +.eael-tooltip:hover .eael-tooltip-text.eael-tooltip-bottom { + animation: tooltipBottomIn 300ms linear; +} + +/*--- Alignments ---*/ +.eael-tooltip-align-left { + display: flex; + width: 100%; + justify-content: flex-start; +} + +.eael-tooltip-align-right { + display: flex; + width: 100%; + justify-content: flex-end; +} + +.eael-tooltip-align-center { + display: flex; + width: 100%; + justify-content: center; +} + +.eael-tooltip-align-justify .eael-tooltip { + display: flex; + justify-content: center; + align-items: center; +} + +/*--- Tooltip Keyframes ---*/ +@keyframes tooltipRightIn { + 0% { + opacity: 0; + left: 105%; + } + 100% { + opacity: 1; + left: 100%; + } +} +@keyframes tooltipLeftIn { + 0% { + opacity: 0; + right: 105%; + } + 100% { + opacity: 1; + right: 100%; + } +} +@keyframes tooltipTopIn { + 0% { + opacity: 0; + bottom: 110%; + } + 100% { + opacity: 1; + bottom: 100%; + } +} +@keyframes tooltipBottomIn { + 0% { + opacity: 0; + top: 110%; + } + 100% { + opacity: 1; + top: 100%; + } +} diff --git a/assets/front-end/css/twitter-feed.css b/assets/front-end/css/twitter-feed.css new file mode 100644 index 000000000..f015735a7 --- /dev/null +++ b/assets/front-end/css/twitter-feed.css @@ -0,0 +1,296 @@ +/* ------------------------ */ +/* 24. Social Feeds +/* ------------------------ */ +.swiper-container-wrap .swiper-slide .eael-social-feed-element img { + width: 100%; +} + +/*--- Twitter Feed Styles ---*/ +.eael-social-feed-element.hidden { + background-color: red !important; +} + +.eael-twitter-feed-wrapper::before, +.eael-twitter-feed-wrapper::after, +.eael-twitter-feed-container::before, +.eael-twitter-feed-container::after { + content: ""; + clear: both; +} + +.eael-social-feed-element .pull-left { + float: left; + margin-right: 10px; +} + +.eael-social-feed-element .pull-right { + margin-left: 10px; +} + +.eael-social-feed-element img { + width: 100%; + height: auto; + border: 0; + vertical-align: middle; + -ms-interpolation-mode: bicubic; +} + +.eael-social-feed-element .attachment { + vertical-align: middle; + -ms-interpolation-mode: bicubic; +} + +/*--- Link styles ---*/ +.eael-social-feed-element a { + color: #0088cc; + text-decoration: none; +} + +.eael-social-feed-element a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.eael-social-feed-element a:hover, +.eael-social-feed-element a:active { + outline: 0; + color: #005580; + text-decoration: underline; +} + +/*--- Text styles ---*/ +.eael-social-feed-element small { + font-size: 85%; +} + +.eael-social-feed-element strong { + font-weight: bold; +} + +.eael-social-feed-element em { + font-style: italic; +} + +.eael-social-feed-element p { + margin: 0 0 10px; +} + +.eael-social-feed-element .media-body > p { + margin-bottom: 4px; + min-height: 20px; +} + +.eael-social-feed-element p.social-feed-text { + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; +} + +/*--- Message styles ---*/ +.eael-social-feed-element, +.eael-social-feed-element .media-body { + overflow: hidden; + zoom: 1; + overflow: visible; +} + +.eael-social-feed-element { + padding: 10px; + background: none; +} + +.eael-social-feed-element .media-body .social-network-icon { + margin-top: -3px; + margin-right: 5px; + width: 16px; +} + +.eael-social-feed-element .media-body div { + color: #666; + line-height: 20px; + clear: both; +} + +.eael-social-feed-element:first-child { + margin-top: 0; +} + +.eael-social-feed-element .media-object { + display: block; + width: 48px; + border-radius: 50%; +} + +.eael-social-feed-element .media-heading { + margin: 0 0 5px; +} + +.eael-social-feed-element .media-list { + margin-left: 0; + list-style: none; +} + +.eael-social-feed-element .muted { + color: #999; +} + +.eael-social-feed-element a.muted:hover, +.eael-social-feed-element a.muted:focus { + color: #808080; +} + +.eael-social-feed-element { + transition: 0.25s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + margin: -1px; + margin-top: 25px; + color: #333; + text-align: left; + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + line-height: 16px; +} + +.eael-social-feed-element .eael-content { + padding: 20px 15px 15px; + transition: .4s; + background: #fff; +} + +.eael-social-feed-element .social-network-icon { + opacity: 0.7; +} + +.eael-social-feed-element .author-title { + color: #444; + line-height: 1.5em; + font-weight: 500; +} + +/*--- Icon Color ---*/ +.media-body .fa-twitter { + color: #1da1f2; + margin-right: 8px; +} + +.media-body .fa-facebook { + color: #3b5998; + margin-right: 8px; +} + +/*--- Read More Link ---*/ +.text-wrapper p .read-more-link { + margin-top: 9px; + display: block; +} + +/*--- Loading Loader ---*/ +.eael-social-feed-wrapper { + width: 100%; + height: auto; + position: relative; + z-index: 0; +} + +.eael-loading-feed { + display: none; + position: absolute; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + bottom: 0px; + right: 0px; +} + +.eael-loading-feed.show-loading { + display: block; + text-align: center; + z-index: 10; + display: flex; + align-items: center; + justify-content: center; + transition: .5s; +} + +.eael-loading-feed .loader { + border: 3px solid #f3f3f3; + border-radius: 50%; + border-top: 3px solid #3498db; + width: 30px; + height: 30px; + -webkit-animation: spin 2s linear infinite; + /* Safari */ + animation: spin 2s linear infinite; + margin: 0 auto; +} + +/*--- Safari ---*/ +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/*--- List View ---*/ +.eael-social-feed-container.list-view .eael-social-feed-element { + margin: 15px; + border: 1px solid rgba(0, 0, 0, 0.1); + background: none; +} + +/*--- Carousel View ---*/ +.eael-social-feed-container.carousel-view { + width: 100%; + height: auto; +} + +/*--- Masonry View ---*/ +.eael-twitter-feed-container.masonry-view .eael-social-feed-element { + width: 33.33%; + margin-top: 0px; + float: left; +} + +.eael-social-feed-element .eael-content { + border: 1px solid rgba(0, 0, 0, 0.1); +} + +/*--- Editor Related Style ---*/ +.eael-social-feed-avatar-circle .eael-social-feed-element .media-object { + border-radius: 50%; +} + +.eael-social-feed-avatar-square .eael-social-feed-element .media-object { + border-radius: 0%; +} + +.eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date .eael-social-feed-masonry-col-4 .eael-social-feed-element .social-feed-date { + text-align: left !important; +} + +/*--- Media Query ---*/ +@media only screen and (min-width: 768px) and (max-width: 992px) { + .eael-twitter-feed-container.masonry-view .eael-social-feed-element { + width: 50% !important; + } +} +@media only screen and (max-width: 480px) { + .eael-twitter-feed-container.masonry-view .eael-social-feed-element { + width: 100% !important; + } +} diff --git a/assets/front-end/css/weforms.css b/assets/front-end/css/weforms.css new file mode 100644 index 000000000..1dd25d811 --- /dev/null +++ b/assets/front-end/css/weforms.css @@ -0,0 +1,37 @@ +/*----------------------*/ +/* 12. weForm Styles +/*----------------------*/ +.eael-weform-container input, +.eael-weform-container textarea { + height: auto; + padding: 10px; +} + +.eael-contact-form-align-center .eael-weform-container, +.eael-contact-form-btn-align-center .eael-weform-container ul.wpuf-form .wpuf-submit input[type="submit"] { + margin-left: auto !important; + margin-right: auto !important; + display: block; + float: none; +} + +.eael-contact-form-align-left .eael-weform-container, +.eael-contact-form-btn-align-left .eael-weform-container ul.wpuf-form .wpuf-submit input[type="submit"] { + float: left; + width: auto; +} + +.eael-contact-form-align-right .eael-weform-container, +.eael-contact-form-btn-align-right .eael-weform-container ul.wpuf-form .wpuf-submit input[type="submit"] { + float: right; + width: auto; +} + +.eael-weform-container ul.wpuf-form li .wpuf-fields input[type="text"], +.eael-weform-container ul.wpuf-form li .wpuf-fields input[type="password"], +.eael-weform-container ul.wpuf-form li .wpuf-fields input[type="email"], +.eael-weform-container ul.wpuf-form li .wpuf-fields input[type="url"], +.eael-weform-container ul.wpuf-form li .wpuf-fields input[type="number"], +.eael-weform-container ul.wpuf-form li .wpuf-fields textarea { + max-width: 100%; +} diff --git a/assets/front-end/css/wpforms.css b/assets/front-end/css/wpforms.css new file mode 100644 index 000000000..495512b88 --- /dev/null +++ b/assets/front-end/css/wpforms.css @@ -0,0 +1,41 @@ +/* ------------------- */ +/* 23. WPForms +/* ------------------- */ +.eael-wpforms .wpforms-container .wpforms-form input[type=submit], +.eael-wpforms .wpforms-container .wpforms-form button[type=submit], +.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button { + border: 0; +} + +.eael-wpforms .wpforms-container .wpforms-form input[type=submit]:hover, +.eael-wpforms .wpforms-container .wpforms-form button[type=submit]:hover, +.eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button:hover { + border: 0; +} + +.eael-wpforms .wpforms-container .wpforms-form input[type=checkbox], +.eael-wpforms .wpforms-container .wpforms-form input[type=radio] { + padding: 3px; +} + +.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-label { + display: none; +} + +.eael-wpforms .wpforms-container .wpforms-form .wpforms-field-name .wpforms-field-row { + max-width: 100%; +} + +.eael-wpforms .wpforms-container .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), +.eael-wpforms .wpforms-container .wpforms-field textarea, +.eael-wpforms .wpforms-container .wpforms-field select { + max-width: 100% !important; +} + +.eael-wpforms-labels-yes .wpforms-container .wpforms-form .wpforms-field-label { + display: block; +} + +.eael-wpforms-form-button-full-width .wpforms-submit-container .wpforms-submit { + width: 100%; +} diff --git a/assets/img/accordion.png b/assets/front-end/img/accordion.png similarity index 100% rename from assets/img/accordion.png rename to assets/front-end/img/accordion.png diff --git a/assets/img/bg.jpg b/assets/front-end/img/bg.jpg similarity index 100% rename from assets/img/bg.jpg rename to assets/front-end/img/bg.jpg diff --git a/assets/img/flexia-preview.jpg b/assets/front-end/img/flexia-preview.jpg similarity index 100% rename from assets/img/flexia-preview.jpg rename to assets/front-end/img/flexia-preview.jpg diff --git a/assets/img/play-icon.png b/assets/front-end/img/play-icon.png similarity index 100% rename from assets/img/play-icon.png rename to assets/front-end/img/play-icon.png diff --git a/assets/front-end/js/adv-accordion/index.js b/assets/front-end/js/adv-accordion/index.js new file mode 100755 index 000000000..7b795c675 --- /dev/null +++ b/assets/front-end/js/adv-accordion/index.js @@ -0,0 +1,60 @@ +var AdvAccordionHandler = function($scope, $) { + var $advanceAccordion = $scope.find(".eael-adv-accordion"), + $accordionHeader = $scope.find(".eael-accordion-header"), + $accordionType = $advanceAccordion.data("accordion-type"), + $accordionSpeed = $advanceAccordion.data("toogle-speed"); + + // Open default actived tab + $accordionHeader.each(function() { + if ($(this).hasClass("active-default")) { + $(this).addClass("show active"); + $(this) + .next() + .slideDown($accordionSpeed); + } + }); + + // Remove multiple click event for nested accordion + $accordionHeader.unbind("click"); + + $accordionHeader.click(function(e) { + e.preventDefault(); + + var $this = $(this); + + if ($accordionType === "accordion") { + if ($this.hasClass("show")) { + $this.removeClass("show active"); + $this.next().slideUp($accordionSpeed); + } else { + $this + .parent() + .parent() + .find(".eael-accordion-header") + .removeClass("show active"); + $this + .parent() + .parent() + .find(".eael-accordion-content") + .slideUp($accordionSpeed); + $this.toggleClass("show active"); + $this.next().slideToggle($accordionSpeed); + } + } else { + // For acccordion type 'toggle' + if ($this.hasClass("show")) { + $this.removeClass("show active"); + $this.next().slideUp($accordionSpeed); + } else { + $this.addClass("show active"); + $this.next().slideDown($accordionSpeed); + } + } + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-adv-accordion.default", + AdvAccordionHandler + ); +}); diff --git a/assets/front-end/js/adv-tabs/index.js b/assets/front-end/js/adv-tabs/index.js new file mode 100755 index 000000000..2f762e5c3 --- /dev/null +++ b/assets/front-end/js/adv-tabs/index.js @@ -0,0 +1,74 @@ +var AdvanceTabHandler = function($scope, $) { + var $currentTab = $scope.find(".eael-advance-tabs"), + $currentTabId = "#" + $currentTab.attr("id").toString(); + + $($currentTabId + " .eael-tabs-nav ul li").each(function(index) { + if ($(this).hasClass("active-default")) { + $($currentTabId + " .eael-tabs-nav > ul li") + .removeClass("active") + .addClass("inactive"); + $(this).removeClass("inactive"); + } else { + if (index == 0) { + $(this) + .removeClass("inactive") + .addClass("active"); + } + } + }); + + $($currentTabId + " .eael-tabs-content div").each(function(index) { + if ($(this).hasClass("active-default")) { + $($currentTabId + " .eael-tabs-content > div").removeClass( + "active" + ); + } else { + if (index == 0) { + $(this) + .removeClass("inactive") + .addClass("active"); + } + } + }); + + $($currentTabId + " .eael-tabs-nav ul li").click(function() { + var currentTabIndex = $(this).index(); + var tabsContainer = $(this).closest(".eael-advance-tabs"); + var tabsNav = $(tabsContainer) + .children(".eael-tabs-nav") + .children("ul") + .children("li"); + var tabsContent = $(tabsContainer) + .children(".eael-tabs-content") + .children("div"); + + $(this) + .parent("li") + .addClass("active"); + + $(tabsNav) + .removeClass("active active-default") + .addClass("inactive"); + $(this) + .addClass("active") + .removeClass("inactive"); + + $(tabsContent) + .removeClass("active") + .addClass("inactive"); + $(tabsContent) + .eq(currentTabIndex) + .addClass("active") + .removeClass("inactive"); + + $(tabsContent).each(function(index) { + $(this).removeClass("active-default"); + }); + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-adv-tabs.default", + AdvanceTabHandler + ); +}); diff --git a/assets/front-end/js/content-ticker/index.js b/assets/front-end/js/content-ticker/index.js new file mode 100755 index 000000000..0a8876acb --- /dev/null +++ b/assets/front-end/js/content-ticker/index.js @@ -0,0 +1,119 @@ +var ContentTicker = function($scope, $) { + var $contentTicker = $scope.find(".eael-content-ticker").eq(0), + $items = + $contentTicker.data("items") !== undefined + ? $contentTicker.data("items") + : 1, + $items_tablet = + $contentTicker.data("items-tablet") !== undefined + ? $contentTicker.data("items-tablet") + : 1, + $items_mobile = + $contentTicker.data("items-mobile") !== undefined + ? $contentTicker.data("items-mobile") + : 1, + $margin = + $contentTicker.data("margin") !== undefined + ? $contentTicker.data("margin") + : 10, + $margin_tablet = + $contentTicker.data("margin-tablet") !== undefined + ? $contentTicker.data("margin-tablet") + : 10, + $margin_mobile = + $contentTicker.data("margin-mobile") !== undefined + ? $contentTicker.data("margin-mobile") + : 10, + $effect = + $contentTicker.data("effect") !== undefined + ? $contentTicker.data("effect") + : "slide", + $speed = + $contentTicker.data("speed") !== undefined + ? $contentTicker.data("speed") + : 400, + $autoplay = + $contentTicker.data("autoplay") !== undefined + ? $contentTicker.data("autoplay") + : 5000, + $loop = + $contentTicker.data("loop") !== undefined + ? $contentTicker.data("loop") + : false, + $grab_cursor = + $contentTicker.data("grab-cursor") !== undefined + ? $contentTicker.data("grab-cursor") + : false, + $pagination = + $contentTicker.data("pagination") !== undefined + ? $contentTicker.data("pagination") + : ".swiper-pagination", + $arrow_next = + $contentTicker.data("arrow-next") !== undefined + ? $contentTicker.data("arrow-next") + : ".swiper-button-next", + $arrow_prev = + $contentTicker.data("arrow-prev") !== undefined + ? $contentTicker.data("arrow-prev") + : ".swiper-button-prev", + $pause_on_hover = + $contentTicker.data("pause-on-hover") !== undefined + ? $contentTicker.data("pause-on-hover") + : "", + $contentTickerOptions = { + direction: "horizontal", + loop: $loop, + speed: $speed, + effect: $effect, + slidesPerView: $items, + spaceBetween: $margin, + grabCursor: $grab_cursor, + paginationClickable: true, + autoHeight: true, + autoplay: { + delay: $autoplay + }, + pagination: { + el: $pagination, + clickable: true + }, + navigation: { + nextEl: $arrow_next, + prevEl: $arrow_prev + }, + breakpoints: { + // when window width is <= 480px + 480: { + slidesPerView: $items_mobile, + spaceBetween: $margin_mobile + }, + // when window width is <= 640px + 768: { + slidesPerView: $items_tablet, + spaceBetween: $margin_tablet + } + } + }; + + var $contentTickerSlider = new Swiper( + $contentTicker, + $contentTickerOptions + ); + if ($autoplay === 0) { + $contentTickerSlider.autoplay.stop(); + } + if ($pause_on_hover && $autoplay !== 0) { + $contentTicker.on("mouseenter", function() { + $contentTickerSlider.autoplay.stop(); + }); + $contentTicker.on("mouseleave", function() { + $contentTickerSlider.autoplay.start(); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-content-ticker.default", + ContentTicker + ); +}); \ No newline at end of file diff --git a/assets/front-end/js/count-down/index.js b/assets/front-end/js/count-down/index.js new file mode 100755 index 000000000..4a588cd87 --- /dev/null +++ b/assets/front-end/js/count-down/index.js @@ -0,0 +1,66 @@ +var CountDown = function($scope, $) { + var $coundDown = $scope.find(".eael-countdown-wrapper").eq(0), + $countdown_id = + $coundDown.data("countdown-id") !== undefined + ? $coundDown.data("countdown-id") + : "", + $expire_type = + $coundDown.data("expire-type") !== undefined + ? $coundDown.data("expire-type") + : "", + $expiry_text = + $coundDown.data("expiry-text") !== undefined + ? $coundDown.data("expiry-text") + : "", + $expiry_title = + $coundDown.data("expiry-title") !== undefined + ? $coundDown.data("expiry-title") + : "", + $redirect_url = + $coundDown.data("redirect-url") !== undefined + ? $coundDown.data("redirect-url") + : "", + $template = + $coundDown.data("template") !== undefined + ? $coundDown.data("template") + : ""; + + jQuery(document).ready(function($) { + "use strict"; + var countDown = $("#eael-countdown-" + $countdown_id); + + countDown.countdown({ + end: function() { + if ($expire_type == "text") { + countDown.html( + '

' + + $expiry_title + + "

" + + '
' + + $expiry_text + + "
" + ); + } else if ($expire_type === "url") { + var editMode = $("body").find("#elementor").length; + if (editMode > 0) { + countDown.html( + "Your Page will be redirected to given URL (only on Frontend)." + ); + } else { + window.location.href = $redirect_url; + } + } else if ($expire_type === "template") { + countDown.html($template); + } else { + //do nothing! + } + } + }); + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-countdown.default", + CountDown + ); +}); diff --git a/assets/front-end/js/data-table/index.js b/assets/front-end/js/data-table/index.js new file mode 100755 index 000000000..8a76e2cdc --- /dev/null +++ b/assets/front-end/js/data-table/index.js @@ -0,0 +1,28 @@ +var dataTable = function($scope, $) { + var $_this = $scope.find(".eael-data-table-wrap"), + $id = $_this.data("table_id"); + + var responsive = $_this.data("custom_responsive"); + if (true == responsive) { + var $th = $scope.find(".eael-data-table").find("th"); + var $tbody = $scope.find(".eael-data-table").find("tbody"); + + $tbody.find("tr").each(function(i, item) { + $(item) + .find("td .td-content-wrapper") + .each(function(index, item) { + $(this).prepend( + '
' + + $th.eq(index).html() + + "
" + ); + }); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-data-table.default", + dataTable + ); +}); \ No newline at end of file diff --git a/assets/front-end/js/eael.js b/assets/front-end/js/eael.js new file mode 100755 index 000000000..dbe5e1f50 --- /dev/null +++ b/assets/front-end/js/eael.js @@ -0,0 +1,14347 @@ +(function($) { + window.isEditMode = !1; + $(window).on("elementor/frontend/init", function() { + window.isEditMode = elementorFrontend.isEditMode(); + }); +})(jQuery); +!(function(a) { + "function" == typeof define && define.amd + ? define(["jquery"], a) + : a(jQuery); +})(function(a) { + "use strict"; + var b = function(c, d) { + (this.$element = a(c)), + (this.defaults = a.extend( + {}, + b.defaults, + this.$element.data(), + a.isPlainObject(d) ? d : {} + )), + this.init(); + }; + (b.prototype = { + constructor: b, + init: function() { + var a = this.$element.html(), + b = new Date(this.defaults.date || a); + b.getTime() && + ((this.content = a), + (this.date = b), + this.find(), + this.defaults.autoStart && this.start()); + }, + find: function() { + var a = this.$element; + (this.$days = a.find("[data-days]")), + (this.$hours = a.find("[data-hours]")), + (this.$minutes = a.find("[data-minutes]")), + (this.$seconds = a.find("[data-seconds]")), + this.$days.length + + this.$hours.length + + this.$minutes.length + + this.$seconds.length > + 0 && (this.found = !0); + }, + reset: function() { + this.found + ? (this.output("days"), + this.output("hours"), + this.output("minutes"), + this.output("seconds")) + : this.output(); + }, + ready: function() { + var a, + b = this.date, + c = 100, + d = 1e3, + e = 6e4, + f = 36e5, + g = 864e5, + h = {}; + return b + ? ((a = b.getTime() - new Date().getTime()), + 0 >= a + ? (this.end(), !1) + : ((h.days = a), + (h.hours = h.days % g), + (h.minutes = h.hours % f), + (h.seconds = h.minutes % e), + (h.milliseconds = h.seconds % d), + (this.days = Math.floor(h.days / g)), + (this.hours = Math.floor(h.hours / f)), + (this.minutes = Math.floor(h.minutes / e)), + (this.seconds = Math.floor(h.seconds / d)), + (this.deciseconds = Math.floor(h.milliseconds / c)), + !0)) + : !1; + }, + start: function() { + !this.active && + this.ready() && + ((this.active = !0), + this.reset(), + (this.autoUpdate = this.defaults.fast + ? setInterval(a.proxy(this.fastUpdate, this), 100) + : setInterval(a.proxy(this.update, this), 1e3))); + }, + stop: function() { + this.active && ((this.active = !1), clearInterval(this.autoUpdate)); + }, + end: function() { + this.date && + (this.stop(), + (this.days = 0), + (this.hours = 0), + (this.minutes = 0), + (this.seconds = 0), + (this.deciseconds = 0), + this.reset(), + this.defaults.end()); + }, + destroy: function() { + this.date && + (this.stop(), + (this.$days = null), + (this.$hours = null), + (this.$minutes = null), + (this.$seconds = null), + this.$element.empty().html(this.content), + this.$element.removeData("countdown")); + }, + fastUpdate: function() { + --this.deciseconds >= 0 + ? this.output("deciseconds") + : ((this.deciseconds = 9), this.update()); + }, + update: function() { + --this.seconds >= 0 + ? this.output("seconds") + : ((this.seconds = 59), + --this.minutes >= 0 + ? this.output("minutes") + : ((this.minutes = 59), + --this.hours >= 0 + ? this.output("hours") + : ((this.hours = 23), + --this.days >= 0 + ? this.output("days") + : this.end()))); + }, + output: function(a) { + if (!this.found) + return void this.$element.empty().html(this.template()); + switch (a) { + case "deciseconds": + this.$seconds.text(this.getSecondsText()); + break; + case "seconds": + this.$seconds.text(this.seconds); + break; + case "minutes": + this.$minutes.text(this.minutes); + break; + case "hours": + this.$hours.text(this.hours); + break; + case "days": + this.$days.text(this.days); + } + }, + template: function() { + return this.defaults.text + .replace("%s", this.days) + .replace("%s", this.hours) + .replace("%s", this.minutes) + .replace("%s", this.getSecondsText()); + }, + getSecondsText: function() { + return this.active && this.defaults.fast + ? this.seconds + "." + this.deciseconds + : this.seconds; + } + }), + (b.defaults = { + autoStart: !0, + date: null, + fast: !1, + end: a.noop, + text: "%s days, %s hours, %s minutes, %s seconds" + }), + (b.setDefaults = function(c) { + a.extend(b.defaults, c); + }), + (a.fn.countdown = function(c) { + return this.each(function() { + var d = a(this), + e = d.data("countdown"); + e || d.data("countdown", (e = new b(this, c))), + "string" == typeof c && a.isFunction(e[c]) && e[c](); + }); + }), + (a.fn.countdown.constructor = b), + (a.fn.countdown.setDefaults = b.setDefaults), + a(function() { + a("[countdown]").countdown(); + }); +}); +!(function(t, s, e) { + "use strict"; + var i = function(t, s) { + var i = this; + (this.el = t), + (this.options = {}), + Object.keys(r).forEach(function(t) { + i.options[t] = r[t]; + }), + Object.keys(s).forEach(function(t) { + i.options[t] = s[t]; + }), + (this.isInput = "input" === this.el.tagName.toLowerCase()), + (this.attr = this.options.attr), + (this.showCursor = !this.isInput && this.options.showCursor), + (this.elContent = this.attr + ? this.el.getAttribute(this.attr) + : this.el.textContent), + (this.contentType = this.options.contentType), + (this.typeSpeed = this.options.typeSpeed), + (this.startDelay = this.options.startDelay), + (this.backSpeed = this.options.backSpeed), + (this.backDelay = this.options.backDelay), + e && this.options.stringsElement instanceof e + ? (this.stringsElement = this.options.stringsElement[0]) + : (this.stringsElement = this.options.stringsElement), + (this.strings = this.options.strings), + (this.strPos = 0), + (this.arrayPos = 0), + (this.stopNum = 0), + (this.loop = this.options.loop), + (this.loopCount = this.options.loopCount), + (this.curLoop = 0), + (this.stop = !1), + (this.cursorChar = this.options.cursorChar), + (this.shuffle = this.options.shuffle), + (this.sequence = []), + this.build(); + }; + (i.prototype = { + constructor: i, + init: function() { + var t = this; + t.timeout = setTimeout(function() { + for (var s = 0; s < t.strings.length; ++s) t.sequence[s] = s; + t.shuffle && (t.sequence = t.shuffleArray(t.sequence)), + t.typewrite(t.strings[t.sequence[t.arrayPos]], t.strPos); + }, t.startDelay); + }, + build: function() { + var t = this; + if ( + (this.showCursor === !0 && + ((this.cursor = s.createElement("span")), + (this.cursor.className = "typed-cursor"), + (this.cursor.innerHTML = this.cursorChar), + this.el.parentNode && + this.el.parentNode.insertBefore( + this.cursor, + this.el.nextSibling + )), + this.stringsElement) + ) { + (this.strings = []), + (this.stringsElement.style.display = "none"); + var e = Array.prototype.slice.apply( + this.stringsElement.children + ); + e.forEach(function(s) { + t.strings.push(s.innerHTML); + }); + } + this.init(); + }, + typewrite: function(t, s) { + if (this.stop !== !0) { + var e = Math.round(70 * Math.random()) + this.typeSpeed, + i = this; + i.timeout = setTimeout(function() { + var e = 0, + r = t.substr(s); + if ("^" === r.charAt(0)) { + var o = 1; + /^\^\d+/.test(r) && + ((r = /\d+/.exec(r)[0]), + (o += r.length), + (e = parseInt(r))), + (t = t.substring(0, s) + t.substring(s + o)); + } + if ("html" === i.contentType) { + var n = t.substr(s).charAt(0); + if ("<" === n || "&" === n) { + var a = "", + h = ""; + for ( + h = "<" === n ? ">" : ";"; + t.substr(s + 1).charAt(0) !== h && + ((a += t.substr(s).charAt(0)), + s++, + !(s + 1 > t.length)); + + ); + s++, (a += h); + } + } + i.timeout = setTimeout(function() { + if (s === t.length) { + if ( + (i.options.onStringTyped(i.arrayPos), + i.arrayPos === i.strings.length - 1 && + (i.options.callback(), + i.curLoop++, + i.loop === !1 || i.curLoop === i.loopCount)) + ) + return; + i.timeout = setTimeout(function() { + i.backspace(t, s); + }, i.backDelay); + } else { + 0 === s && i.options.preStringTyped(i.arrayPos); + var e = t.substr(0, s + 1); + i.attr + ? i.el.setAttribute(i.attr, e) + : i.isInput + ? (i.el.value = e) + : "html" === i.contentType + ? (i.el.innerHTML = e) + : (i.el.textContent = e), + s++, + i.typewrite(t, s); + } + }, e); + }, e); + } + }, + backspace: function(t, s) { + if (this.stop !== !0) { + var e = Math.round(70 * Math.random()) + this.backSpeed, + i = this; + i.timeout = setTimeout(function() { + if ( + "html" === i.contentType && + ">" === t.substr(s).charAt(0) + ) { + for ( + var e = ""; + "<" !== t.substr(s - 1).charAt(0) && + ((e -= t.substr(s).charAt(0)), s--, !(s < 0)); + + ); + s--, (e += "<"); + } + var r = t.substr(0, s); + i.attr + ? i.el.setAttribute(i.attr, r) + : i.isInput + ? (i.el.value = r) + : "html" === i.contentType + ? (i.el.innerHTML = r) + : (i.el.textContent = r), + s > i.stopNum + ? (s--, i.backspace(t, s)) + : s <= i.stopNum && + (i.arrayPos++, + i.arrayPos === i.strings.length + ? ((i.arrayPos = 0), + i.shuffle && + (i.sequence = i.shuffleArray( + i.sequence + )), + i.init()) + : i.typewrite( + i.strings[i.sequence[i.arrayPos]], + s + )); + }, e); + } + }, + shuffleArray: function(t) { + var s, + e, + i = t.length; + if (i) + for (; --i; ) + (e = Math.floor(Math.random() * (i + 1))), + (s = t[e]), + (t[e] = t[i]), + (t[i] = s); + return t; + }, + reset: function() { + var t = this; + clearInterval(t.timeout); + this.el.getAttribute("id"); + (this.el.textContent = ""), + "undefined" != typeof this.cursor && + "undefined" != typeof this.cursor.parentNode && + this.cursor.parentNode.removeChild(this.cursor), + (this.strPos = 0), + (this.arrayPos = 0), + (this.curLoop = 0), + this.options.resetCallback(); + } + }), + (i["new"] = function(t, e) { + var r = Array.prototype.slice.apply(s.querySelectorAll(t)); + r.forEach(function(t) { + var s = t._typed, + r = "object" == typeof e && e; + s && s.reset(), + (t._typed = s = new i(t, r)), + "string" == typeof e && s[e](); + }); + }), + e && + (e.fn.typed = function(t) { + return this.each(function() { + var s = e(this), + r = s.data("typed"), + o = "object" == typeof t && t; + r && r.reset(), + s.data("typed", (r = new i(this, o))), + "string" == typeof t && r[t](); + }); + }), + (t.Typed = i); + var r = { + strings: [ + "These are the default values...", + "You know what you should do?", + "Use your own!", + "Have a great day!" + ], + stringsElement: null, + typeSpeed: 0, + startDelay: 0, + backSpeed: 0, + shuffle: !1, + backDelay: 500, + loop: !1, + loopCount: !1, + showCursor: !0, + cursorChar: "|", + attr: null, + contentType: "html", + callback: function() {}, + preStringTyped: function() {}, + onStringTyped: function() {}, + resetCallback: function() {} + }; +})(window, document, window.jQuery); +!(function(a) { + "use strict"; + + function b(b, c) { + (this.element = a(b)), + (this.settings = a.extend({}, d, c)), + (this._defaults = d), + this._init(); + } + var c = "Morphext", + d = { + animation: "bounceIn", + separator: ",", + speed: 2e3, + complete: a.noop + }; + (b.prototype = { + _init: function() { + var b = this; + (this.phrases = []), + this.element.addClass("morphext"), + a.each( + this.element.text().split(this.settings.separator), + function(c, d) { + b.phrases.push(a.trim(d)); + } + ), + (this.index = -1), + this.animate(), + this.start(); + }, + animate: function() { + (this.index = ++this.index % this.phrases.length), + (this.element[0].innerHTML = + '' + + this.phrases[this.index] + + ""), + a.isFunction(this.settings.complete) && + this.settings.complete.call(this); + }, + start: function() { + var a = this; + this._interval = setInterval(function() { + a.animate(); + }, this.settings.speed); + }, + stop: function() { + this._interval = clearInterval(this._interval); + } + }), + (a.fn[c] = function(d) { + return this.each(function() { + a.data(this, "plugin_" + c) || + a.data(this, "plugin_" + c, new b(this, d)); + }); + }); +})(jQuery); +!(function(t, e) { + "function" == typeof define && define.amd + ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) { + return e(t, i); + }) + : "object" == typeof module && module.exports + ? (module.exports = e(t, require("jquery"))) + : (t.jQueryBridget = e(t, t.jQuery)); +})(window, function(t, e) { + "use strict"; + + function i(i, s, a) { + function u(t, e, o) { + var n, + s = "$()." + i + '("' + e + '")'; + return ( + t.each(function(t, u) { + var h = a.data(u, i); + if (!h) + return void r( + i + + " not initialized. Cannot call methods, i.e. " + + s + ); + var d = h[e]; + if (!d || "_" == e.charAt(0)) + return void r(s + " is not a valid method"); + var l = d.apply(h, o); + n = void 0 === n ? l : n; + }), + void 0 !== n ? n : t + ); + } + + function h(t, e) { + t.each(function(t, o) { + var n = a.data(o, i); + n + ? (n.option(e), n._init()) + : ((n = new s(o, e)), a.data(o, i, n)); + }); + } + (a = a || e || t.jQuery), + a && + (s.prototype.option || + (s.prototype.option = function(t) { + a.isPlainObject(t) && + (this.options = a.extend(!0, this.options, t)); + }), + (a.fn[i] = function(t) { + if ("string" == typeof t) { + var e = n.call(arguments, 1); + return u(this, t, e); + } + return h(this, t), this; + }), + o(a)); + } + + function o(t) { + !t || (t && t.bridget) || (t.bridget = i); + } + var n = Array.prototype.slice, + s = t.console, + r = + "undefined" == typeof s + ? function() {} + : function(t) { + s.error(t); + }; + return o(e || t.jQuery), i; +}), + (function(t, e) { + "function" == typeof define && define.amd + ? define("ev-emitter/ev-emitter", e) + : "object" == typeof module && module.exports + ? (module.exports = e()) + : (t.EvEmitter = e()); + })("undefined" != typeof window ? window : this, function() { + function t() {} + var e = t.prototype; + return ( + (e.on = function(t, e) { + if (t && e) { + var i = (this._events = this._events || {}), + o = (i[t] = i[t] || []); + return o.indexOf(e) == -1 && o.push(e), this; + } + }), + (e.once = function(t, e) { + if (t && e) { + this.on(t, e); + var i = (this._onceEvents = this._onceEvents || {}), + o = (i[t] = i[t] || {}); + return (o[e] = !0), this; + } + }), + (e.off = function(t, e) { + var i = this._events && this._events[t]; + if (i && i.length) { + var o = i.indexOf(e); + return o != -1 && i.splice(o, 1), this; + } + }), + (e.emitEvent = function(t, e) { + var i = this._events && this._events[t]; + if (i && i.length) { + (i = i.slice(0)), (e = e || []); + for ( + var o = this._onceEvents && this._onceEvents[t], n = 0; + n < i.length; + n++ + ) { + var s = i[n], + r = o && o[s]; + r && (this.off(t, s), delete o[s]), s.apply(this, e); + } + return this; + } + }), + (e.allOff = function() { + delete this._events, delete this._onceEvents; + }), + t + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("get-size/get-size", e) + : "object" == typeof module && module.exports + ? (module.exports = e()) + : (t.getSize = e()); + })(window, function() { + "use strict"; + + function t(t) { + var e = parseFloat(t), + i = t.indexOf("%") == -1 && !isNaN(e); + return i && e; + } + + function e() {} + + function i() { + for ( + var t = { + width: 0, + height: 0, + innerWidth: 0, + innerHeight: 0, + outerWidth: 0, + outerHeight: 0 + }, + e = 0; + e < h; + e++ + ) { + var i = u[e]; + t[i] = 0; + } + return t; + } + + function o(t) { + var e = getComputedStyle(t); + return ( + e || + a( + "Style returned " + + e + + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1" + ), + e + ); + } + + function n() { + if (!d) { + d = !0; + var e = document.createElement("div"); + (e.style.width = "200px"), + (e.style.padding = "1px 2px 3px 4px"), + (e.style.borderStyle = "solid"), + (e.style.borderWidth = "1px 2px 3px 4px"), + (e.style.boxSizing = "border-box"); + var i = document.body || document.documentElement; + i.appendChild(e); + var n = o(e); + (r = 200 == Math.round(t(n.width))), + (s.isBoxSizeOuter = r), + i.removeChild(e); + } + } + + function s(e) { + if ( + (n(), + "string" == typeof e && (e = document.querySelector(e)), + e && "object" == typeof e && e.nodeType) + ) { + var s = o(e); + if ("none" == s.display) return i(); + var a = {}; + (a.width = e.offsetWidth), (a.height = e.offsetHeight); + for ( + var d = (a.isBorderBox = "border-box" == s.boxSizing), + l = 0; + l < h; + l++ + ) { + var f = u[l], + c = s[f], + m = parseFloat(c); + a[f] = isNaN(m) ? 0 : m; + } + var p = a.paddingLeft + a.paddingRight, + y = a.paddingTop + a.paddingBottom, + g = a.marginLeft + a.marginRight, + v = a.marginTop + a.marginBottom, + _ = a.borderLeftWidth + a.borderRightWidth, + z = a.borderTopWidth + a.borderBottomWidth, + I = d && r, + x = t(s.width); + x !== !1 && (a.width = x + (I ? 0 : p + _)); + var S = t(s.height); + return ( + S !== !1 && (a.height = S + (I ? 0 : y + z)), + (a.innerWidth = a.width - (p + _)), + (a.innerHeight = a.height - (y + z)), + (a.outerWidth = a.width + g), + (a.outerHeight = a.height + v), + a + ); + } + } + var r, + a = + "undefined" == typeof console + ? e + : function(t) { + console.error(t); + }, + u = [ + "paddingLeft", + "paddingRight", + "paddingTop", + "paddingBottom", + "marginLeft", + "marginRight", + "marginTop", + "marginBottom", + "borderLeftWidth", + "borderRightWidth", + "borderTopWidth", + "borderBottomWidth" + ], + h = u.length, + d = !1; + return s; + }), + (function(t, e) { + "use strict"; + "function" == typeof define && define.amd + ? define("desandro-matches-selector/matches-selector", e) + : "object" == typeof module && module.exports + ? (module.exports = e()) + : (t.matchesSelector = e()); + })(window, function() { + "use strict"; + var t = (function() { + var t = window.Element.prototype; + if (t.matches) return "matches"; + if (t.matchesSelector) return "matchesSelector"; + for ( + var e = ["webkit", "moz", "ms", "o"], i = 0; + i < e.length; + i++ + ) { + var o = e[i], + n = o + "MatchesSelector"; + if (t[n]) return n; + } + })(); + return function(e, i) { + return e[t](i); + }; + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("fizzy-ui-utils/utils", [ + "desandro-matches-selector/matches-selector" + ], function(i) { + return e(t, i); + }) + : "object" == typeof module && module.exports + ? (module.exports = e(t, require("desandro-matches-selector"))) + : (t.fizzyUIUtils = e(t, t.matchesSelector)); + })(window, function(t, e) { + var i = {}; + (i.extend = function(t, e) { + for (var i in e) t[i] = e[i]; + return t; + }), + (i.modulo = function(t, e) { + return ((t % e) + e) % e; + }); + var o = Array.prototype.slice; + (i.makeArray = function(t) { + if (Array.isArray(t)) return t; + if (null === t || void 0 === t) return []; + var e = "object" == typeof t && "number" == typeof t.length; + return e ? o.call(t) : [t]; + }), + (i.removeFrom = function(t, e) { + var i = t.indexOf(e); + i != -1 && t.splice(i, 1); + }), + (i.getParent = function(t, i) { + for (; t.parentNode && t != document.body; ) + if (((t = t.parentNode), e(t, i))) return t; + }), + (i.getQueryElement = function(t) { + return "string" == typeof t ? document.querySelector(t) : t; + }), + (i.handleEvent = function(t) { + var e = "on" + t.type; + this[e] && this[e](t); + }), + (i.filterFindElements = function(t, o) { + t = i.makeArray(t); + var n = []; + return ( + t.forEach(function(t) { + if (t instanceof HTMLElement) { + if (!o) return void n.push(t); + e(t, o) && n.push(t); + for ( + var i = t.querySelectorAll(o), s = 0; + s < i.length; + s++ + ) + n.push(i[s]); + } + }), + n + ); + }), + (i.debounceMethod = function(t, e, i) { + i = i || 100; + var o = t.prototype[e], + n = e + "Timeout"; + t.prototype[e] = function() { + var t = this[n]; + clearTimeout(t); + var e = arguments, + s = this; + this[n] = setTimeout(function() { + o.apply(s, e), delete s[n]; + }, i); + }; + }), + (i.docReady = function(t) { + var e = document.readyState; + "complete" == e || "interactive" == e + ? setTimeout(t) + : document.addEventListener("DOMContentLoaded", t); + }), + (i.toDashed = function(t) { + return t + .replace(/(.)([A-Z])/g, function(t, e, i) { + return e + "-" + i; + }) + .toLowerCase(); + }); + var n = t.console; + return ( + (i.htmlInit = function(e, o) { + i.docReady(function() { + var s = i.toDashed(o), + r = "data-" + s, + a = document.querySelectorAll("[" + r + "]"), + u = document.querySelectorAll(".js-" + s), + h = i.makeArray(a).concat(i.makeArray(u)), + d = r + "-options", + l = t.jQuery; + h.forEach(function(t) { + var i, + s = t.getAttribute(r) || t.getAttribute(d); + try { + i = s && JSON.parse(s); + } catch (a) { + return void ( + n && + n.error( + "Error parsing " + + r + + " on " + + t.className + + ": " + + a + ) + ); + } + var u = new e(t, i); + l && l.data(t, o, u); + }); + }); + }), + i + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("outlayer/item", [ + "ev-emitter/ev-emitter", + "get-size/get-size" + ], e) + : "object" == typeof module && module.exports + ? (module.exports = e(require("ev-emitter"), require("get-size"))) + : ((t.Outlayer = {}), + (t.Outlayer.Item = e(t.EvEmitter, t.getSize))); + })(window, function(t, e) { + "use strict"; + + function i(t) { + for (var e in t) return !1; + return (e = null), !0; + } + + function o(t, e) { + t && + ((this.element = t), + (this.layout = e), + (this.position = { + x: 0, + y: 0 + }), + this._create()); + } + + function n(t) { + return t.replace(/([A-Z])/g, function(t) { + return "-" + t.toLowerCase(); + }); + } + var s = document.documentElement.style, + r = + "string" == typeof s.transition + ? "transition" + : "WebkitTransition", + a = + "string" == typeof s.transform + ? "transform" + : "WebkitTransform", + u = { + WebkitTransition: "webkitTransitionEnd", + transition: "transitionend" + }[r], + h = { + transform: a, + transition: r, + transitionDuration: r + "Duration", + transitionProperty: r + "Property", + transitionDelay: r + "Delay" + }, + d = (o.prototype = Object.create(t.prototype)); + (d.constructor = o), + (d._create = function() { + (this._transn = { + ingProperties: {}, + clean: {}, + onEnd: {} + }), + this.css({ + position: "absolute" + }); + }), + (d.handleEvent = function(t) { + var e = "on" + t.type; + this[e] && this[e](t); + }), + (d.getSize = function() { + this.size = e(this.element); + }), + (d.css = function(t) { + var e = this.element.style; + for (var i in t) { + var o = h[i] || i; + e[o] = t[i]; + } + }), + (d.getPosition = function() { + var t = getComputedStyle(this.element), + e = this.layout._getOption("originLeft"), + i = this.layout._getOption("originTop"), + o = t[e ? "left" : "right"], + n = t[i ? "top" : "bottom"], + s = parseFloat(o), + r = parseFloat(n), + a = this.layout.size; + o.indexOf("%") != -1 && (s = (s / 100) * a.width), + n.indexOf("%") != -1 && (r = (r / 100) * a.height), + (s = isNaN(s) ? 0 : s), + (r = isNaN(r) ? 0 : r), + (s -= e ? a.paddingLeft : a.paddingRight), + (r -= i ? a.paddingTop : a.paddingBottom), + (this.position.x = s), + (this.position.y = r); + }), + (d.layoutPosition = function() { + var t = this.layout.size, + e = {}, + i = this.layout._getOption("originLeft"), + o = this.layout._getOption("originTop"), + n = i ? "paddingLeft" : "paddingRight", + s = i ? "left" : "right", + r = i ? "right" : "left", + a = this.position.x + t[n]; + (e[s] = this.getXValue(a)), (e[r] = ""); + var u = o ? "paddingTop" : "paddingBottom", + h = o ? "top" : "bottom", + d = o ? "bottom" : "top", + l = this.position.y + t[u]; + (e[h] = this.getYValue(l)), + (e[d] = ""), + this.css(e), + this.emitEvent("layout", [this]); + }), + (d.getXValue = function(t) { + var e = this.layout._getOption("horizontal"); + return this.layout.options.percentPosition && !e + ? (t / this.layout.size.width) * 100 + "%" + : t + "px"; + }), + (d.getYValue = function(t) { + var e = this.layout._getOption("horizontal"); + return this.layout.options.percentPosition && e + ? (t / this.layout.size.height) * 100 + "%" + : t + "px"; + }), + (d._transitionTo = function(t, e) { + this.getPosition(); + var i = this.position.x, + o = this.position.y, + n = t == this.position.x && e == this.position.y; + if ((this.setPosition(t, e), n && !this.isTransitioning)) + return void this.layoutPosition(); + var s = t - i, + r = e - o, + a = {}; + (a.transform = this.getTranslate(s, r)), + this.transition({ + to: a, + onTransitionEnd: { + transform: this.layoutPosition + }, + isCleaning: !0 + }); + }), + (d.getTranslate = function(t, e) { + var i = this.layout._getOption("originLeft"), + o = this.layout._getOption("originTop"); + return ( + (t = i ? t : -t), + (e = o ? e : -e), + "translate3d(" + t + "px, " + e + "px, 0)" + ); + }), + (d.goTo = function(t, e) { + this.setPosition(t, e), this.layoutPosition(); + }), + (d.moveTo = d._transitionTo), + (d.setPosition = function(t, e) { + (this.position.x = parseFloat(t)), + (this.position.y = parseFloat(e)); + }), + (d._nonTransition = function(t) { + this.css(t.to), t.isCleaning && this._removeStyles(t.to); + for (var e in t.onTransitionEnd) + t.onTransitionEnd[e].call(this); + }), + (d.transition = function(t) { + if (!parseFloat(this.layout.options.transitionDuration)) + return void this._nonTransition(t); + var e = this._transn; + for (var i in t.onTransitionEnd) + e.onEnd[i] = t.onTransitionEnd[i]; + for (i in t.to) + (e.ingProperties[i] = !0), + t.isCleaning && (e.clean[i] = !0); + if (t.from) { + this.css(t.from); + var o = this.element.offsetHeight; + o = null; + } + this.enableTransition(t.to), + this.css(t.to), + (this.isTransitioning = !0); + }); + var l = "opacity," + n(a); + (d.enableTransition = function() { + if (!this.isTransitioning) { + var t = this.layout.options.transitionDuration; + (t = "number" == typeof t ? t + "ms" : t), + this.css({ + transitionProperty: l, + transitionDuration: t, + transitionDelay: this.staggerDelay || 0 + }), + this.element.addEventListener(u, this, !1); + } + }), + (d.onwebkitTransitionEnd = function(t) { + this.ontransitionend(t); + }), + (d.onotransitionend = function(t) { + this.ontransitionend(t); + }); + var f = { + "-webkit-transform": "transform" + }; + (d.ontransitionend = function(t) { + if (t.target === this.element) { + var e = this._transn, + o = f[t.propertyName] || t.propertyName; + if ( + (delete e.ingProperties[o], + i(e.ingProperties) && this.disableTransition(), + o in e.clean && + ((this.element.style[t.propertyName] = ""), + delete e.clean[o]), + o in e.onEnd) + ) { + var n = e.onEnd[o]; + n.call(this), delete e.onEnd[o]; + } + this.emitEvent("transitionEnd", [this]); + } + }), + (d.disableTransition = function() { + this.removeTransitionStyles(), + this.element.removeEventListener(u, this, !1), + (this.isTransitioning = !1); + }), + (d._removeStyles = function(t) { + var e = {}; + for (var i in t) e[i] = ""; + this.css(e); + }); + var c = { + transitionProperty: "", + transitionDuration: "", + transitionDelay: "" + }; + return ( + (d.removeTransitionStyles = function() { + this.css(c); + }), + (d.stagger = function(t) { + (t = isNaN(t) ? 0 : t), (this.staggerDelay = t + "ms"); + }), + (d.removeElem = function() { + this.element.parentNode.removeChild(this.element), + this.css({ + display: "" + }), + this.emitEvent("remove", [this]); + }), + (d.remove = function() { + return r && parseFloat(this.layout.options.transitionDuration) + ? (this.once("transitionEnd", function() { + this.removeElem(); + }), + void this.hide()) + : void this.removeElem(); + }), + (d.reveal = function() { + delete this.isHidden, + this.css({ + display: "" + }); + var t = this.layout.options, + e = {}, + i = this.getHideRevealTransitionEndProperty("visibleStyle"); + (e[i] = this.onRevealTransitionEnd), + this.transition({ + from: t.hiddenStyle, + to: t.visibleStyle, + isCleaning: !0, + onTransitionEnd: e + }); + }), + (d.onRevealTransitionEnd = function() { + this.isHidden || this.emitEvent("reveal"); + }), + (d.getHideRevealTransitionEndProperty = function(t) { + var e = this.layout.options[t]; + if (e.opacity) return "opacity"; + for (var i in e) return i; + }), + (d.hide = function() { + (this.isHidden = !0), + this.css({ + display: "" + }); + var t = this.layout.options, + e = {}, + i = this.getHideRevealTransitionEndProperty("hiddenStyle"); + (e[i] = this.onHideTransitionEnd), + this.transition({ + from: t.visibleStyle, + to: t.hiddenStyle, + isCleaning: !0, + onTransitionEnd: e + }); + }), + (d.onHideTransitionEnd = function() { + this.isHidden && + (this.css({ + display: "none" + }), + this.emitEvent("hide")); + }), + (d.destroy = function() { + this.css({ + position: "", + left: "", + right: "", + top: "", + bottom: "", + transition: "", + transform: "" + }); + }), + o + ); + }), + (function(t, e) { + "use strict"; + "function" == typeof define && define.amd + ? define("outlayer/outlayer", [ + "ev-emitter/ev-emitter", + "get-size/get-size", + "fizzy-ui-utils/utils", + "./item" + ], function(i, o, n, s) { + return e(t, i, o, n, s); + }) + : "object" == typeof module && module.exports + ? (module.exports = e( + t, + require("ev-emitter"), + require("get-size"), + require("fizzy-ui-utils"), + require("./item") + )) + : (t.Outlayer = e( + t, + t.EvEmitter, + t.getSize, + t.fizzyUIUtils, + t.Outlayer.Item + )); + })(window, function(t, e, i, o, n) { + "use strict"; + + function s(t, e) { + var i = o.getQueryElement(t); + if (!i) + return void ( + u && + u.error( + "Bad element for " + + this.constructor.namespace + + ": " + + (i || t) + ) + ); + (this.element = i), + h && (this.$element = h(this.element)), + (this.options = o.extend({}, this.constructor.defaults)), + this.option(e); + var n = ++l; + (this.element.outlayerGUID = n), (f[n] = this), this._create(); + var s = this._getOption("initLayout"); + s && this.layout(); + } + + function r(t) { + function e() { + t.apply(this, arguments); + } + return ( + (e.prototype = Object.create(t.prototype)), + (e.prototype.constructor = e), + e + ); + } + + function a(t) { + if ("number" == typeof t) return t; + var e = t.match(/(^\d*\.?\d*)(\w*)/), + i = e && e[1], + o = e && e[2]; + if (!i.length) return 0; + i = parseFloat(i); + var n = m[o] || 1; + return i * n; + } + var u = t.console, + h = t.jQuery, + d = function() {}, + l = 0, + f = {}; + (s.namespace = "outlayer"), + (s.Item = n), + (s.defaults = { + containerStyle: { + position: "relative" + }, + initLayout: !0, + originLeft: !0, + originTop: !0, + resize: !0, + resizeContainer: !0, + transitionDuration: "0.4s", + hiddenStyle: { + opacity: 0, + transform: "scale(0.001)" + }, + visibleStyle: { + opacity: 1, + transform: "scale(1)" + } + }); + var c = s.prototype; + o.extend(c, e.prototype), + (c.option = function(t) { + o.extend(this.options, t); + }), + (c._getOption = function(t) { + var e = this.constructor.compatOptions[t]; + return e && void 0 !== this.options[e] + ? this.options[e] + : this.options[t]; + }), + (s.compatOptions = { + initLayout: "isInitLayout", + horizontal: "isHorizontal", + layoutInstant: "isLayoutInstant", + originLeft: "isOriginLeft", + originTop: "isOriginTop", + resize: "isResizeBound", + resizeContainer: "isResizingContainer" + }), + (c._create = function() { + this.reloadItems(), + (this.stamps = []), + this.stamp(this.options.stamp), + o.extend(this.element.style, this.options.containerStyle); + var t = this._getOption("resize"); + t && this.bindResize(); + }), + (c.reloadItems = function() { + this.items = this._itemize(this.element.children); + }), + (c._itemize = function(t) { + for ( + var e = this._filterFindItemElements(t), + i = this.constructor.Item, + o = [], + n = 0; + n < e.length; + n++ + ) { + var s = e[n], + r = new i(s, this); + o.push(r); + } + return o; + }), + (c._filterFindItemElements = function(t) { + return o.filterFindElements(t, this.options.itemSelector); + }), + (c.getItemElements = function() { + return this.items.map(function(t) { + return t.element; + }); + }), + (c.layout = function() { + this._resetLayout(), this._manageStamps(); + var t = this._getOption("layoutInstant"), + e = void 0 !== t ? t : !this._isLayoutInited; + this.layoutItems(this.items, e), (this._isLayoutInited = !0); + }), + (c._init = c.layout), + (c._resetLayout = function() { + this.getSize(); + }), + (c.getSize = function() { + this.size = i(this.element); + }), + (c._getMeasurement = function(t, e) { + var o, + n = this.options[t]; + n + ? ("string" == typeof n + ? (o = this.element.querySelector(n)) + : n instanceof HTMLElement && (o = n), + (this[t] = o ? i(o)[e] : n)) + : (this[t] = 0); + }), + (c.layoutItems = function(t, e) { + (t = this._getItemsForLayout(t)), + this._layoutItems(t, e), + this._postLayout(); + }), + (c._getItemsForLayout = function(t) { + return t.filter(function(t) { + return !t.isIgnored; + }); + }), + (c._layoutItems = function(t, e) { + if ((this._emitCompleteOnItems("layout", t), t && t.length)) { + var i = []; + t.forEach(function(t) { + var o = this._getItemLayoutPosition(t); + (o.item = t), + (o.isInstant = e || t.isLayoutInstant), + i.push(o); + }, this), + this._processLayoutQueue(i); + } + }), + (c._getItemLayoutPosition = function() { + return { + x: 0, + y: 0 + }; + }), + (c._processLayoutQueue = function(t) { + this.updateStagger(), + t.forEach(function(t, e) { + this._positionItem(t.item, t.x, t.y, t.isInstant, e); + }, this); + }), + (c.updateStagger = function() { + var t = this.options.stagger; + return null === t || void 0 === t + ? void (this.stagger = 0) + : ((this.stagger = a(t)), this.stagger); + }), + (c._positionItem = function(t, e, i, o, n) { + o + ? t.goTo(e, i) + : (t.stagger(n * this.stagger), t.moveTo(e, i)); + }), + (c._postLayout = function() { + this.resizeContainer(); + }), + (c.resizeContainer = function() { + var t = this._getOption("resizeContainer"); + if (t) { + var e = this._getContainerSize(); + e && + (this._setContainerMeasure(e.width, !0), + this._setContainerMeasure(e.height, !1)); + } + }), + (c._getContainerSize = d), + (c._setContainerMeasure = function(t, e) { + if (void 0 !== t) { + var i = this.size; + i.isBorderBox && + (t += e + ? i.paddingLeft + + i.paddingRight + + i.borderLeftWidth + + i.borderRightWidth + : i.paddingBottom + + i.paddingTop + + i.borderTopWidth + + i.borderBottomWidth), + (t = Math.max(t, 0)), + (this.element.style[e ? "width" : "height"] = t + "px"); + } + }), + (c._emitCompleteOnItems = function(t, e) { + function i() { + n.dispatchEvent(t + "Complete", null, [e]); + } + + function o() { + r++, r == s && i(); + } + var n = this, + s = e.length; + if (!e || !s) return void i(); + var r = 0; + e.forEach(function(e) { + e.once(t, o); + }); + }), + (c.dispatchEvent = function(t, e, i) { + var o = e ? [e].concat(i) : i; + if ((this.emitEvent(t, o), h)) + if ( + ((this.$element = this.$element || h(this.element)), e) + ) { + var n = h.Event(e); + (n.type = t), this.$element.trigger(n, i); + } else this.$element.trigger(t, i); + }), + (c.ignore = function(t) { + var e = this.getItem(t); + e && (e.isIgnored = !0); + }), + (c.unignore = function(t) { + var e = this.getItem(t); + e && delete e.isIgnored; + }), + (c.stamp = function(t) { + (t = this._find(t)), + t && + ((this.stamps = this.stamps.concat(t)), + t.forEach(this.ignore, this)); + }), + (c.unstamp = function(t) { + (t = this._find(t)), + t && + t.forEach(function(t) { + o.removeFrom(this.stamps, t), this.unignore(t); + }, this); + }), + (c._find = function(t) { + if (t) + return ( + "string" == typeof t && + (t = this.element.querySelectorAll(t)), + (t = o.makeArray(t)) + ); + }), + (c._manageStamps = function() { + this.stamps && + this.stamps.length && + (this._getBoundingRect(), + this.stamps.forEach(this._manageStamp, this)); + }), + (c._getBoundingRect = function() { + var t = this.element.getBoundingClientRect(), + e = this.size; + this._boundingRect = { + left: t.left + e.paddingLeft + e.borderLeftWidth, + top: t.top + e.paddingTop + e.borderTopWidth, + right: t.right - (e.paddingRight + e.borderRightWidth), + bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) + }; + }), + (c._manageStamp = d), + (c._getElementOffset = function(t) { + var e = t.getBoundingClientRect(), + o = this._boundingRect, + n = i(t), + s = { + left: e.left - o.left - n.marginLeft, + top: e.top - o.top - n.marginTop, + right: o.right - e.right - n.marginRight, + bottom: o.bottom - e.bottom - n.marginBottom + }; + return s; + }), + (c.handleEvent = o.handleEvent), + (c.bindResize = function() { + t.addEventListener("resize", this), (this.isResizeBound = !0); + }), + (c.unbindResize = function() { + t.removeEventListener("resize", this), + (this.isResizeBound = !1); + }), + (c.onresize = function() { + this.resize(); + }), + o.debounceMethod(s, "onresize", 100), + (c.resize = function() { + this.isResizeBound && this.needsResizeLayout() && this.layout(); + }), + (c.needsResizeLayout = function() { + var t = i(this.element), + e = this.size && t; + return e && t.innerWidth !== this.size.innerWidth; + }), + (c.addItems = function(t) { + var e = this._itemize(t); + return e.length && (this.items = this.items.concat(e)), e; + }), + (c.appended = function(t) { + var e = this.addItems(t); + e.length && (this.layoutItems(e, !0), this.reveal(e)); + }), + (c.prepended = function(t) { + var e = this._itemize(t); + if (e.length) { + var i = this.items.slice(0); + (this.items = e.concat(i)), + this._resetLayout(), + this._manageStamps(), + this.layoutItems(e, !0), + this.reveal(e), + this.layoutItems(i); + } + }), + (c.reveal = function(t) { + if ((this._emitCompleteOnItems("reveal", t), t && t.length)) { + var e = this.updateStagger(); + t.forEach(function(t, i) { + t.stagger(i * e), t.reveal(); + }); + } + }), + (c.hide = function(t) { + if ((this._emitCompleteOnItems("hide", t), t && t.length)) { + var e = this.updateStagger(); + t.forEach(function(t, i) { + t.stagger(i * e), t.hide(); + }); + } + }), + (c.revealItemElements = function(t) { + var e = this.getItems(t); + this.reveal(e); + }), + (c.hideItemElements = function(t) { + var e = this.getItems(t); + this.hide(e); + }), + (c.getItem = function(t) { + for (var e = 0; e < this.items.length; e++) { + var i = this.items[e]; + if (i.element == t) return i; + } + }), + (c.getItems = function(t) { + t = o.makeArray(t); + var e = []; + return ( + t.forEach(function(t) { + var i = this.getItem(t); + i && e.push(i); + }, this), + e + ); + }), + (c.remove = function(t) { + var e = this.getItems(t); + this._emitCompleteOnItems("remove", e), + e && + e.length && + e.forEach(function(t) { + t.remove(), o.removeFrom(this.items, t); + }, this); + }), + (c.destroy = function() { + var t = this.element.style; + (t.height = ""), + (t.position = ""), + (t.width = ""), + this.items.forEach(function(t) { + t.destroy(); + }), + this.unbindResize(); + var e = this.element.outlayerGUID; + delete f[e], + delete this.element.outlayerGUID, + h && h.removeData(this.element, this.constructor.namespace); + }), + (s.data = function(t) { + t = o.getQueryElement(t); + var e = t && t.outlayerGUID; + return e && f[e]; + }), + (s.create = function(t, e) { + var i = r(s); + return ( + (i.defaults = o.extend({}, s.defaults)), + o.extend(i.defaults, e), + (i.compatOptions = o.extend({}, s.compatOptions)), + (i.namespace = t), + (i.data = s.data), + (i.Item = r(n)), + o.htmlInit(i, t), + h && h.bridget && h.bridget(t, i), + i + ); + }); + var m = { + ms: 1, + s: 1e3 + }; + return (s.Item = n), s; + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) + : "object" == typeof module && module.exports + ? (module.exports = e(require("outlayer"))) + : ((t.Isotope = t.Isotope || {}), (t.Isotope.Item = e(t.Outlayer))); + })(window, function(t) { + "use strict"; + + function e() { + t.Item.apply(this, arguments); + } + var i = (e.prototype = Object.create(t.Item.prototype)), + o = i._create; + (i._create = function() { + (this.id = this.layout.itemGUID++), + o.call(this), + (this.sortData = {}); + }), + (i.updateSortData = function() { + if (!this.isIgnored) { + (this.sortData.id = this.id), + (this.sortData["original-order"] = this.id), + (this.sortData.random = Math.random()); + var t = this.layout.options.getSortData, + e = this.layout._sorters; + for (var i in t) { + var o = e[i]; + this.sortData[i] = o(this.element, this); + } + } + }); + var n = i.destroy; + return ( + (i.destroy = function() { + n.apply(this, arguments), + this.css({ + display: "" + }); + }), + e + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("isotope-layout/js/layout-mode", [ + "get-size/get-size", + "outlayer/outlayer" + ], e) + : "object" == typeof module && module.exports + ? (module.exports = e(require("get-size"), require("outlayer"))) + : ((t.Isotope = t.Isotope || {}), + (t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))); + })(window, function(t, e) { + "use strict"; + + function i(t) { + (this.isotope = t), + t && + ((this.options = t.options[this.namespace]), + (this.element = t.element), + (this.items = t.filteredItems), + (this.size = t.size)); + } + var o = i.prototype, + n = [ + "_resetLayout", + "_getItemLayoutPosition", + "_manageStamp", + "_getContainerSize", + "_getElementOffset", + "needsResizeLayout", + "_getOption" + ]; + return ( + n.forEach(function(t) { + o[t] = function() { + return e.prototype[t].apply(this.isotope, arguments); + }; + }), + (o.needsVerticalResizeLayout = function() { + var e = t(this.isotope.element), + i = this.isotope.size && e; + return i && e.innerHeight != this.isotope.size.innerHeight; + }), + (o._getMeasurement = function() { + this.isotope._getMeasurement.apply(this, arguments); + }), + (o.getColumnWidth = function() { + this.getSegmentSize("column", "Width"); + }), + (o.getRowHeight = function() { + this.getSegmentSize("row", "Height"); + }), + (o.getSegmentSize = function(t, e) { + var i = t + e, + o = "outer" + e; + if ((this._getMeasurement(i, o), !this[i])) { + var n = this.getFirstItemSize(); + this[i] = (n && n[o]) || this.isotope.size["inner" + e]; + } + }), + (o.getFirstItemSize = function() { + var e = this.isotope.filteredItems[0]; + return e && e.element && t(e.element); + }), + (o.layout = function() { + this.isotope.layout.apply(this.isotope, arguments); + }), + (o.getSize = function() { + this.isotope.getSize(), (this.size = this.isotope.size); + }), + (i.modes = {}), + (i.create = function(t, e) { + function n() { + i.apply(this, arguments); + } + return ( + (n.prototype = Object.create(o)), + (n.prototype.constructor = n), + e && (n.options = e), + (n.prototype.namespace = t), + (i.modes[t] = n), + n + ); + }), + i + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("masonry-layout/masonry", [ + "outlayer/outlayer", + "get-size/get-size" + ], e) + : "object" == typeof module && module.exports + ? (module.exports = e(require("outlayer"), require("get-size"))) + : (t.Masonry = e(t.Outlayer, t.getSize)); + })(window, function(t, e) { + var i = t.create("masonry"); + i.compatOptions.fitWidth = "isFitWidth"; + var o = i.prototype; + return ( + (o._resetLayout = function() { + this.getSize(), + this._getMeasurement("columnWidth", "outerWidth"), + this._getMeasurement("gutter", "outerWidth"), + this.measureColumns(), + (this.colYs = []); + for (var t = 0; t < this.cols; t++) this.colYs.push(0); + (this.maxY = 0), (this.horizontalColIndex = 0); + }), + (o.measureColumns = function() { + if ((this.getContainerWidth(), !this.columnWidth)) { + var t = this.items[0], + i = t && t.element; + this.columnWidth = + (i && e(i).outerWidth) || this.containerWidth; + } + var o = (this.columnWidth += this.gutter), + n = this.containerWidth + this.gutter, + s = n / o, + r = o - (n % o), + a = r && r < 1 ? "round" : "floor"; + (s = Math[a](s)), (this.cols = Math.max(s, 1)); + }), + (o.getContainerWidth = function() { + var t = this._getOption("fitWidth"), + i = t ? this.element.parentNode : this.element, + o = e(i); + this.containerWidth = o && o.innerWidth; + }), + (o._getItemLayoutPosition = function(t) { + t.getSize(); + var e = t.size.outerWidth % this.columnWidth, + i = e && e < 1 ? "round" : "ceil", + o = Math[i](t.size.outerWidth / this.columnWidth); + o = Math.min(o, this.cols); + for ( + var n = this.options.horizontalOrder + ? "_getHorizontalColPosition" + : "_getTopColPosition", + s = this[n](o, t), + r = { + x: this.columnWidth * s.col, + y: s.y + }, + a = s.y + t.size.outerHeight, + u = o + s.col, + h = s.col; + h < u; + h++ + ) + this.colYs[h] = a; + return r; + }), + (o._getTopColPosition = function(t) { + var e = this._getTopColGroup(t), + i = Math.min.apply(Math, e); + return { + col: e.indexOf(i), + y: i + }; + }), + (o._getTopColGroup = function(t) { + if (t < 2) return this.colYs; + for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) + e[o] = this._getColGroupY(o, t); + return e; + }), + (o._getColGroupY = function(t, e) { + if (e < 2) return this.colYs[t]; + var i = this.colYs.slice(t, t + e); + return Math.max.apply(Math, i); + }), + (o._getHorizontalColPosition = function(t, e) { + var i = this.horizontalColIndex % this.cols, + o = t > 1 && i + t > this.cols; + i = o ? 0 : i; + var n = e.size.outerWidth && e.size.outerHeight; + return ( + (this.horizontalColIndex = n + ? i + t + : this.horizontalColIndex), + { + col: i, + y: this._getColGroupY(i, t) + } + ); + }), + (o._manageStamp = function(t) { + var i = e(t), + o = this._getElementOffset(t), + n = this._getOption("originLeft"), + s = n ? o.left : o.right, + r = s + i.outerWidth, + a = Math.floor(s / this.columnWidth); + a = Math.max(0, a); + var u = Math.floor(r / this.columnWidth); + (u -= r % this.columnWidth ? 0 : 1), + (u = Math.min(this.cols - 1, u)); + for ( + var h = this._getOption("originTop"), + d = (h ? o.top : o.bottom) + i.outerHeight, + l = a; + l <= u; + l++ + ) + this.colYs[l] = Math.max(d, this.colYs[l]); + }), + (o._getContainerSize = function() { + this.maxY = Math.max.apply(Math, this.colYs); + var t = { + height: this.maxY + }; + return ( + this._getOption("fitWidth") && + (t.width = this._getContainerFitWidth()), + t + ); + }), + (o._getContainerFitWidth = function() { + for (var t = 0, e = this.cols; --e && 0 === this.colYs[e]; ) + t++; + return (this.cols - t) * this.columnWidth - this.gutter; + }), + (o.needsResizeLayout = function() { + var t = this.containerWidth; + return this.getContainerWidth(), t != this.containerWidth; + }), + i + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("isotope-layout/js/layout-modes/masonry", [ + "../layout-mode", + "masonry-layout/masonry" + ], e) + : "object" == typeof module && module.exports + ? (module.exports = e( + require("../layout-mode"), + require("masonry-layout") + )) + : e(t.Isotope.LayoutMode, t.Masonry); + })(window, function(t, e) { + "use strict"; + var i = t.create("masonry"), + o = i.prototype, + n = { + _getElementOffset: !0, + layout: !0, + _getMeasurement: !0 + }; + for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]); + var r = o.measureColumns; + o.measureColumns = function() { + (this.items = this.isotope.filteredItems), r.call(this); + }; + var a = o._getOption; + return ( + (o._getOption = function(t) { + return "fitWidth" == t + ? void 0 !== this.options.isFitWidth + ? this.options.isFitWidth + : this.options.fitWidth + : a.apply(this.isotope, arguments); + }), + i + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("isotope-layout/js/layout-modes/fit-rows", [ + "../layout-mode" + ], e) + : "object" == typeof exports + ? (module.exports = e(require("../layout-mode"))) + : e(t.Isotope.LayoutMode); + })(window, function(t) { + "use strict"; + var e = t.create("fitRows"), + i = e.prototype; + return ( + (i._resetLayout = function() { + (this.x = 0), + (this.y = 0), + (this.maxY = 0), + this._getMeasurement("gutter", "outerWidth"); + }), + (i._getItemLayoutPosition = function(t) { + t.getSize(); + var e = t.size.outerWidth + this.gutter, + i = this.isotope.size.innerWidth + this.gutter; + 0 !== this.x && + e + this.x > i && + ((this.x = 0), (this.y = this.maxY)); + var o = { + x: this.x, + y: this.y + }; + return ( + (this.maxY = Math.max( + this.maxY, + this.y + t.size.outerHeight + )), + (this.x += e), + o + ); + }), + (i._getContainerSize = function() { + return { + height: this.maxY + }; + }), + e + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define("isotope-layout/js/layout-modes/vertical", [ + "../layout-mode" + ], e) + : "object" == typeof module && module.exports + ? (module.exports = e(require("../layout-mode"))) + : e(t.Isotope.LayoutMode); + })(window, function(t) { + "use strict"; + var e = t.create("vertical", { + horizontalAlignment: 0 + }), + i = e.prototype; + return ( + (i._resetLayout = function() { + this.y = 0; + }), + (i._getItemLayoutPosition = function(t) { + t.getSize(); + var e = + (this.isotope.size.innerWidth - t.size.outerWidth) * + this.options.horizontalAlignment, + i = this.y; + return ( + (this.y += t.size.outerHeight), + { + x: e, + y: i + } + ); + }), + (i._getContainerSize = function() { + return { + height: this.y + }; + }), + e + ); + }), + (function(t, e) { + "function" == typeof define && define.amd + ? define([ + "outlayer/outlayer", + "get-size/get-size", + "desandro-matches-selector/matches-selector", + "fizzy-ui-utils/utils", + "isotope-layout/js/item", + "isotope-layout/js/layout-mode", + "isotope-layout/js/layout-modes/masonry", + "isotope-layout/js/layout-modes/fit-rows", + "isotope-layout/js/layout-modes/vertical" + ], function(i, o, n, s, r, a) { + return e(t, i, o, n, s, r, a); + }) + : "object" == typeof module && module.exports + ? (module.exports = e( + t, + require("outlayer"), + require("get-size"), + require("desandro-matches-selector"), + require("fizzy-ui-utils"), + require("isotope-layout/js/item"), + require("isotope-layout/js/layout-mode"), + require("isotope-layout/js/layout-modes/masonry"), + require("isotope-layout/js/layout-modes/fit-rows"), + require("isotope-layout/js/layout-modes/vertical") + )) + : (t.Isotope = e( + t, + t.Outlayer, + t.getSize, + t.matchesSelector, + t.fizzyUIUtils, + t.Isotope.Item, + t.Isotope.LayoutMode + )); + })(window, function(t, e, i, o, n, s, r) { + function a(t, e) { + return function(i, o) { + for (var n = 0; n < t.length; n++) { + var s = t[n], + r = i.sortData[s], + a = o.sortData[s]; + if (r > a || r < a) { + var u = void 0 !== e[s] ? e[s] : e, + h = u ? 1 : -1; + return (r > a ? 1 : -1) * h; + } + } + return 0; + }; + } + var u = t.jQuery, + h = String.prototype.trim + ? function(t) { + return t.trim(); + } + : function(t) { + return t.replace(/^\s+|\s+$/g, ""); + }, + d = e.create("isotope", { + layoutMode: "masonry", + isJQueryFiltering: !0, + sortAscending: !0 + }); + (d.Item = s), (d.LayoutMode = r); + var l = d.prototype; + (l._create = function() { + (this.itemGUID = 0), + (this._sorters = {}), + this._getSorters(), + e.prototype._create.call(this), + (this.modes = {}), + (this.filteredItems = this.items), + (this.sortHistory = ["original-order"]); + for (var t in r.modes) this._initLayoutMode(t); + }), + (l.reloadItems = function() { + (this.itemGUID = 0), e.prototype.reloadItems.call(this); + }), + (l._itemize = function() { + for ( + var t = e.prototype._itemize.apply(this, arguments), i = 0; + i < t.length; + i++ + ) { + var o = t[i]; + o.id = this.itemGUID++; + } + return this._updateItemsSortData(t), t; + }), + (l._initLayoutMode = function(t) { + var e = r.modes[t], + i = this.options[t] || {}; + (this.options[t] = e.options ? n.extend(e.options, i) : i), + (this.modes[t] = new e(this)); + }), + (l.layout = function() { + return !this._isLayoutInited && this._getOption("initLayout") + ? void this.arrange() + : void this._layout(); + }), + (l._layout = function() { + var t = this._getIsInstant(); + this._resetLayout(), + this._manageStamps(), + this.layoutItems(this.filteredItems, t), + (this._isLayoutInited = !0); + }), + (l.arrange = function(t) { + this.option(t), this._getIsInstant(); + var e = this._filter(this.items); + (this.filteredItems = e.matches), + this._bindArrangeComplete(), + this._isInstant + ? this._noTransition(this._hideReveal, [e]) + : this._hideReveal(e), + this._sort(), + this._layout(); + }), + (l._init = l.arrange), + (l._hideReveal = function(t) { + this.reveal(t.needReveal), this.hide(t.needHide); + }), + (l._getIsInstant = function() { + var t = this._getOption("layoutInstant"), + e = void 0 !== t ? t : !this._isLayoutInited; + return (this._isInstant = e), e; + }), + (l._bindArrangeComplete = function() { + function t() { + e && + i && + o && + n.dispatchEvent("arrangeComplete", null, [ + n.filteredItems + ]); + } + var e, + i, + o, + n = this; + this.once("layoutComplete", function() { + (e = !0), t(); + }), + this.once("hideComplete", function() { + (i = !0), t(); + }), + this.once("revealComplete", function() { + (o = !0), t(); + }); + }), + (l._filter = function(t) { + var e = this.options.filter; + e = e || "*"; + for ( + var i = [], + o = [], + n = [], + s = this._getFilterTest(e), + r = 0; + r < t.length; + r++ + ) { + var a = t[r]; + if (!a.isIgnored) { + var u = s(a); + u && i.push(a), + u && a.isHidden + ? o.push(a) + : u || a.isHidden || n.push(a); + } + } + return { + matches: i, + needReveal: o, + needHide: n + }; + }), + (l._getFilterTest = function(t) { + return u && this.options.isJQueryFiltering + ? function(e) { + return u(e.element).is(t); + } + : "function" == typeof t + ? function(e) { + return t(e.element); + } + : function(e) { + return o(e.element, t); + }; + }), + (l.updateSortData = function(t) { + var e; + t + ? ((t = n.makeArray(t)), (e = this.getItems(t))) + : (e = this.items), + this._getSorters(), + this._updateItemsSortData(e); + }), + (l._getSorters = function() { + var t = this.options.getSortData; + for (var e in t) { + var i = t[e]; + this._sorters[e] = f(i); + } + }), + (l._updateItemsSortData = function(t) { + for (var e = t && t.length, i = 0; e && i < e; i++) { + var o = t[i]; + o.updateSortData(); + } + }); + var f = (function() { + function t(t) { + if ("string" != typeof t) return t; + var i = h(t).split(" "), + o = i[0], + n = o.match(/^\[(.+)\]$/), + s = n && n[1], + r = e(s, o), + a = d.sortDataParsers[i[1]]; + return (t = a + ? function(t) { + return t && a(r(t)); + } + : function(t) { + return t && r(t); + }); + } + + function e(t, e) { + return t + ? function(e) { + return e.getAttribute(t); + } + : function(t) { + var i = t.querySelector(e); + return i && i.textContent; + }; + } + return t; + })(); + (d.sortDataParsers = { + parseInt: function(t) { + return parseInt(t, 10); + }, + parseFloat: function(t) { + return parseFloat(t); + } + }), + (l._sort = function() { + if (this.options.sortBy) { + var t = n.makeArray(this.options.sortBy); + this._getIsSameSortBy(t) || + (this.sortHistory = t.concat(this.sortHistory)); + var e = a(this.sortHistory, this.options.sortAscending); + this.filteredItems.sort(e); + } + }), + (l._getIsSameSortBy = function(t) { + for (var e = 0; e < t.length; e++) + if (t[e] != this.sortHistory[e]) return !1; + return !0; + }), + (l._mode = function() { + var t = this.options.layoutMode, + e = this.modes[t]; + if (!e) throw new Error("No layout mode: " + t); + return (e.options = this.options[t]), e; + }), + (l._resetLayout = function() { + e.prototype._resetLayout.call(this), + this._mode()._resetLayout(); + }), + (l._getItemLayoutPosition = function(t) { + return this._mode()._getItemLayoutPosition(t); + }), + (l._manageStamp = function(t) { + this._mode()._manageStamp(t); + }), + (l._getContainerSize = function() { + return this._mode()._getContainerSize(); + }), + (l.needsResizeLayout = function() { + return this._mode().needsResizeLayout(); + }), + (l.appended = function(t) { + var e = this.addItems(t); + if (e.length) { + var i = this._filterRevealAdded(e); + this.filteredItems = this.filteredItems.concat(i); + } + }), + (l.prepended = function(t) { + var e = this._itemize(t); + if (e.length) { + this._resetLayout(), this._manageStamps(); + var i = this._filterRevealAdded(e); + this.layoutItems(this.filteredItems), + (this.filteredItems = i.concat(this.filteredItems)), + (this.items = e.concat(this.items)); + } + }), + (l._filterRevealAdded = function(t) { + var e = this._filter(t); + return ( + this.hide(e.needHide), + this.reveal(e.matches), + this.layoutItems(e.matches, !0), + e.matches + ); + }), + (l.insert = function(t) { + var e = this.addItems(t); + if (e.length) { + var i, + o, + n = e.length; + for (i = 0; i < n; i++) + (o = e[i]), this.element.appendChild(o.element); + var s = this._filter(e).matches; + for (i = 0; i < n; i++) e[i].isLayoutInstant = !0; + for (this.arrange(), i = 0; i < n; i++) + delete e[i].isLayoutInstant; + this.reveal(s); + } + }); + var c = l.remove; + return ( + (l.remove = function(t) { + t = n.makeArray(t); + var e = this.getItems(t); + c.call(this, t); + for (var i = e && e.length, o = 0; i && o < i; o++) { + var s = e[o]; + n.removeFrom(this.filteredItems, s); + } + }), + (l.shuffle = function() { + for (var t = 0; t < this.items.length; t++) { + var e = this.items[t]; + e.sortData.random = Math.random(); + } + (this.options.sortBy = "random"), this._sort(), this._layout(); + }), + (l._noTransition = function(t, e) { + var i = this.options.transitionDuration; + this.options.transitionDuration = 0; + var o = t.apply(this, e); + return (this.options.transitionDuration = i), o; + }), + (l.getFilteredItemElements = function() { + return this.filteredItems.map(function(t) { + return t.element; + }); + }), + d + ); + }); +(function($) { + "use strict"; + window.eaelLoadMore = function(options, settings) { + var optionsValue = { + totalPosts: options.totalPosts, + loadMoreBtn: options.loadMoreBtn, + postContainer: $(options.postContainer), + postStyle: options.postStyle + }; + var settingsValue = { + postType: settings.postType, + perPage: settings.perPage, + postOrder: settings.postOrder, + orderBy: settings.orderBy, + showImage: settings.showImage, + showTitle: settings.showTitle, + showExcerpt: settings.showExcerpt, + showMeta: settings.showMeta, + imageSize: settings.imageSize, + metaPosition: settings.metaPosition, + excerptLength: settings.excerptLength, + btnText: settings.btnText, + tax_query: settings.tax_query, + post__in: settings.post__in, + excludePosts: settings.exclude_posts, + offset: parseInt(settings.offset, 10), + grid_style: settings.grid_style || "", + hover_animation: settings.hover_animation, + hover_icon: settings.hover_icon + }; + var offset = settingsValue.offset + settingsValue.perPage; + optionsValue.loadMoreBtn.on("click", function(e) { + e.preventDefault(); + $(this).addClass("button--loading"); + $(this) + .find("span") + .html("Loading..."); + $.ajax({ + url: localize.ajaxurl, + type: "post", + data: { + action: "load_more", + post_style: optionsValue.postStyle, + eael_show_image: settingsValue.showImage, + image_size: settingsValue.imageSize, + eael_show_title: settingsValue.showTitle, + eael_show_meta: settingsValue.showMeta, + meta_position: settingsValue.metaPosition, + eael_show_excerpt: settingsValue.showExcerpt, + eael_excerpt_length: settingsValue.excerptLength, + post_type: settingsValue.postType, + posts_per_page: settingsValue.perPage, + offset: offset, + tax_query: settingsValue.tax_query, + post__not_in: settingsValue.excludePosts, + post__in: settingsValue.post__in, + orderby: settingsValue.orderBy, + order: settingsValue.postOrder, + grid_style: settingsValue.grid_style, + eael_post_grid_hover_animation: + settingsValue.hover_animation, + eael_post_grid_bg_hover_icon: settingsValue.hover_icon + }, + beforeSend: function() {}, + success: function(response) { + var $content = $(response); + if (optionsValue.postStyle === "grid") { + setTimeout(function() { + optionsValue.postContainer.masonry(); + optionsValue.postContainer + .append($content) + .masonry("appended", $content); + optionsValue.postContainer.masonry({ + itemSelector: ".eael-grid-post", + percentPosition: !0, + columnWidth: ".eael-post-grid-column" + }); + }, 100); + } else { + optionsValue.postContainer.append($content); + } + optionsValue.loadMoreBtn.removeClass("button--loading"); + optionsValue.loadMoreBtn + .find("span") + .html(settingsValue.btnText); + offset = offset + settingsValue.perPage; + if (offset >= optionsValue.totalPosts) { + optionsValue.loadMoreBtn.remove(); + } + }, + error: function() {} + }); + }); + }; +})(jQuery); +!(function(a, b) { + "function" == typeof define && define.amd + ? define(["jquery"], function(a) { + return b(a); + }) + : "object" == typeof exports + ? (module.exports = b(require("jquery"))) + : b(jQuery); +})(this, function(a) { + function b(a) { + this.$container, + (this.constraints = null), + this.__$tooltip, + this.__init(a); + } + + function c(b, c) { + var d = !0; + return ( + a.each(b, function(a, e) { + return void 0 === c[a] || b[a] !== c[a] + ? ((d = !1), !1) + : void 0; + }), + d + ); + } + + function d(b) { + var c = b.attr("id"), + d = c ? h.window.document.getElementById(c) : null; + return d ? d === b[0] : a.contains(h.window.document.body, b[0]); + } + + function e() { + if (!g) return !1; + var a = g.document.body || g.document.documentElement, + b = a.style, + c = "transition", + d = ["Moz", "Webkit", "Khtml", "O", "ms"]; + if ("string" == typeof b[c]) return !0; + c = c.charAt(0).toUpperCase() + c.substr(1); + for (var e = 0; e < d.length; e++) + if ("string" == typeof b[d[e] + c]) return !0; + return !1; + } + var f = { + animation: "fade", + animationDuration: 350, + content: null, + contentAsHTML: !1, + contentCloning: !1, + debug: !0, + delay: 300, + delayTouch: [300, 500], + functionInit: null, + functionBefore: null, + functionReady: null, + functionAfter: null, + functionFormat: null, + IEmin: 6, + interactive: !1, + multiple: !1, + parent: null, + plugins: ["sideTip"], + repositionOnScroll: !1, + restoration: "none", + selfDestruction: !0, + theme: [], + timer: 0, + trackerInterval: 500, + trackOrigin: !1, + trackTooltip: !1, + trigger: "hover", + triggerClose: { + click: !1, + mouseleave: !1, + originClick: !1, + scroll: !1, + tap: !1, + touchleave: !1 + }, + triggerOpen: { + click: !1, + mouseenter: !1, + tap: !1, + touchstart: !1 + }, + updateAnimation: "rotate", + zIndex: 9999999 + }, + g = "undefined" != typeof window ? window : null, + h = { + hasTouchCapability: !( + !g || + !( + "ontouchstart" in g || + (g.DocumentTouch && + g.document instanceof g.DocumentTouch) || + g.navigator.maxTouchPoints + ) + ), + hasTransitions: e(), + IE: !1, + semVer: "4.2.6", + window: g + }, + i = function() { + (this.__$emitterPrivate = a({})), + (this.__$emitterPublic = a({})), + (this.__instancesLatestArr = []), + (this.__plugins = {}), + (this._env = h); + }; + (i.prototype = { + __bridge: function(b, c, d) { + if (!c[d]) { + var e = function() {}; + e.prototype = b; + var g = new e(); + g.__init && g.__init(c), + a.each(b, function(a, b) { + 0 != a.indexOf("__") && + (c[a] + ? f.debug && + console.log( + "The " + + a + + " method of the " + + d + + " plugin conflicts with another plugin or native methods" + ) + : ((c[a] = function() { + return g[a].apply( + g, + Array.prototype.slice.apply(arguments) + ); + }), + (c[a].bridged = g))); + }), + (c[d] = g); + } + return this; + }, + __setWindow: function(a) { + return (h.window = a), this; + }, + _getRuler: function(a) { + return new b(a); + }, + _off: function() { + return ( + this.__$emitterPrivate.off.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _on: function() { + return ( + this.__$emitterPrivate.on.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _one: function() { + return ( + this.__$emitterPrivate.one.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _plugin: function(b) { + var c = this; + if ("string" == typeof b) { + var d = b, + e = null; + return ( + d.indexOf(".") > 0 + ? (e = c.__plugins[d]) + : a.each(c.__plugins, function(a, b) { + return b.name.substring( + b.name.length - d.length - 1 + ) == + "." + d + ? ((e = b), !1) + : void 0; + }), + e + ); + } + if (b.name.indexOf(".") < 0) + throw new Error("Plugins must be namespaced"); + return ( + (c.__plugins[b.name] = b), + b.core && c.__bridge(b.core, c, b.name), + this + ); + }, + _trigger: function() { + var a = Array.prototype.slice.apply(arguments); + return ( + "string" == typeof a[0] && + (a[0] = { + type: a[0] + }), + this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate, a), + this.__$emitterPublic.trigger.apply(this.__$emitterPublic, a), + this + ); + }, + instances: function(b) { + var c = [], + d = b || ".tooltipstered"; + return ( + a(d).each(function() { + var b = a(this), + d = b.data("tooltipster-ns"); + d && + a.each(d, function(a, d) { + c.push(b.data(d)); + }); + }), + c + ); + }, + instancesLatest: function() { + return this.__instancesLatestArr; + }, + off: function() { + return ( + this.__$emitterPublic.off.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + on: function() { + return ( + this.__$emitterPublic.on.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + one: function() { + return ( + this.__$emitterPublic.one.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + origins: function(b) { + var c = b ? b + " " : ""; + return a(c + ".tooltipstered").toArray(); + }, + setDefaults: function(b) { + return a.extend(f, b), this; + }, + triggerHandler: function() { + return ( + this.__$emitterPublic.triggerHandler.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + } + }), + (a.tooltipster = new i()), + (a.Tooltipster = function(b, c) { + (this.__callbacks = { + close: [], + open: [] + }), + this.__closingTime, + this.__Content, + this.__contentBcr, + (this.__destroyed = !1), + (this.__$emitterPrivate = a({})), + (this.__$emitterPublic = a({})), + (this.__enabled = !0), + this.__garbageCollector, + this.__Geometry, + this.__lastPosition, + (this.__namespace = + "tooltipster-" + Math.round(1e6 * Math.random())), + this.__options, + this.__$originParents, + (this.__pointerIsOverOrigin = !1), + (this.__previousThemes = []), + (this.__state = "closed"), + (this.__timeouts = { + close: [], + open: null + }), + (this.__touchEvents = []), + (this.__tracker = null), + this._$origin, + this._$tooltip, + this.__init(b, c); + }), + (a.Tooltipster.prototype = { + __init: function(b, c) { + var d = this; + if ( + ((d._$origin = a(b)), + (d.__options = a.extend(!0, {}, f, c)), + d.__optionsFormat(), + !h.IE || h.IE >= d.__options.IEmin) + ) { + var e = null; + if ( + (void 0 === + d._$origin.data("tooltipster-initialTitle") && + ((e = d._$origin.attr("title")), + void 0 === e && (e = null), + d._$origin.data("tooltipster-initialTitle", e)), + null !== d.__options.content) + ) + d.__contentSet(d.__options.content); + else { + var g, + i = d._$origin.attr("data-tooltip-content"); + i && (g = a(i)), + g && g[0] + ? d.__contentSet(g.first()) + : d.__contentSet(e); + } + d._$origin.removeAttr("title").addClass("tooltipstered"), + d.__prepareOrigin(), + d.__prepareGC(), + a.each(d.__options.plugins, function(a, b) { + d._plug(b); + }), + h.hasTouchCapability && + a(h.window.document.body).on( + "touchmove." + d.__namespace + "-triggerOpen", + function(a) { + d._touchRecordEvent(a); + } + ), + d + ._on("created", function() { + d.__prepareTooltip(); + }) + ._on("repositioned", function(a) { + d.__lastPosition = a.position; + }); + } else d.__options.disabled = !0; + }, + __contentInsert: function() { + var a = this, + b = a._$tooltip.find(".tooltipster-content"), + c = a.__Content, + d = function(a) { + c = a; + }; + return ( + a._trigger({ + type: "format", + content: a.__Content, + format: d + }), + a.__options.functionFormat && + (c = a.__options.functionFormat.call( + a, + a, + { + origin: a._$origin[0] + }, + a.__Content + )), + "string" != typeof c || a.__options.contentAsHTML + ? b.empty().append(c) + : b.text(c), + a + ); + }, + __contentSet: function(b) { + return ( + b instanceof a && + this.__options.contentCloning && + (b = b.clone(!0)), + (this.__Content = b), + this._trigger({ + type: "updated", + content: b + }), + this + ); + }, + __destroyError: function() { + throw new Error( + "This tooltip has been destroyed and cannot execute your method call." + ); + }, + __geometry: function() { + var b = this, + c = b._$origin, + d = b._$origin.is("area"); + if (d) { + var e = b._$origin.parent().attr("name"); + c = a('img[usemap="#' + e + '"]'); + } + var f = c[0].getBoundingClientRect(), + g = a(h.window.document), + i = a(h.window), + j = c, + k = { + available: { + document: null, + window: null + }, + document: { + size: { + height: g.height(), + width: g.width() + } + }, + window: { + scroll: { + left: + h.window.scrollX || + h.window.document.documentElement + .scrollLeft, + top: + h.window.scrollY || + h.window.document.documentElement.scrollTop + }, + size: { + height: i.height(), + width: i.width() + } + }, + origin: { + fixedLineage: !1, + offset: {}, + size: { + height: f.bottom - f.top, + width: f.right - f.left + }, + usemapImage: d ? c[0] : null, + windowOffset: { + bottom: f.bottom, + left: f.left, + right: f.right, + top: f.top + } + } + }; + if (d) { + var l = b._$origin.attr("shape"), + m = b._$origin.attr("coords"); + if ( + (m && + ((m = m.split(",")), + a.map(m, function(a, b) { + m[b] = parseInt(a); + })), + "default" != l) + ) + switch (l) { + case "circle": + var n = m[0], + o = m[1], + p = m[2], + q = o - p, + r = n - p; + (k.origin.size.height = 2 * p), + (k.origin.size.width = + k.origin.size.height), + (k.origin.windowOffset.left += r), + (k.origin.windowOffset.top += q); + break; + case "rect": + var s = m[0], + t = m[1], + u = m[2], + v = m[3]; + (k.origin.size.height = v - t), + (k.origin.size.width = u - s), + (k.origin.windowOffset.left += s), + (k.origin.windowOffset.top += t); + break; + case "poly": + for ( + var w = 0, + x = 0, + y = 0, + z = 0, + A = "even", + B = 0; + B < m.length; + B++ + ) { + var C = m[B]; + "even" == A + ? (C > y && + ((y = C), 0 === B && (w = y)), + w > C && (w = C), + (A = "odd")) + : (C > z && + ((z = C), 1 == B && (x = z)), + x > C && (x = C), + (A = "even")); + } + (k.origin.size.height = z - x), + (k.origin.size.width = y - w), + (k.origin.windowOffset.left += w), + (k.origin.windowOffset.top += x); + } + } + var D = function(a) { + (k.origin.size.height = a.height), + (k.origin.windowOffset.left = a.left), + (k.origin.windowOffset.top = a.top), + (k.origin.size.width = a.width); + }; + for ( + b._trigger({ + type: "geometry", + edit: D, + geometry: { + height: k.origin.size.height, + left: k.origin.windowOffset.left, + top: k.origin.windowOffset.top, + width: k.origin.size.width + } + }), + k.origin.windowOffset.right = + k.origin.windowOffset.left + k.origin.size.width, + k.origin.windowOffset.bottom = + k.origin.windowOffset.top + k.origin.size.height, + k.origin.offset.left = + k.origin.windowOffset.left + k.window.scroll.left, + k.origin.offset.top = + k.origin.windowOffset.top + k.window.scroll.top, + k.origin.offset.bottom = + k.origin.offset.top + k.origin.size.height, + k.origin.offset.right = + k.origin.offset.left + k.origin.size.width, + k.available.document = { + bottom: { + height: + k.document.size.height - + k.origin.offset.bottom, + width: k.document.size.width + }, + left: { + height: k.document.size.height, + width: k.origin.offset.left + }, + right: { + height: k.document.size.height, + width: + k.document.size.width - + k.origin.offset.right + }, + top: { + height: k.origin.offset.top, + width: k.document.size.width + } + }, + k.available.window = { + bottom: { + height: Math.max( + k.window.size.height - + Math.max( + k.origin.windowOffset.bottom, + 0 + ), + 0 + ), + width: k.window.size.width + }, + left: { + height: k.window.size.height, + width: Math.max(k.origin.windowOffset.left, 0) + }, + right: { + height: k.window.size.height, + width: Math.max( + k.window.size.width - + Math.max( + k.origin.windowOffset.right, + 0 + ), + 0 + ) + }, + top: { + height: Math.max(k.origin.windowOffset.top, 0), + width: k.window.size.width + } + }; + "html" != j[0].tagName.toLowerCase(); + + ) { + if ("fixed" == j.css("position")) { + k.origin.fixedLineage = !0; + break; + } + j = j.parent(); + } + return k; + }, + __optionsFormat: function() { + return ( + "number" == typeof this.__options.animationDuration && + (this.__options.animationDuration = [ + this.__options.animationDuration, + this.__options.animationDuration + ]), + "number" == typeof this.__options.delay && + (this.__options.delay = [ + this.__options.delay, + this.__options.delay + ]), + "number" == typeof this.__options.delayTouch && + (this.__options.delayTouch = [ + this.__options.delayTouch, + this.__options.delayTouch + ]), + "string" == typeof this.__options.theme && + (this.__options.theme = [this.__options.theme]), + null === this.__options.parent + ? (this.__options.parent = a(h.window.document.body)) + : "string" == typeof this.__options.parent && + (this.__options.parent = a(this.__options.parent)), + "hover" == this.__options.trigger + ? ((this.__options.triggerOpen = { + mouseenter: !0, + touchstart: !0 + }), + (this.__options.triggerClose = { + mouseleave: !0, + originClick: !0, + touchleave: !0 + })) + : "click" == this.__options.trigger && + ((this.__options.triggerOpen = { + click: !0, + tap: !0 + }), + (this.__options.triggerClose = { + click: !0, + tap: !0 + })), + this._trigger("options"), + this + ); + }, + __prepareGC: function() { + var b = this; + return ( + b.__options.selfDestruction + ? (b.__garbageCollector = setInterval(function() { + var c = new Date().getTime(); + (b.__touchEvents = a.grep( + b.__touchEvents, + function(a, b) { + return c - a.time > 6e4; + } + )), + d(b._$origin) || + b.close(function() { + b.destroy(); + }); + }, 2e4)) + : clearInterval(b.__garbageCollector), + b + ); + }, + __prepareOrigin: function() { + var a = this; + if ( + (a._$origin.off("." + a.__namespace + "-triggerOpen"), + h.hasTouchCapability && + a._$origin.on( + "touchstart." + + a.__namespace + + "-triggerOpen touchend." + + a.__namespace + + "-triggerOpen touchcancel." + + a.__namespace + + "-triggerOpen", + function(b) { + a._touchRecordEvent(b); + } + ), + a.__options.triggerOpen.click || + (a.__options.triggerOpen.tap && h.hasTouchCapability)) + ) { + var b = ""; + a.__options.triggerOpen.click && + (b += "click." + a.__namespace + "-triggerOpen "), + a.__options.triggerOpen.tap && + h.hasTouchCapability && + (b += "touchend." + a.__namespace + "-triggerOpen"), + a._$origin.on(b, function(b) { + a._touchIsMeaningfulEvent(b) && a._open(b); + }); + } + if ( + a.__options.triggerOpen.mouseenter || + (a.__options.triggerOpen.touchstart && h.hasTouchCapability) + ) { + var b = ""; + a.__options.triggerOpen.mouseenter && + (b += "mouseenter." + a.__namespace + "-triggerOpen "), + a.__options.triggerOpen.touchstart && + h.hasTouchCapability && + (b += + "touchstart." + a.__namespace + "-triggerOpen"), + a._$origin.on(b, function(b) { + (!a._touchIsTouchEvent(b) && + a._touchIsEmulatedEvent(b)) || + ((a.__pointerIsOverOrigin = !0), + a._openShortly(b)); + }); + } + if ( + a.__options.triggerClose.mouseleave || + (a.__options.triggerClose.touchleave && + h.hasTouchCapability) + ) { + var b = ""; + a.__options.triggerClose.mouseleave && + (b += "mouseleave." + a.__namespace + "-triggerOpen "), + a.__options.triggerClose.touchleave && + h.hasTouchCapability && + (b += + "touchend." + + a.__namespace + + "-triggerOpen touchcancel." + + a.__namespace + + "-triggerOpen"), + a._$origin.on(b, function(b) { + a._touchIsMeaningfulEvent(b) && + (a.__pointerIsOverOrigin = !1); + }); + } + return a; + }, + __prepareTooltip: function() { + var b = this, + c = b.__options.interactive ? "auto" : ""; + return ( + b._$tooltip.attr("id", b.__namespace).css({ + "pointer-events": c, + zIndex: b.__options.zIndex + }), + a.each(b.__previousThemes, function(a, c) { + b._$tooltip.removeClass(c); + }), + a.each(b.__options.theme, function(a, c) { + b._$tooltip.addClass(c); + }), + (b.__previousThemes = a.merge([], b.__options.theme)), + b + ); + }, + __scrollHandler: function(b) { + var c = this; + if (c.__options.triggerClose.scroll) c._close(b); + else if (d(c._$origin) && d(c._$tooltip)) { + var e = null; + if (b.target === h.window.document) + c.__Geometry.origin.fixedLineage || + (c.__options.repositionOnScroll && c.reposition(b)); + else { + e = c.__geometry(); + var f = !1; + if ( + ("fixed" != c._$origin.css("position") && + c.__$originParents.each(function(b, c) { + var d = a(c), + g = d.css("overflow-x"), + h = d.css("overflow-y"); + if ("visible" != g || "visible" != h) { + var i = c.getBoundingClientRect(); + if ( + "visible" != g && + (e.origin.windowOffset.left < + i.left || + e.origin.windowOffset.right > + i.right) + ) + return (f = !0), !1; + if ( + "visible" != h && + (e.origin.windowOffset.top < + i.top || + e.origin.windowOffset.bottom > + i.bottom) + ) + return (f = !0), !1; + } + return "fixed" == d.css("position") + ? !1 + : void 0; + }), + f) + ) + c._$tooltip.css("visibility", "hidden"); + else if ( + (c._$tooltip.css("visibility", "visible"), + c.__options.repositionOnScroll) + ) + c.reposition(b); + else { + var g = + e.origin.offset.left - + c.__Geometry.origin.offset.left, + i = + e.origin.offset.top - + c.__Geometry.origin.offset.top; + c._$tooltip.css({ + left: c.__lastPosition.coord.left + g, + top: c.__lastPosition.coord.top + i + }); + } + } + c._trigger({ + type: "scroll", + event: b, + geo: e + }); + } + return c; + }, + __stateSet: function(a) { + return ( + (this.__state = a), + this._trigger({ + type: "state", + state: a + }), + this + ); + }, + __timeoutsClear: function() { + return ( + clearTimeout(this.__timeouts.open), + (this.__timeouts.open = null), + a.each(this.__timeouts.close, function(a, b) { + clearTimeout(b); + }), + (this.__timeouts.close = []), + this + ); + }, + __trackerStart: function() { + var a = this, + b = a._$tooltip.find(".tooltipster-content"); + return ( + a.__options.trackTooltip && + (a.__contentBcr = b[0].getBoundingClientRect()), + (a.__tracker = setInterval(function() { + if (d(a._$origin) && d(a._$tooltip)) { + if (a.__options.trackOrigin) { + var e = a.__geometry(), + f = !1; + c(e.origin.size, a.__Geometry.origin.size) && + (a.__Geometry.origin.fixedLineage + ? c( + e.origin.windowOffset, + a.__Geometry.origin.windowOffset + ) && (f = !0) + : c( + e.origin.offset, + a.__Geometry.origin.offset + ) && (f = !0)), + f || + (a.__options.triggerClose.mouseleave + ? a._close() + : a.reposition()); + } + if (a.__options.trackTooltip) { + var g = b[0].getBoundingClientRect(); + (g.height === a.__contentBcr.height && + g.width === a.__contentBcr.width) || + (a.reposition(), (a.__contentBcr = g)); + } + } else a._close(); + }, a.__options.trackerInterval)), + a + ); + }, + _close: function(b, c, d) { + var e = this, + f = !0; + if ( + (e._trigger({ + type: "close", + event: b, + stop: function() { + f = !1; + } + }), + f || d) + ) { + c && e.__callbacks.close.push(c), + (e.__callbacks.open = []), + e.__timeoutsClear(); + var g = function() { + a.each(e.__callbacks.close, function(a, c) { + c.call(e, e, { + event: b, + origin: e._$origin[0] + }); + }), + (e.__callbacks.close = []); + }; + if ("closed" != e.__state) { + var i = !0, + j = new Date(), + k = j.getTime(), + l = k + e.__options.animationDuration[1]; + if ( + ("disappearing" == e.__state && + l > e.__closingTime && + e.__options.animationDuration[1] > 0 && + (i = !1), + i) + ) { + (e.__closingTime = l), + "disappearing" != e.__state && + e.__stateSet("disappearing"); + var m = function() { + clearInterval(e.__tracker), + e._trigger({ + type: "closing", + event: b + }), + e._$tooltip + .off( + "." + + e.__namespace + + "-triggerClose" + ) + .removeClass("tooltipster-dying"), + a(h.window).off( + "." + e.__namespace + "-triggerClose" + ), + e.__$originParents.each(function(b, c) { + a(c).off( + "scroll." + + e.__namespace + + "-triggerClose" + ); + }), + (e.__$originParents = null), + a(h.window.document.body).off( + "." + e.__namespace + "-triggerClose" + ), + e._$origin.off( + "." + e.__namespace + "-triggerClose" + ), + e._off("dismissable"), + e.__stateSet("closed"), + e._trigger({ + type: "after", + event: b + }), + e.__options.functionAfter && + e.__options.functionAfter.call(e, e, { + event: b, + origin: e._$origin[0] + }), + g(); + }; + h.hasTransitions + ? (e._$tooltip.css({ + "-moz-animation-duration": + e.__options.animationDuration[1] + + "ms", + "-ms-animation-duration": + e.__options.animationDuration[1] + + "ms", + "-o-animation-duration": + e.__options.animationDuration[1] + + "ms", + "-webkit-animation-duration": + e.__options.animationDuration[1] + + "ms", + "animation-duration": + e.__options.animationDuration[1] + + "ms", + "transition-duration": + e.__options.animationDuration[1] + + "ms" + }), + e._$tooltip + .clearQueue() + .removeClass("tooltipster-show") + .addClass("tooltipster-dying"), + e.__options.animationDuration[1] > 0 && + e._$tooltip.delay( + e.__options.animationDuration[1] + ), + e._$tooltip.queue(m)) + : e._$tooltip + .stop() + .fadeOut( + e.__options.animationDuration[1], + m + ); + } + } else g(); + } + return e; + }, + _off: function() { + return ( + this.__$emitterPrivate.off.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _on: function() { + return ( + this.__$emitterPrivate.on.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _one: function() { + return ( + this.__$emitterPrivate.one.apply( + this.__$emitterPrivate, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + _open: function(b, c) { + var e = this; + if (!e.__destroying && d(e._$origin) && e.__enabled) { + var f = !0; + if ( + ("closed" == e.__state && + (e._trigger({ + type: "before", + event: b, + stop: function() { + f = !1; + } + }), + f && + e.__options.functionBefore && + (f = e.__options.functionBefore.call(e, e, { + event: b, + origin: e._$origin[0] + }))), + f !== !1 && null !== e.__Content) + ) { + c && e.__callbacks.open.push(c), + (e.__callbacks.close = []), + e.__timeoutsClear(); + var g, + i = function() { + "stable" != e.__state && e.__stateSet("stable"), + a.each(e.__callbacks.open, function(a, b) { + b.call(e, e, { + origin: e._$origin[0], + tooltip: e._$tooltip[0] + }); + }), + (e.__callbacks.open = []); + }; + if ("closed" !== e.__state) + (g = 0), + "disappearing" === e.__state + ? (e.__stateSet("appearing"), + h.hasTransitions + ? (e._$tooltip + .clearQueue() + .removeClass( + "tooltipster-dying" + ) + .addClass("tooltipster-show"), + e.__options.animationDuration[0] > + 0 && + e._$tooltip.delay( + e.__options + .animationDuration[0] + ), + e._$tooltip.queue(i)) + : e._$tooltip.stop().fadeIn(i)) + : "stable" == e.__state && i(); + else { + if ( + (e.__stateSet("appearing"), + (g = e.__options.animationDuration[0]), + e.__contentInsert(), + e.reposition(b, !0), + h.hasTransitions + ? (e._$tooltip + .addClass( + "tooltipster-" + + e.__options.animation + ) + .addClass("tooltipster-initial") + .css({ + "-moz-animation-duration": + e.__options + .animationDuration[0] + + "ms", + "-ms-animation-duration": + e.__options + .animationDuration[0] + + "ms", + "-o-animation-duration": + e.__options + .animationDuration[0] + + "ms", + "-webkit-animation-duration": + e.__options + .animationDuration[0] + + "ms", + "animation-duration": + e.__options + .animationDuration[0] + + "ms", + "transition-duration": + e.__options + .animationDuration[0] + + "ms" + }), + setTimeout(function() { + "closed" != e.__state && + (e._$tooltip + .addClass("tooltipster-show") + .removeClass( + "tooltipster-initial" + ), + e.__options.animationDuration[0] > + 0 && + e._$tooltip.delay( + e.__options + .animationDuration[0] + ), + e._$tooltip.queue(i)); + }, 0)) + : e._$tooltip + .css("display", "none") + .fadeIn( + e.__options.animationDuration[0], + i + ), + e.__trackerStart(), + a(h.window) + .on( + "resize." + + e.__namespace + + "-triggerClose", + function(b) { + var c = a(document.activeElement); + ((c.is("input") || + c.is("textarea")) && + a.contains( + e._$tooltip[0], + c[0] + )) || + e.reposition(b); + } + ) + .on( + "scroll." + + e.__namespace + + "-triggerClose", + function(a) { + e.__scrollHandler(a); + } + ), + (e.__$originParents = e._$origin.parents()), + e.__$originParents.each(function(b, c) { + a(c).on( + "scroll." + + e.__namespace + + "-triggerClose", + function(a) { + e.__scrollHandler(a); + } + ); + }), + e.__options.triggerClose.mouseleave || + (e.__options.triggerClose.touchleave && + h.hasTouchCapability)) + ) { + e._on("dismissable", function(a) { + a.dismissable + ? a.delay + ? ((m = setTimeout(function() { + e._close(a.event); + }, a.delay)), + e.__timeouts.close.push(m)) + : e._close(a) + : clearTimeout(m); + }); + var j = e._$origin, + k = "", + l = "", + m = null; + e.__options.interactive && + (j = j.add(e._$tooltip)), + e.__options.triggerClose.mouseleave && + ((k += + "mouseenter." + + e.__namespace + + "-triggerClose "), + (l += + "mouseleave." + + e.__namespace + + "-triggerClose ")), + e.__options.triggerClose.touchleave && + h.hasTouchCapability && + ((k += + "touchstart." + + e.__namespace + + "-triggerClose"), + (l += + "touchend." + + e.__namespace + + "-triggerClose touchcancel." + + e.__namespace + + "-triggerClose")), + j + .on(l, function(a) { + if ( + e._touchIsTouchEvent(a) || + !e._touchIsEmulatedEvent(a) + ) { + var b = + "mouseleave" == a.type + ? e.__options.delay + : e.__options + .delayTouch; + e._trigger({ + delay: b[1], + dismissable: !0, + event: a, + type: "dismissable" + }); + } + }) + .on(k, function(a) { + (!e._touchIsTouchEvent(a) && + e._touchIsEmulatedEvent(a)) || + e._trigger({ + dismissable: !1, + event: a, + type: "dismissable" + }); + }); + } + e.__options.triggerClose.originClick && + e._$origin.on( + "click." + e.__namespace + "-triggerClose", + function(a) { + e._touchIsTouchEvent(a) || + e._touchIsEmulatedEvent(a) || + e._close(a); + } + ), + (e.__options.triggerClose.click || + (e.__options.triggerClose.tap && + h.hasTouchCapability)) && + setTimeout(function() { + if ("closed" != e.__state) { + var b = "", + c = a(h.window.document.body); + e.__options.triggerClose.click && + (b += + "click." + + e.__namespace + + "-triggerClose "), + e.__options.triggerClose.tap && + h.hasTouchCapability && + (b += + "touchend." + + e.__namespace + + "-triggerClose"), + c.on(b, function(b) { + e._touchIsMeaningfulEvent( + b + ) && + (e._touchRecordEvent(b), + (e.__options + .interactive && + a.contains( + e._$tooltip[0], + b.target + )) || + e._close(b)); + }), + e.__options.triggerClose.tap && + h.hasTouchCapability && + c.on( + "touchstart." + + e.__namespace + + "-triggerClose", + function(a) { + e._touchRecordEvent( + a + ); + } + ); + } + }, 0), + e._trigger("ready"), + e.__options.functionReady && + e.__options.functionReady.call(e, e, { + origin: e._$origin[0], + tooltip: e._$tooltip[0] + }); + } + if (e.__options.timer > 0) { + var m = setTimeout(function() { + e._close(); + }, e.__options.timer + g); + e.__timeouts.close.push(m); + } + } + } + return e; + }, + _openShortly: function(a) { + var b = this, + c = !0; + if ( + "stable" != b.__state && + "appearing" != b.__state && + !b.__timeouts.open && + (b._trigger({ + type: "start", + event: a, + stop: function() { + c = !1; + } + }), + c) + ) { + var d = + 0 == a.type.indexOf("touch") + ? b.__options.delayTouch + : b.__options.delay; + d[0] + ? (b.__timeouts.open = setTimeout(function() { + (b.__timeouts.open = null), + b.__pointerIsOverOrigin && + b._touchIsMeaningfulEvent(a) + ? (b._trigger("startend"), b._open(a)) + : b._trigger("startcancel"); + }, d[0])) + : (b._trigger("startend"), b._open(a)); + } + return b; + }, + _optionsExtract: function(b, c) { + var d = this, + e = a.extend(!0, {}, c), + f = d.__options[b]; + return ( + f || + ((f = {}), + a.each(c, function(a, b) { + var c = d.__options[a]; + void 0 !== c && (f[a] = c); + })), + a.each(e, function(b, c) { + void 0 !== f[b] && + ("object" != typeof c || + c instanceof Array || + null == c || + "object" != typeof f[b] || + f[b] instanceof Array || + null == f[b] + ? (e[b] = f[b]) + : a.extend(e[b], f[b])); + }), + e + ); + }, + _plug: function(b) { + var c = a.tooltipster._plugin(b); + if (!c) + throw new Error('The "' + b + '" plugin is not defined'); + return ( + c.instance && + a.tooltipster.__bridge(c.instance, this, c.name), + this + ); + }, + _touchIsEmulatedEvent: function(a) { + for ( + var b = !1, + c = new Date().getTime(), + d = this.__touchEvents.length - 1; + d >= 0; + d-- + ) { + var e = this.__touchEvents[d]; + if (!(c - e.time < 500)) break; + e.target === a.target && (b = !0); + } + return b; + }, + _touchIsMeaningfulEvent: function(a) { + return ( + (this._touchIsTouchEvent(a) && + !this._touchSwiped(a.target)) || + (!this._touchIsTouchEvent(a) && + !this._touchIsEmulatedEvent(a)) + ); + }, + _touchIsTouchEvent: function(a) { + return 0 == a.type.indexOf("touch"); + }, + _touchRecordEvent: function(a) { + return ( + this._touchIsTouchEvent(a) && + ((a.time = new Date().getTime()), + this.__touchEvents.push(a)), + this + ); + }, + _touchSwiped: function(a) { + for ( + var b = !1, c = this.__touchEvents.length - 1; + c >= 0; + c-- + ) { + var d = this.__touchEvents[c]; + if ("touchmove" == d.type) { + b = !0; + break; + } + if ("touchstart" == d.type && a === d.target) break; + } + return b; + }, + _trigger: function() { + var b = Array.prototype.slice.apply(arguments); + return ( + "string" == typeof b[0] && + (b[0] = { + type: b[0] + }), + (b[0].instance = this), + (b[0].origin = this._$origin ? this._$origin[0] : null), + (b[0].tooltip = this._$tooltip ? this._$tooltip[0] : null), + this.__$emitterPrivate.trigger.apply( + this.__$emitterPrivate, + b + ), + a.tooltipster._trigger.apply(a.tooltipster, b), + this.__$emitterPublic.trigger.apply( + this.__$emitterPublic, + b + ), + this + ); + }, + _unplug: function(b) { + var c = this; + if (c[b]) { + var d = a.tooltipster._plugin(b); + d.instance && + a.each(d.instance, function(a, d) { + c[a] && c[a].bridged === c[b] && delete c[a]; + }), + c[b].__destroy && c[b].__destroy(), + delete c[b]; + } + return c; + }, + close: function(a) { + return ( + this.__destroyed + ? this.__destroyError() + : this._close(null, a), + this + ); + }, + content: function(a) { + var b = this; + if (void 0 === a) return b.__Content; + if (b.__destroyed) b.__destroyError(); + else if ((b.__contentSet(a), null !== b.__Content)) { + if ( + "closed" !== b.__state && + (b.__contentInsert(), + b.reposition(), + b.__options.updateAnimation) + ) + if (h.hasTransitions) { + var c = b.__options.updateAnimation; + b._$tooltip.addClass("tooltipster-update-" + c), + setTimeout(function() { + "closed" != b.__state && + b._$tooltip.removeClass( + "tooltipster-update-" + c + ); + }, 1e3); + } else + b._$tooltip.fadeTo(200, 0.5, function() { + "closed" != b.__state && + b._$tooltip.fadeTo(200, 1); + }); + } else b._close(); + return b; + }, + destroy: function() { + var b = this; + if (b.__destroyed) b.__destroyError(); + else { + "closed" != b.__state + ? b + .option("animationDuration", 0) + ._close(null, null, !0) + : b.__timeoutsClear(), + b._trigger("destroy"), + (b.__destroyed = !0), + b._$origin + .removeData(b.__namespace) + .off("." + b.__namespace + "-triggerOpen"), + a(h.window.document.body).off( + "." + b.__namespace + "-triggerOpen" + ); + var c = b._$origin.data("tooltipster-ns"); + if (c) + if (1 === c.length) { + var d = null; + "previous" == b.__options.restoration + ? (d = b._$origin.data( + "tooltipster-initialTitle" + )) + : "current" == b.__options.restoration && + (d = + "string" == typeof b.__Content + ? b.__Content + : a("
") + .append(b.__Content) + .html()), + d && b._$origin.attr("title", d), + b._$origin.removeClass("tooltipstered"), + b._$origin + .removeData("tooltipster-ns") + .removeData("tooltipster-initialTitle"); + } else + (c = a.grep(c, function(a, c) { + return a !== b.__namespace; + })), + b._$origin.data("tooltipster-ns", c); + b._trigger("destroyed"), + b._off(), + b.off(), + (b.__Content = null), + (b.__$emitterPrivate = null), + (b.__$emitterPublic = null), + (b.__options.parent = null), + (b._$origin = null), + (b._$tooltip = null), + (a.tooltipster.__instancesLatestArr = a.grep( + a.tooltipster.__instancesLatestArr, + function(a, c) { + return b !== a; + } + )), + clearInterval(b.__garbageCollector); + } + return b; + }, + disable: function() { + return this.__destroyed + ? (this.__destroyError(), this) + : (this._close(), (this.__enabled = !1), this); + }, + elementOrigin: function() { + return this.__destroyed + ? void this.__destroyError() + : this._$origin[0]; + }, + elementTooltip: function() { + return this._$tooltip ? this._$tooltip[0] : null; + }, + enable: function() { + return (this.__enabled = !0), this; + }, + hide: function(a) { + return this.close(a); + }, + instance: function() { + return this; + }, + off: function() { + return ( + this.__destroyed || + this.__$emitterPublic.off.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + on: function() { + return ( + this.__destroyed + ? this.__destroyError() + : this.__$emitterPublic.on.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + one: function() { + return ( + this.__destroyed + ? this.__destroyError() + : this.__$emitterPublic.one.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + }, + open: function(a) { + return ( + this.__destroyed + ? this.__destroyError() + : this._open(null, a), + this + ); + }, + option: function(b, c) { + return void 0 === c + ? this.__options[b] + : (this.__destroyed + ? this.__destroyError() + : ((this.__options[b] = c), + this.__optionsFormat(), + a.inArray(b, [ + "trigger", + "triggerClose", + "triggerOpen" + ]) >= 0 && this.__prepareOrigin(), + "selfDestruction" === b && this.__prepareGC()), + this); + }, + reposition: function(a, b) { + var c = this; + return ( + c.__destroyed + ? c.__destroyError() + : "closed" != c.__state && + d(c._$origin) && + (b || d(c._$tooltip)) && + (b || c._$tooltip.detach(), + (c.__Geometry = c.__geometry()), + c._trigger({ + type: "reposition", + event: a, + helper: { + geo: c.__Geometry + } + })), + c + ); + }, + show: function(a) { + return this.open(a); + }, + status: function() { + return { + destroyed: this.__destroyed, + enabled: this.__enabled, + open: "closed" !== this.__state, + state: this.__state + }; + }, + triggerHandler: function() { + return ( + this.__destroyed + ? this.__destroyError() + : this.__$emitterPublic.triggerHandler.apply( + this.__$emitterPublic, + Array.prototype.slice.apply(arguments) + ), + this + ); + } + }), + (a.fn.tooltipster = function() { + var b = Array.prototype.slice.apply(arguments), + c = + "You are using a single HTML element as content for several tooltips. You probably want to set the contentCloning option to TRUE."; + if (0 === this.length) return this; + if ("string" == typeof b[0]) { + var d = "#*$~&"; + return ( + this.each(function() { + var e = a(this).data("tooltipster-ns"), + f = e ? a(this).data(e[0]) : null; + if (!f) + throw new Error( + "You called Tooltipster's \"" + + b[0] + + '" method on an uninitialized element' + ); + if ("function" != typeof f[b[0]]) + throw new Error('Unknown method "' + b[0] + '"'); + this.length > 1 && + "content" == b[0] && + (b[1] instanceof a || + ("object" == typeof b[1] && + null != b[1] && + b[1].tagName)) && + !f.__options.contentCloning && + f.__options.debug && + console.log(c); + var g = f[b[0]](b[1], b[2]); + return g !== f || "instance" === b[0] + ? ((d = g), !1) + : void 0; + }), + "#*$~&" !== d ? d : this + ); + } + a.tooltipster.__instancesLatestArr = []; + var e = b[0] && void 0 !== b[0].multiple, + g = (e && b[0].multiple) || (!e && f.multiple), + h = b[0] && void 0 !== b[0].content, + i = (h && b[0].content) || (!h && f.content), + j = b[0] && void 0 !== b[0].contentCloning, + k = (j && b[0].contentCloning) || (!j && f.contentCloning), + l = b[0] && void 0 !== b[0].debug, + m = (l && b[0].debug) || (!l && f.debug); + return ( + this.length > 1 && + (i instanceof a || + ("object" == typeof i && null != i && i.tagName)) && + !k && + m && + console.log(c), + this.each(function() { + var c = !1, + d = a(this), + e = d.data("tooltipster-ns"), + f = null; + e + ? g + ? (c = !0) + : m && + (console.log( + "Tooltipster: one or more tooltips are already attached to the element below. Ignoring." + ), + console.log(this)) + : (c = !0), + c && + ((f = new a.Tooltipster(this, b[0])), + e || (e = []), + e.push(f.__namespace), + d.data("tooltipster-ns", e), + d.data(f.__namespace, f), + f.__options.functionInit && + f.__options.functionInit.call(f, f, { + origin: this + }), + f._trigger("init")), + a.tooltipster.__instancesLatestArr.push(f); + }), + this + ); + }), + (b.prototype = { + __init: function(b) { + (this.__$tooltip = b), + this.__$tooltip + .css({ + left: 0, + overflow: "hidden", + position: "absolute", + top: 0 + }) + .find(".tooltipster-content") + .css("overflow", "auto"), + (this.$container = a( + '
' + ) + .append(this.__$tooltip) + .appendTo(h.window.document.body)); + }, + __forceRedraw: function() { + var a = this.__$tooltip.parent(); + this.__$tooltip.detach(), this.__$tooltip.appendTo(a); + }, + constrain: function(a, b) { + return ( + (this.constraints = { + width: a, + height: b + }), + this.__$tooltip.css({ + display: "block", + height: "", + overflow: "auto", + width: a + }), + this + ); + }, + destroy: function() { + this.__$tooltip + .detach() + .find(".tooltipster-content") + .css({ + display: "", + overflow: "" + }), + this.$container.remove(); + }, + free: function() { + return ( + (this.constraints = null), + this.__$tooltip.css({ + display: "", + height: "", + overflow: "visible", + width: "" + }), + this + ); + }, + measure: function() { + this.__forceRedraw(); + var a = this.__$tooltip[0].getBoundingClientRect(), + b = { + size: { + height: a.height || a.bottom - a.top, + width: a.width || a.right - a.left + } + }; + if (this.constraints) { + var c = this.__$tooltip.find(".tooltipster-content"), + d = this.__$tooltip.outerHeight(), + e = c[0].getBoundingClientRect(), + f = { + height: d <= this.constraints.height, + width: + a.width <= this.constraints.width && + e.width >= c[0].scrollWidth - 1 + }; + b.fits = f.height && f.width; + } + return ( + h.IE && + h.IE <= 11 && + b.size.width !== + h.window.document.documentElement.clientWidth && + (b.size.width = Math.ceil(b.size.width) + 1), + b + ); + } + }); + var j = navigator.userAgent.toLowerCase(); + -1 != j.indexOf("msie") + ? (h.IE = parseInt(j.split("msie")[1])) + : -1 !== j.toLowerCase().indexOf("trident") && + -1 !== j.indexOf(" rv:11") + ? (h.IE = 11) + : -1 != j.toLowerCase().indexOf("edge/") && + (h.IE = parseInt(j.toLowerCase().split("edge/")[1])); + var k = "tooltipster.sideTip"; + return ( + a.tooltipster._plugin({ + name: k, + instance: { + __defaults: function() { + return { + arrow: !0, + distance: 6, + functionPosition: null, + maxWidth: null, + minIntersection: 16, + minWidth: 0, + position: null, + side: "top", + viewportAware: !0 + }; + }, + __init: function(a) { + var b = this; + (b.__instance = a), + (b.__namespace = + "tooltipster-sideTip-" + + Math.round(1e6 * Math.random())), + (b.__previousState = "closed"), + b.__options, + b.__optionsFormat(), + b.__instance._on("state." + b.__namespace, function(a) { + "closed" == a.state + ? b.__close() + : "appearing" == a.state && + "closed" == b.__previousState && + b.__create(), + (b.__previousState = a.state); + }), + b.__instance._on( + "options." + b.__namespace, + function() { + b.__optionsFormat(); + } + ), + b.__instance._on( + "reposition." + b.__namespace, + function(a) { + b.__reposition(a.event, a.helper); + } + ); + }, + __close: function() { + this.__instance.content() instanceof a && + this.__instance.content().detach(), + this.__instance._$tooltip.remove(), + (this.__instance._$tooltip = null); + }, + __create: function() { + var b = a( + '
' + ); + this.__options.arrow || + b + .find(".tooltipster-box") + .css("margin", 0) + .end() + .find(".tooltipster-arrow") + .hide(), + this.__options.minWidth && + b.css("min-width", this.__options.minWidth + "px"), + this.__options.maxWidth && + b.css("max-width", this.__options.maxWidth + "px"), + (this.__instance._$tooltip = b), + this.__instance._trigger("created"); + }, + __destroy: function() { + this.__instance._off("." + self.__namespace); + }, + __optionsFormat: function() { + var b = this; + if ( + ((b.__options = b.__instance._optionsExtract( + k, + b.__defaults() + )), + b.__options.position && + (b.__options.side = b.__options.position), + "object" != typeof b.__options.distance && + (b.__options.distance = [b.__options.distance]), + b.__options.distance.length < 4 && + (void 0 === b.__options.distance[1] && + (b.__options.distance[1] = + b.__options.distance[0]), + void 0 === b.__options.distance[2] && + (b.__options.distance[2] = + b.__options.distance[0]), + void 0 === b.__options.distance[3] && + (b.__options.distance[3] = + b.__options.distance[1]), + (b.__options.distance = { + top: b.__options.distance[0], + right: b.__options.distance[1], + bottom: b.__options.distance[2], + left: b.__options.distance[3] + })), + "string" == typeof b.__options.side) + ) { + var c = { + top: "bottom", + right: "left", + bottom: "top", + left: "right" + }; + (b.__options.side = [ + b.__options.side, + c[b.__options.side] + ]), + "left" == b.__options.side[0] || + "right" == b.__options.side[0] + ? b.__options.side.push("top", "bottom") + : b.__options.side.push("right", "left"); + } + 6 === a.tooltipster._env.IE && + b.__options.arrow !== !0 && + (b.__options.arrow = !1); + }, + __reposition: function(b, c) { + var d, + e = this, + f = e.__targetFind(c), + g = []; + e.__instance._$tooltip.detach(); + var h = e.__instance._$tooltip.clone(), + i = a.tooltipster._getRuler(h), + j = !1, + k = e.__instance.option("animation"); + switch ( + (k && h.removeClass("tooltipster-" + k), + a.each(["window", "document"], function(d, k) { + var l = null; + if ( + (e.__instance._trigger({ + container: k, + helper: c, + satisfied: j, + takeTest: function(a) { + l = a; + }, + results: g, + type: "positionTest" + }), + 1 == l || + (0 != l && + 0 == j && + ("window" != k || + e.__options.viewportAware))) + ) + for ( + var d = 0; + d < e.__options.side.length; + d++ + ) { + var m = { + horizontal: 0, + vertical: 0 + }, + n = e.__options.side[d]; + "top" == n || "bottom" == n + ? (m.vertical = e.__options.distance[n]) + : (m.horizontal = + e.__options.distance[n]), + e.__sideChange(h, n), + a.each( + ["natural", "constrained"], + function(a, d) { + if ( + ((l = null), + e.__instance._trigger({ + container: k, + event: b, + helper: c, + mode: d, + results: g, + satisfied: j, + side: n, + takeTest: function(a) { + l = a; + }, + type: "positionTest" + }), + 1 == l || + (0 != l && 0 == j)) + ) { + var h = { + container: k, + distance: m, + fits: null, + mode: d, + outerSize: null, + side: n, + size: null, + target: f[n], + whole: null + }, + o = + "natural" == d + ? i.free() + : i.constrain( + c.geo + .available[ + k + ][n] + .width - + m.horizontal, + c.geo + .available[ + k + ][n] + .height - + m.vertical + ), + p = o.measure(); + if ( + ((h.size = p.size), + (h.outerSize = { + height: + p.size.height + + m.vertical, + width: + p.size.width + + m.horizontal + }), + "natural" == d + ? c.geo.available[ + k + ][n].width >= + h.outerSize + .width && + c.geo.available[ + k + ][n].height >= + h.outerSize + .height + ? (h.fits = !0) + : (h.fits = !1) + : (h.fits = p.fits), + "window" == k && + (h.fits + ? "top" == n || + "bottom" == n + ? (h.whole = + c.geo + .origin + .windowOffset + .right >= + e + .__options + .minIntersection && + c.geo + .window + .size + .width - + c + .geo + .origin + .windowOffset + .left >= + e + .__options + .minIntersection) + : (h.whole = + c.geo + .origin + .windowOffset + .bottom >= + e + .__options + .minIntersection && + c.geo + .window + .size + .height - + c + .geo + .origin + .windowOffset + .top >= + e + .__options + .minIntersection) + : (h.whole = !1)), + g.push(h), + h.whole) + ) + j = !0; + else if ( + "natural" == h.mode && + (h.fits || + h.size.width <= + c.geo.available[ + k + ][n].width) + ) + return !1; + } + } + ); + } + }), + e.__instance._trigger({ + edit: function(a) { + g = a; + }, + event: b, + helper: c, + results: g, + type: "positionTested" + }), + g.sort(function(a, b) { + if (a.whole && !b.whole) return -1; + if (!a.whole && b.whole) return 1; + if (a.whole && b.whole) { + var c = e.__options.side.indexOf(a.side), + d = e.__options.side.indexOf(b.side); + return d > c + ? -1 + : c > d + ? 1 + : "natural" == a.mode + ? -1 + : 1; + } + if (a.fits && !b.fits) return -1; + if (!a.fits && b.fits) return 1; + if (a.fits && b.fits) { + var c = e.__options.side.indexOf(a.side), + d = e.__options.side.indexOf(b.side); + return d > c + ? -1 + : c > d + ? 1 + : "natural" == a.mode + ? -1 + : 1; + } + return "document" == a.container && + "bottom" == a.side && + "natural" == a.mode + ? -1 + : 1; + }), + (d = g[0]), + (d.coord = {}), + d.side) + ) { + case "left": + case "right": + d.coord.top = Math.floor( + d.target - d.size.height / 2 + ); + break; + case "bottom": + case "top": + d.coord.left = Math.floor( + d.target - d.size.width / 2 + ); + } + switch (d.side) { + case "left": + d.coord.left = + c.geo.origin.windowOffset.left - + d.outerSize.width; + break; + case "right": + d.coord.left = + c.geo.origin.windowOffset.right + + d.distance.horizontal; + break; + case "top": + d.coord.top = + c.geo.origin.windowOffset.top - + d.outerSize.height; + break; + case "bottom": + d.coord.top = + c.geo.origin.windowOffset.bottom + + d.distance.vertical; + } + "window" == d.container + ? "top" == d.side || "bottom" == d.side + ? d.coord.left < 0 + ? c.geo.origin.windowOffset.right - + this.__options.minIntersection >= + 0 + ? (d.coord.left = 0) + : (d.coord.left = + c.geo.origin.windowOffset.right - + this.__options.minIntersection - + 1) + : d.coord.left > + c.geo.window.size.width - d.size.width && + (c.geo.origin.windowOffset.left + + this.__options.minIntersection <= + c.geo.window.size.width + ? (d.coord.left = + c.geo.window.size.width - + d.size.width) + : (d.coord.left = + c.geo.origin.windowOffset.left + + this.__options.minIntersection + + 1 - + d.size.width)) + : d.coord.top < 0 + ? c.geo.origin.windowOffset.bottom - + this.__options.minIntersection >= + 0 + ? (d.coord.top = 0) + : (d.coord.top = + c.geo.origin.windowOffset.bottom - + this.__options.minIntersection - + 1) + : d.coord.top > + c.geo.window.size.height - d.size.height && + (c.geo.origin.windowOffset.top + + this.__options.minIntersection <= + c.geo.window.size.height + ? (d.coord.top = + c.geo.window.size.height - + d.size.height) + : (d.coord.top = + c.geo.origin.windowOffset.top + + this.__options.minIntersection + + 1 - + d.size.height)) + : (d.coord.left > + c.geo.window.size.width - d.size.width && + (d.coord.left = + c.geo.window.size.width - d.size.width), + d.coord.left < 0 && (d.coord.left = 0)), + e.__sideChange(h, d.side), + (c.tooltipClone = h[0]), + (c.tooltipParent = e.__instance.option( + "parent" + ).parent[0]), + (c.mode = d.mode), + (c.whole = d.whole), + (c.origin = e.__instance._$origin[0]), + (c.tooltip = e.__instance._$tooltip[0]), + delete d.container, + delete d.fits, + delete d.mode, + delete d.outerSize, + delete d.whole, + (d.distance = + d.distance.horizontal || d.distance.vertical); + var l = a.extend(!0, {}, d); + if ( + (e.__instance._trigger({ + edit: function(a) { + d = a; + }, + event: b, + helper: c, + position: l, + type: "position" + }), + e.__options.functionPosition) + ) { + var m = e.__options.functionPosition.call( + e, + e.__instance, + c, + l + ); + m && (d = m); + } + i.destroy(); + var n, o; + "top" == d.side || "bottom" == d.side + ? ((n = { + prop: "left", + val: d.target - d.coord.left + }), + (o = d.size.width - this.__options.minIntersection)) + : ((n = { + prop: "top", + val: d.target - d.coord.top + }), + (o = d.size.height - this.__options.minIntersection)), + n.val < this.__options.minIntersection + ? (n.val = this.__options.minIntersection) + : n.val > o && (n.val = o); + var p; + (p = c.geo.origin.fixedLineage + ? c.geo.origin.windowOffset + : { + left: + c.geo.origin.windowOffset.left + + c.geo.window.scroll.left, + top: + c.geo.origin.windowOffset.top + + c.geo.window.scroll.top + }), + (d.coord = { + left: + p.left + + (d.coord.left - c.geo.origin.windowOffset.left), + top: + p.top + + (d.coord.top - c.geo.origin.windowOffset.top) + }), + e.__sideChange(e.__instance._$tooltip, d.side), + c.geo.origin.fixedLineage + ? e.__instance._$tooltip.css("position", "fixed") + : e.__instance._$tooltip.css("position", ""), + e.__instance._$tooltip + .css({ + left: d.coord.left, + top: d.coord.top, + height: d.size.height, + width: d.size.width + }) + .find(".tooltipster-arrow") + .css({ + left: "", + top: "" + }) + .css(n.prop, n.val), + e.__instance._$tooltip.appendTo( + e.__instance.option("parent") + ), + e.__instance._trigger({ + type: "repositioned", + event: b, + position: d + }); + }, + __sideChange: function(a, b) { + a.removeClass("tooltipster-bottom") + .removeClass("tooltipster-left") + .removeClass("tooltipster-right") + .removeClass("tooltipster-top") + .addClass("tooltipster-" + b); + }, + __targetFind: function(a) { + var b = {}, + c = this.__instance._$origin[0].getClientRects(); + if (c.length > 1) { + var d = this.__instance._$origin.css("opacity"); + 1 == d && + (this.__instance._$origin.css("opacity", 0.99), + (c = this.__instance._$origin[0].getClientRects()), + this.__instance._$origin.css("opacity", 1)); + } + if (c.length < 2) + (b.top = Math.floor( + a.geo.origin.windowOffset.left + + a.geo.origin.size.width / 2 + )), + (b.bottom = b.top), + (b.left = Math.floor( + a.geo.origin.windowOffset.top + + a.geo.origin.size.height / 2 + )), + (b.right = b.left); + else { + var e = c[0]; + (b.top = Math.floor(e.left + (e.right - e.left) / 2)), + (e = + c.length > 2 + ? c[Math.ceil(c.length / 2) - 1] + : c[0]), + (b.right = Math.floor( + e.top + (e.bottom - e.top) / 2 + )), + (e = c[c.length - 1]), + (b.bottom = Math.floor( + e.left + (e.right - e.left) / 2 + )), + (e = + c.length > 2 + ? c[Math.ceil((c.length + 1) / 2) - 1] + : c[c.length - 1]), + (b.left = Math.floor( + e.top + (e.bottom - e.top) / 2 + )); + } + return b; + } + } + }), + a + ); +}); +("use strict"); +var _slicedToArray = (function() { + function sliceIterator(arr, i) { + var _arr = []; + var _n = !0; + var _d = !1; + var _e = undefined; + try { + for ( + var _i = arr[Symbol.iterator](), _s; + !(_n = (_s = _i.next()).done); + _n = !0 + ) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = !0; + _e = err; + } finally { + try { + if (!_n && _i["return"]) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + return function(arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + return sliceIterator(arr, i); + } else { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance" + ); + } + }; +})(); +var _createClass = (function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || !1; + descriptor.configurable = !0; + if ("value" in descriptor) descriptor.writable = !0; + 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 _typeof(obj) { + return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol + ? "symbol" + : typeof obj; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +/** + * A Twitter library in JavaScript + * + * @package codebird + * @version 3.0.0-dev + * @author Jublo Solutions + * @copyright 2010-2016 Jublo Solutions + * @license http://opensource.org/licenses/GPL-3.0 GNU Public License 3.0 + * @link https://github.com/jublonet/codebird-php + */ +(function() { + var Codebird = (function() { + function Codebird() { + _classCallCheck(this, Codebird); + this._oauth_consumer_key = null; + this._oauth_consumer_secret = null; + this._oauth_bearer_token = null; + this._endpoint_base = "https://api.twitter.com/"; + this._endpoint_base_media = "https://upload.twitter.com/"; + this._endpoint = this._endpoint_base + "1.1/"; + this._endpoint_media = this._endpoint_base_media + "1.1/"; + this._endpoint_publish = "https://publish.twitter.com/"; + this._endpoint_oauth = this._endpoint_base; + this._endpoint_proxy = "https://api.jublo.net/codebird/"; + this._use_proxy = + typeof navigator !== "undefined" && + typeof navigator.userAgent !== "undefined"; + this._oauth_token = null; + this._oauth_token_secret = null; + this._version = "3.0.0-dev"; + this.b64_alphabet = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + } + _createClass(Codebird, [ + { + key: "setConsumerKey", + value: function setConsumerKey(key, secret) { + this._oauth_consumer_key = key; + this._oauth_consumer_secret = secret; + } + }, + { + key: "setBearerToken", + value: function setBearerToken(token) { + this._oauth_bearer_token = token; + } + }, + { + key: "getVersion", + value: function getVersion() { + return this._version; + } + }, + { + key: "setToken", + value: function setToken(token, secret) { + this._oauth_token = token; + this._oauth_token_secret = secret; + } + }, + { + key: "logout", + value: function logout() { + this._oauth_token = this._oauth_token_secret = null; + return !0; + } + }, + { + key: "setUseProxy", + value: function setUseProxy(use_proxy) { + this._use_proxy = !!use_proxy; + } + }, + { + key: "setProxy", + value: function setProxy(proxy) { + if (!proxy.match(/\/$/)) { + proxy += "/"; + } + this._endpoint_proxy = proxy; + } + }, + { + key: "_url", + value: function _url(data) { + if ( + /boolean|number|string/.test( + typeof data === "undefined" + ? "undefined" + : _typeof(data) + ) + ) { + return encodeURIComponent(data) + .replace(/!/g, "%21") + .replace(/'/g, "%27") + .replace(/\(/g, "%28") + .replace(/\)/g, "%29") + .replace(/\*/g, "%2A"); + } else { + return ""; + } + } + }, + { + key: "_sha1", + value: function _sha1(e) { + function n(e, b) { + e[b >> 5] |= 128 << (24 - (b % 32)); + e[(((b + 64) >> 9) << 4) + 15] = b; + for ( + var c = new Array(80), + a = 1732584193, + d = -271733879, + h = -1732584194, + k = 271733878, + g = -1009589776, + p = 0; + p < e.length; + p += 16 + ) { + for ( + var o = a, q = d, r = h, s = k, t = g, f = 0; + 80 > f; + f++ + ) { + var m = undefined; + if (f < 16) { + m = e[p + f]; + } else { + m = + c[f - 3] ^ + c[f - 8] ^ + c[f - 14] ^ + c[f - 16]; + m = (m << 1) | (m >>> 31); + } + c[f] = m; + m = l( + l( + (a << 5) | (a >>> 27), + 20 > f + ? (d & h) | (~d & k) + : 40 > f + ? d ^ h ^ k + : 60 > f + ? (d & h) | (d & k) | (h & k) + : d ^ h ^ k + ), + l( + l(g, c[f]), + 20 > f + ? 1518500249 + : 40 > f + ? 1859775393 + : 60 > f + ? -1894007588 + : -899497514 + ) + ); + g = k; + k = h; + h = (d << 30) | (d >>> 2); + d = a; + a = m; + } + a = l(a, o); + d = l(d, q); + h = l(h, r); + k = l(k, s); + g = l(g, t); + } + return [a, d, h, k, g]; + } + + function l(e, b) { + var c = (e & 65535) + (b & 65535); + return ( + (((e >> 16) + (b >> 16) + (c >> 16)) << 16) | + (c & 65535) + ); + } + + function q(e) { + for ( + var b = [], c = (1 << g) - 1, a = 0; + a < e.length * g; + a += g + ) { + b[a >> 5] |= + (e.charCodeAt(a / g) & c) << (24 - (a % 32)); + } + return b; + } + var g = 8; + var b = + this._oauth_consumer_secret + + "&" + + (null !== this._oauth_token_secret + ? this._oauth_token_secret + : ""); + if (this._oauth_consumer_secret === null) { + throw "To generate a hash, the consumer secret must be set."; + } + var c = q(b); + if (c.length > 16) { + c = n(c, b.length * g); + } + var bb = new Array(16); + for (var a = new Array(16), d = 0; d < 16; d++) { + a[d] = c[d] ^ 909522486; + bb[d] = c[d] ^ 1549556828; + } + c = n(a.concat(q(e)), 512 + e.length * g); + bb = n(bb.concat(c), 672); + b = ""; + for (g = 0; g < 4 * bb.length; g += 3) { + for ( + d = + (((bb[g >> 2] >> (8 * (3 - (g % 4)))) & 255) << + 16) | + (((bb[(g + 1) >> 2] >> + (8 * (3 - ((g + 1) % 4)))) & + 255) << + 8) | + ((bb[(g + 2) >> 2] >> + (8 * (3 - ((g + 2) % 4)))) & + 255), + e = 0; + 4 > e; + e++ + ) { + b = + 8 * g + 6 * e > 32 * bb.length + ? b + "=" + : b + + this.b64_alphabet.charAt( + (d >> (6 * (3 - e))) & 63 + ); + } + } + return b; + } + }, + { + key: "_base64_encode", + value: function _base64_encode(a) { + var d = undefined, + e = undefined, + f = undefined, + b = undefined, + g = 0, + h = 0, + i = this.b64_alphabet, + c = []; + if (!a) { + return a; + } + do { + d = a.charCodeAt(g++); + e = a.charCodeAt(g++); + f = a.charCodeAt(g++); + b = (d << 16) | (e << 8) | f; + d = (b >> 18) & 63; + e = (b >> 12) & 63; + f = (b >> 6) & 63; + b &= 63; + c[h++] = + i.charAt(d) + + i.charAt(e) + + i.charAt(f) + + i.charAt(b); + } while (g < a.length); + i = c.join(""); + a = a.length % 3; + return (a ? i.slice(0, a - 3) : i) + "===".slice(a || 3); + } + }, + { + key: "_http_build_query", + value: function _http_build_query(e, f, b) { + function g(c, a, d) { + var b = undefined, + e = []; + if (a === !0) { + a = "1"; + } else if (a === !1) { + a = "0"; + } + if (null !== a) { + if ( + (typeof a === "undefined" + ? "undefined" + : _typeof(a)) === "object" + ) { + for (b in a) { + if (a.hasOwnProperty(b) && a[b] !== null) { + e.push( + g.call( + this, + c + "[" + b + "]", + a[b], + d + ) + ); + } + } + return e.join(d); + } + if (typeof a !== "function") { + return this._url(c) + "=" + this._url(a); + } + throw "There was an error processing for http_build_query()."; + } else { + return ""; + } + } + var d, + c, + h = []; + if (!b) { + b = "&"; + } + for (c in e) { + if (!e.hasOwnProperty(c)) { + continue; + } + d = e[c]; + if (f && !isNaN(c)) { + c = String(f) + c; + } + d = g.call(this, c, d, b); + if (d !== "") { + h.push(d); + } + } + return h.join(b); + } + }, + { + key: "_nonce", + value: function _nonce() { + var length = + arguments.length <= 0 || arguments[0] === undefined + ? 8 + : arguments[0]; + if (length < 1) { + throw "Invalid nonce length."; + } + var nonce = ""; + for (var i = 0; i < length; i++) { + var character = Math.floor(Math.random() * 61); + nonce += this.b64_alphabet.substring( + character, + character + 1 + ); + } + return nonce; + } + }, + { + key: "_ksort", + value: function _ksort(input_arr) { + var keys = [], + sorter = undefined, + k = undefined; + sorter = function(a, b) { + var a_float = parseFloat(a), + b_float = parseFloat(b), + a_numeric = a_float + "" === a, + b_numeric = b_float + "" === b; + if (a_numeric && b_numeric) { + return a_float > b_float + ? 1 + : a_float < b_float + ? -1 + : 0; + } else if (a_numeric && !b_numeric) { + return 1; + } else if (!a_numeric && b_numeric) { + return -1; + } + return a > b ? 1 : a < b ? -1 : 0; + }; + for (k in input_arr) { + if (input_arr.hasOwnProperty(k)) { + keys.push(k); + } + } + keys.sort(sorter); + return keys; + } + }, + { + key: "_clone", + value: function _clone(obj) { + var clone = {}; + for (var i in obj) { + if (_typeof(obj[i]) === "object") { + clone[i] = this._clone(obj[i]); + } else { + clone[i] = obj[i]; + } + } + return clone; + } + }, + { + key: "_getXmlRequestObject", + value: function _getXmlRequestObject() { + var xml = null; + if ( + (typeof window === "undefined" + ? "undefined" + : _typeof(window)) === "object" && + window && + typeof window.XMLHttpRequest !== "undefined" + ) { + xml = new window.XMLHttpRequest(); + } else if ( + (typeof Ti === "undefined" + ? "undefined" + : _typeof(Ti)) === "object" && + Ti && + typeof Ti.Network.createHTTPClient !== "undefined" + ) { + xml = Ti.Network.createHTTPClient(); + } else if (typeof ActiveXObject !== "undefined") { + try { + xml = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) { + throw "ActiveXObject object not defined."; + } + } else if (typeof require === "function") { + var XMLHttpRequest; + try { + XMLHttpRequest = require("xmlhttprequest") + .XMLHttpRequest; + xml = new XMLHttpRequest(); + } catch (e1) { + try { + XMLHttpRequest = require("xhr2"); + xml = new XMLHttpRequest(); + } catch (e2) { + throw "xhr2 object not defined, cancelling."; + } + } + } + return xml; + } + }, + { + key: "_parse_str", + value: function _parse_str(str, array) { + var glue1 = "=", + glue2 = "&", + array2 = String(str) + .replace(/^&?([\s\S]*?)&?$/, "$1") + .split(glue2), + i, + j, + chr, + tmp, + key, + value, + bracket, + keys, + evalStr, + fixStr = function fixStr(str) { + return decodeURIComponent(str) + .replace(/([\\"'])/g, "\\$1") + .replace(/\n/g, "\\n") + .replace(/\r/g, "\\r"); + }; + if (!array) { + array = this.window; + } + for (i = 0; i < array2.length; i++) { + tmp = array2[i].split(glue1); + if (tmp.length < 2) { + tmp = [tmp, ""]; + } + key = fixStr(tmp[0]); + value = fixStr(tmp[1]); + while (key.charAt(0) === " ") { + key = key.substr(1); + } + if (key.indexOf("\0") > -1) { + key = key.substr(0, key.indexOf("\0")); + } + if (key && key.charAt(0) !== "[") { + keys = []; + bracket = 0; + for (j = 0; j < key.length; j++) { + if (key.charAt(j) === "[" && !bracket) { + bracket = j + 1; + } else if (key.charAt(j) === "]") { + if (bracket) { + if (!keys.length) { + keys.push( + key.substr(0, bracket - 1) + ); + } + keys.push( + key.substr(bracket, j - bracket) + ); + bracket = 0; + if (key.charAt(j + 1) !== "[") { + break; + } + } + } + } + if (!keys.length) { + keys = [key]; + } + for (j = 0; j < keys[0].length; j++) { + chr = keys[0].charAt(j); + if (chr === " " || chr === "." || chr === "[") { + keys[0] = + keys[0].substr(0, j) + + "_" + + keys[0].substr(j + 1); + } + if (chr === "[") { + break; + } + } + evalStr = "array"; + for (j = 0; j < keys.length; j++) { + key = keys[j]; + if ((key !== "" && key !== " ") || j === 0) { + key = "'" + key + "'"; + } else { + key = eval(evalStr + ".push([]);") - 1; + } + evalStr += "[" + key + "]"; + if ( + j !== keys.length - 1 && + eval("typeof " + evalStr) === "undefined" + ) { + eval(evalStr + " = [];"); + } + } + evalStr += " = '" + value + "';\n"; + eval(evalStr); + } + } + } + }, + { + key: "getApiMethods", + value: function getApiMethods() { + var httpmethods = { + GET: [ + "account/settings", + "account/verify_credentials", + "application/rate_limit_status", + "blocks/ids", + "blocks/list", + "collections/entries", + "collections/list", + "collections/show", + "direct_messages", + "direct_messages/sent", + "direct_messages/show", + "favorites/list", + "followers/ids", + "followers/list", + "friends/ids", + "friends/list", + "friendships/incoming", + "friendships/lookup", + "friendships/lookup", + "friendships/no_retweets/ids", + "friendships/outgoing", + "friendships/show", + "geo/id/:place_id", + "geo/reverse_geocode", + "geo/search", + "geo/similar_places", + "help/configuration", + "help/languages", + "help/privacy", + "help/tos", + "lists/list", + "lists/members", + "lists/members/show", + "lists/memberships", + "lists/ownerships", + "lists/show", + "lists/statuses", + "lists/subscribers", + "lists/subscribers/show", + "lists/subscriptions", + "mutes/users/ids", + "mutes/users/list", + "oauth/authenticate", + "oauth/authorize", + "saved_searches/list", + "saved_searches/show/:id", + "search/tweets", + "site", + "statuses/firehose", + "statuses/home_timeline", + "statuses/mentions_timeline", + "statuses/oembed", + "statuses/retweeters/ids", + "statuses/retweets/:id", + "statuses/retweets_of_me", + "statuses/sample", + "statuses/show/:id", + "statuses/user_timeline", + "trends/available", + "trends/closest", + "trends/place", + "user", + "users/contributees", + "users/contributors", + "users/profile_banner", + "users/search", + "users/show", + "users/suggestions", + "users/suggestions/:slug", + "users/suggestions/:slug/members" + ], + POST: [ + "account/remove_profile_banner", + "account/settings__post", + "account/update_delivery_device", + "account/update_profile", + "account/update_profile_background_image", + "account/update_profile_banner", + "account/update_profile_colors", + "account/update_profile_image", + "blocks/create", + "blocks/destroy", + "collections/create", + "collections/destroy", + "collections/entries/add", + "collections/entries/curate", + "collections/entries/move", + "collections/entries/remove", + "collections/update", + "direct_messages/destroy", + "direct_messages/new", + "favorites/create", + "favorites/destroy", + "friendships/create", + "friendships/destroy", + "friendships/update", + "lists/create", + "lists/destroy", + "lists/members/create", + "lists/members/create_all", + "lists/members/destroy", + "lists/members/destroy_all", + "lists/subscribers/create", + "lists/subscribers/destroy", + "lists/update", + "media/upload", + "mutes/users/create", + "mutes/users/destroy", + "oauth/access_token", + "oauth/request_token", + "oauth2/invalidate_token", + "oauth2/token", + "saved_searches/create", + "saved_searches/destroy/:id", + "statuses/destroy/:id", + "statuses/filter", + "statuses/lookup", + "statuses/retweet/:id", + "statuses/unretweet/:id", + "statuses/update", + "statuses/update_with_media", + "users/lookup", + "users/report_spam" + ] + }; + return httpmethods; + } + }, + { + key: "_getDfd", + value: function _getDfd() { + if (typeof window !== "undefined") { + if ( + typeof window.jQuery !== "undefined" && + window.jQuery.Deferred + ) { + return window.jQuery.Deferred(); + } + if (typeof window.Q !== "undefined" && window.Q.defer) { + return window.Q.defer(); + } + if ( + typeof window.RSVP !== "undefined" && + window.RSVP.defer + ) { + return window.RSVP.defer(); + } + if ( + typeof window.when !== "undefined" && + window.when.defer + ) { + return window.when.defer(); + } + } + if (typeof require !== "undefined") { + var promise_class = !1; + try { + promise_class = require("jquery"); + } catch (e) {} + if (promise_class) { + return promise_class.Deferred(); + } + try { + promise_class = require("q"); + } catch (e) {} + if (!promise_class) { + try { + promise_class = require("rsvp"); + } catch (e) {} + } + if (!promise_class) { + try { + promise_class = require("when"); + } catch (e) {} + } + if (promise_class) { + try { + return promise_class.defer(); + } catch (e) {} + } + } + return !1; + } + }, + { + key: "_getPromise", + value: function _getPromise(dfd) { + if (typeof dfd.promise === "function") { + return dfd.promise(); + } + return dfd.promise; + } + }, + { + key: "_parseApiParams", + value: function _parseApiParams(params) { + var apiparams = {}; + if ( + (typeof params === "undefined" + ? "undefined" + : _typeof(params)) === "object" + ) { + apiparams = params; + } else { + this._parse_str(params, apiparams); + } + return apiparams; + } + }, + { + key: "_stringifyNullBoolParams", + value: function _stringifyNullBoolParams(apiparams) { + for (var key in apiparams) { + if (!apiparams.hasOwnProperty(key)) { + continue; + } + var value = apiparams[key]; + if (value === null) { + apiparams[key] = "null"; + } else if (value === !0 || value === !1) { + apiparams[key] = value ? "true" : "false"; + } + } + return apiparams; + } + }, + { + key: "_mapFnInsertSlashes", + value: function _mapFnInsertSlashes(fn) { + return fn.split("_").join("/"); + } + }, + { + key: "_mapFnRestoreParamUnderscores", + value: function _mapFnRestoreParamUnderscores(method) { + var url_parameters_with_underscore = [ + "screen_name", + "place_id" + ]; + var i = undefined, + param = undefined, + replacement_was = undefined; + for ( + i = 0; + i < url_parameters_with_underscore.length; + i++ + ) { + param = url_parameters_with_underscore[i].toUpperCase(); + replacement_was = param.split("_").join("/"); + method = method.split(replacement_was).join(param); + } + return method; + } + }, + { + key: "_mapFnToApiMethod", + value: function _mapFnToApiMethod(fn, apiparams) { + var method = "", + param = undefined, + i = undefined, + j = undefined; + method = this._mapFnInsertSlashes(fn); + method = this._mapFnRestoreParamUnderscores(method); + var method_template = method; + var match = method.match(/[A-Z_]{2,}/); + if (match) { + for (i = 0; i < match.length; i++) { + param = match[i]; + var param_l = param.toLowerCase(); + method_template = method_template + .split(param) + .join(":" + param_l); + if (typeof apiparams[param_l] === "undefined") { + for (j = 0; j < 26; j++) { + method_template = method_template + .split(String.fromCharCode(65 + j)) + .join( + "_" + String.fromCharCode(97 + j) + ); + } + throw 'To call the templated method "' + + method_template + + '", specify the parameter value for "' + + param_l + + '".'; + } + method = method + .split(param) + .join(apiparams[param_l]); + delete apiparams[param_l]; + } + } + for (i = 0; i < 26; i++) { + method = method + .split(String.fromCharCode(65 + i)) + .join("_" + String.fromCharCode(97 + i)); + method_template = method_template + .split(String.fromCharCode(65 + i)) + .join("_" + String.fromCharCode(97 + i)); + } + return [method, method_template]; + } + }, + { + key: "_detectMethod", + value: function _detectMethod(method, params) { + if (typeof params.httpmethod !== "undefined") { + var httpmethod = params.httpmethod; + delete params.httpmethod; + return httpmethod; + } + switch (method) { + case "account/settings": + case "account/login_verification_enrollment": + case "account/login_verification_request": + method = Object.keys(params).length + ? method + "__post" + : method; + break; + } + var apimethods = this.getApiMethods(); + for (var httpmethod in apimethods) { + if ( + apimethods.hasOwnProperty(httpmethod) && + apimethods[httpmethod].indexOf(method) > -1 + ) { + return httpmethod; + } + } + throw "Can't find HTTP method to use for \"" + + method + + '".'; + } + }, + { + key: "_detectMultipart", + value: function _detectMultipart(method) { + var multiparts = [ + "statuses/update_with_media", + "media/upload", + "account/update_profile_background_image", + "account/update_profile_image", + "account/update_profile_banner" + ]; + return multiparts.indexOf(method) > -1; + } + }, + { + key: "_getSignature", + value: function _getSignature( + httpmethod, + method, + keys, + base_params + ) { + var base_string = "", + key = undefined, + value = undefined; + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + value = base_params[key]; + base_string += key + "=" + this._url(value) + "&"; + } + base_string = base_string.substring( + 0, + base_string.length - 1 + ); + return this._sha1( + httpmethod + + "&" + + this._url(method) + + "&" + + this._url(base_string) + ); + } + }, + { + key: "_time", + value: function _time() { + return Math.round(new Date().getTime() / 1000); + } + }, + { + key: "_sign", + value: function _sign(httpmethod, method) { + var params = + arguments.length <= 2 || arguments[2] === undefined + ? {} + : arguments[2]; + if (this._oauth_consumer_key === null) { + throw "To generate a signature, the consumer key must be set."; + } + var sign_params = { + consumer_key: this._oauth_consumer_key, + version: "1.0", + timestamp: this._time(), + nonce: this._nonce(), + signature_method: "HMAC-SHA1" + }; + var sign_base_params = {}; + for (var key in sign_params) { + if (!sign_params.hasOwnProperty(key)) { + continue; + } + var value = sign_params[key]; + sign_base_params["oauth_" + key] = this._url(value); + } + if (this._oauth_token !== null) { + sign_base_params.oauth_token = this._url( + this._oauth_token + ); + } + var oauth_params = this._clone(sign_base_params); + for (key in params) { + if (!params.hasOwnProperty(key)) { + continue; + } + sign_base_params[key] = params[key]; + } + var keys = this._ksort(sign_base_params); + var signature = this._getSignature( + httpmethod, + method, + keys, + sign_base_params + ); + params = oauth_params; + params.oauth_signature = signature; + keys = this._ksort(params); + var authorization = "OAuth "; + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + authorization += + key + '="' + this._url(params[key]) + '", '; + } + return authorization.substring(0, authorization.length - 2); + } + }, + { + key: "_buildMultipart", + value: function _buildMultipart(method, params) { + if (!this._detectMultipart(method)) { + return; + } + var possible_methods = [ + "media/upload", + "statuses/update_with_media", + "account/update_profile_background_image", + "account/update_profile_image", + "account/update_profile_banner" + ]; + var possible_files = { + "media/upload": "media", + "statuses/update_with_media": "media[]", + "account/update_profile_background_image": "image", + "account/update_profile_image": "image", + "account/update_profile_banner": "banner" + }; + if (possible_methods.indexOf(method) === -1) { + return; + } + possible_files = possible_files[method].split(" "); + var multipart_border = + "--------------------" + this._nonce(); + var multipart_request = ""; + for (var key in params) { + if (!params.hasOwnProperty(key)) { + continue; + } + multipart_request += + "--" + + multipart_border + + '\r\nContent-Disposition: form-data; name="' + + key + + '"'; + if (possible_files.indexOf(key) === -1) { + multipart_request += + "\r\nContent-Transfer-Encoding: base64"; + } + multipart_request += "\r\n\r\n" + params[key] + "\r\n"; + } + multipart_request += "--" + multipart_border + "--"; + return multipart_request; + } + }, + { + key: "_detectMedia", + value: function _detectMedia(method) { + var medias = ["media/upload"]; + return medias.indexOf(method) > -1; + } + }, + { + key: "_detectJsonBody", + value: function _detectJsonBody(method) { + var json_bodies = ["collections/entries/curate"]; + return json_bodies.indexOf(method) > -1; + } + }, + { + key: "_getEndpoint", + value: function _getEndpoint(method) { + var url = undefined; + if (method.substring(0, 5) === "oauth") { + url = this._endpoint_oauth + method; + } else if (this._detectMedia(method)) { + url = this._endpoint_media + method + ".json"; + } else if (method === "statuses/oembed") { + url = this._endpoint_publish + "oembed"; + } else { + url = this._endpoint + method + ".json"; + } + return url; + } + }, + { + key: "_parseApiReply", + value: function _parseApiReply(reply) { + if (typeof reply !== "string" || reply === "") { + return {}; + } + if (reply === "[]") { + return []; + } + var parsed = undefined; + try { + parsed = JSON.parse(reply); + } catch (e) { + parsed = {}; + var elements = reply.split("&"); + for (var i = 0; i < elements.length; i++) { + var element = elements[i].split("=", 2); + if (element.length > 1) { + parsed[element[0]] = decodeURIComponent( + element[1] + ); + } else { + parsed[element[0]] = null; + } + } + } + return parsed; + } + }, + { + key: "oauth_authenticate", + value: function oauth_authenticate() { + var params = + arguments.length <= 0 || arguments[0] === undefined + ? {} + : arguments[0]; + var callback = + arguments.length <= 1 || arguments[1] === undefined + ? undefined + : arguments[1]; + var type = + arguments.length <= 2 || arguments[2] === undefined + ? "authenticate" + : arguments[2]; + var dfd = this._getDfd(); + if (typeof params.force_login === "undefined") { + params.force_login = null; + } + if (typeof params.screen_name === "undefined") { + params.screen_name = null; + } + if (["authenticate", "authorize"].indexOf(type) === -1) { + type = "authenticate"; + } + if (this._oauth_token === null) { + var error = + "To get the " + + type + + " URL, the OAuth token must be set."; + if (dfd) { + dfd.reject({ + error: error + }); + return this._getPromise(dfd); + } + throw error; + } + var url = + this._endpoint_oauth + + "oauth/" + + type + + "?oauth_token=" + + this._url(this._oauth_token); + if (params.force_login === !0) { + url += "&force_login=1"; + } + if (params.screen_name !== null) { + url += "&screen_name=" + params.screen_name; + } + if (typeof callback === "function") { + callback(url); + } + if (dfd) { + dfd.resolve({ + reply: url + }); + return this._getPromise(dfd); + } + return !0; + } + }, + { + key: "oauth_authorize", + value: function oauth_authorize(params, callback) { + return this.oauth_authenticate( + params, + callback, + "authorize" + ); + } + }, + { + key: "oauth2_token", + value: function oauth2_token(callback) { + var _this = this; + var dfd = this._getDfd(); + if (this._oauth_consumer_key === null) { + var error = + "To obtain a bearer token, the consumer key must be set."; + if (dfd) { + dfd.reject({ + error: error + }); + return this._getPromise(dfd); + } + throw error; + } + if (!dfd && typeof callback === "undefined") { + callback = function() {}; + } + var post_fields = "grant_type=client_credentials"; + var url = this._endpoint_oauth + "oauth2/token"; + if (this._use_proxy) { + url = url.replace( + this._endpoint_base, + this._endpoint_proxy + ); + } + var xml = this._getXmlRequestObject(); + if (xml === null) { + return; + } + xml.open("POST", url, !0); + xml.setRequestHeader( + "Content-Type", + "application/x-www-form-urlencoded" + ); + xml.setRequestHeader( + (this._use_proxy ? "X-" : "") + "Authorization", + "Basic " + + this._base64_encode( + this._oauth_consumer_key + + ":" + + this._oauth_consumer_secret + ) + ); + xml.onreadystatechange = function() { + if (xml.readyState >= 4) { + var httpstatus = 12027; + try { + httpstatus = xml.status; + } catch (e) {} + var response = ""; + try { + response = xml.responseText; + } catch (e) {} + var reply = _this._parseApiReply(response); + reply.httpstatus = httpstatus; + if (httpstatus === 200) { + _this.setBearerToken(reply.access_token); + } + if (typeof callback === "function") { + callback(reply); + } + if (dfd) { + dfd.resolve({ + reply: reply + }); + } + } + }; + xml.onerror = function(e) { + if (typeof callback === "function") { + callback(null, e); + } + if (dfd) { + dfd.reject(e); + } + }; + xml.timeout = 30000; + xml.send(post_fields); + if (dfd) { + return this._getPromise(dfd); + } + } + }, + { + key: "_callApi", + value: function _callApi(httpmethod, method) { + var params = + arguments.length <= 2 || arguments[2] === undefined + ? {} + : arguments[2]; + var multipart = + arguments.length <= 3 || arguments[3] === undefined + ? !1 + : arguments[3]; + var _this2 = this; + var app_only_auth = + arguments.length <= 4 || arguments[4] === undefined + ? !1 + : arguments[4]; + var callback = + arguments.length <= 5 || arguments[5] === undefined + ? function() {} + : arguments[5]; + var dfd = this._getDfd(); + var url = this._getEndpoint(method), + authorization = null; + var xml = this._getXmlRequestObject(); + if (xml === null) { + return; + } + var post_fields = undefined; + if (httpmethod === "GET") { + var url_with_params = url; + if (JSON.stringify(params) !== "{}") { + url_with_params += + "?" + this._http_build_query(params); + } + if (!app_only_auth) { + authorization = this._sign(httpmethod, url, params); + } + if (this._use_proxy) { + url_with_params = url_with_params + .replace( + this._endpoint_base, + this._endpoint_proxy + ) + .replace( + this._endpoint_base_media, + this._endpoint_proxy + ); + } + xml.open(httpmethod, url_with_params, !0); + } else { + if (multipart) { + if (!app_only_auth) { + authorization = this._sign(httpmethod, url, {}); + } + params = this._buildMultipart(method, params); + } else if (this._detectJsonBody(method)) { + authorization = this._sign(httpmethod, url, {}); + params = JSON.stringify(params); + } else { + if (!app_only_auth) { + authorization = this._sign( + httpmethod, + url, + params + ); + } + params = this._http_build_query(params); + } + post_fields = params; + if (this._use_proxy || multipart) { + url = url + .replace( + this._endpoint_base, + this._endpoint_proxy + ) + .replace( + this._endpoint_base_media, + this._endpoint_proxy + ); + } + xml.open(httpmethod, url, !0); + if (multipart) { + xml.setRequestHeader( + "Content-Type", + "multipart/form-data; boundary=" + + post_fields.split("\r\n")[0].substring(2) + ); + } else if (this._detectJsonBody(method)) { + xml.setRequestHeader( + "Content-Type", + "application/json" + ); + } else { + xml.setRequestHeader( + "Content-Type", + "application/x-www-form-urlencoded" + ); + } + } + if (app_only_auth) { + if ( + this._oauth_consumer_key === null && + this._oauth_bearer_token === null + ) { + var error = + "To make an app-only auth API request, consumer key or bearer token must be set."; + if (dfd) { + dfd.reject({ + error: error + }); + return this._getPromise(dfd); + } + throw error; + } + if (this._oauth_bearer_token === null) { + if (dfd) { + return this.oauth2_token().then(function() { + return _this2._callApi( + httpmethod, + method, + params, + multipart, + app_only_auth, + callback + ); + }); + } + this.oauth2_token(function() { + _this2._callApi( + httpmethod, + method, + params, + multipart, + app_only_auth, + callback + ); + }); + return; + } + authorization = "Bearer " + this._oauth_bearer_token; + } + if (authorization !== null) { + xml.setRequestHeader( + (this._use_proxy ? "X-" : "") + "Authorization", + authorization + ); + } + xml.onreadystatechange = function() { + if (xml.readyState >= 4) { + var httpstatus = 12027; + try { + httpstatus = xml.status; + } catch (e) {} + var response = ""; + try { + response = xml.responseText; + } catch (e) {} + var reply = _this2._parseApiReply(response); + reply.httpstatus = httpstatus; + var rate = null; + if ( + typeof xml.getResponseHeader !== "undefined" && + xml.getResponseHeader("x-rate-limit-limit") !== + "" + ) { + rate = { + limit: xml.getResponseHeader( + "x-rate-limit-limit" + ), + remaining: xml.getResponseHeader( + "x-rate-limit-remaining" + ), + reset: xml.getResponseHeader( + "x-rate-limit-reset" + ) + }; + } + if (typeof callback === "function") { + callback(reply, rate); + } + if (dfd) { + dfd.resolve({ + reply: reply, + rate: rate + }); + } + } + }; + xml.onerror = function(e) { + if (typeof callback === "function") { + callback(null, null, e); + } + if (dfd) { + dfd.reject(e); + } + }; + xml.timeout = 30000; + xml.send(httpmethod === "GET" ? null : post_fields); + if (dfd) { + return this._getPromise(dfd); + } + return !0; + } + }, + { + key: "__call", + value: function __call(fn) { + var params = + arguments.length <= 1 || arguments[1] === undefined + ? {} + : arguments[1]; + var callback = arguments[2]; + var app_only_auth = + arguments.length <= 3 || arguments[3] === undefined + ? !1 + : arguments[3]; + if ( + typeof callback !== "function" && + typeof params === "function" + ) { + callback = params; + params = {}; + if (typeof callback === "boolean") { + app_only_auth = callback; + } + } else if (typeof callback === "undefined") { + callback = function() {}; + } + switch (fn) { + case "oauth_authenticate": + case "oauth_authorize": + return this[fn](params, callback); + case "oauth2_token": + return this[fn](callback); + } + var apiparams = this._parseApiParams(params); + apiparams = this._stringifyNullBoolParams(apiparams); + if (fn === "oauth_requestToken") { + this.setToken(null, null); + } + var _mapFnToApiMethod2 = this._mapFnToApiMethod( + fn, + apiparams + ); + var _mapFnToApiMethod3 = _slicedToArray( + _mapFnToApiMethod2, + 2 + ); + var method = _mapFnToApiMethod3[0]; + var method_template = _mapFnToApiMethod3[1]; + var httpmethod = this._detectMethod( + method_template, + apiparams + ); + var multipart = this._detectMultipart(method_template); + return this._callApi( + httpmethod, + method, + apiparams, + multipart, + app_only_auth, + callback + ); + } + } + ]); + return Codebird; + })(); + if ( + (typeof module === "undefined" ? "undefined" : _typeof(module)) === + "object" && + module && + _typeof(module.exports) === "object" + ) { + module.exports = Codebird; + } else { + if ( + (typeof window === "undefined" ? "undefined" : _typeof(window)) === + "object" && + window + ) { + window.Codebird = Codebird; + } + if (typeof define === "function" && define.amd) { + define("codebird", [], function() { + return Codebird; + }); + } + } +})(); +!(function() { + "use strict"; + + function e(n, t, r) { + return ("string" == typeof t ? t : t.toString()) + .replace(n.define || a, function(e, t, o, a) { + return ( + 0 === t.indexOf("def.") && (t = t.substring(4)), + t in r || + (":" === o + ? (n.defineParams && + a.replace(n.defineParams, function(e, n, o) { + r[t] = { + arg: n, + text: o + }; + }), + t in r || (r[t] = a)) + : new Function("def", "def['" + t + "']=" + a)(r)), + "" + ); + }) + .replace(n.use || a, function(t, o) { + n.useParams && + (o = o.replace(n.useParams, function(e, n, t, o) { + if (r[t] && r[t].arg && o) { + var a = (t + ":" + o).replace(/'|\\/g, "_"); + return ( + (r.__exp = r.__exp || {}), + (r.__exp[a] = r[t].text.replace( + new RegExp( + "(^|[^\\w$])" + r[t].arg + "([^\\w$])", + "g" + ), + "$1" + o + "$2" + )), + n + "def.__exp['" + a + "']" + ); + } + })); + var a = new Function("def", "return " + o)(r); + return a ? e(n, a, r) : a; + }); + } + + function n(e) { + return e.replace(/\\('|\\)/g, "$1").replace(/[\r\t\n]/g, " "); + } + var t, + r = { + engine: "doT", + version: "1.1.1", + templateSettings: { + evaluate: /\{\{([\s\S]+?(\}?)+)\}\}/g, + interpolate: /\{\{=([\s\S]+?)\}\}/g, + encode: /\{\{!([\s\S]+?)\}\}/g, + use: /\{\{#([\s\S]+?)\}\}/g, + useParams: /(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g, + define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g, + defineParams: /^\s*([\w$]+):([\s\S]+)/, + conditional: /\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g, + iterate: /\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g, + varname: "it", + strip: !0, + append: !0, + selfcontained: !1, + doNotSkipEncoded: !1 + }, + template: void 0, + compile: void 0, + log: !0 + }; + (r.encodeHTMLSource = function(e) { + var n = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + "/": "/" + }, + t = e ? /[&<>"'\/]/g : /&(?!#?\w+;)|<|>|"|'|\//g; + return function(e) { + return e + ? e.toString().replace(t, function(e) { + return n[e] || e; + }) + : ""; + }; + }), + (t = (function() { + return this || (0, eval)("this"); + })()), + "undefined" != typeof module && module.exports + ? (module.exports = r) + : "function" == typeof define && define.amd + ? define(function() { + return r; + }) + : (t.doT = r); + var o = { + append: { + start: "'+(", + end: ")+'", + startencode: "'+encodeHTML(" + }, + split: { + start: "';out+=(", + end: ");out+='", + startencode: "';out+=encodeHTML(" + } + }, + a = /$^/; + (r.template = function(c, i, u) { + i = i || r.templateSettings; + var d, + s, + p = i.append ? o.append : o.split, + l = 0, + f = i.use || i.define ? e(i, c, u || {}) : c; + (f = ( + "var out='" + + (i.strip + ? f + .replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g, " ") + .replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g, "") + : f + ) + .replace(/'|\\/g, "\\$&") + .replace(i.interpolate || a, function(e, t) { + return p.start + n(t) + p.end; + }) + .replace(i.encode || a, function(e, t) { + return (d = !0), p.startencode + n(t) + p.end; + }) + .replace(i.conditional || a, function(e, t, r) { + return t + ? r + ? "';}else if(" + n(r) + "){out+='" + : "';}else{out+='" + : r + ? "';if(" + n(r) + "){out+='" + : "';}out+='"; + }) + .replace(i.iterate || a, function(e, t, r, o) { + return t + ? ((l += 1), + (s = o || "i" + l), + (t = n(t)), + "';var arr" + + l + + "=" + + t + + ";if(arr" + + l + + "){var " + + r + + "," + + s + + "=-1,l" + + l + + "=arr" + + l + + ".length-1;while(" + + s + + ">> 0; + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return !0; + } + } + return !1; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function(i) { + return i != null; + }); + var isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = !0; + } + return m; + } + var momentProperties = (hooks.momentProperties = []); + + function copyConfig(to, from) { + var i, prop, val; + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + if (momentProperties.length > 0) { + for (i = 0; i < momentProperties.length; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + return to; + } + var updateInProgress = !1; + + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + if (updateInProgress === !1) { + updateInProgress = !0; + hooks.updateOffset(this); + updateInProgress = !1; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || + (obj != null && obj._isAMomentObject != null) + ); + } + + function absFloor(number) { + if (number < 0) { + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + return value; + } + + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === !1 && + typeof console !== "undefined" && + console.warn + ) { + console.warn("Deprecation warning: " + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = !0; + return extend(function() { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ""; + if (typeof arguments[i] === "object") { + arg += "\n[" + i + "] "; + for (var key in arguments[0]) { + arg += key + ": " + arguments[0][key] + ", "; + } + arg = arg.slice(0, -2); + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + "\nArguments: " + + Array.prototype.slice.call(args).join("") + + "\n" + + new Error().stack + ); + firstTime = !1; + } + return fn.apply(this, arguments); + }, fn); + } + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = !0; + } + } + hooks.suppressDeprecationWarnings = !1; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + input instanceof Function || + Object.prototype.toString.call(input) === "[object Function]" + ); + } + + function set(config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this["_" + i] = prop; + } + } + this._config = config; + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + "|" + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if ( + isObject(parentConfig[prop]) && + isObject(childConfig[prop]) + ) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + var keys; + if (Object.keys) { + keys = Object.keys; + } else { + keys = function(obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + var defaultCalendar = { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L" + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar.sameElse; + return isFunction(output) ? output.call(mom, now) : output; + } + var defaultLongDateFormat = { + LTS: "h:mm:ss A", + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A" + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + if (format || !formatUpper) { + return format; + } + this._longDateFormat[key] = formatUpper.replace( + /MMMM|MM|DD|dddd/g, + function(val) { + return val.slice(1); + } + ); + return this._longDateFormat[key]; + } + var defaultInvalidDate = "Invalid date"; + + function invalidDate() { + return this._invalidDate; + } + var defaultOrdinal = "%d"; + var defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace("%d", number); + } + var defaultRelativeTime = { + future: "in %s", + past: "%s ago", + s: "a few seconds", + ss: "%d seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? "future" : "past"]; + return isFunction(format) + ? format(output) + : format.replace(/%s/i, output); + } + var aliases = {}; + + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + "s"] = aliases[ + shorthand + ] = unit; + } + + function normalizeUnits(units) { + return typeof units === "string" + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + return normalizedInput; + } + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({ + unit: u, + priority: priorities[u] + }); + } + units.sort(function(a, b) { + return a.priority - b.priority; + }); + return units; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = "" + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? "+" : "") : "-") + + Math.pow(10, Math.max(0, zerosToFill)) + .toString() + .substr(1) + + absNumber + ); + } + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + var formatFunctions = {}; + var formatTokenFunctions = {}; + + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === "string") { + func = function() { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function() { + return zeroFill( + func.apply(this, arguments), + padded[1], + padded[2] + ); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function() { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ""); + } + return input.replace(/\\/g, ""); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + return function(mom) { + var output = "", + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + return format; + } + var match1 = /\d/; + var match2 = /\d\d/; + var match3 = /\d{3}/; + var match4 = /\d{4}/; + var match6 = /[+-]?\d{6}/; + var match1to2 = /\d\d?/; + var match3to4 = /\d\d\d\d?/; + var match5to6 = /\d\d\d\d\d\d?/; + var match1to3 = /\d{1,3}/; + var match1to4 = /\d{1,4}/; + var match1to6 = /[+-]?\d{1,6}/; + var matchUnsigned = /\d+/; + var matchSigned = /[+-]?\d+/; + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; + var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + var regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function(isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + return regexes[token](config._strict, config._locale); + } + + function unescapeFormat(s) { + return regexEscape( + s + .replace("\\", "") + .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function( + matched, + p1, + p2, + p3, + p4 + ) { + return p1 || p2 || p3 || p4; + }) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); + } + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback; + if (typeof token === "string") { + token = [token]; + } + if (isNumber(callback)) { + func = function(input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function(input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + addFormatToken("Y", 0, 0, function() { + var y = this.year(); + return y <= 9999 ? "" + y : "+" + y; + }); + addFormatToken(0, ["YY", 2], 0, function() { + return this.year() % 100; + }); + addFormatToken(0, ["YYYY", 4], 0, "year"); + addFormatToken(0, ["YYYYY", 5], 0, "year"); + addFormatToken(0, ["YYYYYY", 6, !0], 0, "year"); + addUnitAlias("year", "y"); + addUnitPriority("year", 1); + addRegexToken("Y", matchSigned); + addRegexToken("YY", match1to2, match2); + addRegexToken("YYYY", match1to4, match4); + addRegexToken("YYYYY", match1to6, match6); + addRegexToken("YYYYYY", match1to6, match6); + addParseToken(["YYYYY", "YYYYYY"], YEAR); + addParseToken("YYYY", function(input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken("YY", function(input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken("Y", function(input, array) { + array[YEAR] = parseInt(input, 10); + }); + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + hooks.parseTwoDigitYear = function(input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + var getSetYear = makeGetSet("FullYear", !0); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function makeGetSet(unit, keepTime) { + return function(value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d["get" + (mom._isUTC ? "UTC" : "") + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === "FullYear" && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + mom._d["set" + (mom._isUTC ? "UTC" : "") + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value); + } + } + } + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === "object") { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + var indexOf; + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function(o) { + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + addFormatToken("M", ["MM", 2], "Mo", function() { + return this.month() + 1; + }); + addFormatToken("MMM", 0, 0, function(format) { + return this.localeData().monthsShort(this, format); + }); + addFormatToken("MMMM", 0, 0, function(format) { + return this.localeData().months(this, format); + }); + addUnitAlias("month", "M"); + addUnitPriority("month", 8); + addRegexToken("M", match1to2); + addRegexToken("MM", match1to2, match2); + addRegexToken("MMM", function(isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken("MMMM", function(isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + addParseToken(["M", "MM"], function(input, array) { + array[MONTH] = toInt(input) - 1; + }); + addParseToken(["MMM", "MMMM"], function(input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; + var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split( + "_" + ); + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months.standalone; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? "format" + : "standalone" + ][m.month()]; + } + var defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split( + "_" + ); + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort.standalone; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? "format" : "standalone" + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + "" + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months( + mom, + "" + ).toLocaleLowerCase(); + } + } + if (strict) { + if (format === "MMM") { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === "MMM") { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + for (i = 0; i < 12; i++) { + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + "^" + this.months(mom, "").replace(".", "") + "$", + "i" + ); + this._shortMonthsParse[i] = new RegExp( + "^" + this.monthsShort(mom, "").replace(".", "") + "$", + "i" + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + "^" + + this.months(mom, "") + + "|^" + + this.monthsShort(mom, ""); + this._monthsParse[i] = new RegExp(regex.replace(".", ""), "i"); + } + if ( + strict && + format === "MMMM" && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === "MMM" && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + function setMonth(mom, value) { + var dayOfMonth; + if (!mom.isValid()) { + return mom; + } + if (typeof value === "string") { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + if (!isNumber(value)) { + return mom; + } + } + } + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d["set" + (mom._isUTC ? "UTC" : "") + "Month"](value, dayOfMonth); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, !0); + return this; + } else { + return get(this, "Month"); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + var defaultMonthsShortRegex = matchWord; + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, "_monthsRegex")) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, "_monthsShortRegex")) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + var defaultMonthsRegex = matchWord; + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, "_monthsRegex")) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, "_monthsRegex")) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, "")); + longPieces.push(this.months(mom, "")); + mixedPieces.push(this.months(mom, "")); + mixedPieces.push(this.monthsShort(mom, "")); + } + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + "^(" + longPieces.join("|") + ")", + "i" + ); + this._monthsShortStrictRegex = new RegExp( + "^(" + shortPieces.join("|") + ")", + "i" + ); + } + + function createDate(y, m, d, h, M, s, ms) { + var date = new Date(y, m, d, h, M, s, ms); + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate(y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + function firstWeekOffset(year, dow, doy) { + var fwd = 7 + dow - doy, + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + return -fwdlw + fwd - 1; + } + + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + addFormatToken("w", ["ww", 2], "wo", "week"); + addFormatToken("W", ["WW", 2], "Wo", "isoWeek"); + addUnitAlias("week", "w"); + addUnitAlias("isoWeek", "W"); + addUnitPriority("week", 5); + addUnitPriority("isoWeek", 5); + addRegexToken("w", match1to2); + addRegexToken("ww", match1to2, match2); + addRegexToken("W", match1to2); + addRegexToken("WW", match1to2, match2); + addWeekParseToken(["w", "ww", "W", "WW"], function( + input, + week, + config, + token + ) { + week[token.substr(0, 1)] = toInt(input); + }); + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + var defaultLocaleWeek = { + dow: 0, + doy: 6 + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, "d"); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, "d"); + } + addFormatToken("d", 0, "do", "day"); + addFormatToken("dd", 0, 0, function(format) { + return this.localeData().weekdaysMin(this, format); + }); + addFormatToken("ddd", 0, 0, function(format) { + return this.localeData().weekdaysShort(this, format); + }); + addFormatToken("dddd", 0, 0, function(format) { + return this.localeData().weekdays(this, format); + }); + addFormatToken("e", 0, 0, "weekday"); + addFormatToken("E", 0, 0, "isoWeekday"); + addUnitAlias("day", "d"); + addUnitAlias("weekday", "e"); + addUnitAlias("isoWeekday", "E"); + addUnitPriority("day", 11); + addUnitPriority("weekday", 11); + addUnitPriority("isoWeekday", 11); + addRegexToken("d", match1to2); + addRegexToken("e", match1to2); + addRegexToken("E", match1to2); + addRegexToken("dd", function(isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken("ddd", function(isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken("dddd", function(isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + addWeekParseToken(["dd", "ddd", "dddd"], function( + input, + week, + config, + token + ) { + var weekday = config._locale.weekdaysParse( + input, + token, + config._strict + ); + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + addWeekParseToken(["d", "e", "E"], function(input, week, config, token) { + week[token] = toInt(input); + }); + + function parseWeekday(input, locale) { + if (typeof input !== "string") { + return input; + } + if (!isNaN(input)) { + return parseInt(input, 10); + } + input = locale.weekdaysParse(input); + if (typeof input === "number") { + return input; + } + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === "string") { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split( + "_" + ); + + function localeWeekdays(m, format) { + if (!m) { + return isArray(this._weekdays) + ? this._weekdays + : this._weekdays.standalone; + } + return isArray(this._weekdays) + ? this._weekdays[m.day()] + : this._weekdays[ + this._weekdays.isFormat.test(format) ? "format" : "standalone" + ][m.day()]; + } + var defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"); + + function localeWeekdaysShort(m) { + return m ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + var defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"); + + function localeWeekdaysMin(m) { + return m ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + "" + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + "" + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays( + mom, + "" + ).toLocaleLowerCase(); + } + } + if (strict) { + if (format === "dddd") { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === "ddd") { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === "dddd") { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === "ddd") { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + for (i = 0; i < 7; i++) { + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + "^" + this.weekdays(mom, "").replace(".", ".?") + "$", + "i" + ); + this._shortWeekdaysParse[i] = new RegExp( + "^" + this.weekdaysShort(mom, "").replace(".", ".?") + "$", + "i" + ); + this._minWeekdaysParse[i] = new RegExp( + "^" + this.weekdaysMin(mom, "").replace(".", ".?") + "$", + "i" + ); + } + if (!this._weekdaysParse[i]) { + regex = + "^" + + this.weekdays(mom, "") + + "|^" + + this.weekdaysShort(mom, "") + + "|^" + + this.weekdaysMin(mom, ""); + this._weekdaysParse[i] = new RegExp( + regex.replace(".", ""), + "i" + ); + } + if ( + strict && + format === "dddd" && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === "ddd" && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === "dd" && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, "d"); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, "d"); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + var defaultWeekdaysRegex = matchWord; + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, "_weekdaysRegex")) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, "_weekdaysRegex")) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + var defaultWeekdaysShortRegex = matchWord; + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, "_weekdaysRegex")) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, "_weekdaysShortRegex")) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + var defaultWeekdaysMinRegex = matchWord; + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, "_weekdaysRegex")) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, "_weekdaysMinRegex")) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + mom = createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ""); + shortp = this.weekdaysShort(mom, ""); + longp = this.weekdays(mom, ""); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + this._weekdaysRegex = new RegExp( + "^(" + mixedPieces.join("|") + ")", + "i" + ); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + this._weekdaysStrictRegex = new RegExp( + "^(" + longPieces.join("|") + ")", + "i" + ); + this._weekdaysShortStrictRegex = new RegExp( + "^(" + shortPieces.join("|") + ")", + "i" + ); + this._weekdaysMinStrictRegex = new RegExp( + "^(" + minPieces.join("|") + ")", + "i" + ); + } + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + addFormatToken("H", ["HH", 2], 0, "hour"); + addFormatToken("h", ["hh", 2], 0, hFormat); + addFormatToken("k", ["kk", 2], 0, kFormat); + addFormatToken("hmm", 0, 0, function() { + return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + addFormatToken("hmmss", 0, 0, function() { + return ( + "" + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + addFormatToken("Hmm", 0, 0, function() { + return "" + this.hours() + zeroFill(this.minutes(), 2); + }); + addFormatToken("Hmmss", 0, 0, function() { + return ( + "" + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function() { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + meridiem("a", !0); + meridiem("A", !1); + addUnitAlias("hour", "h"); + addUnitPriority("hour", 13); + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + addRegexToken("a", matchMeridiem); + addRegexToken("A", matchMeridiem); + addRegexToken("H", match1to2); + addRegexToken("h", match1to2); + addRegexToken("k", match1to2); + addRegexToken("HH", match1to2, match2); + addRegexToken("hh", match1to2, match2); + addRegexToken("kk", match1to2, match2); + addRegexToken("hmm", match3to4); + addRegexToken("hmmss", match5to6); + addRegexToken("Hmm", match3to4); + addRegexToken("Hmmss", match5to6); + addParseToken(["H", "HH"], HOUR); + addParseToken(["k", "kk"], function(input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(["a", "A"], function(input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(["h", "hh"], function(input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = !0; + }); + addParseToken("hmm", function(input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = !0; + }); + addParseToken("hmmss", function(input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = !0; + }); + addParseToken("Hmm", function(input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken("Hmmss", function(input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + function localeIsPM(input) { + return (input + "").toLowerCase().charAt(0) === "p"; + } + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "pm" : "PM"; + } else { + return isLower ? "am" : "AM"; + } + } + var getSetHour = makeGetSet("Hours", !0); + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + week: defaultLocaleWeek, + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + meridiemParse: defaultLocaleMeridiemParse + }; + var locales = {}; + var localeFamilies = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace("_", "-") : key; + } + + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + while (i < names.length) { + split = normalizeLocale(names[i]).split("-"); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split("-") : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join("-")); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + compareArrays(split, next, !0) >= j - 1 + ) { + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + if ( + !locales[name] && + typeof module !== "undefined" && + module && + module.exports + ) { + try { + oldLocale = globalLocale._abbr; + var aliasedRequire = require; + aliasedRequire("./locale/" + name); + getSetGlobalLocale(oldLocale); + } catch (e) {} + } + return locales[name]; + } + + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + if (data) { + globalLocale = data; + } + } + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + "defineLocaleOverride", + "use moment.updateLocale(localeName, config) to change " + + "an existing locale. moment.defineLocale(localeName, " + + "config) should only be used for creating a new locale " + + "See http://momentjs.com/guides/#/warnings/define-locale/ for more info." + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config + }); + return null; + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + if (localeFamilies[name]) { + localeFamilies[name].forEach(function(x) { + defineLocale(x.name, x.config); + }); + } + getSetGlobalLocale(name); + return locales[name]; + } else { + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + getSetGlobalLocale(name); + } else { + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + function getLocale(key) { + var locale; + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + if (!key) { + return globalLocale; + } + if (!isArray(key)) { + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow; + var a = m._a; + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + getParsingFlags(m).overflow = overflow; + } + return m; + } + + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate() + ]; + } + return [ + nowValue.getFullYear(), + nowValue.getMonth(), + nowValue.getDate() + ]; + } + + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + yearToUse; + if (config._d) { + return; + } + currentDate = currentDateArray(config); + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = !0; + } + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = !0; + config._a[HOUR] = 0; + } + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + if (config._nextDay) { + config._a[HOUR] = 24; + } + if ( + config._w && + typeof config._w.d !== "undefined" && + config._w.d !== config._d.getDay() + ) { + getParsingFlags(config).weekdayMismatch = !0; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = !0; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + var curWeek = weekOfYear(createLocal(), dow, doy); + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + week = defaults(w.w, curWeek.week); + if (w.d != null) { + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = !0; + } + } else if (w.e != null) { + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = !0; + } + } else { + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = !0; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = !0; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + var isoDates = [ + ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], + ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], + ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], + ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], + ["YYYY-DDD", /\d{4}-\d{3}/], + ["YYYY-MM", /\d{4}-\d\d/, !1], + ["YYYYYYMMDD", /[+-]\d{10}/], + ["YYYYMMDD", /\d{8}/], + ["GGGG[W]WWE", /\d{4}W\d{3}/], + ["GGGG[W]WW", /\d{4}W\d{2}/, !1], + ["YYYYDDD", /\d{7}/] + ]; + var isoTimes = [ + ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], + ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], + ["HH:mm:ss", /\d\d:\d\d:\d\d/], + ["HH:mm", /\d\d:\d\d/], + ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], + ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], + ["HHmmss", /\d\d\d\d\d\d/], + ["HHmm", /\d\d\d\d/], + ["HH", /\d\d/] + ]; + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat; + if (match) { + getParsingFlags(config).iso = !0; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== !1; + break; + } + } + if (dateFormat == null) { + config._isValid = !1; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + timeFormat = (match[2] || " ") + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = !1; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = !1; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = "Z"; + } else { + config._isValid = !1; + return; + } + } + config._f = dateFormat + (timeFormat || "") + (tzFormat || ""); + configFromStringAndFormat(config); + } else { + config._isValid = !1; + } + } + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10) + ]; + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + return s + .replace(/\([^)]*\)|[\n\t]/g, " ") + .replace(/(\s\s+)/g, " ") + .trim(); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf( + weekdayStr + ), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = !0; + config._isValid = !1; + return !1; + } + } + return !0; + } + var obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + return 0; + } else { + var hm = parseInt(numOffset, 10); + var m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)); + if (match) { + var parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + getParsingFlags(config).rfc2822 = !0; + } else { + config._isValid = !1; + } + } + + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + configFromISO(config); + if (config._isValid === !1) { + delete config._isValid; + } else { + return; + } + configFromRFC2822(config); + if (config._isValid === !1) { + delete config._isValid; + } else { + return; + } + hooks.createFromInputFallback(config); + } + hooks.createFromInputFallback = deprecate( + "value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), " + + "which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are " + + "discouraged and will be removed in an upcoming major release. Please refer to " + + "http://momentjs.com/guides/#/warnings/js-date/ for more info.", + function(config) { + config._d = new Date(config._i + (config._useUTC ? " UTC" : "")); + } + ); + hooks.ISO_8601 = function() {}; + hooks.RFC_2822 = function() {}; + + function configFromStringAndFormat(config) { + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = !0; + var string = "" + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0; + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || + []; + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = !1; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === !0 && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + if (meridiem == null) { + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + return hour; + } + } + + function configFromStringAndArray(config) { + var tempConfig, bestMoment, scoreToBeat, i, currentScore; + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = !0; + config._d = new Date(NaN); + return; + } + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + if (!isValid(tempConfig)) { + continue; + } + currentScore += getParsingFlags(tempConfig).charsLeftOver; + currentScore += + getParsingFlags(tempConfig).unusedTokens.length * 10; + getParsingFlags(tempConfig).score = currentScore; + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + var i = normalizeObjectUnits(config._i); + config._a = map( + [ + i.year, + i.month, + i.day || i.date, + i.hour, + i.minute, + i.second, + i.millisecond + ], + function(obj) { + return obj && parseInt(obj, 10); + } + ); + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + res.add(1, "d"); + res._nextDay = undefined; + } + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + config._locale = config._locale || getLocale(config._l); + if (input === null || (format === undefined && input === "")) { + return createInvalid({ + nullInput: !0 + }); + } + if (typeof input === "string") { + config._i = input = config._locale.preparse(input); + } + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + if (!isValid(config)) { + config._d = null; + } + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === "string") { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function(obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + if (locale === !0 || locale === !1) { + strict = locale; + locale = undefined; + } + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + c._isAMomentObject = !0; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, !1); + } + var prototypeMin = deprecate( + "moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", + function() { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ); + var prototypeMax = deprecate( + "moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", + function() { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + function min() { + var args = [].slice.call(arguments, 0); + return pickBy("isBefore", args); + } + + function max() { + var args = [].slice.call(arguments, 0); + return pickBy("isAfter", args); + } + var now = function() { + return Date.now ? Date.now() : +new Date(); + }; + var ordering = [ + "year", + "quarter", + "month", + "week", + "day", + "hour", + "minute", + "second", + "millisecond" + ]; + + function isDurationValid(m) { + for (var key in m) { + if ( + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return !1; + } + } + var unitHasDecimal = !1; + for (var i = 0; i < ordering.length; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return !1; + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = !0; + } + } + } + return !0; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + this._isValid = isDurationValid(normalizedInput); + this._milliseconds = + +milliseconds + + seconds * 1e3 + + minutes * 6e4 + + hours * 1000 * 60 * 60; + this._days = +days + weeks * 7; + this._months = +months + quarters * 3 + years * 12; + this._data = {}; + this._locale = getLocale(); + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + function offset(token, separator) { + addFormatToken(token, 0, 0, function() { + var offset = this.utcOffset(); + var sign = "+"; + if (offset < 0) { + offset = -offset; + sign = "-"; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + offset("Z", ":"); + offset("ZZ", ""); + addRegexToken("Z", matchShortOffset); + addRegexToken("ZZ", matchShortOffset); + addParseToken(["Z", "ZZ"], function(input, array, config) { + config._useUTC = !0; + config._tzm = offsetFromString(matchShortOffset, input); + }); + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || "").match(matcher); + if (matches === null) { + return null; + } + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + "").match(chunkOffset) || ["-", 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + return minutes === 0 ? 0 : parts[0] === "+" ? minutes : -minutes; + } + + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, !1); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + hooks.updateOffset = function() {}; + + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === "string") { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = !0; + if (localAdjust != null) { + this.add(localAdjust, "m"); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, "m"), + 1, + !1 + ); + } else if (!this._changeInProgress) { + this._changeInProgress = !0; + hooks.updateOffset(this, !0); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== "string") { + input = -input; + } + this.utcOffset(input, keepLocalTime); + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = !1; + if (keepLocalTime) { + this.subtract(getDateOffset(this), "m"); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, !1, !0); + } else if (typeof this._i === "string") { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, !0); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return !1; + } + input = input ? createLocal(input).utcOffset() : 0; + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > + this.clone() + .month(0) + .utcOffset() || + this.utcOffset() > + this.clone() + .month(5) + .utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + var c = {}; + copyConfig(c, this); + c = prepareConfig(c); + if (c._a) { + var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = !1; + } + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : !1; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : !1; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : !1; + } + var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; + var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + match = null, + sign, + ret, + diffRes; + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months + }; + } else if (isNumber(input)) { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = match[1] === "-" ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = match[1] === "-" ? -1 : match[1] === "+" ? 1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign) + }; + } else if (duration == null) { + duration = {}; + } else if ( + typeof duration === "object" && + ("from" in duration || "to" in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + ret = new Duration(duration); + if (isDuration(input) && hasOwnProp(input, "_locale")) { + ret._locale = input._locale; + } + return ret; + } + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + var res = inp && parseFloat(inp.replace(",", ".")); + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = { + milliseconds: 0, + months: 0 + }; + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if ( + base + .clone() + .add(res.months, "M") + .isAfter(other) + ) { + --res.months; + } + res.milliseconds = +other - +base.clone().add(res.months, "M"); + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { + milliseconds: 0, + months: 0 + }; + } + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + return res; + } + + function createAdder(direction, name) { + return function(val, period) { + var dur, tmp; + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + "moment()." + + name + + "(period, number) is deprecated. Please use moment()." + + name + + "(number, period). " + + "See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info." + ); + tmp = val; + val = period; + period = tmp; + } + val = typeof val === "string" ? +val : val; + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + if (!mom.isValid()) { + return; + } + updateOffset = updateOffset == null ? !0 : updateOffset; + if (months) { + setMonth(mom, get(mom, "Month") + months * isAdding); + } + if (days) { + set$1(mom, "Date", get(mom, "Date") + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + var add = createAdder(1, "add"); + var subtract = createAdder(-1, "subtract"); + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, "days", !0); + return diff < -6 + ? "sameElse" + : diff < -1 + ? "lastWeek" + : diff < 0 + ? "lastDay" + : diff < 1 + ? "sameDay" + : diff < 2 + ? "nextDay" + : diff < 7 + ? "nextWeek" + : "sameElse"; + } + + function calendar$1(time, formats) { + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf("day"), + format = hooks.calendarFormat(this, sod) || "sameElse"; + var output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return !1; + } + units = normalizeUnits(!isUndefined(units) ? units : "millisecond"); + if (units === "millisecond") { + return this.valueOf() > localInput.valueOf(); + } else { + return ( + localInput.valueOf() < + this.clone() + .startOf(units) + .valueOf() + ); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return !1; + } + units = normalizeUnits(!isUndefined(units) ? units : "millisecond"); + if (units === "millisecond") { + return this.valueOf() < localInput.valueOf(); + } else { + return ( + this.clone() + .endOf(units) + .valueOf() < localInput.valueOf() + ); + } + } + + function isBetween(from, to, units, inclusivity) { + inclusivity = inclusivity || "()"; + return ( + (inclusivity[0] === "(" + ? this.isAfter(from, units) + : !this.isBefore(from, units)) && + (inclusivity[1] === ")" + ? this.isBefore(to, units) + : !this.isAfter(to, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return !1; + } + units = normalizeUnits(units || "millisecond"); + if (units === "millisecond") { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone() + .startOf(units) + .valueOf() <= inputMs && + inputMs <= + this.clone() + .endOf(units) + .valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, delta, output; + if (!this.isValid()) { + return NaN; + } + that = cloneWithOffset(input, this); + if (!that.isValid()) { + return NaN; + } + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + units = normalizeUnits(units); + switch (units) { + case "year": + output = monthDiff(this, that) / 12; + break; + case "month": + output = monthDiff(this, that); + break; + case "quarter": + output = monthDiff(this, that) / 3; + break; + case "second": + output = (this - that) / 1e3; + break; + case "minute": + output = (this - that) / 6e4; + break; + case "hour": + output = (this - that) / 36e5; + break; + case "day": + output = (this - that - zoneDelta) / 864e5; + break; + case "week": + output = (this - that - zoneDelta) / 6048e5; + break; + default: + output = this - that; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + var wholeMonthDiff = + (b.year() - a.year()) * 12 + (b.month() - a.month()), + anchor = a.clone().add(wholeMonthDiff, "months"), + anchor2, + adjust; + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, "months"); + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, "months"); + adjust = (b - anchor) / (anchor2 - anchor); + } + return -(wholeMonthDiff + adjust) || 0; + } + hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; + hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; + + function toString() { + return this.clone() + .locale("en") + .format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); + } + + function toISOString() { + if (!this.isValid()) { + return null; + } + var m = this.clone().utc(); + if (m.year() < 0 || m.year() > 9999) { + return formatMoment(m, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"); + } + if (isFunction(Date.prototype.toISOString)) { + return this.toDate().toISOString(); + } + return formatMoment(m, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"); + } + + function inspect() { + if (!this.isValid()) { + return "moment.invalid(/* " + this._i + " */)"; + } + var func = "moment"; + var zone = ""; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; + zone = "Z"; + } + var prefix = "[" + func + '("]'; + var year = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; + var datetime = "-MM-DD[T]HH:mm:ss.SSS"; + var suffix = zone + '[")]'; + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ + to: this, + from: time + }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ + from: this, + to: time + }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + function locale(key) { + var newLocaleData; + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + var lang = deprecate( + "moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", + function(key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + function startOf(units) { + units = normalizeUnits(units); + switch (units) { + case "year": + this.month(0); + case "quarter": + case "month": + this.date(1); + case "week": + case "isoWeek": + case "day": + case "date": + this.hours(0); + case "hour": + this.minutes(0); + case "minute": + this.seconds(0); + case "second": + this.milliseconds(0); + } + if (units === "week") { + this.weekday(0); + } + if (units === "isoWeek") { + this.isoWeekday(1); + } + if (units === "quarter") { + this.month(Math.floor(this.month() / 3) * 3); + } + return this; + } + + function endOf(units) { + units = normalizeUnits(units); + if (units === undefined || units === "millisecond") { + return this; + } + if (units === "date") { + units = "day"; + } + return this.startOf(units) + .add(1, units === "isoWeek" ? "week" : units) + .subtract(1, "ms"); + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond() + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON() { + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + addFormatToken(0, ["gg", 2], 0, function() { + return this.weekYear() % 100; + }); + addFormatToken(0, ["GG", 2], 0, function() { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + addWeekYearFormatToken("gggg", "weekYear"); + addWeekYearFormatToken("ggggg", "weekYear"); + addWeekYearFormatToken("GGGG", "isoWeekYear"); + addWeekYearFormatToken("GGGGG", "isoWeekYear"); + addUnitAlias("weekYear", "gg"); + addUnitAlias("isoWeekYear", "GG"); + addUnitPriority("weekYear", 1); + addUnitPriority("isoWeekYear", 1); + addRegexToken("G", matchSigned); + addRegexToken("g", matchSigned); + addRegexToken("GG", match1to2, match2); + addRegexToken("gg", match1to2, match2); + addRegexToken("GGGG", match1to4, match4); + addRegexToken("gggg", match1to4, match4); + addRegexToken("GGGGG", match1to6, match6); + addRegexToken("ggggg", match1to6, match6); + addWeekParseToken(["gggg", "ggggg", "GGGG", "GGGGG"], function( + input, + week, + config, + token + ) { + week[token.substr(0, 2)] = toInt(input); + }); + addWeekParseToken(["gg", "GG"], function(input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks( + weekYear, + week, + weekday, + dow, + doy + ), + date = createUTCDate( + dayOfYearData.year, + 0, + dayOfYearData.dayOfYear + ); + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + addFormatToken("Q", 0, "Qo", "quarter"); + addUnitAlias("quarter", "Q"); + addUnitPriority("quarter", 7); + addRegexToken("Q", match1); + addParseToken("Q", function(input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + addFormatToken("D", ["DD", 2], "Do", "date"); + addUnitAlias("date", "D"); + addUnitPriority("date", 9); + addRegexToken("D", match1to2); + addRegexToken("DD", match1to2, match2); + addRegexToken("Do", function(isStrict, locale) { + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + addParseToken(["D", "DD"], DATE); + addParseToken("Do", function(input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + var getSetDayOfMonth = makeGetSet("Date", !0); + addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); + addUnitAlias("dayOfYear", "DDD"); + addUnitPriority("dayOfYear", 4); + addRegexToken("DDD", match1to3); + addRegexToken("DDDD", match3); + addParseToken(["DDD", "DDDD"], function(input, array, config) { + config._dayOfYear = toInt(input); + }); + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf("day") - this.clone().startOf("year")) / + 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, "d"); + } + addFormatToken("m", ["mm", 2], 0, "minute"); + addUnitAlias("minute", "m"); + addUnitPriority("minute", 14); + addRegexToken("m", match1to2); + addRegexToken("mm", match1to2, match2); + addParseToken(["m", "mm"], MINUTE); + var getSetMinute = makeGetSet("Minutes", !1); + addFormatToken("s", ["ss", 2], 0, "second"); + addUnitAlias("second", "s"); + addUnitPriority("second", 15); + addRegexToken("s", match1to2); + addRegexToken("ss", match1to2, match2); + addParseToken(["s", "ss"], SECOND); + var getSetSecond = makeGetSet("Seconds", !1); + addFormatToken("S", 0, 0, function() { + return ~~(this.millisecond() / 100); + }); + addFormatToken(0, ["SS", 2], 0, function() { + return ~~(this.millisecond() / 10); + }); + addFormatToken(0, ["SSS", 3], 0, "millisecond"); + addFormatToken(0, ["SSSS", 4], 0, function() { + return this.millisecond() * 10; + }); + addFormatToken(0, ["SSSSS", 5], 0, function() { + return this.millisecond() * 100; + }); + addFormatToken(0, ["SSSSSS", 6], 0, function() { + return this.millisecond() * 1000; + }); + addFormatToken(0, ["SSSSSSS", 7], 0, function() { + return this.millisecond() * 10000; + }); + addFormatToken(0, ["SSSSSSSS", 8], 0, function() { + return this.millisecond() * 100000; + }); + addFormatToken(0, ["SSSSSSSSS", 9], 0, function() { + return this.millisecond() * 1000000; + }); + addUnitAlias("millisecond", "ms"); + addUnitPriority("millisecond", 16); + addRegexToken("S", match1to3, match1); + addRegexToken("SS", match1to3, match2); + addRegexToken("SSS", match1to3, match3); + var token; + for (token = "SSSS"; token.length <= 9; token += "S") { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(("0." + input) * 1000); + } + for (token = "S"; token.length <= 9; token += "S") { + addParseToken(token, parseMs); + } + var getSetMillisecond = makeGetSet("Milliseconds", !1); + addFormatToken("z", 0, 0, "zoneAbbr"); + addFormatToken("zz", 0, 0, "zoneName"); + + function getZoneAbbr() { + return this._isUTC ? "UTC" : ""; + } + + function getZoneName() { + return this._isUTC ? "Coordinated Universal Time" : ""; + } + var proto = Moment.prototype; + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + "dates accessor is deprecated. Use date instead.", + getSetDayOfMonth + ); + proto.months = deprecate( + "months accessor is deprecated. Use month instead", + getSetMonth + ); + proto.years = deprecate( + "years accessor is deprecated. Use year instead", + getSetYear + ); + proto.zone = deprecate( + "moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", + getSetZone + ); + proto.isDSTShifted = deprecate( + "isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + var proto$1 = Locale.prototype; + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(); + var utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + format = format || ""; + if (index != null) { + return get$1(format, index, field, "month"); + } + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, "month"); + } + return out; + } + + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === "boolean") { + if (isNumber(format)) { + index = format; + format = undefined; + } + format = format || ""; + } else { + format = localeSorted; + index = format; + localeSorted = !1; + if (isNumber(format)) { + index = format; + format = undefined; + } + format = format || ""; + } + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0; + if (index != null) { + return get$1(format, (index + shift) % 7, field, "day"); + } + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, "day"); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, "months"); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, "monthsShort"); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, "weekdays"); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, "weekdaysShort"); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, "weekdaysMin"); + } + getSetGlobalLocale("en", { + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function(number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? "th" + : b === 1 + ? "st" + : b === 2 + ? "nd" + : b === 3 + ? "rd" + : "th"; + return number + output; + } + }); + hooks.lang = deprecate( + "moment.lang is deprecated. Use moment.locale instead.", + getSetGlobalLocale + ); + hooks.langData = deprecate( + "moment.langData is deprecated. Use moment.localeData instead.", + getLocale + ); + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + return duration._bubble(); + } + + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + data.milliseconds = milliseconds % 1000; + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + hours = absFloor(minutes / 60); + data.hours = hours % 24; + days += absFloor(hours / 24); + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + years = absFloor(months / 12); + months %= 12; + data.days = days; + data.months = months; + data.years = years; + return this; + } + + function daysToMonths(days) { + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days; + var months; + var milliseconds = this._milliseconds; + units = normalizeUnits(units); + if (units === "month" || units === "year") { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === "month" ? months : months / 12; + } else { + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case "week": + return days / 7 + milliseconds / 6048e5; + case "day": + return days + milliseconds / 864e5; + case "hour": + return days * 24 + milliseconds / 36e5; + case "minute": + return days * 1440 + milliseconds / 6e4; + case "second": + return days * 86400 + milliseconds / 1000; + case "millisecond": + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error("Unknown unit " + units); + } + } + } + + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs(alias) { + return function() { + return this.as(alias); + }; + } + var asMilliseconds = makeAs("ms"); + var asSeconds = makeAs("s"); + var asMinutes = makeAs("m"); + var asHours = makeAs("h"); + var asDays = makeAs("d"); + var asWeeks = makeAs("w"); + var asMonths = makeAs("M"); + var asYears = makeAs("y"); + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + "s"]() : NaN; + } + + function makeGetter(name) { + return function() { + return this.isValid() ? this._data[name] : NaN; + }; + } + var milliseconds = makeGetter("milliseconds"); + var seconds = makeGetter("seconds"); + var minutes = makeGetter("minutes"); + var hours = makeGetter("hours"); + var days = makeGetter("days"); + var months = makeGetter("months"); + var years = makeGetter("years"); + + function weeks() { + return absFloor(this.days() / 7); + } + var round = Math.round; + var thresholds = { + ss: 44, + s: 45, + m: 45, + h: 22, + d: 26, + M: 11 + }; + + function substituteTimeAgo( + string, + number, + withoutSuffix, + isFuture, + locale + ) { + return locale.relativeTime( + number || 1, + !!withoutSuffix, + string, + isFuture + ); + } + + function relativeTime$1(posNegDuration, withoutSuffix, locale) { + var duration = createDuration(posNegDuration).abs(); + var seconds = round(duration.as("s")); + var minutes = round(duration.as("m")); + var hours = round(duration.as("h")); + var days = round(duration.as("d")); + var months = round(duration.as("M")); + var years = round(duration.as("y")); + var a = (seconds <= thresholds.ss && ["s", seconds]) || + (seconds < thresholds.s && ["ss", seconds]) || + (minutes <= 1 && ["m"]) || + (minutes < thresholds.m && ["mm", minutes]) || + (hours <= 1 && ["h"]) || + (hours < thresholds.h && ["hh", hours]) || + (days <= 1 && ["d"]) || + (days < thresholds.d && ["dd", days]) || + (months <= 1 && ["M"]) || + (months < thresholds.M && ["MM", months]) || + (years <= 1 && ["y"]) || ["yy", years]; + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === "function") { + round = roundingFunction; + return !0; + } + return !1; + } + + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return !1; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === "s") { + thresholds.ss = limit - 1; + } + return !0; + } + + function humanize(withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + var locale = this.localeData(); + var output = relativeTime$1(this, !withSuffix, locale); + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + return locale.postformat(output); + } + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + var seconds = abs$1(this._milliseconds) / 1000; + var days = abs$1(this._days); + var months = abs$1(this._months); + var minutes, hours, years; + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + years = absFloor(months / 12); + months %= 12; + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, "") : ""; + var total = this.asSeconds(); + if (!total) { + return "P0D"; + } + var totalSign = total < 0 ? "-" : ""; + var ymSign = sign(this._months) !== sign(total) ? "-" : ""; + var daysSign = sign(this._days) !== sign(total) ? "-" : ""; + var hmsSign = sign(this._milliseconds) !== sign(total) ? "-" : ""; + return ( + totalSign + + "P" + + (Y ? ymSign + Y + "Y" : "") + + (M ? ymSign + M + "M" : "") + + (D ? daysSign + D + "D" : "") + + (h || m || s ? "T" : "") + + (h ? hmsSign + h + "H" : "") + + (m ? hmsSign + m + "M" : "") + + (s ? hmsSign + s + "S" : "") + ); + } + var proto$2 = Duration.prototype; + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + proto$2.toIsoString = deprecate( + "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", + toISOString$1 + ); + proto$2.lang = lang; + addFormatToken("X", 0, 0, "unix"); + addFormatToken("x", 0, 0, "valueOf"); + addRegexToken("x", matchSigned); + addRegexToken("X", matchTimestamp); + addParseToken("X", function(input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken("x", function(input, array, config) { + config._d = new Date(toInt(input)); + }); + hooks.version = "2.19.3"; + setHookCallback(createLocal); + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + return hooks; +}); +if (typeof Object.create !== "function") { + Object.create = function(obj) { + function F() {} + F.prototype = obj; + return new F(); + }; +} +(function($, window, document, undefined) { + $.fn.socialfeed = function(_options) { + var defaults = { + plugin_folder: "", + template: "template.html", + show_media: !1, + media_min_width: 300, + length: 500, + date_format: "ll", + date_locale: "en" + }; + var options = $.extend(defaults, _options), + container = $(this), + template, + social_networks = [ + "facebook", + "instagram", + "vk", + "google", + "blogspot", + "twitter", + "pinterest", + "rss" + ], + posts_to_load_count = 0, + loaded_post_count = 0; + + function calculatePostsToLoadCount() { + social_networks.forEach(function(network) { + if (options[network]) { + if (options[network].accounts) { + posts_to_load_count += + options[network].limit * + options[network].accounts.length; + } else if (options[network].urls) { + posts_to_load_count += + options[network].limit * + options[network].urls.length; + } else { + posts_to_load_count += options[network].limit; + } + } + }); + } + calculatePostsToLoadCount(); + + function fireCallback() { + var fire = !0; + if (fire && options.callback) { + options.callback(); + } + } + var Utility = { + request: function(url, callback) { + $.ajax({ + url: url, + dataType: "jsonp", + success: callback + }); + }, + get_request: function(url, callback) { + $.get(url, callback, "json"); + }, + wrapLinks: function(string, social_network) { + var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi; + if (social_network === "google-plus") { + string = string.replace( + /(@|#)([a-z0-9_]+['])/gi, + Utility.wrapGoogleplusTagTemplate + ); + } else { + string = string.replace(exp, Utility.wrapLinkTemplate); + } + return string; + }, + wrapLinkTemplate: function(string) { + return ( + '' + + string + + "" + ); + }, + wrapGoogleplusTagTemplate: function(string) { + return ( + '' + + string + + "" + ); + }, + shorten: function(string) { + string = $.trim(string); + if (string.length > options.length) { + return ( + jQuery + .trim(string) + .substring(0, options.length) + .split(" ") + .slice(0, -1) + .join(" ") + "..." + ); + } else { + return string; + } + }, + stripHTML: function(string) { + if (typeof string === "undefined" || string === null) { + return ""; + } + return string.replace(/(<([^>]+)>)|nbsp;|\s{2,}|/gi, ""); + } + }; + + function SocialFeedPost(social_network, data) { + this.content = data; + this.content.social_network = social_network; + this.content.attachment = + this.content.attachment === undefined + ? "" + : this.content.attachment; + this.content.time_ago = data.dt_create + .locale(options.date_locale) + .fromNow(); + this.content.date = data.dt_create + .locale(options.date_locale) + .format(options.date_format); + this.content.dt_create = this.content.dt_create.valueOf(); + this.content.text = Utility.wrapLinks( + Utility.shorten(data.message + " " + data.description), + data.social_network + ); + this.content.moderation_passed = options.moderation + ? options.moderation(this.content) + : !0; + Feed[social_network].posts.push(this); + } + SocialFeedPost.prototype = { + render: function() { + var rendered_html = Feed.template(this.content); + var data = this.content; + if ( + $(container).children("[social-feed-id=" + data.id + "]") + .length !== 0 + ) { + return !1; + } + if ($(container).children().length === 0) { + $(container).append(rendered_html); + } else { + var i = 0, + insert_index = -1; + $.each($(container).children(), function() { + if ($(this).attr("dt-create") < data.dt_create) { + insert_index = i; + return !1; + } + i++; + }); + $(container).append(rendered_html); + if (insert_index >= 0) { + insert_index++; + var before = $(container).children( + "div:nth-child(" + insert_index + ")" + ), + current = $(container).children("div:last-child"); + $(current).insertBefore(before); + } + } + if (options.media_min_width) { + var query = + "[social-feed-id=" + data.id + "] img.attachment"; + var image = $(query); + var height, + width = ""; + var img = new Image(); + var imgSrc = image.attr("src"); + $(img) + .on("load", function() { + if (img.width < options.media_min_width) { + image.hide(); + } + delete img; + }) + .on("error", function() { + image.hide(); + }) + .attr({ + src: imgSrc + }); + } + loaded_post_count++; + if (loaded_post_count == posts_to_load_count) { + fireCallback(); + } + } + }; + var Feed = { + template: !1, + init: function() { + Feed.getTemplate(function() { + social_networks.forEach(function(network) { + if (options[network]) { + if (options[network].accounts) { + options[network].accounts.forEach(function( + account + ) { + Feed[network].getData(account); + }); + } else if (options[network].urls) { + options[network].urls.forEach(function(url) { + Feed[network].getData(url); + }); + } else { + Feed[network].getData(); + } + } + }); + }); + }, + getTemplate: function(callback) { + if (Feed.template) return callback(); + else { + if (options.template_html) { + Feed.template = doT.template(options.template_html); + return callback(); + } else { + $.get(options.template, function(template_html) { + Feed.template = doT.template(template_html); + return callback(); + }); + } + } + }, + twitter: { + posts: [], + loaded: !1, + api: "http://api.tweecool.com/", + getData: function(account) { + var cb = new Codebird(); + cb.setConsumerKey( + options.twitter.consumer_key, + options.twitter.consumer_secret + ); + if (options.twitter.proxy !== undefined) { + cb.setProxy(options.twitter.proxy); + } + switch (account[0]) { + case "@": + var userid = account.substr(1); + cb.__call( + "statuses_userTimeline", + { + id: userid, + count: options.twitter.limit, + tweet_mode: + typeof options.twitter.tweet_mode === + "undefined" + ? "compatibility" + : options.twitter.tweet_mode + }, + Feed.twitter.utility.getPosts, + !0 + ); + break; + case "#": + var hashtag = account.substr(1); + cb.__call( + "search_tweets", + { + q: hashtag, + count: options.twitter.limit, + tweet_mode: + typeof options.twitter.tweet_mode === + "undefined" + ? "compatibility" + : options.twitter.tweet_mode + }, + function(reply) { + Feed.twitter.utility.getPosts( + reply.statuses + ); + }, + !0 + ); + break; + default: + } + }, + utility: { + getPosts: function(json) { + if (json) { + $.each(json, function() { + var element = this; + var post = new SocialFeedPost( + "twitter", + Feed.twitter.utility.unifyPostData(element) + ); + post.render(); + }); + } + }, + unifyPostData: function(element) { + var post = {}; + if (element.id) { + post.id = element.id_str; + post.dt_create = moment( + element.created_at, + "dd MMM DD HH:mm:ss ZZ YYYY" + ); + post.author_link = + "http://twitter.com/" + + element.user.screen_name; + post.author_picture = + element.user.profile_image_url_https; + post.post_url = + post.author_link + "/status/" + element.id_str; + post.author_name = element.user.name; + post.message = + typeof element.text === "undefined" + ? element.full_text.substr( + element.display_text_range[0], + element.display_text_range[1] + ) + : element.text; + post.description = ""; + post.link = + "http://twitter.com/" + + element.user.screen_name + + "/status/" + + element.id_str; + if (options.show_media === !0) { + if ( + element.entities.media && + element.entities.media.length > 0 + ) { + var image_url = + element.entities.media[0] + .media_url_https; + if (image_url) { + post.attachment = + ''; + } + } + } + } + return post; + } + } + }, + facebook: { + posts: [], + graph: "https://graph.facebook.com/", + loaded: !1, + getData: function(account) { + var proceed = function(request_url) { + Utility.request( + request_url, + Feed.facebook.utility.getPosts + ); + }; + var fields = + "?fields=id,from,name,message,created_time,story,description,link"; + fields += + options.show_media === !0 ? ",picture,object_id" : ""; + var request_url, + limit = "&limit=" + options.facebook.limit, + query_extention = + "&access_token=" + + options.facebook.access_token + + "&callback=?"; + switch (account[0]) { + case "@": + var username = account.substr(1); + Feed.facebook.utility.getUserId(username, function( + userdata + ) { + if (userdata.id !== "") { + request_url = + Feed.facebook.graph + + "v2.12/" + + userdata.id + + "/posts" + + fields + + limit + + query_extention; + proceed(request_url); + } + }); + break; + case "!": + var page = account.substr(1); + request_url = + Feed.facebook.graph + + "v2.12/" + + page + + "/feed" + + fields + + limit + + query_extention; + proceed(request_url); + break; + default: + proceed(request_url); + } + }, + utility: { + getUserId: function(username, callback) { + var query_extention = + "&access_token=" + + options.facebook.access_token + + "&callback=?"; + var url = + "https://graph.facebook.com/" + + username + + "?" + + query_extention; + var result = ""; + $.get(url, callback, "json"); + }, + prepareAttachment: function(element) { + var image_url = element.picture; + if (image_url.indexOf("_b.") !== -1) { + } else if (image_url.indexOf("safe_image.php") !== -1) { + image_url = Feed.facebook.utility.getExternalImageURL( + image_url, + "url" + ); + } else if ( + image_url.indexOf("app_full_proxy.php") !== -1 + ) { + image_url = Feed.facebook.utility.getExternalImageURL( + image_url, + "src" + ); + } else if (element.object_id) { + image_url = + Feed.facebook.graph + + element.object_id + + "/picture/?type=normal"; + } + return ( + '' + ); + }, + getExternalImageURL: function(image_url, parameter) { + image_url = decodeURIComponent(image_url).split( + parameter + "=" + )[1]; + if (image_url.indexOf("fbcdn-sphotos") === -1) { + return image_url.split("&")[0]; + } else { + return image_url; + } + }, + getPosts: function(json) { + if (json.data) { + json.data.forEach(function(element) { + var post = new SocialFeedPost( + "facebook", + Feed.facebook.utility.unifyPostData(element) + ); + post.render(); + }); + } + }, + unifyPostData: function(element) { + var post = {}, + text = element.message + ? element.message + : element.story; + post.id = element.id; + post.dt_create = moment(element.created_time); + post.author_link = + "http://facebook.com/" + element.from.id; + post.author_picture = + Feed.facebook.graph + element.from.id + "/picture"; + post.author_name = element.from.name; + post.name = element.name || ""; + post.message = text ? text : ""; + post.description = element.description + ? element.description + : ""; + post.link = element.link + ? element.link + : "http://facebook.com/" + element.from.id; + if (options.show_media === !0) { + if (element.picture) { + var attachment = Feed.facebook.utility.prepareAttachment( + element + ); + if (attachment) { + post.attachment = attachment; + } + } + } + return post; + } + } + }, + google: { + posts: [], + loaded: !1, + api: "https://www.googleapis.com/plus/v1/", + getData: function(account) { + var request_url; + switch (account[0]) { + case "#": + var hashtag = account.substr(1); + request_url = + Feed.google.api + + "activities?query=" + + hashtag + + "&key=" + + options.google.access_token + + "&maxResults=" + + options.google.limit; + Utility.get_request( + request_url, + Feed.google.utility.getPosts + ); + break; + case "@": + var username = account.substr(1); + request_url = + Feed.google.api + + "people/" + + username + + "/activities/public?key=" + + options.google.access_token + + "&maxResults=" + + options.google.limit; + Utility.get_request( + request_url, + Feed.google.utility.getPosts + ); + break; + default: + } + }, + utility: { + getPosts: function(json) { + if (json.items) { + $.each(json.items, function(i) { + var post = new SocialFeedPost( + "google", + Feed.google.utility.unifyPostData( + json.items[i] + ) + ); + post.render(); + }); + } + }, + unifyPostData: function(element) { + var post = {}; + post.id = element.id; + post.attachment = ""; + post.description = ""; + post.dt_create = moment(element.published); + post.author_link = element.actor.url; + post.author_picture = element.actor.image.url; + post.author_name = element.actor.displayName; + if (options.show_media === !0) { + if (element.object.attachments) { + $.each(element.object.attachments, function() { + var image = ""; + if (this.fullImage) { + image = this.fullImage.url; + } else { + if (this.objectType === "album") { + if ( + this.thumbnails && + this.thumbnails.length > 0 + ) { + if (this.thumbnails[0].image) { + image = this.thumbnails[0] + .image.url; + } + } + } + } + post.attachment = + ''; + }); + } + } + post.message = element.title; + post.link = element.url; + return post; + } + } + }, + instagram: { + posts: [], + api: "https://api.instagram.com/v1/", + loaded: !1, + accessType: function() { + if ( + typeof options.instagram.access_token === "undefined" && + typeof options.instagram.client_id === "undefined" + ) { + console.log( + "You need to define a client_id or access_token to authenticate with Instagram's API." + ); + return undefined; + } + if (options.instagram.access_token) { + options.instagram.client_id = undefined; + } + options.instagram.access_type = + typeof options.instagram.client_id === "undefined" + ? "access_token" + : "client_id"; + return options.instagram.access_type; + }, + getData: function(account) { + var url; + if (this.accessType() !== "undefined") { + var authTokenParams = + options.instagram.access_type + + "=" + + options.instagram[options.instagram.access_type]; + } + switch (account[0]) { + case "@": + var username = account.substr(1); + url = + Feed.instagram.api + + "users/search/?q=" + + username + + "&" + + authTokenParams + + "&count=1" + + "&callback=?"; + Utility.request( + url, + Feed.instagram.utility.getUsers + ); + break; + case "#": + var hashtag = account.substr(1); + url = + Feed.instagram.api + + "tags/" + + hashtag + + "/media/recent/?" + + authTokenParams + + "&" + + "count=" + + options.instagram.limit + + "&callback=?"; + Utility.request( + url, + Feed.instagram.utility.getImages + ); + break; + case "&": + var id = account.substr(1); + url = + Feed.instagram.api + + "users/" + + id + + "/?" + + authTokenParams + + "&" + + "count=" + + options.instagram.limit + + "&callback=?"; + Utility.request( + url, + Feed.instagram.utility.getUsers + ); + default: + } + }, + utility: { + getImages: function(json) { + if (json.data) { + json.data.forEach(function(element) { + var post = new SocialFeedPost( + "instagram", + Feed.instagram.utility.unifyPostData( + element + ) + ); + post.render(); + }); + } + }, + getUsers: function(json) { + if (options.instagram.access_type !== "undefined") { + var authTokenParams = + options.instagram.access_type + + "=" + + options.instagram[ + options.instagram.access_type + ]; + } + if (!jQuery.isArray(json.data)) json.data = [json.data]; + json.data.forEach(function(user) { + var url = + Feed.instagram.api + + "users/" + + user.id + + "/media/recent/?" + + authTokenParams + + "&" + + "count=" + + options.instagram.limit + + "&callback=?"; + Utility.request( + url, + Feed.instagram.utility.getImages + ); + }); + }, + unifyPostData: function(element) { + var post = {}; + post.id = element.id; + post.dt_create = moment(element.created_time * 1000); + post.author_link = + "http://instagram.com/" + element.user.username; + post.author_picture = element.user.profile_picture; + post.author_name = + element.user.full_name || element.user.username; + post.message = + element.caption && element.caption + ? element.caption.text + : ""; + post.description = ""; + post.link = element.link; + if (options.show_media) { + post.attachment = + ''; + } + return post; + } + } + }, + vk: { + posts: [], + loaded: !1, + base: "http://vk.com/", + api: "https://api.vk.com/method/", + user_json_template: + "https://api.vk.com/method/" + + "users.get?fields=first_name,%20last_name,%20screen_name,%20photo&uid=", + group_json_template: + "https://api.vk.com/method/" + + "groups.getById?fields=first_name,%20last_name,%20screen_name,%20photo&gid=", + getData: function(account) { + var request_url; + switch (account[0]) { + case "@": + var username = account.substr(1); + request_url = + Feed.vk.api + + "wall.get?owner_id=" + + username + + "&filter=" + + options.vk.source + + "&count=" + + options.vk.limit + + "&callback=?"; + Utility.get_request( + request_url, + Feed.vk.utility.getPosts + ); + break; + case "#": + var hashtag = account.substr(1); + request_url = + Feed.vk.api + + "newsfeed.search?q=" + + hashtag + + "&count=" + + options.vk.limit + + "&callback=?"; + Utility.get_request( + request_url, + Feed.vk.utility.getPosts + ); + break; + default: + } + }, + utility: { + getPosts: function(json) { + if (json.response) { + $.each(json.response, function() { + if ( + this != parseInt(this) && + this.post_type === "post" + ) { + var owner_id = this.owner_id + ? this.owner_id + : this.from_id, + vk_wall_owner_url = + owner_id > 0 + ? Feed.vk.user_json_template + + owner_id + + "&callback=?" + : Feed.vk.group_json_template + + -1 * owner_id + + "&callback=?", + element = this; + Utility.get_request( + vk_wall_owner_url, + function(wall_owner) { + Feed.vk.utility.unifyPostData( + wall_owner, + element, + json + ); + } + ); + } + }); + } + }, + unifyPostData: function(wall_owner, element, json) { + var post = {}; + post.id = element.id; + post.dt_create = moment.unix(element.date); + post.description = " "; + post.message = Utility.stripHTML(element.text); + if (options.show_media) { + if (element.attachment) { + if (element.attachment.type === "link") + post.attachment = + ''; + if (element.attachment.type === "video") + post.attachment = + ''; + if (element.attachment.type === "photo") + post.attachment = + ''; + } + } + if (element.from_id > 0) { + var vk_user_json = + Feed.vk.user_json_template + + element.from_id + + "&callback=?"; + Utility.get_request(vk_user_json, function( + user_json + ) { + var vk_post = new SocialFeedPost( + "vk", + Feed.vk.utility.getUser( + user_json, + post, + element, + json + ) + ); + vk_post.render(); + }); + } else { + var vk_group_json = + Feed.vk.group_json_template + + -1 * element.from_id + + "&callback=?"; + Utility.get_request(vk_group_json, function( + user_json + ) { + var vk_post = new SocialFeedPost( + "vk", + Feed.vk.utility.getGroup( + user_json, + post, + element, + json + ) + ); + vk_post.render(); + }); + } + }, + getUser: function(user_json, post, element, json) { + post.author_name = + user_json.response[0].first_name + + " " + + user_json.response[0].last_name; + post.author_picture = user_json.response[0].photo; + post.author_link = + Feed.vk.base + user_json.response[0].screen_name; + post.link = + Feed.vk.base + + user_json.response[0].screen_name + + "?w=wall" + + element.from_id + + "_" + + element.id; + return post; + }, + getGroup: function(user_json, post, element, json) { + post.author_name = user_json.response[0].name; + post.author_picture = user_json.response[0].photo; + post.author_link = + Feed.vk.base + user_json.response[0].screen_name; + post.link = + Feed.vk.base + + user_json.response[0].screen_name + + "?w=wall-" + + user_json.response[0].gid + + "_" + + element.id; + return post; + } + } + }, + blogspot: { + loaded: !1, + getData: function(account) { + var url; + switch (account[0]) { + case "@": + var username = account.substr(1); + url = + "http://" + + username + + ".blogspot.com/feeds/posts/default?alt=json-in-script&callback=?"; + request(url, getPosts); + break; + default: + } + }, + utility: { + getPosts: function(json) { + $.each(json.feed.entry, function() { + var post = {}, + element = this; + post.id = element.id["$t"].replace( + /[^a-z0-9]/gi, + "" + ); + post.dt_create = moment(element.published["$t"]); + post.author_link = element.author[0].uri["$t"]; + post.author_picture = + "http:" + element.author[0].gd$image.src; + post.author_name = element.author[0].name["$t"]; + post.message = + element.title["$t"] + + "

" + + stripHTML(element.content["$t"]); + post.description = ""; + post.link = element.link.pop().href; + if (options.show_media) { + if (element.media$thumbnail) { + post.attachment = + ''; + } + } + post.render(); + }); + } + } + }, + pinterest: { + posts: [], + loaded: !1, + apiv1: "https://api.pinterest.com/v1/", + getData: function(account) { + var request_url, + limit = "limit=" + options.pinterest.limit, + fields = + "fields=id,created_at,link,note,creator(url,first_name,last_name,image),image", + query_extention = + fields + + "&access_token=" + + options.pinterest.access_token + + "&" + + limit + + "&callback=?"; + switch (account[0]) { + case "@": + var username = account.substr(1); + if (username === "me") { + request_url = + Feed.pinterest.apiv1 + + "me/pins/?" + + query_extention; + } else { + request_url = + Feed.pinterest.apiv1 + + "boards/" + + username + + "/pins?" + + query_extention; + } + break; + default: + } + Utility.request( + request_url, + Feed.pinterest.utility.getPosts + ); + }, + utility: { + getPosts: function(json) { + json.data.forEach(function(element) { + var post = new SocialFeedPost( + "pinterest", + Feed.pinterest.utility.unifyPostData(element) + ); + post.render(); + }); + }, + unifyPostData: function(element) { + var post = {}; + post.id = element.id; + post.dt_create = moment(element.created_at); + post.author_link = element.creator.url; + post.author_picture = + element.creator.image["60x60"].url; + post.author_name = + element.creator.first_name + + element.creator.last_name; + post.message = element.note; + post.description = ""; + post.social_network = "pinterest"; + post.link = element.link + ? element.link + : "https://www.pinterest.com/pin/" + element.id; + if (options.show_media) { + post.attachment = + ''; + } + return post; + } + } + }, + rss: { + posts: [], + loaded: !1, + api: "https://query.yahooapis.com/v1/public/yql?q=", + datatype: "json", + getData: function(url) { + var limit = options.rss.limit, + yql = encodeURIComponent( + "select entry FROM feednormalizer where url='" + + url + + "' AND output='atom_1.0' | truncate(count=" + + limit + + ")" + ), + request_url = + Feed.rss.api + yql + "&format=json&callback=?"; + Utility.request( + request_url, + Feed.rss.utility.getPosts, + Feed.rss.datatype + ); + }, + utility: { + getPosts: function(json) { + console.log(json); + if (json.query.count > 0) { + $.each(json.query.results.feed, function( + index, + element + ) { + var post = new SocialFeedPost( + "rss", + Feed.rss.utility.unifyPostData( + index, + element + ) + ); + post.render(); + }); + } + }, + unifyPostData: function(index, element) { + var item = element; + if (element.entry !== undefined) { + item = element.entry; + } + var post = {}; + post.id = '"' + item.id + '"'; + post.dt_create = moment( + item.published, + "YYYY-MM-DDTHH:mm:ssZ", + "en" + ); + post.author_link = ""; + post.author_picture = ""; + post.author_name = ""; + if (item.creator !== undefined) { + post.author_name = item.creator; + } + post.message = item.title; + post.description = ""; + if (item.summary !== undefined) { + post.description = Utility.stripHTML( + item.summary.content + ); + } + post.social_network = "rss"; + post.link = item.link.href; + if ( + options.show_media && + item.thumbnail !== undefined + ) { + post.attachment = + ''; + } + return post; + } + } + } + }; + return this.each(function() { + Feed.init(); + if (options.update_period) { + setInterval(function() { + return Feed.init(); + }, options.update_period); + } + }); + }; +})(jQuery); +!(function(a) { + "function" == typeof define && define.amd + ? define(["jquery"], a) + : a( + "object" == typeof exports + ? require("jquery") + : window.jQuery || window.Zepto + ); +})(function(a) { + var b, + c, + d, + e, + f, + g, + h = "Close", + i = "BeforeClose", + j = "AfterClose", + k = "BeforeAppend", + l = "MarkupParse", + m = "Open", + n = "Change", + o = "mfp", + p = "." + o, + q = "mfp-ready", + r = "mfp-removing", + s = "mfp-prevent-close", + t = function() {}, + u = !!window.jQuery, + v = a(window), + w = function(a, c) { + b.ev.on(o + a + p, c); + }, + x = function(b, c, d, e) { + var f = document.createElement("div"); + return ( + (f.className = "mfp-" + b), + d && (f.innerHTML = d), + e ? c && c.appendChild(f) : ((f = a(f)), c && f.appendTo(c)), + f + ); + }, + y = function(c, d) { + b.ev.triggerHandler(o + c, d), + b.st.callbacks && + ((c = c.charAt(0).toLowerCase() + c.slice(1)), + b.st.callbacks[c] && + b.st.callbacks[c].apply(b, a.isArray(d) ? d : [d])); + }, + z = function(c) { + return ( + (c === g && b.currTemplate.closeBtn) || + ((b.currTemplate.closeBtn = a( + b.st.closeMarkup.replace("%title%", b.st.tClose) + )), + (g = c)), + b.currTemplate.closeBtn + ); + }, + A = function() { + a.magnificPopup.instance || + ((b = new t()), b.init(), (a.magnificPopup.instance = b)); + }, + B = function() { + var a = document.createElement("p").style, + b = ["ms", "O", "Moz", "Webkit"]; + if (void 0 !== a.transition) return !0; + for (; b.length; ) if (b.pop() + "Transition" in a) return !0; + return !1; + }; + (t.prototype = { + constructor: t, + init: function() { + var c = navigator.appVersion; + (b.isLowIE = b.isIE8 = document.all && !document.addEventListener), + (b.isAndroid = /android/gi.test(c)), + (b.isIOS = /iphone|ipad|ipod/gi.test(c)), + (b.supportsTransition = B()), + (b.probablyMobile = + b.isAndroid || + b.isIOS || + /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test( + navigator.userAgent + )), + (d = a(document)), + (b.popupsCache = {}); + }, + open: function(c) { + var e; + if (c.isObj === !1) { + (b.items = c.items.toArray()), (b.index = 0); + var g, + h = c.items; + for (e = 0; e < h.length; e++) + if ( + ((g = h[e]), g.parsed && (g = g.el[0]), g === c.el[0]) + ) { + b.index = e; + break; + } + } else + (b.items = a.isArray(c.items) ? c.items : [c.items]), + (b.index = c.index || 0); + if (b.isOpen) return void b.updateItemHTML(); + (b.types = []), + (f = ""), + c.mainEl && c.mainEl.length + ? (b.ev = c.mainEl.eq(0)) + : (b.ev = d), + c.key + ? (b.popupsCache[c.key] || (b.popupsCache[c.key] = {}), + (b.currTemplate = b.popupsCache[c.key])) + : (b.currTemplate = {}), + (b.st = a.extend(!0, {}, a.magnificPopup.defaults, c)), + (b.fixedContentPos = + "auto" === b.st.fixedContentPos + ? !b.probablyMobile + : b.st.fixedContentPos), + b.st.modal && + ((b.st.closeOnContentClick = !1), + (b.st.closeOnBgClick = !1), + (b.st.showCloseBtn = !1), + (b.st.enableEscapeKey = !1)), + b.bgOverlay || + ((b.bgOverlay = x("bg").on("click" + p, function() { + b.close(); + })), + (b.wrap = x("wrap") + .attr("tabindex", -1) + .on("click" + p, function(a) { + b._checkIfClose(a.target) && b.close(); + })), + (b.container = x("container", b.wrap))), + (b.contentContainer = x("content")), + b.st.preloader && + (b.preloader = x("preloader", b.container, b.st.tLoading)); + var i = a.magnificPopup.modules; + for (e = 0; e < i.length; e++) { + var j = i[e]; + (j = j.charAt(0).toUpperCase() + j.slice(1)), + b["init" + j].call(b); + } + y("BeforeOpen"), + b.st.showCloseBtn && + (b.st.closeBtnInside + ? (w(l, function(a, b, c, d) { + c.close_replaceWith = z(d.type); + }), + (f += " mfp-close-btn-in")) + : b.wrap.append(z())), + b.st.alignTop && (f += " mfp-align-top"), + b.fixedContentPos + ? b.wrap.css({ + overflow: b.st.overflowY, + overflowX: "hidden", + overflowY: b.st.overflowY + }) + : b.wrap.css({ + top: v.scrollTop(), + position: "absolute" + }), + (b.st.fixedBgPos === !1 || + ("auto" === b.st.fixedBgPos && !b.fixedContentPos)) && + b.bgOverlay.css({ + height: d.height(), + position: "absolute" + }), + b.st.enableEscapeKey && + d.on("keyup" + p, function(a) { + 27 === a.keyCode && b.close(); + }), + v.on("resize" + p, function() { + b.updateSize(); + }), + b.st.closeOnContentClick || (f += " mfp-auto-cursor"), + f && b.wrap.addClass(f); + var k = (b.wH = v.height()), + n = {}; + if (b.fixedContentPos && b._hasScrollBar(k)) { + var o = b._getScrollbarSize(); + o && (n.marginRight = o); + } + b.fixedContentPos && + (b.isIE7 + ? a("body, html").css("overflow", "hidden") + : (n.overflow = "hidden")); + var r = b.st.mainClass; + return ( + b.isIE7 && (r += " mfp-ie7"), + r && b._addClassToMFP(r), + b.updateItemHTML(), + y("BuildControls"), + a("html").css(n), + b.bgOverlay + .add(b.wrap) + .prependTo(b.st.prependTo || a(document.body)), + (b._lastFocusedEl = document.activeElement), + setTimeout(function() { + b.content + ? (b._addClassToMFP(q), b._setFocus()) + : b.bgOverlay.addClass(q), + d.on("focusin" + p, b._onFocusIn); + }, 16), + (b.isOpen = !0), + b.updateSize(k), + y(m), + c + ); + }, + close: function() { + b.isOpen && + (y(i), + (b.isOpen = !1), + b.st.removalDelay && !b.isLowIE && b.supportsTransition + ? (b._addClassToMFP(r), + setTimeout(function() { + b._close(); + }, b.st.removalDelay)) + : b._close()); + }, + _close: function() { + y(h); + var c = r + " " + q + " "; + if ( + (b.bgOverlay.detach(), + b.wrap.detach(), + b.container.empty(), + b.st.mainClass && (c += b.st.mainClass + " "), + b._removeClassFromMFP(c), + b.fixedContentPos) + ) { + var e = { + marginRight: "" + }; + b.isIE7 + ? a("body, html").css("overflow", "") + : (e.overflow = ""), + a("html").css(e); + } + d.off("keyup" + p + " focusin" + p), + b.ev.off(p), + b.wrap.attr("class", "mfp-wrap").removeAttr("style"), + b.bgOverlay.attr("class", "mfp-bg"), + b.container.attr("class", "mfp-container"), + !b.st.showCloseBtn || + (b.st.closeBtnInside && + b.currTemplate[b.currItem.type] !== !0) || + (b.currTemplate.closeBtn && + b.currTemplate.closeBtn.detach()), + b.st.autoFocusLast && + b._lastFocusedEl && + a(b._lastFocusedEl).focus(), + (b.currItem = null), + (b.content = null), + (b.currTemplate = null), + (b.prevHeight = 0), + y(j); + }, + updateSize: function(a) { + if (b.isIOS) { + var c = + document.documentElement.clientWidth / + window.innerWidth, + d = window.innerHeight * c; + b.wrap.css("height", d), (b.wH = d); + } else b.wH = a || v.height(); + b.fixedContentPos || b.wrap.css("height", b.wH), y("Resize"); + }, + updateItemHTML: function() { + var c = b.items[b.index]; + b.contentContainer.detach(), + b.content && b.content.detach(), + c.parsed || (c = b.parseEl(b.index)); + var d = c.type; + if ( + (y("BeforeChange", [b.currItem ? b.currItem.type : "", d]), + (b.currItem = c), + !b.currTemplate[d]) + ) { + var f = b.st[d] ? b.st[d].markup : !1; + y("FirstMarkupParse", f), + f ? (b.currTemplate[d] = a(f)) : (b.currTemplate[d] = !0); + } + e && + e !== c.type && + b.container.removeClass("mfp-" + e + "-holder"); + var g = b["get" + d.charAt(0).toUpperCase() + d.slice(1)]( + c, + b.currTemplate[d] + ); + b.appendContent(g, d), + (c.preloaded = !0), + y(n, c), + (e = c.type), + b.container.prepend(b.contentContainer), + y("AfterChange"); + }, + appendContent: function(a, c) { + (b.content = a), + a + ? b.st.showCloseBtn && + b.st.closeBtnInside && + b.currTemplate[c] === !0 + ? b.content.find(".mfp-close").length || + b.content.append(z()) + : (b.content = a) + : (b.content = ""), + y(k), + b.container.addClass("mfp-" + c + "-holder"), + b.contentContainer.append(b.content); + }, + parseEl: function(c) { + var d, + e = b.items[c]; + if ( + (e.tagName + ? (e = { + el: a(e) + }) + : ((d = e.type), + (e = { + data: e, + src: e.src + })), + e.el) + ) { + for (var f = b.types, g = 0; g < f.length; g++) + if (e.el.hasClass("mfp-" + f[g])) { + d = f[g]; + break; + } + (e.src = e.el.attr("data-mfp-src")), + e.src || (e.src = e.el.attr("href")); + } + return ( + (e.type = d || b.st.type || "inline"), + (e.index = c), + (e.parsed = !0), + (b.items[c] = e), + y("ElementParse", e), + b.items[c] + ); + }, + addGroup: function(a, c) { + var d = function(d) { + (d.mfpEl = this), b._openClick(d, a, c); + }; + c || (c = {}); + var e = "click.magnificPopup"; + (c.mainEl = a), + c.items + ? ((c.isObj = !0), a.off(e).on(e, d)) + : ((c.isObj = !1), + c.delegate + ? a.off(e).on(e, c.delegate, d) + : ((c.items = a), a.off(e).on(e, d))); + }, + _openClick: function(c, d, e) { + var f = + void 0 !== e.midClick + ? e.midClick + : a.magnificPopup.defaults.midClick; + if ( + f || + !( + 2 === c.which || + c.ctrlKey || + c.metaKey || + c.altKey || + c.shiftKey + ) + ) { + var g = + void 0 !== e.disableOn + ? e.disableOn + : a.magnificPopup.defaults.disableOn; + if (g) + if (a.isFunction(g)) { + if (!g.call(b)) return !0; + } else if (v.width() < g) return !0; + c.type && (c.preventDefault(), b.isOpen && c.stopPropagation()), + (e.el = a(c.mfpEl)), + e.delegate && (e.items = d.find(e.delegate)), + b.open(e); + } + }, + updateStatus: function(a, d) { + if (b.preloader) { + c !== a && b.container.removeClass("mfp-s-" + c), + d || "loading" !== a || (d = b.st.tLoading); + var e = { + status: a, + text: d + }; + y("UpdateStatus", e), + (a = e.status), + (d = e.text), + b.preloader.html(d), + b.preloader.find("a").on("click", function(a) { + a.stopImmediatePropagation(); + }), + b.container.addClass("mfp-s-" + a), + (c = a); + } + }, + _checkIfClose: function(c) { + if (!a(c).hasClass(s)) { + var d = b.st.closeOnContentClick, + e = b.st.closeOnBgClick; + if (d && e) return !0; + if ( + !b.content || + a(c).hasClass("mfp-close") || + (b.preloader && c === b.preloader[0]) + ) + return !0; + if (c === b.content[0] || a.contains(b.content[0], c)) { + if (d) return !0; + } else if (e && a.contains(document, c)) return !0; + return !1; + } + }, + _addClassToMFP: function(a) { + b.bgOverlay.addClass(a), b.wrap.addClass(a); + }, + _removeClassFromMFP: function(a) { + this.bgOverlay.removeClass(a), b.wrap.removeClass(a); + }, + _hasScrollBar: function(a) { + return ( + (b.isIE7 ? d.height() : document.body.scrollHeight) > + (a || v.height()) + ); + }, + _setFocus: function() { + (b.st.focus ? b.content.find(b.st.focus).eq(0) : b.wrap).focus(); + }, + _onFocusIn: function(c) { + return c.target === b.wrap[0] || a.contains(b.wrap[0], c.target) + ? void 0 + : (b._setFocus(), !1); + }, + _parseMarkup: function(b, c, d) { + var e; + d.data && (c = a.extend(d.data, c)), + y(l, [b, c, d]), + a.each(c, function(c, d) { + if (void 0 === d || d === !1) return !0; + if (((e = c.split("_")), e.length > 1)) { + var f = b.find(p + "-" + e[0]); + if (f.length > 0) { + var g = e[1]; + "replaceWith" === g + ? f[0] !== d[0] && f.replaceWith(d) + : "img" === g + ? f.is("img") + ? f.attr("src", d) + : f.replaceWith( + a("") + .attr("src", d) + .attr("class", f.attr("class")) + ) + : f.attr(e[1], d); + } + } else b.find(p + "-" + c).html(d); + }); + }, + _getScrollbarSize: function() { + if (void 0 === b.scrollbarSize) { + var a = document.createElement("div"); + (a.style.cssText = + "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;"), + document.body.appendChild(a), + (b.scrollbarSize = a.offsetWidth - a.clientWidth), + document.body.removeChild(a); + } + return b.scrollbarSize; + } + }), + (a.magnificPopup = { + instance: null, + proto: t.prototype, + modules: [], + open: function(b, c) { + return ( + A(), + (b = b ? a.extend(!0, {}, b) : {}), + (b.isObj = !0), + (b.index = c || 0), + this.instance.open(b) + ); + }, + close: function() { + return ( + a.magnificPopup.instance && a.magnificPopup.instance.close() + ); + }, + registerModule: function(b, c) { + c.options && (a.magnificPopup.defaults[b] = c.options), + a.extend(this.proto, c.proto), + this.modules.push(b); + }, + defaults: { + disableOn: 0, + key: null, + midClick: !1, + mainClass: "", + preloader: !0, + focus: "", + closeOnContentClick: !1, + closeOnBgClick: !0, + closeBtnInside: !0, + showCloseBtn: !0, + enableEscapeKey: !0, + modal: !1, + alignTop: !1, + removalDelay: 0, + prependTo: null, + fixedContentPos: "auto", + fixedBgPos: "auto", + overflowY: "auto", + closeMarkup: + '', + tClose: "Close (Esc)", + tLoading: "Loading...", + autoFocusLast: !0 + } + }), + (a.fn.magnificPopup = function(c) { + A(); + var d = a(this); + if ("string" == typeof c) + if ("open" === c) { + var e, + f = u ? d.data("magnificPopup") : d[0].magnificPopup, + g = parseInt(arguments[1], 10) || 0; + f.items + ? (e = f.items[g]) + : ((e = d), + f.delegate && (e = e.find(f.delegate)), + (e = e.eq(g))), + b._openClick( + { + mfpEl: e + }, + d, + f + ); + } else + b.isOpen && + b[c].apply(b, Array.prototype.slice.call(arguments, 1)); + else + (c = a.extend(!0, {}, c)), + u ? d.data("magnificPopup", c) : (d[0].magnificPopup = c), + b.addGroup(d, c); + return d; + }); + var C, + D, + E, + F = "inline", + G = function() { + E && (D.after(E.addClass(C)).detach(), (E = null)); + }; + a.magnificPopup.registerModule(F, { + options: { + hiddenClass: "hide", + markup: "", + tNotFound: "Content not found" + }, + proto: { + initInline: function() { + b.types.push(F), + w(h + "." + F, function() { + G(); + }); + }, + getInline: function(c, d) { + if ((G(), c.src)) { + var e = b.st.inline, + f = a(c.src); + if (f.length) { + var g = f[0].parentNode; + g && + g.tagName && + (D || + ((C = e.hiddenClass), + (D = x(C)), + (C = "mfp-" + C)), + (E = f + .after(D) + .detach() + .removeClass(C))), + b.updateStatus("ready"); + } else + b.updateStatus("error", e.tNotFound), (f = a("
")); + return (c.inlineElement = f), f; + } + return b.updateStatus("ready"), b._parseMarkup(d, {}, c), d; + } + } + }); + var H, + I = "ajax", + J = function() { + H && a(document.body).removeClass(H); + }, + K = function() { + J(), b.req && b.req.abort(); + }; + a.magnificPopup.registerModule(I, { + options: { + settings: null, + cursor: "mfp-ajax-cur", + tError: 'The content could not be loaded.' + }, + proto: { + initAjax: function() { + b.types.push(I), + (H = b.st.ajax.cursor), + w(h + "." + I, K), + w("BeforeChange." + I, K); + }, + getAjax: function(c) { + H && a(document.body).addClass(H), b.updateStatus("loading"); + var d = a.extend( + { + url: c.src, + success: function(d, e, f) { + var g = { + data: d, + xhr: f + }; + y("ParseAjax", g), + b.appendContent(a(g.data), I), + (c.finished = !0), + J(), + b._setFocus(), + setTimeout(function() { + b.wrap.addClass(q); + }, 16), + b.updateStatus("ready"), + y("AjaxContentAdded"); + }, + error: function() { + J(), + (c.finished = c.loadError = !0), + b.updateStatus( + "error", + b.st.ajax.tError.replace("%url%", c.src) + ); + } + }, + b.st.ajax.settings + ); + return (b.req = a.ajax(d)), ""; + } + } + }); + var L, + M = function(c) { + if (c.data && void 0 !== c.data.title) return c.data.title; + var d = b.st.image.titleSrc; + if (d) { + if (a.isFunction(d)) return d.call(b, c); + if (c.el) return c.el.attr(d) || ""; + } + return ""; + }; + a.magnificPopup.registerModule("image", { + options: { + markup: + '
', + cursor: "mfp-zoom-out-cur", + titleSrc: "title", + verticalFit: !0, + tError: 'The image could not be loaded.' + }, + proto: { + initImage: function() { + var c = b.st.image, + d = ".image"; + b.types.push("image"), + w(m + d, function() { + "image" === b.currItem.type && + c.cursor && + a(document.body).addClass(c.cursor); + }), + w(h + d, function() { + c.cursor && a(document.body).removeClass(c.cursor), + v.off("resize" + p); + }), + w("Resize" + d, b.resizeImage), + b.isLowIE && w("AfterChange", b.resizeImage); + }, + resizeImage: function() { + var a = b.currItem; + if (a && a.img && b.st.image.verticalFit) { + var c = 0; + b.isLowIE && + (c = + parseInt(a.img.css("padding-top"), 10) + + parseInt(a.img.css("padding-bottom"), 10)), + a.img.css("max-height", b.wH - c); + } + }, + _onImageHasSize: function(a) { + a.img && + ((a.hasSize = !0), + L && clearInterval(L), + (a.isCheckingImgSize = !1), + y("ImageHasSize", a), + a.imgHidden && + (b.content && b.content.removeClass("mfp-loading"), + (a.imgHidden = !1))); + }, + findImageSize: function(a) { + var c = 0, + d = a.img[0], + e = function(f) { + L && clearInterval(L), + (L = setInterval(function() { + return d.naturalWidth > 0 + ? void b._onImageHasSize(a) + : (c > 200 && clearInterval(L), + c++, + void (3 === c + ? e(10) + : 40 === c + ? e(50) + : 100 === c && e(500))); + }, f)); + }; + e(1); + }, + getImage: function(c, d) { + var e = 0, + f = function() { + c && + (c.img[0].complete + ? (c.img.off(".mfploader"), + c === b.currItem && + (b._onImageHasSize(c), + b.updateStatus("ready")), + (c.hasSize = !0), + (c.loaded = !0), + y("ImageLoadComplete")) + : (e++, 200 > e ? setTimeout(f, 100) : g())); + }, + g = function() { + c && + (c.img.off(".mfploader"), + c === b.currItem && + (b._onImageHasSize(c), + b.updateStatus( + "error", + h.tError.replace("%url%", c.src) + )), + (c.hasSize = !0), + (c.loaded = !0), + (c.loadError = !0)); + }, + h = b.st.image, + i = d.find(".mfp-img"); + if (i.length) { + var j = document.createElement("img"); + (j.className = "mfp-img"), + c.el && + c.el.find("img").length && + (j.alt = c.el.find("img").attr("alt")), + (c.img = a(j) + .on("load.mfploader", f) + .on("error.mfploader", g)), + (j.src = c.src), + i.is("img") && (c.img = c.img.clone()), + (j = c.img[0]), + j.naturalWidth > 0 + ? (c.hasSize = !0) + : j.width || (c.hasSize = !1); + } + return ( + b._parseMarkup( + d, + { + title: M(c), + img_replaceWith: c.img + }, + c + ), + b.resizeImage(), + c.hasSize + ? (L && clearInterval(L), + c.loadError + ? (d.addClass("mfp-loading"), + b.updateStatus( + "error", + h.tError.replace("%url%", c.src) + )) + : (d.removeClass("mfp-loading"), + b.updateStatus("ready")), + d) + : (b.updateStatus("loading"), + (c.loading = !0), + c.hasSize || + ((c.imgHidden = !0), + d.addClass("mfp-loading"), + b.findImageSize(c)), + d) + ); + } + } + }); + var N, + O = function() { + return ( + void 0 === N && + (N = + void 0 !== + document.createElement("p").style.MozTransform), + N + ); + }; + a.magnificPopup.registerModule("zoom", { + options: { + enabled: !1, + easing: "ease-in-out", + duration: 300, + opener: function(a) { + return a.is("img") ? a : a.find("img"); + } + }, + proto: { + initZoom: function() { + var a, + c = b.st.zoom, + d = ".zoom"; + if (c.enabled && b.supportsTransition) { + var e, + f, + g = c.duration, + j = function(a) { + var b = a + .clone() + .removeAttr("style") + .removeAttr("class") + .addClass("mfp-animated-image"), + d = "all " + c.duration / 1e3 + "s " + c.easing, + e = { + position: "fixed", + zIndex: 9999, + left: 0, + top: 0, + "-webkit-backface-visibility": "hidden" + }, + f = "transition"; + return ( + (e["-webkit-" + f] = e["-moz-" + f] = e[ + "-o-" + f + ] = e[f] = d), + b.css(e), + b + ); + }, + k = function() { + b.content.css("visibility", "visible"); + }; + w("BuildControls" + d, function() { + if (b._allowZoom()) { + if ( + (clearTimeout(e), + b.content.css("visibility", "hidden"), + (a = b._getItemToZoom()), + !a) + ) + return void k(); + (f = j(a)), + f.css(b._getOffset()), + b.wrap.append(f), + (e = setTimeout(function() { + f.css(b._getOffset(!0)), + (e = setTimeout(function() { + k(), + setTimeout(function() { + f.remove(), + (a = f = null), + y("ZoomAnimationEnded"); + }, 16); + }, g)); + }, 16)); + } + }), + w(i + d, function() { + if (b._allowZoom()) { + if ( + (clearTimeout(e), + (b.st.removalDelay = g), + !a) + ) { + if (((a = b._getItemToZoom()), !a)) return; + f = j(a); + } + f.css(b._getOffset(!0)), + b.wrap.append(f), + b.content.css("visibility", "hidden"), + setTimeout(function() { + f.css(b._getOffset()); + }, 16); + } + }), + w(h + d, function() { + b._allowZoom() && + (k(), f && f.remove(), (a = null)); + }); + } + }, + _allowZoom: function() { + return "image" === b.currItem.type; + }, + _getItemToZoom: function() { + return b.currItem.hasSize ? b.currItem.img : !1; + }, + _getOffset: function(c) { + var d; + d = c + ? b.currItem.img + : b.st.zoom.opener(b.currItem.el || b.currItem); + var e = d.offset(), + f = parseInt(d.css("padding-top"), 10), + g = parseInt(d.css("padding-bottom"), 10); + e.top -= a(window).scrollTop() - f; + var h = { + width: d.width(), + height: (u ? d.innerHeight() : d[0].offsetHeight) - g - f + }; + return ( + O() + ? (h["-moz-transform"] = h.transform = + "translate(" + e.left + "px," + e.top + "px)") + : ((h.left = e.left), (h.top = e.top)), + h + ); + } + } + }); + var P = "iframe", + Q = "//about:blank", + R = function(a) { + if (b.currTemplate[P]) { + var c = b.currTemplate[P].find("iframe"); + c.length && + (a || (c[0].src = Q), + b.isIE8 && c.css("display", a ? "block" : "none")); + } + }; + a.magnificPopup.registerModule(P, { + options: { + markup: + '
', + srcAction: "iframe_src", + patterns: { + youtube: { + index: "youtube.com", + id: "v=", + src: "//www.youtube.com/embed/%id%?autoplay=1" + }, + vimeo: { + index: "vimeo.com/", + id: "/", + src: "//player.vimeo.com/video/%id%?autoplay=1" + }, + gmaps: { + index: "//maps.google.", + src: "%id%&output=embed" + } + } + }, + proto: { + initIframe: function() { + b.types.push(P), + w("BeforeChange", function(a, b, c) { + b !== c && (b === P ? R() : c === P && R(!0)); + }), + w(h + "." + P, function() { + R(); + }); + }, + getIframe: function(c, d) { + var e = c.src, + f = b.st.iframe; + a.each(f.patterns, function() { + return e.indexOf(this.index) > -1 + ? (this.id && + (e = + "string" == typeof this.id + ? e.substr( + e.lastIndexOf(this.id) + + this.id.length, + e.length + ) + : this.id.call(this, e)), + (e = this.src.replace("%id%", e)), + !1) + : void 0; + }); + var g = {}; + return ( + f.srcAction && (g[f.srcAction] = e), + b._parseMarkup(d, g, c), + b.updateStatus("ready"), + d + ); + } + } + }); + var S = function(a) { + var c = b.items.length; + return a > c - 1 ? a - c : 0 > a ? c + a : a; + }, + T = function(a, b, c) { + return a.replace(/%curr%/gi, b + 1).replace(/%total%/gi, c); + }; + a.magnificPopup.registerModule("gallery", { + options: { + enabled: !1, + arrowMarkup: + '', + preload: [0, 2], + navigateByImgClick: !0, + arrows: !0, + tPrev: "Previous (Left arrow key)", + tNext: "Next (Right arrow key)", + tCounter: "%curr% of %total%" + }, + proto: { + initGallery: function() { + var c = b.st.gallery, + e = ".mfp-gallery"; + return ( + (b.direction = !0), + c && c.enabled + ? ((f += " mfp-gallery"), + w(m + e, function() { + c.navigateByImgClick && + b.wrap.on( + "click" + e, + ".mfp-img", + function() { + return b.items.length > 1 + ? (b.next(), !1) + : void 0; + } + ), + d.on("keydown" + e, function(a) { + 37 === a.keyCode + ? b.prev() + : 39 === a.keyCode && b.next(); + }); + }), + w("UpdateStatus" + e, function(a, c) { + c.text && + (c.text = T( + c.text, + b.currItem.index, + b.items.length + )); + }), + w(l + e, function(a, d, e, f) { + var g = b.items.length; + e.counter = + g > 1 ? T(c.tCounter, f.index, g) : ""; + }), + w("BuildControls" + e, function() { + if ( + b.items.length > 1 && + c.arrows && + !b.arrowLeft + ) { + var d = c.arrowMarkup, + e = (b.arrowLeft = a( + d + .replace(/%title%/gi, c.tPrev) + .replace(/%dir%/gi, "left") + ).addClass(s)), + f = (b.arrowRight = a( + d + .replace(/%title%/gi, c.tNext) + .replace(/%dir%/gi, "right") + ).addClass(s)); + e.click(function() { + b.prev(); + }), + f.click(function() { + b.next(); + }), + b.container.append(e.add(f)); + } + }), + w(n + e, function() { + b._preloadTimeout && + clearTimeout(b._preloadTimeout), + (b._preloadTimeout = setTimeout(function() { + b.preloadNearbyImages(), + (b._preloadTimeout = null); + }, 16)); + }), + void w(h + e, function() { + d.off(e), + b.wrap.off("click" + e), + (b.arrowRight = b.arrowLeft = null); + })) + : !1 + ); + }, + next: function() { + (b.direction = !0), + (b.index = S(b.index + 1)), + b.updateItemHTML(); + }, + prev: function() { + (b.direction = !1), + (b.index = S(b.index - 1)), + b.updateItemHTML(); + }, + goTo: function(a) { + (b.direction = a >= b.index), (b.index = a), b.updateItemHTML(); + }, + preloadNearbyImages: function() { + var a, + c = b.st.gallery.preload, + d = Math.min(c[0], b.items.length), + e = Math.min(c[1], b.items.length); + for (a = 1; a <= (b.direction ? e : d); a++) + b._preloadItem(b.index + a); + for (a = 1; a <= (b.direction ? d : e); a++) + b._preloadItem(b.index - a); + }, + _preloadItem: function(c) { + if (((c = S(c)), !b.items[c].preloaded)) { + var d = b.items[c]; + d.parsed || (d = b.parseEl(c)), + y("LazyLoad", d), + "image" === d.type && + (d.img = a('') + .on("load.mfploader", function() { + d.hasSize = !0; + }) + .on("error.mfploader", function() { + (d.hasSize = !0), + (d.loadError = !0), + y("LazyLoadError", d); + }) + .attr("src", d.src)), + (d.preloaded = !0); + } + } + } + }); + var U = "retina"; + a.magnificPopup.registerModule(U, { + options: { + replaceSrc: function(a) { + return a.src.replace(/\.\w+$/, function(a) { + return "@2x" + a; + }); + }, + ratio: 1 + }, + proto: { + initRetina: function() { + if (window.devicePixelRatio > 1) { + var a = b.st.retina, + c = a.ratio; + (c = isNaN(c) ? c() : c), + c > 1 && + (w("ImageHasSize." + U, function(a, b) { + b.img.css({ + "max-width": b.img[0].naturalWidth / c, + width: "100%" + }); + }), + w("ElementParse." + U, function(b, d) { + d.src = a.replaceSrc(d, c); + })); + } + } + } + }), + A(); +}); +!(function(e) { + e.fn.eaelProgressBar = function() { + var r = e(this), + a = r.data("layout"), + i = r.data("count"), + s = r.data("duration"); + r.one("inview", function() { + "line" == a + ? e(".eael-progressbar-line-fill", r).css({ + width: i + "%" + }) + : "half_circle" == a && + e(".eael-progressbar-circle-half", r).css({ + transform: "rotate(" + 1.8 * i + "deg)" + }), + e(".eael-progressbar-count", r) + .prop({ + counter: 0 + }) + .animate( + { + counter: i + }, + { + duration: s, + easing: "linear", + step: function(i) { + if ("circle" == a) { + var s = 3.6 * i; + e( + ".eael-progressbar-circle-half-left", + r + ).css({ + transform: "rotate(" + s + "deg)" + }), + s > 180 && + (e( + ".eael-progressbar-circle-pie", + r + ).css({ + "clip-path": "inset(0)" + }), + e( + ".eael-progressbar-circle-half-right", + r + ).css({ + visibility: "visible" + })); + } + e(this).text(Math.ceil(i)); + } + } + ); + }); + }; +})(jQuery); +!(function(a) { + "function" == typeof define && define.amd + ? define(["jquery"], a) + : "object" == typeof exports + ? (module.exports = a(require("jquery"))) + : a(jQuery); +})(function(a) { + function i() { + var b, + c, + d = { + height: f.innerHeight, + width: f.innerWidth + }; + return ( + d.height || + ((b = e.compatMode), + (b || !a.support.boxModel) && + ((c = "CSS1Compat" === b ? g : e.body), + (d = { + height: c.clientHeight, + width: c.clientWidth + }))), + d + ); + } + + function j() { + return { + top: f.pageYOffset || g.scrollTop || e.body.scrollTop, + left: f.pageXOffset || g.scrollLeft || e.body.scrollLeft + }; + } + + function k() { + if (b.length) { + var e = 0, + f = a.map(b, function(a) { + var b = a.data.selector, + c = a.$element; + return b ? c.find(b) : c; + }); + for (c = c || i(), d = d || j(); e < b.length; e++) + if (a.contains(g, f[e][0])) { + var h = a(f[e]), + k = { + height: h[0].offsetHeight, + width: h[0].offsetWidth + }, + l = h.offset(), + m = h.data("inview"); + if (!d || !c) return; + l.top + k.height > d.top && + l.top < d.top + c.height && + l.left + k.width > d.left && + l.left < d.left + c.width + ? m || h.data("inview", !0).trigger("inview", [!0]) + : m && h.data("inview", !1).trigger("inview", [!1]); + } + } + } + var c, + d, + h, + b = [], + e = document, + f = window, + g = e.documentElement; + (a.event.special.inview = { + add: function(c) { + b.push({ + data: c, + $element: a(this), + element: this + }), + !h && b.length && (h = setInterval(k, 250)); + }, + remove: function(a) { + for (var c = 0; c < b.length; c++) { + var d = b[c]; + if (d.element === this && d.data.guid === a.guid) { + b.splice(c, 1); + break; + } + } + b.length || (clearInterval(h), (h = null)); + } + }), + a(f).on("scroll resize scrollstop", function() { + c = d = null; + }), + !g.addEventListener && + g.attachEvent && + g.attachEvent("onfocusin", function() { + d = null; + }); +}); +var CountDown = function($scope, $) { + var $coundDown = $scope.find(".eael-countdown-wrapper").eq(0), + $countdown_id = + $coundDown.data("countdown-id") !== undefined + ? $coundDown.data("countdown-id") + : "", + $expire_type = + $coundDown.data("expire-type") !== undefined + ? $coundDown.data("expire-type") + : "", + $expiry_text = + $coundDown.data("expiry-text") !== undefined + ? $coundDown.data("expiry-text") + : "", + $expiry_title = + $coundDown.data("expiry-title") !== undefined + ? $coundDown.data("expiry-title") + : "", + $redirect_url = + $coundDown.data("redirect-url") !== undefined + ? $coundDown.data("redirect-url") + : "", + $template = + $coundDown.data("template") !== undefined + ? $coundDown.data("template") + : ""; + jQuery(document).ready(function($) { + "use strict"; + var countDown = $("#eael-countdown-" + $countdown_id); + countDown.countdown({ + end: function() { + if ($expire_type == "text") { + countDown.html( + '

' + + $expiry_title + + "

" + + '
' + + $expiry_text + + "
" + ); + } else if ($expire_type === "url") { + var editMode = $("body").find("#elementor").length; + if (editMode > 0) { + countDown.html( + "Your Page will be redirected to given URL (only on Frontend)." + ); + } else { + window.location.href = $redirect_url; + } + } else if ($expire_type === "template") { + countDown.html($template); + } else { + } + } + }); + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-countdown.default", + CountDown + ); +}); +var FancyText = function($scope, $) { + var $fancyText = $scope.find(".eael-fancy-text-container").eq(0), + $id = + $fancyText.data("fancy-text-id") !== undefined + ? $fancyText.data("fancy-text-id") + : "", + $fancy_text = + $fancyText.data("fancy-text") !== undefined + ? $fancyText.data("fancy-text") + : "", + $transition_type = + $fancyText.data("fancy-text-transition-type") !== undefined + ? $fancyText.data("fancy-text-transition-type") + : "", + $fancy_text_speed = + $fancyText.data("fancy-text-speed") !== undefined + ? $fancyText.data("fancy-text-speed") + : "", + $fancy_text_delay = + $fancyText.data("fancy-text-delay") !== undefined + ? $fancyText.data("fancy-text-delay") + : "", + $fancy_text_cursor = + $fancyText.data("fancy-text-cursor") !== undefined ? !0 : !1, + $fancy_text_loop = + $fancyText.data("fancy-text-loop") !== undefined + ? $fancyText.data("fancy-text-loop") == "yes" + ? !0 + : !1 + : !1; + $fancy_text = $fancy_text.split("|"); + if ($transition_type == "typing") { + $("#eael-fancy-text-" + $id).typed({ + strings: $fancy_text, + typeSpeed: $fancy_text_speed, + backSpeed: 0, + startDelay: 300, + backDelay: $fancy_text_delay, + showCursor: $fancy_text_cursor, + loop: $fancy_text_loop + }); + } + if ($transition_type != "typing") { + $("#eael-fancy-text-" + $id).Morphext({ + animation: $transition_type, + separator: ", ", + speed: $fancy_text_delay, + complete: function() {} + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-fancy-text.default", + FancyText + ); +}); +var postTimelineHandler = function($scope, $) { + var $_this = $scope.find(".eael-post-timeline"), + $currentTimelineId = "#" + $_this.attr("id"), + $total_posts = parseInt($_this.data("total_posts"), 10), + $timeline_id = $_this.data("timeline_id"), + $post_type = $_this.data("post_type"), + $posts_per_page = parseInt($_this.data("posts_per_page"), 10), + $post_order = $_this.data("post_order"), + $post_orderby = $_this.data("post_orderby"), + $post_offset = parseInt($_this.data("post_offset"), 10), + $show_images = $_this.data("show_images"), + $image_size = $_this.data("image_size"), + $show_title = $_this.data("show_title"), + $show_excerpt = $_this.data("show_excerpt"), + $excerpt_length = parseInt($_this.data("excerpt_length"), 10), + $btn_text = $_this.data("btn_text"), + $tax_query = $_this.data("tax_query"), + $post__in = $_this.data("post__in"), + $exclude_posts = $_this.data("exclude_posts"); + var options = { + totalPosts: $total_posts, + loadMoreBtn: $("#eael-load-more-btn-" + $timeline_id), + postContainer: $(".eael-post-appender-" + $timeline_id), + postStyle: "timeline" + }; + var settings = { + postType: $post_type, + perPage: $posts_per_page, + postOrder: $post_order, + orderBy: $post_orderby, + offset: $post_offset, + showImage: $show_images, + imageSize: $image_size, + showTitle: $show_title, + showExcerpt: $show_excerpt, + excerptLength: parseInt($excerpt_length, 10), + btnText: $btn_text, + tax_query: $tax_query, + post__in: $post__in, + exclude_posts: $exclude_posts + }; + eaelLoadMore(options, settings); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-post-timeline.default", + postTimelineHandler + ); +}); +var PricingTooltip = function($scope, $) { + if ($.fn.tooltipster) { + var $tooltip = $scope.find(".tooltip"), + i; + for (i = 0; i < $tooltip.length; i++) { + var $currentTooltip = $("#" + $($tooltip[i]).attr("id")), + $tooltipSide = + $currentTooltip.data("side") !== undefined + ? $currentTooltip.data("side") + : !1, + $tooltipTrigger = + $currentTooltip.data("trigger") !== undefined + ? $currentTooltip.data("trigger") + : "hover", + $animation = + $currentTooltip.data("animation") !== undefined + ? $currentTooltip.data("animation") + : "fade", + $anim_duration = + $currentTooltip.data("animation_duration") !== undefined + ? $currentTooltip.data("animation_duration") + : 300, + $theme = + $currentTooltip.data("theme") !== undefined + ? $currentTooltip.data("theme") + : "default", + $arrow = "yes" == $currentTooltip.data("arrow") ? !0 : !1; + $currentTooltip.tooltipster({ + animation: $animation, + trigger: $tooltipTrigger, + side: $tooltipSide, + delay: $anim_duration, + arrow: $arrow, + theme: "tooltipster-" + $theme + }); + } + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-pricing-table.default", + PricingTooltip + ); +}); +var TwitterFeedHandler = function($scope, $) { + var loadingFeed = $scope.find(".eael-loading-feed"); + var $twitterFeed = $scope.find(".eael-twitter-feed-layout-wrapper").eq(0), + $name = + $twitterFeed.data("twitter-feed-ac-name") !== undefined + ? $twitterFeed.data("twitter-feed-ac-name") + : "", + $limit = + $twitterFeed.data("twitter-feed-post-limit") !== undefined + ? $twitterFeed.data("twitter-feed-post-limit") + : "", + $hash_tag = + $twitterFeed.data("twitter-feed-hashtag-name") !== undefined + ? $twitterFeed.data("twitter-feed-hashtag-name") + : "", + $key = + $twitterFeed.data("twitter-feed-consumer-key") !== undefined + ? $twitterFeed.data("twitter-feed-consumer-key") + : "", + $app_secret = + $twitterFeed.data("twitter-feed-consumer-secret") !== undefined + ? $twitterFeed.data("twitter-feed-consumer-secret") + : "", + $length = + $twitterFeed.data("twitter-feed-content-length") !== undefined + ? $twitterFeed.data("twitter-feed-content-length") + : 400, + $media = + $twitterFeed.data("twitter-feed-media") !== undefined + ? $twitterFeed.data("twitter-feed-media") + : !1, + $feed_type = + $twitterFeed.data("twitter-feed-type") !== undefined + ? $twitterFeed.data("twitter-feed-type") + : !1, + $carouselId = + $twitterFeed.data("twitter-feed-id") !== undefined + ? $twitterFeed.data("twitter-feed-id") + : " "; + var $id_name = $name.toString(); + var $hash_tag_name = $hash_tag.toString(); + var $key_name = $key.toString(); + var $app_secret = $app_secret.toString(); + + function eael_twitter_feeds() { + $( + "#eael-twitter-feed-" + + $carouselId + + ".eael-twitter-feed-layout-container" + ).socialfeed({ + twitter: { + accounts: [$id_name, $hash_tag_name], + limit: $limit, + consumer_key: $key_name, + consumer_secret: $app_secret + }, + length: $length, + show_media: $media, + template_html: + '' + }); + } + + function eael_twitter_feed_masonry() { + $(".eael-twitter-feed-layout-container.masonry-view").masonry({ + itemSelector: ".eael-social-feed-element", + percentPosition: !0, + columnWidth: ".eael-social-feed-element" + }); + } + $.ajax({ + url: eael_twitter_feeds(), + beforeSend: function() { + loadingFeed.addClass("show-loading"); + }, + success: function() { + $(".eael-twitter-feed-layout-container").bind( + "DOMSubtreeModified", + function() { + if ($feed_type == "masonry") { + setTimeout(function() { + eael_twitter_feed_masonry(); + }, 150); + } + } + ); + loadingFeed.removeClass("show-loading"); + }, + error: function() { + console.log("error loading"); + } + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-twitter-feed.default", + TwitterFeedHandler + ); +}); +var filterableGalleryHandler = function($scope, $) { + if (!isEditMode) { + var $gallery = $(".eael-filter-gallery-container", $scope), + $settings = $gallery.data("settings"), + $gallery_items = $gallery.data("gallery-items"), + $layout_mode = + $settings.grid_style == "masonry" ? "masonry" : "fitRows", + $gallery_enabled = $settings.gallery_enabled == "yes" ? !0 : !1; + var $isotope_gallery = $gallery.isotope({ + itemSelector: ".eael-filterable-gallery-item-wrap", + layoutMode: $layout_mode, + percentPosition: !0, + stagger: 30, + transitionDuration: $settings.duration + "ms", + filter: $( + ".eael-filter-gallery-control .control.active", + $scope + ).data("filter") + }); + $isotope_gallery.imagesLoaded().progress(function() { + $isotope_gallery.isotope("layout"); + }); + $isotope_gallery.on("arrangeComplete", function() { + $isotope_gallery.isotope("layout"); + }); + $(window).on("load", function() { + $isotope_gallery.isotope("layout"); + }); + $scope.on("click", ".control", function() { + var $this = $(this), + $filterValue = $this.data("filter"); + $this.siblings().removeClass("active"); + $this.addClass("active"); + $isotope_gallery.isotope({ + filter: $filterValue + }); + }); + $(".eael-magnific-link", $scope).magnificPopup({ + type: "image", + gallery: { + enabled: $gallery_enabled + }, + callbacks: { + close: function() { + $("#elementor-lightbox").hide(); + } + } + }); + $($scope).magnificPopup({ + delegate: ".eael-magnific-video-link", + type: "iframe", + callbacks: { + close: function() { + $("#elementor-lightbox").hide(); + } + } + }); + $scope.on("click", ".eael-gallery-load-more", function(e) { + e.preventDefault(); + var $this = $(this), + $init_show = $( + ".eael-filter-gallery-container", + $scope + ).children(".eael-filterable-gallery-item-wrap").length, + $total_items = $gallery.data("total-gallery-items"), + $images_per_page = $gallery.data("images-per-page"), + $nomore_text = $gallery.data("nomore-item-text"), + $items = []; + if ($init_show == $total_items) { + $this.html( + '
' + $nomore_text + "
" + ); + setTimeout(function() { + $this.fadeOut("slow"); + }, 600); + } + for (var i = $init_show; i < $init_show + $images_per_page; i++) { + $items.push($($gallery_items[i])[0]); + } + $gallery.append($items); + $isotope_gallery.isotope("appended", $items); + $isotope_gallery.imagesLoaded().progress(function() { + $isotope_gallery.isotope("layout"); + }); + $(".eael-magnific-link", $scope).magnificPopup({ + type: "image", + gallery: { + enabled: $gallery_enabled + }, + callbacks: { + close: function() { + $("#elementor-lightbox").hide(); + } + } + }); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-filterable-gallery.default", + filterableGalleryHandler + ); +}); +var dataTable = function($scope, $) { + var $_this = $scope.find(".eael-data-table-wrap"), + $id = $_this.data("table_id"); + var responsive = $_this.data("custom_responsive"); + if (!0 == responsive) { + var $th = $scope.find(".eael-data-table").find("th"); + var $tbody = $scope.find(".eael-data-table").find("tbody"); + $tbody.find("tr").each(function(i, item) { + $(item) + .find("td .td-content-wrapper") + .each(function(index, item) { + $(this).prepend( + '
' + + $th.eq(index).html() + + "
" + ); + }); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-data-table.default", + dataTable + ); +}); +var ImageAccordion = function($scope, $) { + var $imageAccordion = $scope.find(".eael-img-accordion").eq(0), + $id = + $imageAccordion.data("img-accordion-id") !== undefined + ? $imageAccordion.data("img-accordion-id") + : "", + $type = + $imageAccordion.data("img-accordion-type") !== undefined + ? $imageAccordion.data("img-accordion-type") + : ""; + if ("on-click" === $type) { + $("#eael-img-accordion-" + $id + " a").on("click", function(e) { + if ($(this).hasClass("overlay-active") == !1) { + e.preventDefault(); + } + $("#eael-img-accordion-" + $id + " a").css("flex", "1"); + $(this) + .find(".overlay") + .parent("a") + .addClass("overlay-active"); + $("#eael-img-accordion-" + $id + " a") + .find(".overlay-inner") + .removeClass("overlay-inner-show"); + $(this) + .find(".overlay-inner") + .addClass("overlay-inner-show"); + $(this).css("flex", "3"); + }); + $("#eael-img-accordion-" + $id + " a").on("blur", function(e) { + $("#eael-img-accordion-" + $id + " a").css("flex", "1"); + $("#eael-img-accordion-" + $id + " a") + .find(".overlay-inner") + .removeClass("overlay-inner-show"); + $(this) + .find(".overlay") + .parent("a") + .removeClass("overlay-active"); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-image-accordion.default", + ImageAccordion + ); +}); +var ContentTicker = function($scope, $) { + var $contentTicker = $scope.find(".eael-content-ticker").eq(0), + $items = + $contentTicker.data("items") !== undefined + ? $contentTicker.data("items") + : 1, + $items_tablet = + $contentTicker.data("items-tablet") !== undefined + ? $contentTicker.data("items-tablet") + : 1, + $items_mobile = + $contentTicker.data("items-mobile") !== undefined + ? $contentTicker.data("items-mobile") + : 1, + $margin = + $contentTicker.data("margin") !== undefined + ? $contentTicker.data("margin") + : 10, + $margin_tablet = + $contentTicker.data("margin-tablet") !== undefined + ? $contentTicker.data("margin-tablet") + : 10, + $margin_mobile = + $contentTicker.data("margin-mobile") !== undefined + ? $contentTicker.data("margin-mobile") + : 10, + $effect = + $contentTicker.data("effect") !== undefined + ? $contentTicker.data("effect") + : "slide", + $speed = + $contentTicker.data("speed") !== undefined + ? $contentTicker.data("speed") + : 400, + $autoplay = + $contentTicker.data("autoplay") !== undefined + ? $contentTicker.data("autoplay") + : 5000, + $loop = + $contentTicker.data("loop") !== undefined + ? $contentTicker.data("loop") + : !1, + $grab_cursor = + $contentTicker.data("grab-cursor") !== undefined + ? $contentTicker.data("grab-cursor") + : !1, + $pagination = + $contentTicker.data("pagination") !== undefined + ? $contentTicker.data("pagination") + : ".swiper-pagination", + $arrow_next = + $contentTicker.data("arrow-next") !== undefined + ? $contentTicker.data("arrow-next") + : ".swiper-button-next", + $arrow_prev = + $contentTicker.data("arrow-prev") !== undefined + ? $contentTicker.data("arrow-prev") + : ".swiper-button-prev", + $pause_on_hover = + $contentTicker.data("pause-on-hover") !== undefined + ? $contentTicker.data("pause-on-hover") + : "", + $contentTickerOptions = { + direction: "horizontal", + loop: $loop, + speed: $speed, + effect: $effect, + slidesPerView: $items, + spaceBetween: $margin, + grabCursor: $grab_cursor, + paginationClickable: !0, + autoHeight: !0, + autoplay: { + delay: $autoplay + }, + pagination: { + el: $pagination, + clickable: !0 + }, + navigation: { + nextEl: $arrow_next, + prevEl: $arrow_prev + }, + breakpoints: { + 480: { + slidesPerView: $items_mobile, + spaceBetween: $margin_mobile + }, + 768: { + slidesPerView: $items_tablet, + spaceBetween: $margin_tablet + } + } + }; + var $contentTickerSlider = new Swiper( + $contentTicker, + $contentTickerOptions + ); + if ($autoplay === 0) { + $contentTickerSlider.autoplay.stop(); + } + if ($pause_on_hover && $autoplay !== 0) { + $contentTicker.on("mouseenter", function() { + $contentTickerSlider.autoplay.stop(); + }); + $contentTicker.on("mouseleave", function() { + $contentTickerSlider.autoplay.start(); + }); + } +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-content-ticker.default", + ContentTicker + ); +}); +var AdvAccordionHandler = function($scope, $) { + var $advanceAccordion = $scope.find(".eael-adv-accordion"), + $accordionHeader = $scope.find(".eael-accordion-header"), + $accordionType = $advanceAccordion.data("accordion-type"), + $accordionSpeed = $advanceAccordion.data("toogle-speed"); + $accordionHeader.each(function() { + if ($(this).hasClass("active-default")) { + $(this).addClass("show active"); + $(this) + .next() + .slideDown($accordionSpeed); + } + }); + $accordionHeader.unbind("click"); + $accordionHeader.click(function(e) { + e.preventDefault(); + var $this = $(this); + if ($accordionType === "accordion") { + if ($this.hasClass("show")) { + $this.removeClass("show active"); + $this.next().slideUp($accordionSpeed); + } else { + $this + .parent() + .parent() + .find(".eael-accordion-header") + .removeClass("show active"); + $this + .parent() + .parent() + .find(".eael-accordion-content") + .slideUp($accordionSpeed); + $this.toggleClass("show active"); + $this.next().slideToggle($accordionSpeed); + } + } else { + if ($this.hasClass("show")) { + $this.removeClass("show active"); + $this.next().slideUp($accordionSpeed); + } else { + $this.addClass("show active"); + $this.next().slideDown($accordionSpeed); + } + } + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-adv-accordion.default", + AdvAccordionHandler + ); +}); +var AdvanceTabHandler = function($scope, $) { + var $currentTab = $scope.find(".eael-advance-tabs"), + $currentTabId = "#" + $currentTab.attr("id").toString(); + $($currentTabId + " .eael-tabs-nav ul li").each(function(index) { + if ($(this).hasClass("active-default")) { + $($currentTabId + " .eael-tabs-nav > ul li") + .removeClass("active") + .addClass("inactive"); + $(this).removeClass("inactive"); + } else { + if (index == 0) { + $(this) + .removeClass("inactive") + .addClass("active"); + } + } + }); + $($currentTabId + " .eael-tabs-content div").each(function(index) { + if ($(this).hasClass("active-default")) { + $($currentTabId + " .eael-tabs-content > div").removeClass( + "active" + ); + } else { + if (index == 0) { + $(this) + .removeClass("inactive") + .addClass("active"); + } + } + }); + $($currentTabId + " .eael-tabs-nav ul li").click(function() { + var currentTabIndex = $(this).index(); + var tabsContainer = $(this).closest(".eael-advance-tabs"); + var tabsNav = $(tabsContainer) + .children(".eael-tabs-nav") + .children("ul") + .children("li"); + var tabsContent = $(tabsContainer) + .children(".eael-tabs-content") + .children("div"); + $(this) + .parent("li") + .addClass("active"); + $(tabsNav) + .removeClass("active active-default") + .addClass("inactive"); + $(this) + .addClass("active") + .removeClass("inactive"); + $(tabsContent) + .removeClass("active") + .addClass("inactive"); + $(tabsContent) + .eq(currentTabIndex) + .addClass("active") + .removeClass("inactive"); + $(tabsContent).each(function(index) { + $(this).removeClass("active-default"); + }); + }); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-adv-tabs.default", + AdvanceTabHandler + ); +}); +var ProgressBar = function($scope, $) { + $(".eael-progressbar", $scope).eaelProgressBar(); +}; +jQuery(window).on("elementor/frontend/init", function() { + elementorFrontend.hooks.addAction( + "frontend/element_ready/eael-progress-bar.default", + ProgressBar + ); +}); diff --git a/assets/front-end/js/eael.min.js b/assets/front-end/js/eael.min.js new file mode 100644 index 000000000..889ad32c1 --- /dev/null +++ b/assets/front-end/js/eael.min.js @@ -0,0 +1,689 @@ +(function($){window.isEditMode=!1;$(window).on("elementor/frontend/init",function(){window.isEditMode=elementorFrontend.isEditMode()})})(jQuery);!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";var b=function(c,d){this.$element=a(c),this.defaults=a.extend({},b.defaults,this.$element.data(),a.isPlainObject(d)?d:{}),this.init()};b.prototype={constructor:b,init:function(){var a=this.$element.html(),b=new Date(this.defaults.date||a);b.getTime()&&(this.content=a,this.date=b,this.find(),this.defaults.autoStart&&this.start())},find:function(){var a=this.$element;this.$days=a.find("[data-days]"),this.$hours=a.find("[data-hours]"),this.$minutes=a.find("[data-minutes]"),this.$seconds=a.find("[data-seconds]"),this.$days.length+this.$hours.length+this.$minutes.length+this.$seconds.length>0&&(this.found=!0)},reset:function(){this.found?(this.output("days"),this.output("hours"),this.output("minutes"),this.output("seconds")):this.output()},ready:function(){var a,b=this.date,c=100,d=1e3,e=6e4,f=36e5,g=864e5,h={};return b?(a=b.getTime()-(new Date).getTime(),0>=a?(this.end(),!1):(h.days=a,h.hours=h.days%g,h.minutes=h.hours%f,h.seconds=h.minutes%e,h.milliseconds=h.seconds%d,this.days=Math.floor(h.days/g),this.hours=Math.floor(h.hours/f),this.minutes=Math.floor(h.minutes/e),this.seconds=Math.floor(h.seconds/d),this.deciseconds=Math.floor(h.milliseconds/c),!0)):!1},start:function(){!this.active&&this.ready()&&(this.active=!0,this.reset(),this.autoUpdate=this.defaults.fast?setInterval(a.proxy(this.fastUpdate,this),100):setInterval(a.proxy(this.update,this),1e3))},stop:function(){this.active&&(this.active=!1,clearInterval(this.autoUpdate))},end:function(){this.date&&(this.stop(),this.days=0,this.hours=0,this.minutes=0,this.seconds=0,this.deciseconds=0,this.reset(),this.defaults.end())},destroy:function(){this.date&&(this.stop(),this.$days=null,this.$hours=null,this.$minutes=null,this.$seconds=null,this.$element.empty().html(this.content),this.$element.removeData("countdown"))},fastUpdate:function(){--this.deciseconds>=0?this.output("deciseconds"):(this.deciseconds=9,this.update())},update:function(){--this.seconds>=0?this.output("seconds"):(this.seconds=59,--this.minutes>=0?this.output("minutes"):(this.minutes=59,--this.hours>=0?this.output("hours"):(this.hours=23,--this.days>=0?this.output("days"):this.end())))},output:function(a){if(!this.found)return void this.$element.empty().html(this.template());switch(a){case "deciseconds":this.$seconds.text(this.getSecondsText());break;case "seconds":this.$seconds.text(this.seconds);break;case "minutes":this.$minutes.text(this.minutes);break;case "hours":this.$hours.text(this.hours);break;case "days":this.$days.text(this.days)}},template:function(){return this.defaults.text.replace("%s",this.days).replace("%s",this.hours).replace("%s",this.minutes).replace("%s",this.getSecondsText())},getSecondsText:function(){return this.active&&this.defaults.fast?this.seconds+"."+this.deciseconds:this.seconds}},b.defaults={autoStart:!0,date:null,fast:!1,end:a.noop,text:"%s days, %s hours, %s minutes, %s seconds"},b.setDefaults=function(c){a.extend(b.defaults,c)},a.fn.countdown=function(c){return this.each(function(){var d=a(this),e=d.data("countdown");e||d.data("countdown",e=new b(this,c)),"string"==typeof c&&a.isFunction(e[c])&&e[c]()})},a.fn.countdown.constructor=b,a.fn.countdown.setDefaults=b.setDefaults,a(function(){a("[countdown]").countdown()})});!function(t,s,e){"use strict";var i=function(t,s){var i=this;this.el=t,this.options={},Object.keys(r).forEach(function(t){i.options[t]=r[t]}),Object.keys(s).forEach(function(t){i.options[t]=s[t]}),this.isInput="input"===this.el.tagName.toLowerCase(),this.attr=this.options.attr,this.showCursor=!this.isInput&&this.options.showCursor,this.elContent=this.attr?this.el.getAttribute(this.attr):this.el.textContent,this.contentType=this.options.contentType,this.typeSpeed=this.options.typeSpeed,this.startDelay=this.options.startDelay,this.backSpeed=this.options.backSpeed,this.backDelay=this.options.backDelay,e&&this.options.stringsElement instanceof e?this.stringsElement=this.options.stringsElement[0]:this.stringsElement=this.options.stringsElement,this.strings=this.options.strings,this.strPos=0,this.arrayPos=0,this.stopNum=0,this.loop=this.options.loop,this.loopCount=this.options.loopCount,this.curLoop=0,this.stop=!1,this.cursorChar=this.options.cursorChar,this.shuffle=this.options.shuffle,this.sequence=[],this.build()};i.prototype={constructor:i,init:function(){var t=this;t.timeout=setTimeout(function(){for(var s=0;s":";";t.substr(s+1).charAt(0)!==h&&(a+=t.substr(s).charAt(0),s++,!(s+1>t.length)););s++,a+=h}}i.timeout=setTimeout(function(){if(s===t.length){if(i.options.onStringTyped(i.arrayPos),i.arrayPos===i.strings.length-1&&(i.options.callback(),i.curLoop++,i.loop===!1||i.curLoop===i.loopCount))return;i.timeout=setTimeout(function(){i.backspace(t,s)},i.backDelay)}else{0===s&&i.options.preStringTyped(i.arrayPos);var e=t.substr(0,s+1);i.attr?i.el.setAttribute(i.attr,e):i.isInput?i.el.value=e:"html"===i.contentType?i.el.innerHTML=e:i.el.textContent=e,s++,i.typewrite(t,s)}},e)},e)}},backspace:function(t,s){if(this.stop!==!0){var e=Math.round(70*Math.random())+this.backSpeed,i=this;i.timeout=setTimeout(function(){if("html"===i.contentType&&">"===t.substr(s).charAt(0)){for(var e="";"<"!==t.substr(s-1).charAt(0)&&(e-=t.substr(s).charAt(0),s--,!(s<0)););s--,e+="<"}var r=t.substr(0,s);i.attr?i.el.setAttribute(i.attr,r):i.isInput?i.el.value=r:"html"===i.contentType?i.el.innerHTML=r:i.el.textContent=r,s>i.stopNum?(s--,i.backspace(t,s)):s<=i.stopNum&&(i.arrayPos++,i.arrayPos===i.strings.length?(i.arrayPos=0,i.shuffle&&(i.sequence=i.shuffleArray(i.sequence)),i.init()):i.typewrite(i.strings[i.sequence[i.arrayPos]],s))},e)}},shuffleArray:function(t){var s,e,i=t.length;if(i)for(;--i;)e=Math.floor(Math.random()*(i+1)),s=t[e],t[e]=t[i],t[i]=s;return t},reset:function(){var t=this;clearInterval(t.timeout);this.el.getAttribute("id");this.el.textContent="","undefined"!=typeof this.cursor&&"undefined"!=typeof this.cursor.parentNode&&this.cursor.parentNode.removeChild(this.cursor),this.strPos=0,this.arrayPos=0,this.curLoop=0,this.options.resetCallback()}},i["new"]=function(t,e){var r=Array.prototype.slice.apply(s.querySelectorAll(t));r.forEach(function(t){var s=t._typed,r="object"==typeof e&&e;s&&s.reset(),t._typed=s=new i(t,r),"string"==typeof e&&s[e]()})},e&&(e.fn.typed=function(t){return this.each(function(){var s=e(this),r=s.data("typed"),o="object"==typeof t&&t;r&&r.reset(),s.data("typed",r=new i(this,o)),"string"==typeof t&&r[t]()})}),t.Typed=i;var r={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,shuffle:!1,backDelay:500,loop:!1,loopCount:!1,showCursor:!0,cursorChar:"|",attr:null,contentType:"html",callback:function(){},preStringTyped:function(){},onStringTyped:function(){},resetCallback:function(){}}}(window,document,window.jQuery);!function(a){"use strict";function b(b,c){this.element=a(b),this.settings=a.extend({},d,c),this._defaults=d,this._init()}var c="Morphext",d={animation:"bounceIn",separator:",",speed:2e3,complete:a.noop};b.prototype={_init:function(){var b=this;this.phrases=[],this.element.addClass("morphext"),a.each(this.element.text().split(this.settings.separator),function(c,d){b.phrases.push(a.trim(d))}),this.index=-1,this.animate(),this.start()},animate:function(){this.index=++this.index%this.phrases.length,this.element[0].innerHTML=''+this.phrases[this.index]+"",a.isFunction(this.settings.complete)&&this.settings.complete.call(this)},start:function(){var a=this;this._interval=setInterval(function(){a.animate()},this.settings.speed)},stop:function(){this._interval=clearInterval(this._interval)}},a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(this,d))})}}(jQuery);!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n
__('I found a better plugin', 'plugin-usage-tracker'), + 'extra_field' => __('Please share which plugin', 'plugin-usage-tracker'), + ], + __("I couldn't get the plugin to work", 'plugin-usage-tracker'), + __('It\'s a temporary deactivation', 'plugin-usage-tracker'), + __('I have ' . $this->pro_plugin_name, 'plugin-usage-tracker'), + [ + 'label' => __('Other', 'plugin-usage-tracker'), + 'extra_field' => __('Please share the reason', 'plugin-usage-tracker'), + 'type' => 'textarea', + ], + ); + + return $form; + } + + /** + * Form text strings + * These can be filtered + * The filter hook must be unique to the plugin + * @since 1.0.0 + */ + public function form_filterable_text() + { + $form = $this->form_default_text(); + return apply_filters('wpins_form_text_' . esc_attr($this->plugin_name), $form); + } + + /** + * Form text strings + * These can be filtered + * @since 1.0.0 + */ + public function goodbye_ajax() + { + // Get our strings for the form + $form = $this->form_filterable_text(); + if (!isset($form['heading']) || !isset($form['body']) || !isset($form['options']) || !is_array($form['options']) || !isset($form['details'])) { + // If the form hasn't been filtered correctly, we revert to the default form + $form = $this->form_default_text(); + } + // Build the HTML to go in the form + $html = '
' . esc_html($form['heading']) . '
'; + $html .= '

' . esc_html($form['body']) . '

'; + if (is_array($form['options'])) { + $html .= '
    '; + foreach ($form['options'] as $option) { + if (is_array($option)) { + $id = strtolower(str_replace(" ", "_", esc_attr($option['label']))); + $id = $id . '_' . esc_attr($this->plugin_name); + $html .= '
  • '; + $html .= ''; + $html .= '
    '; + if (isset($option['extra_field']) && !isset($option['type'])) { + $html .= ''; + } + if (isset($option['extra_field']) && isset($option['type'])) { + $html .= '<' . $option['type'] . ' style="display: none" type="text" name="' . $id . '" id="' . str_replace(" ", "", esc_attr($option['extra_field'])) . '" placeholder="' . esc_attr($option['extra_field']) . '">'; + } + $html .= '
  • '; + } else { + $id = strtolower(str_replace(" ", "_", esc_attr($option))); + $id = $id . '_' . esc_attr($this->plugin_name); + $html .= '
  • '; + } + } + $html .= '
'; + } + $html .= '
'; + $html .= '

' . __('Submitting form', 'plugin-usage-tracker') . '

'; + ?> + + + plugin_name, $values); + } + if (isset($_POST['details'])) { + $details = sanitize_text_field($_POST['details']); + update_option('wpins_deactivation_details_' . $this->plugin_name, $details); + } + $this->do_tracking(); // Run this straightaway + echo 'success'; + wp_die(); + } + +} \ No newline at end of file diff --git a/includes/classes/WPDeveloper_Core_Installer.php b/includes/classes/WPDeveloper_Core_Installer.php new file mode 100755 index 000000000..9b22e1351 --- /dev/null +++ b/includes/classes/WPDeveloper_Core_Installer.php @@ -0,0 +1,106 @@ +plugin_basename = $plugin_basename; + add_action( 'init', array( $this, 'init_hooks' ) ); + } + /** + * Initialize the hooks + * + * @return void + */ + public function init_hooks() { + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + add_action( 'wp_ajax_wpdeveloper_upsale_core_install_' . $this->plugin_basename, array( $this, 'core_install' ) ); + } + /** + * Fail if plugin installtion/activation fails + * + * @param Object $thing + * + * @return void + */ + public function fail_on_error( $thing ) { + if ( is_wp_error( $thing ) ) { + wp_send_json_error( $thing->get_error_message() ); + } + } + + /** + * Install Upsale Plugin + * + * @return void + */ + public function core_install() { + check_ajax_referer( 'wpdeveloper_upsale_core_install_' . $this->plugin_basename ); + + if ( ! current_user_can( 'manage_options' ) ) { + wp_send_json_error( __( 'You don\'t have permission to install the plugins' ) ); + } + + $plugin_slug = ( isset( $_POST['slug'] ) ) ? $_POST['slug'] : ''; + $plugin_file = ( isset( $_POST['file'] ) ) ? $_POST['file'] : ''; + + if( empty( $plugin_file ) || empty( $plugin_slug ) ) { + wp_send_json_error( __( 'You don\'t have set any slug and file name to install the plugins' ) ); + } + + $plugin_status = $this->install_plugin( $plugin_slug, $plugin_file ); + $this->fail_on_error( $plugin_status ); + + wp_send_json_success(); + } + /** + * Install and activate a plugin + * + * @param string $slug + * @param string $file + * + * @return WP_Error|null + */ + public function install_plugin( $slug, $file ) { + include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; + include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + + $plugin_basename = $slug . '/' . $file; + + // if exists and not activated + if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_basename ) ) { + return activate_plugin( $plugin_basename ); + } + + // seems like the plugin doesn't exists. Download and activate it + $upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() ); + + $api = plugins_api( 'plugin_information', array( 'slug' => $slug, 'fields' => array( 'sections' => false ) ) ); + $result = $upgrader->install( $api->download_link ); + + if ( is_wp_error( $result ) ) { + return $result; + } + + return activate_plugin( $plugin_basename ); + } +} \ No newline at end of file diff --git a/includes/class-wpdev-notices.php b/includes/classes/WPDeveloper_Notice.php similarity index 91% rename from includes/class-wpdev-notices.php rename to includes/classes/WPDeveloper_Notice.php index bc8c89a6f..8f99084a1 100755 --- a/includes/class-wpdev-notices.php +++ b/includes/classes/WPDeveloper_Notice.php @@ -1,4 +1,12 @@ do_notice_action = 'wpdeveloper_notices_for_' . $this->plugin_name; - if( ! class_exists( 'WPDeveloper_Core_Installer' ) ) { - require_once dirname( __FILE__ ) . '/class-wpdev-core-install.php'; - - new WPDeveloper_Core_Installer( $this->plugin_name ); - } + new WPDeveloper_Core_Installer( $this->plugin_name ); } /** * Initiate The Plugin @@ -776,7 +780,7 @@ public function upsale_button_script(){ dismiss: true }, success: function(response) { - console.log('Success fully saved!'); + console.log('Successfully saved!'); }, error: function(error) { console.log('Something went wrong!'); @@ -791,76 +795,4 @@ public function upsale_button_script(){ links = [ - 'review' => array( - 'later' => array( - 'link' => 'https://wpdeveloper.net/review-essential-addons-elementor', - 'target' => '_blank', - 'label' => __( 'Ok, you deserve it!', 'essential-addons-elementor' ), - 'icon_class' => 'dashicons dashicons-external', - ), - 'allready' => array( - 'link' => $url, - 'label' => __( 'I already did', 'essential-addons-elementor' ), - 'icon_class' => 'dashicons dashicons-smiley', - 'data_args' => [ - 'dismiss' => true, - ] - ), - 'maybe_later' => array( - 'link' => $url, - 'label' => __( 'Maybe Later', 'essential-addons-elementor' ), - 'icon_class' => 'dashicons dashicons-calendar-alt', - 'data_args' => [ - 'later' => true, - ] - ), - 'support' => array( - 'link' => 'https://wpdeveloper.net/support', - 'label' => __( 'I need help', 'essential-addons-elementor' ), - 'icon_class' => 'dashicons dashicons-sos', - ), - 'never_show_again' => array( - 'link' => $url, - 'label' => __( 'Never show again', 'essential-addons-elementor' ), - 'icon_class' => 'dashicons dashicons-dismiss', - 'data_args' => [ - 'dismiss' => true, - ] - ), - ) -]; - -/** - * This is review message and thumbnail. - */ -$notice->message( 'review', '

'. __( 'We hope you\'re enjoying Essential Addons for Elementor! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'essential-addons-elementor' ) .'

' ); -$notice->thumbnail( 'review', plugins_url( 'admin/assets/images/ea-logo.svg', ESSENTIAL_ADDONS_BASENAME ) ); - -/** - * Current Notice End Time. - * Notice will dismiss in 3 days if user does nothing. - */ -$notice->cne_time = '3 Day'; -/** - * Current Notice Maybe Later Time. - * Notice will show again in 7 days - */ -$notice->maybe_later_time = '7 Day'; - -$notice->text_domain = 'essential-addons-elementor'; - -$notice->options_args = array( - 'notice_will_show' => [ - 'opt_in' => $notice->timestamp, - 'review' => $notice->makeTime( $notice->timestamp, '4 Day' ), // after 4 days - ] -); - -$notice->init(); \ No newline at end of file +} \ No newline at end of file diff --git a/includes/eae-posts-group-control.php b/includes/eae-posts-group-control.php deleted file mode 100755 index 9573f453f..000000000 --- a/includes/eae-posts-group-control.php +++ /dev/null @@ -1,145 +0,0 @@ - __( 'Source', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - ]; - - $fields['posts_ids'] = [ - 'label' => __( 'Search & Select', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT2, - 'post_type' => '', - 'options' => \eael_get_all_types_post(), - 'label_block' => true, - 'multiple' => true, - 'condition' => [ - 'post_type' => 'by_id', - ], - ]; - - $fields['authors'] = [ - 'label' => __( 'Author', 'essential-addons-elementor' ), - 'label_block' => true, - 'type' => Controls_Manager::SELECT2, - 'multiple' => true, - 'default' => [], - 'options' => $this->get_authors(), - 'condition' => [ - 'post_type!' => [ - 'by_id', - ], - ], - ]; - - return $fields; - } - - protected function prepare_fields( $fields ) { - - $post_types = eael_get_post_types(); - - $post_types_options = $post_types; - - $post_types_options['by_id'] = __( 'Manual Selection', 'essential-addons-elementor' ); - - $fields['post_type']['options'] = $post_types_options; - - $fields['post_type']['default'] = key( $post_types ); - - $fields['posts_ids']['object_type'] = array_keys( $post_types ); - - $taxonomy_filter_args = [ - 'show_in_nav_menus' => true, - ]; - - if ( ! empty( $args['post_type'] ) ) { - $taxonomy_filter_args['object_type'] = [ $args['post_type'] ]; - } - - $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' ); - - foreach ( $taxonomies as $taxonomy => $object ) { - $taxonomy_args = [ - 'label' => $object->label, - 'type' => Controls_Manager::SELECT2, - 'label_block' => true, - 'multiple' => true, - 'object_type' => $taxonomy, - 'options' => [], - 'condition' => [ - 'post_type' => $object->object_type, - ], - ]; - - $options = []; - - $taxonomy_args['type'] = Controls_Manager::SELECT2; - - $terms = get_terms( $taxonomy ); - - foreach ( $terms as $term ) { - $options[ $term->term_id ] = $term->name; - } - - $taxonomy_args['options'] = $options; - - $fields[ $taxonomy . '_ids' ] = $taxonomy_args; - } - - unset( $fields['post_format_ids'] ); - - return parent::prepare_fields( $fields ); - } - - /** - * All authors name and ID, who published at least 1 post. - * @return array - */ - public function get_authors() { - $user_query = new \WP_User_Query( - [ - 'who' => 'authors', - 'has_published_posts' => true, - 'fields' => [ - 'ID', - 'display_name', - ], - ] - ); - - $authors = []; - - foreach ( $user_query->get_results() as $result ) { - $authors[ $result->ID ] = $result->display_name; - } - - return $authors; - } - - protected function get_default_options() { - return [ - 'popover' => false, - ]; - } - } -endif; \ No newline at end of file diff --git a/includes/elementor-helper.php b/includes/elementor-helper.php deleted file mode 100755 index ff089e956..000000000 --- a/includes/elementor-helper.php +++ /dev/null @@ -1,769 +0,0 @@ -elements_manager->add_category( - 'essential-addons-elementor', - [ - 'title' => 'Essential Addons', - 'icon' => 'font' - ], - 1 - ); - - /** - * Initialize EAE_Helper - */ - new EAE_Helper; - -} -add_action('elementor/init','Elementor\eael_elementor_init'); - - -trait ElementsCommonFunctions { - - /** - * For Exclude Option - */ - public function add_exclude_controls( ) { - $this->add_control( - 'post__not_in', - [ - 'label' => __( 'Exclude', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT2, - 'options' => eael_get_all_types_post(), - 'label_block' => true, - 'post_type' => '', - 'multiple' => true, - 'condition' => [ - 'eaeposts_post_type!' => 'by_id' - ], - ] - ); - } - - protected function query_controls(){ - - if( 'eael-content-ticker' === $this->get_name() ) { - $this->start_controls_section( - 'eael_section_content_ticker_filters', - [ - 'label' => __( 'Dynamic Content Settings', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_ticker_type' => 'dynamic' - ] - ] - ); - } - - if( 'eael-content-timeline' === $this->get_name() ) { - $this->start_controls_section( - 'eael_section_timeline__filters', - [ - 'label' => __( 'Dynamic Content Settings', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_content_timeline_choose' => 'dynamic' - ] - ] - ); - } - - if( 'eael-content-timeline' !== $this->get_name() && 'eael-content-ticker' !== $this->get_name() ) { - $this->start_controls_section( - 'eael_section_post__filters', - [ - 'label' => __( 'Query', 'essential-addons-elementor' ), - ] - ); - } - - $this->add_group_control( - EAE_Posts_Group_Control::get_type(), - [ - 'name' => 'eaeposts' - ] - ); - - $this->add_exclude_controls(); - - $this->add_control( - 'posts_per_page', - [ - 'label' => __( 'Posts Per Page', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'default' => '4' - ] - ); - - $this->add_control( - 'offset', - [ - 'label' => __( 'Offset', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'default' => '0' - ] - ); - - $this->add_control( - 'orderby', - [ - 'label' => __( 'Order By', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'options' => eael_get_post_orderby_options(), - 'default' => 'date', - - ] - ); - - $this->add_control( - 'order', - [ - 'label' => __( 'Order', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'options' => [ - 'asc' => 'Ascending', - 'desc' => 'Descending' - ], - 'default' => 'desc', - - ] - ); - - $this->end_controls_section(); - - } - - /** - * Go Premium - */ - protected function eae_go_premium(){ - $this->start_controls_section( - 'eael_section_pro', - [ - 'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' ) - ] - ); - - $this->add_control( - 'eael_control_get_pro', - [ - 'label' => __( 'Unlock more possibilities', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( '', 'essential-addons-elementor' ), - 'icon' => 'fa fa-unlock-alt', - ], - ], - 'default' => '1', - 'description' => ' Get the
Pro version for more stunning elements and customization options.' - ] - ); - - $this->end_controls_section(); - } - - - /** - * Layout Controls For All Post Block! - * if needed! - */ - protected function layout_controls(){ - - $this->start_controls_section( - 'eael_section_post_timeline_layout', - [ - 'label' => __( 'Layout Settings', 'essential-addons-elementor' ) - ] - ); - - if( 'eael-post-grid' === $this->get_name() ) { - $this->add_control( - 'eael_post_grid_columns', - [ - 'label' => esc_html__( 'Number of Columns', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'eael-col-4', - 'options' => [ - 'eael-col-1' => esc_html__( 'Single Column', 'essential-addons-elementor' ), - 'eael-col-2' => esc_html__( 'Two Columns', 'essential-addons-elementor' ), - 'eael-col-3' => esc_html__( 'Three Columns', 'essential-addons-elementor' ), - 'eael-col-4' => esc_html__( 'Four Columns', 'essential-addons-elementor' ), - 'eael-col-5' => esc_html__( 'Five Columns', 'essential-addons-elementor' ), - 'eael-col-6' => esc_html__( 'Six Columns', 'essential-addons-elementor' ), - ], - ] - ); - } - - if( 'eael-post-block' === $this->get_name() ) { - $this->add_control( - 'grid_style', - [ - 'label' => esc_html__( 'Post Block Style Preset', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'post-block-style-default', - 'options' => [ - 'post-block-style-default' => esc_html__( 'Default', 'essential-addons-elementor' ), - 'post-block-style-overlay' => esc_html__( 'Overlay', 'essential-addons-elementor' ), - ], - ] - ); - } - - if( 'eael-post-carousel' !== $this->get_name() ) { - - /** - * Show Read More - * @uses ContentTimeLine Elements - EAE - */ - if( 'eael-content-timeline' === $this->get_name() ) { - - $this->add_control( - 'eael_show_read_more', - [ - 'label' => __( 'Show Read More', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '1', - 'condition' => [ - 'eael_content_timeline_choose' => 'dynamic' - ] - ] - ); - - $this->add_control( - 'eael_read_more_text', - [ - 'label' => esc_html__( 'Label Text', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXT, - 'label_block' => false, - 'default' => esc_html__( 'Read More', 'essential-addons-elementor' ), - 'condition' => [ - 'eael_content_timeline_choose' => 'dynamic', - 'eael_show_read_more' => '1', - ] - ] - ); - - } else { - - $this->add_control( - 'show_load_more', - [ - 'label' => __( 'Show Load More', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '0' - ] - ); - - $this->add_control( - 'show_load_more_text', - [ - 'label' => esc_html__( 'Label Text', 'essential-addons-elementor' ), - 'type' => Controls_Manager::TEXT, - 'label_block' => false, - 'default' => esc_html__( 'Load More', 'essential-addons-elementor' ), - 'condition' => [ - 'show_load_more' => '1', - ] - ] - ); - } - - } - - if( 'eael-content-timeline' !== $this->get_name() ) { - $this->add_control( - 'eael_show_image', - [ - 'label' => __( 'Show Image', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '1' - ] - ); - $this->add_group_control( - Group_Control_Image_Size::get_type(), - [ - 'name' => 'image', - 'exclude' => [ 'custom' ], - 'default' => 'medium', - 'condition' => [ - 'eael_show_image' => '1', - ] - ] - ); - - } - - if( 'eael-content-timeline' === $this->get_name() ) { - - $this->add_control( - 'eael_show_image_or_icon', - [ - 'label' => __( 'Show Circle Image / Icon', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - 'img' => [ - 'title' => __( 'Image', 'essential-addons-elementor' ), - 'icon' => 'fa fa-picture-o', - ], - 'icon' => [ - 'title' => __( 'Icon', 'essential-addons-elementor' ), - 'icon' => 'fa fa-info', - ], - 'bullet' => [ - 'title' => __( 'Bullet', 'essential-addons-elementor' ), - 'icon' => 'fa fa-circle', - ] - ], - 'default' => 'icon', - 'condition' => [ - 'eael_content_timeline_choose' => 'dynamic' - ] - ] - ); - - $this->add_control( - 'eael_icon_image', - [ - 'label' => esc_html__( 'Icon Image', 'essential-addons-elementor' ), - 'type' => Controls_Manager::MEDIA, - 'default' => [ - 'url' => Utils::get_placeholder_image_src(), - ], - 'condition' => [ - 'eael_show_image_or_icon' => 'img', - ] - ] - ); - $this->add_control( - 'eael_icon_image_size', - [ - 'label' => esc_html__( 'Icon Image Size', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'default' => [ - 'size' => 24, - ], - 'range' => [ - 'px' => [ - 'max' => 60, - ], - ], - 'condition' => [ - 'eael_show_image_or_icon' => 'img', - ], - 'selectors' => [ - '{{WRAPPER}} .eael-content-timeline-img img' => 'width: {{SIZE}}px;', - ], - ] - ); - - $this->add_control( - 'eael_content_timeline_circle_icon', - [ - 'label' => esc_html__( 'Icon', 'essential-addons-elementor' ), - 'type' => Controls_Manager::ICON, - 'default' => 'fa fa-pencil', - 'condition' => [ - 'eael_content_timeline_choose' => 'dynamic', - 'eael_show_image_or_icon' => 'icon', - ] - ] - ); - - } - - $this->add_control( - 'eael_show_title', - [ - 'label' => __( 'Show Title', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '1' - ] - ); - - $this->add_control( - 'eael_show_excerpt', - [ - 'label' => __( 'Show excerpt', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '1' - ] - ); - - $this->add_control( - 'eael_excerpt_length', - [ - 'label' => __( 'Excerpt Words', 'essential-addons-elementor' ), - 'type' => Controls_Manager::NUMBER, - 'default' => '10', - 'condition' => [ - 'eael_show_excerpt' => '1', - ], - 'description' => ' Pro Feature. Get Pro version ' - ] - ); - - if( 'eael-post-grid' === $this->get_name() || 'eael-post-block' === $this->get_name() || 'eael-post-carousel' === $this->get_name() ) { - - $this->add_control( - 'eael_show_meta', - [ - 'label' => __( 'Show Meta', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - '1' => [ - 'title' => __( 'Yes', 'essential-addons-elementor' ), - 'icon' => 'fa fa-check', - ], - '0' => [ - 'title' => __( 'No', 'essential-addons-elementor' ), - 'icon' => 'fa fa-ban', - ] - ], - 'default' => '1' - ] - ); - - $this->add_control( - 'meta_position', - [ - 'label' => esc_html__( 'Meta Position', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SELECT, - 'default' => 'meta-entry-footer', - 'options' => [ - 'meta-entry-header' => esc_html__( 'Entry Header', 'essential-addons-elementor' ), - 'meta-entry-footer' => esc_html__( 'Entry Footer', 'essential-addons-elementor' ), - ], - 'condition' => [ - 'eael_show_meta' => '1', - ] - ] - ); - - } - - $this->end_controls_section(); - - } - - /** - * Load More Button Style - * with Hover! - */ - protected function load_more_button_style(){ - - $this->start_controls_section( - 'eael_section_load_more_btn', - [ - 'label' => __( 'Load More Button Style', 'essential-addons-elementor' ), - 'tab' => Controls_Manager::TAB_STYLE, - 'condition' => [ - 'show_load_more' => '1' - ] - ] - ); - - $this->add_responsive_control( - 'eael_post_grid_load_more_btn_padding', - [ - 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', 'em', '%' ], - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - ] - ); - - $this->add_responsive_control( - 'eael_post_grid_load_more_btn_margin', - [ - 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ), - 'type' => Controls_Manager::DIMENSIONS, - 'size_units' => [ 'px', 'em', '%' ], - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', - ], - ] - ); - $this->add_group_control( - Group_Control_Typography::get_type(), - [ - 'name' => 'eael_post_grid_load_more_btn_typography', - 'selector' => '{{WRAPPER}} .eael-load-more-button', - ] - ); - - $this->start_controls_tabs( 'eael_post_grid_load_more_btn_tabs' ); - - // Normal State Tab - $this->start_controls_tab( 'eael_post_grid_load_more_btn_normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-elementor' ) ] ); - - $this->add_control( - 'eael_post_grid_load_more_btn_normal_text_color', - [ - 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#fff', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button' => 'color: {{VALUE}};', - ], - ] - ); - - $this->add_control( - 'eael_cta_btn_normal_bg_color', - [ - 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#29d8d8', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button' => 'background: {{VALUE}};', - ], - ] - ); - - $this->add_group_control( - Group_Control_Border::get_type(), - [ - 'name' => 'eael_post_grid_load_more_btn_normal_border', - 'label' => esc_html__( 'Border', 'essential-addons-elementor' ), - 'selector' => '{{WRAPPER}} .eael-load-more-button', - ] - ); - - $this->add_control( - 'eael_post_grid_load_more_btn_border_radius', - [ - 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ), - 'type' => Controls_Manager::SLIDER, - 'range' => [ - 'px' => [ - 'max' => 100, - ], - ], - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button' => 'border-radius: {{SIZE}}px;', - ], - ] - ); - $this->add_group_control( - Group_Control_Box_Shadow::get_type(), - [ - 'name' => 'eael_post_grid_load_more_btn_shadow', - 'selector' => '{{WRAPPER}} .eael-load-more-button', - 'separator' => 'before' - ] - ); - - $this->end_controls_tab(); - - // Hover State Tab - $this->start_controls_tab( 'eael_post_grid_load_more_btn_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-elementor' ) ] ); - - $this->add_control( - 'eael_post_grid_load_more_btn_hover_text_color', - [ - 'label' => esc_html__( 'Text Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#fff', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button:hover' => 'color: {{VALUE}};', - ], - ] - ); - - $this->add_control( - 'eael_post_grid_load_more_btn_hover_bg_color', - [ - 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '#27bdbd', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button:hover' => 'background: {{VALUE}};', - ], - ] - ); - - $this->add_control( - 'eael_post_grid_load_more_btn_hover_border_color', - [ - 'label' => esc_html__( 'Border Color', 'essential-addons-elementor' ), - 'type' => Controls_Manager::COLOR, - 'default' => '', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button:hover' => 'border-color: {{VALUE}};', - ], - ] - - ); - $this->add_group_control( - Group_Control_Box_Shadow::get_type(), - [ - 'name' => 'eael_post_grid_load_more_btn_hover_shadow', - 'selector' => '{{WRAPPER}} .eael-load-more-button:hover', - 'separator' => 'before' - ] - ); - $this->end_controls_tab(); - - $this->end_controls_tabs(); - - $this->add_responsive_control( - 'eael_post_grid_loadmore_button_alignment', - [ - 'label' => __( 'Button Alignment', 'essential-addons-elementor' ), - 'type' => Controls_Manager::CHOOSE, - 'options' => [ - 'flex-start' => [ - 'title' => __( 'Left', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-left', - ], - 'center' => [ - 'title' => __( 'Center', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-center', - ], - 'flex-end' => [ - 'title' => __( 'Right', 'essential-addons-elementor' ), - 'icon' => 'fa fa-align-right', - ] - ], - 'default' => 'center', - 'selectors' => [ - '{{WRAPPER}} .eael-load-more-button-wrap' => 'justify-content: {{VALUE}};', - ] - ] - ); - - $this->end_controls_section(); - - } - -} - -class EAE_Helper { - - public static function get_query_args( $control_id, $settings ) { - $defaults = [ - $control_id . '_post_type' => 'post', - $control_id . '_posts_ids' => [], - 'orderby' => 'date', - 'order' => 'desc', - 'posts_per_page' => 3, - 'offset' => 0, - ]; - - $settings = wp_parse_args( $settings, $defaults ); - - $post_type = $settings[ $control_id . '_post_type' ]; - - $query_args = [ - 'orderby' => $settings['orderby'], - 'order' => $settings['order'], - 'ignore_sticky_posts' => 1, - 'post_status' => 'publish', // Hide drafts/private posts for admins - ]; - - if ( 'by_id' === $post_type ) { - $query_args['post_type'] = 'any'; - $query_args['post__in'] = $settings[ $control_id . '_posts_ids' ]; - - if ( empty( $query_args['post__in'] ) ) { - // If no selection - return an empty query - $query_args['post__in'] = [ 0 ]; - } - } else { - $query_args['post_type'] = $post_type; - $query_args['posts_per_page'] = $settings['posts_per_page']; - $query_args['tax_query'] = []; - - $query_args['offset'] = $settings['offset']; - - $taxonomies = get_object_taxonomies( $post_type, 'objects' ); - - foreach ( $taxonomies as $object ) { - $setting_key = $control_id . '_' . $object->name . '_ids'; - - if ( ! empty( $settings[ $setting_key ] ) ) { - $query_args['tax_query'][] = [ - 'taxonomy' => $object->name, - 'field' => 'term_id', - 'terms' => $settings[ $setting_key ], - ]; - } - } - } - - if ( ! empty( $settings[ $control_id . '_authors' ] ) ) { - $query_args['author__in'] = $settings[ $control_id . '_authors' ]; - } - - $post__not_in = []; - if ( ! empty( $settings['post__not_in'] ) ) { - $post__not_in = array_merge( $post__not_in, $settings['post__not_in'] ); - $query_args['post__not_in'] = $post__not_in; - } - - if( isset( $query_args['tax_query'] ) && count( $query_args['tax_query'] ) > 1 ) { - $query_args['tax_query']['relation'] = 'OR'; - } - - return $query_args; - } - -} diff --git a/includes/queries.php b/includes/queries.php deleted file mode 100755 index 791bcdc52..000000000 --- a/includes/queries.php +++ /dev/null @@ -1,549 +0,0 @@ - true, 'show_in_nav_menus' => true ), 'object' ); - $eael_exclude_cpts = array( 'elementor_library', 'attachment' ); - - foreach ( $eael_exclude_cpts as $exclude_cpt ) { - unset($eael_cpts[$exclude_cpt]); - } - $post_types = array_merge($eael_cpts); - foreach( $post_types as $type ) { - $types[ $type->name ] = $type->label; - } - - return $types; -} - -/** - * Get all types of post. - * @return array - */ -function eael_get_all_types_post(){ - $posts_args = array( - 'post_type' => 'any', - 'post_style' => 'all_types', - 'post_status' => 'publish', - 'posts_per_page' => '-1', - ); - $posts = eael_load_more_ajax( $posts_args ); - - $post_list = []; - - foreach( $posts as $post ) { - $post_list[ $post->ID ] = $post->post_title; - } - - return $post_list; -} -/** - * Post Settings Parameter - * @param array $settings - * @return array - */ -function eael_get_post_settings( $settings ){ - foreach( $settings as $key => $value ) { - if( in_array( $key, posts_args() ) ) { - $post_args[ $key ] = $value; - } - } - - $post_args['post_style'] = isset( $post_args['post_style'] ) ? $post_args['post_style'] : 'grid'; - $post_args['post_status'] = 'publish'; - - return $post_args; -} - -/** - * Getting Excerpts By Post Id - * @param int $post_id - * @param int $excerpt_length - * @return string - */ -function eael_get_excerpt_by_id( $post_id, $excerpt_length ){ - $the_post = get_post( $post_id ); //Gets post ID - - $the_excerpt = null; - if( $the_post ){ - $the_excerpt = $the_post->post_excerpt ? $the_post->post_excerpt : $the_post->post_content; - } - - $the_excerpt = strip_tags( strip_shortcodes( $the_excerpt ) ); //Strips tags and images - $words = explode(' ', $the_excerpt, $excerpt_length + 1); - - if(count($words) > $excerpt_length) : - array_pop($words); - array_push($words, '…'); - $the_excerpt = implode(' ', $words); - endif; - - return $the_excerpt; -} - -/** - * Get Post Thumbnail Size - * @return array - */ -function eael_get_thumbnail_sizes(){ - $sizes = get_intermediate_image_sizes(); - foreach($sizes as $s){ - $ret[$s] = $s; - } - - return $ret; -} - -/** - * POst Orderby Options - * @return array - */ -function eael_get_post_orderby_options(){ - $orderby = array( - 'ID' => 'Post ID', - 'author' => 'Post Author', - 'title' => 'Title', - 'date' => 'Date', - 'modified' => 'Last Modified Date', - 'parent' => 'Parent Id', - 'rand' => 'Random', - 'comment_count' => 'Comment Count', - 'menu_order' => 'Menu Order', - ); - - return $orderby; -} - -/** - * Get Post Categories - * @return array - */ -function eael_post_type_categories(){ - $terms = get_terms( array( - 'taxonomy' => 'category', - 'hide_empty' => true, - )); - - if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){ - foreach ( $terms as $term ) { - $options[ $term->term_id ] = $term->name; - } - } - - return $options; -} - -/** - * WooCommerce Product Query - * @return array - */ -function eael_woocommerce_product_categories(){ - $terms = get_terms( array( - 'taxonomy' => 'product_cat', - 'hide_empty' => true, - )); - - if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){ - foreach ( $terms as $term ) { - $options[ $term->slug ] = $term->name; - } - return $options; - } -} - -/** - * WooCommerce Get Product By Id - * @return array - */ -function eael_woocommerce_product_get_product_by_id(){ - $postlist = get_posts(array( - 'post_type' => 'product', - 'showposts' => 9999, - )); - $options = array(); - - if ( ! empty( $postlist ) && ! is_wp_error( $postlist ) ){ - foreach ( $postlist as $post ) { - $options[ $post->ID ] = $post->post_title; - } - return $options; - - } -} - -/** - * WooCommerce Get Product Category By Id - * @return array - */ -function eael_woocommerce_product_categories_by_id(){ - $terms = get_terms( array( - 'taxonomy' => 'product_cat', - 'hide_empty' => true, - )); - - if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){ - foreach ( $terms as $term ) { - $options[ $term->term_id ] = $term->name; - } - return $options; - } - -} - -/** - * Get Contact Form 7 [ if exists ] - */ -if ( function_exists( 'wpcf7' ) ) { - function eael_select_contact_form(){ - $wpcf7_form_list = get_posts(array( - 'post_type' => 'wpcf7_contact_form', - 'showposts' => 999, - )); - $options = array(); - $options[0] = esc_html__( 'Select a Contact Form', 'essential-addons-elementor' ); - if ( ! empty( $wpcf7_form_list ) && ! is_wp_error( $wpcf7_form_list ) ){ - foreach ( $wpcf7_form_list as $post ) { - $options[ $post->ID ] = $post->post_title; - } - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - return $options; - } -} - -/** - * Get Gravity Form [ if exists ] - */ -if ( !function_exists('eael_select_gravity_form') ) { - function eael_select_gravity_form() { - $options = array(); - if ( class_exists( 'GFCommon' ) ) { - $gravity_forms = RGFormsModel::get_forms( null, 'title' ); - - if ( ! empty( $gravity_forms ) && ! is_wp_error( $gravity_forms ) ) { - - $options[0] = esc_html__( 'Select Gravity Form', 'essential-addons-elementor' ); - foreach ( $gravity_forms as $form ) { - $options[ $form->id ] = $form->title; - } - - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - } - - return $options; - } -} - -/** - * Get WeForms Form List - * @return array - */ -function eael_select_weform() { - - $wpuf_form_list = get_posts( array( - 'post_type' => 'wpuf_contact_form', - 'showposts' => 999, - )); - - $options = array(); - - if ( ! empty( $wpuf_form_list ) && ! is_wp_error( $wpuf_form_list ) ) { - $options[0] = esc_html__( 'Select weForm', 'essential-addons-elementor' ); - foreach ( $wpuf_form_list as $post ) { - $options[ $post->ID ] = $post->post_title; - } - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - - return $options; -} - -/** - * Get Ninja Form List - * @return array - */ -if ( !function_exists('eael_select_ninja_form') ) { - function eael_select_ninja_form() { - $options = array(); - if ( class_exists( 'Ninja_Forms' ) ) { - $contact_forms = Ninja_Forms()->form()->get_forms(); - - if ( ! empty( $contact_forms ) && ! is_wp_error( $contact_forms ) ) { - - $options[0] = esc_html__( 'Select Ninja Form', 'essential-addons-elementor' ); - - foreach ( $contact_forms as $form ) { - $options[ $form->get_id() ] = $form->get_setting( 'title' ); - } - } - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - - return $options; - } -} - -/** - * Get Caldera Form List - * @return array - */ -if ( !function_exists('eael_select_caldera_form') ) { - function eael_select_caldera_form() { - $options = array(); - if ( class_exists( 'Caldera_Forms' ) ) { - - $contact_forms = Caldera_Forms_Forms::get_forms( true, true ); - - if ( ! empty( $contact_forms ) && ! is_wp_error( $contact_forms ) ) { - $options[0] = esc_html__( 'Select Caldera Form', 'essential-addons-elementor' ); - foreach ( $contact_forms as $form ) { - $options[ $form['ID'] ] = $form['name']; - } - } - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - - return $options; - } -} - -/** - * Get WPForms List - * @return array - */ -if ( !function_exists('eael_select_wpforms_forms') ) { - function eael_select_wpforms_forms() { - $options = array(); - if ( class_exists( '\WPForms\WPForms' ) ) { - - $args = array( - 'post_type' => 'wpforms', - 'posts_per_page' => -1 - ); - - $contact_forms = get_posts( $args ); - - if ( ! empty( $contact_forms ) && ! is_wp_error( $contact_forms ) ) { - $options[0] = esc_html__( 'Select a WPForm', 'essential-addons-elementor' ); - foreach ( $contact_forms as $post ) { - $options[ $post->ID ] = $post->post_title; - } - } - } else { - $options[0] = esc_html__( 'Create a Form First', 'essential-addons-elementor' ); - } - - return $options; - } -} - -// Get all elementor page templates -if ( !function_exists('eael_get_page_templates') ) { - function eael_get_page_templates(){ - $page_templates = get_posts( array( - 'post_type' => 'elementor_library', - 'posts_per_page' => -1 - )); - - $options = array(); - - if ( ! empty( $page_templates ) && ! is_wp_error( $page_templates ) ){ - foreach ( $page_templates as $post ) { - $options[ $post->ID ] = $post->post_title; - } - } - return $options; - } -} - -// Get all Authors -if ( !function_exists('eael_get_authors') ) { - function eael_get_authors() { - - $options = array(); - - $users = get_users(); - - if($users) { - foreach( $users as $user ) { - $options[ $user->ID ] = $user->display_name; - } - } - - return $options; - } -} - -// Get all Authors -if ( !function_exists('eael_get_tags') ) { - function eael_get_tags() { - - $options = array(); - - $tags = get_tags(); - - foreach ( $tags as $tag ) { - $options[ $tag->term_id ] = $tag->name; - } - - return $options; - } -} - -// Get all Posts -if ( !function_exists('eael_get_posts') ) { - function eael_get_posts() { - - $post_list = get_posts( array( - 'post_type' => 'post', - 'orderby' => 'date', - 'order' => 'DESC', - 'posts_per_page' => -1, - ) ); - - $posts = array(); - - if ( ! empty( $post_list ) && ! is_wp_error( $post_list ) ) { - foreach ( $post_list as $post ) { - $posts[ $post->ID ] = $post->post_title; - } - } - - return $posts; - } -} - -// Get all Pages -if ( !function_exists('eael_get_pages') ) { - function eael_get_pages() { - - $page_list = get_posts( array( - 'post_type' => 'page', - 'orderby' => 'date', - 'order' => 'DESC', - 'posts_per_page' => -1, - ) ); - - $pages = array(); - - if ( ! empty( $page_list ) && ! is_wp_error( $page_list ) ) { - foreach ( $page_list as $page ) { - $pages[ $page->ID ] = $page->post_title; - } - } - - return $pages; - } -} - - -/** - * This function is responsible for get the post data. - * It will return HTML markup with AJAX call and with normal call. - * - * @return string of an html markup with AJAX call. - * @return array of content and found posts count without AJAX call. - */ -if( ! function_exists( 'eael_load_more_ajax' ) ) : - function eael_load_more_ajax(){ - - if( isset( $_POST['action'] ) && $_POST['action'] == 'load_more' ) { - $post_args = eael_get_post_settings( $_POST ); - $post_args = array_merge( \Elementor\EAE_Helper::get_query_args( 'eaeposts', $_POST ), $post_args ); - - if( isset( $_POST['tax_query'] ) && count( $_POST['tax_query'] ) > 1 ) { - $post_args['tax_query']['relation'] = 'OR'; - } - } else { - $args = func_get_args(); - $post_args = $args[0]; - } - - - $posts = new WP_Query( $post_args ); - /** - * For returning all types of post as an array - * @return array; - */ - if( isset( $post_args['post_style'] ) && $post_args['post_style'] == 'all_types' ) { - return $posts->posts; - } - - $return = array(); - $return['count'] = $posts->found_posts; - - ob_start(); - - while( $posts->have_posts() ) : $posts->the_post(); - $isPrinted = false; - /** - * All content html here. - */ - include ESSENTIAL_ADDONS_EL_PATH . 'includes/templates/content.php'; - endwhile; - $return['content'] = ob_get_clean(); - wp_reset_postdata(); - wp_reset_query(); - if( isset( $_POST['action'] ) && $_POST['action'] == 'load_more' ) { - echo $return['content']; - die(); - } else { - return $return; - } - } - add_action( 'wp_ajax_nopriv_load_more', 'eael_load_more_ajax' ); - add_action( 'wp_ajax_load_more', 'eael_load_more_ajax' ); -endif; - -/** - * For All Settings Key Need To Display - * - * @return array - */ -function posts_args(){ - return array( - // for content-ticker - 'eael_ticker_type', - 'eael_ticker_custom_contents', - - 'eael_post_grid_columns', - - // common - 'meta_position', - 'eael_show_meta', - 'image_size', - 'eael_show_image', - 'eael_show_title', - 'eael_show_excerpt', - 'eael_excerpt_length', - 'eael_show_read_more', - 'eael_read_more_text', - 'show_load_more', - 'show_load_more_text', - 'eael_post_grid_bg_hover_icon', - - // query_args - 'post_type', - 'post__in', - 'posts_per_page', - 'post_style', - 'tax_query', - 'post__not_in', - 'eael_post_authors', - 'eaeposts_authors', - 'offset', - 'orderby', - 'order', - 'eael_post_grid_hover_animation' - ); -} \ No newline at end of file diff --git a/admin/partials/elements.php b/includes/templates/admin/elements.php similarity index 89% rename from admin/partials/elements.php rename to includes/templates/admin/elements.php index e951fc812..eafe53b6b 100755 --- a/admin/partials/elements.php +++ b/includes/templates/admin/elements.php @@ -4,148 +4,148 @@

You can disable the elements you are not using on your site. That will disable all associated assets of those widgets to improve your site loading.

- eael_get_settings['contact-form-7'], true ); ?> > + get_settings('contact-form-7'), true ); ?> >

- eael_get_settings['count-down'], true ); ?> > + get_settings('count-down'), true ); ?> >

- eael_get_settings['creative-btn'], true ); ?> > + get_settings('creative-btn'), true ); ?> >

- eael_get_settings['fancy-text'], true ); ?> > + get_settings('fancy-text'), true ); ?> >

- eael_get_settings['post-grid'], true ); ?> > + get_settings('post-grid'), true ); ?> >

- eael_get_settings['post-timeline'], true ); ?> > + get_settings('post-timeline'), true ); ?> >

- eael_get_settings['product-grid'], true ); ?> > + get_settings('product-grid'), true ); ?> >

- eael_get_settings['team-members'], true ); ?> > + get_settings('team-members'), true ); ?> >

- eael_get_settings['testimonials'], true ); ?> > + get_settings('testimonials'), true ); ?> > -

+

- eael_get_settings['weforms'], true ); ?> > + get_settings('weforms'), true ); ?> >

- eael_get_settings['call-to-action'], true ); ?> > + get_settings('call-to-action'), true ); ?> >

- eael_get_settings['flip-box'], true ); ?> > + get_settings('flip-box'), true ); ?> >

- eael_get_settings['info-box'], true ); ?> > + get_settings('info-box'), true ); ?> >

- eael_get_settings['dual-header'], true ); ?> > + get_settings('dual-header'), true ); ?> >

- eael_get_settings['price-table'], true ); ?> > + get_settings('price-table'), true ); ?> >

- eael_get_settings['ninja-form'], true ); ?> > + get_settings('ninja-form'), true ); ?> >

- eael_get_settings['gravity-form'], true ); ?> > + get_settings('gravity-form'), true ); ?> >

- eael_get_settings['caldera-form'], true ); ?> > + get_settings('caldera-form'), true ); ?> >

- eael_get_settings['wpforms'], true ); ?> > + get_settings('wpforms'), true ); ?> >

- eael_get_settings['twitter-feed'], true ); ?> > + get_settings('twitter-feed'), true ); ?> >

- eael_get_settings['filter-gallery'], true ); ?> > + get_settings('filter-gallery'), true ); ?> >

- eael_get_settings['data-table'], true ); ?> > + get_settings('data-table'), true ); ?> >

- eael_get_settings['image-accordion'], true ); ?> > + get_settings('image-accordion'), true ); ?> >

- eael_get_settings['content-ticker'], true ); ?> > + get_settings('content-ticker'), true ); ?> >

- eael_get_settings['tooltip'], true ); ?> > + get_settings('tooltip'), true ); ?> >

- eael_get_settings['adv-accordion'], true ); ?> > + get_settings('adv-accordion'), true ); ?> >

- eael_get_settings['adv-tabs'], true ); ?> > + get_settings('adv-tabs'), true ); ?> >

- eael_get_settings['progress-bar'], true ); ?> > + get_settings('progress-bar'), true ); ?> >

- eael_get_settings['feature-list'], true ); ?> > + get_settings('feature-list'), true ); ?> >

@@ -153,7 +153,7 @@
- +

Premium Elements

diff --git a/admin/partials/extensions.php b/includes/templates/admin/extensions.php old mode 100644 new mode 100755 similarity index 78% rename from admin/partials/extensions.php rename to includes/templates/admin/extensions.php index 06e51044d..22f8d3e12 --- a/admin/partials/extensions.php +++ b/includes/templates/admin/extensions.php @@ -21,6 +21,12 @@

+
+ + +

+
+
diff --git a/admin/partials/general.php b/includes/templates/admin/general.php similarity index 98% rename from admin/partials/general.php rename to includes/templates/admin/general.php index cfc4313da..1e4500ce1 100755 --- a/admin/partials/general.php +++ b/includes/templates/admin/general.php @@ -5,7 +5,7 @@
@@ -62,7 +62,7 @@
Upgrade to Pro', 'essential-addons-elementor' ), 'https://wpdeveloper.net/in/upgrade-essential-addons-elementor' ); ?> diff --git a/admin/partials/go-pro.php b/includes/templates/admin/go-pro.php similarity index 100% rename from admin/partials/go-pro.php rename to includes/templates/admin/go-pro.php diff --git a/includes/templates/content.php b/includes/templates/content.php deleted file mode 100755 index cd9c29d65..000000000 --- a/includes/templates/content.php +++ /dev/null @@ -1,122 +0,0 @@ - -
-
- -
-
- - - - - - -
-
-
- -
- - -
- - - - - - -
- - - -
- -
- - -
- - - -
-
- -

- - - - - -
- - -
-
-

-
-
- -
- - - - -
- - -
-
- - - - \ No newline at end of file diff --git a/includes/templates/content/grid.php b/includes/templates/content/grid.php new file mode 100644 index 000000000..a83adf279 --- /dev/null +++ b/includes/templates/content/grid.php @@ -0,0 +1,67 @@ + +
+
+
+ +
+ +
+ + + + + + +
+ + + +
+ +
+ +
+ + + +
+
+ +

+ + + + + +
+ + +
+
+

eael_get_excerpt_by_id(get_the_ID(), $post_args['eael_excerpt_length']); ?>

+
+
+ +
+ + + + + +
+
+
\ No newline at end of file diff --git a/includes/templates/content/ticker.php b/includes/templates/content/ticker.php new file mode 100644 index 000000000..96e767f19 --- /dev/null +++ b/includes/templates/content/ticker.php @@ -0,0 +1,5 @@ +
+
+ +
+
\ No newline at end of file diff --git a/includes/templates/content/timeline.php b/includes/templates/content/timeline.php new file mode 100644 index 000000000..a6acfc8fe --- /dev/null +++ b/includes/templates/content/timeline.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/includes/templates/product-loop.php b/includes/templates/product-loop.php index 040868d9d..2eab0a4f1 100755 --- a/includes/templates/product-loop.php +++ b/includes/templates/product-loop.php @@ -1,6 +1,8 @@ +
  • > admin_url('admin-ajax.php'), + 'nonce' => wp_create_nonce('essential-addons-elementor'), + )); + } + } + + /** + * Create settings page. + * @param + * @return void + * @since 1.1.2 + */ + public function eael_admin_settings_page() + { + echo '
    +
    +
    +
    +
    + +
    +

    ' . __('Essential Addons Settings', 'essential-addons-elementor') . '

    +
    +
    + +
    +
    +
    + '; + include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/general.php'; + include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/elements.php'; + include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/extensions.php'; + include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/go-pro.php'; + echo '
    +
    +
    '; + } + + /** + * Saving data with ajax request + * @param + * @return array + * @since 1.1.2 + */ + public function save_settings() + { + check_ajax_referer('essential-addons-elementor', 'security'); + + if (!isset($_POST['fields'])) { + return; + } + + parse_str($_POST['fields'], $settings); + + // update new settings + $updated = update_option('eael_save_settings', array_merge(array_fill_keys($this->get_registered_elements(), 0), array_map(function ($value) {return 1;}, $settings))); + + // Build assets files + do_action('eael_generate_editor_scripts', array_keys($settings)); + + wp_send_json($updated); + } + + public function admin_notice() + { + $notice = new WPDeveloper_Notice(EAEL_PLUGIN_BASENAME, EAEL_PLUGIN_VERSION); + $scheme = (parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY)) ? '&' : '?'; + $url = $_SERVER['REQUEST_URI'] . $scheme; + $notice->links = [ + 'review' => array( + 'later' => array( + 'link' => 'https://wpdeveloper.net/review-essential-addons-elementor', + 'target' => '_blank', + 'label' => __('Ok, you deserve it!', 'essential-addons-elementor'), + 'icon_class' => 'dashicons dashicons-external', + ), + 'allready' => array( + 'link' => $url, + 'label' => __('I already did', 'essential-addons-elementor'), + 'icon_class' => 'dashicons dashicons-smiley', + 'data_args' => [ + 'dismiss' => true, + ], + ), + 'maybe_later' => array( + 'link' => $url, + 'label' => __('Maybe Later', 'essential-addons-elementor'), + 'icon_class' => 'dashicons dashicons-calendar-alt', + 'data_args' => [ + 'later' => true, + ], + ), + 'support' => array( + 'link' => 'https://wpdeveloper.net/support', + 'label' => __('I need help', 'essential-addons-elementor'), + 'icon_class' => 'dashicons dashicons-sos', + ), + 'never_show_again' => array( + 'link' => $url, + 'label' => __('Never show again', 'essential-addons-elementor'), + 'icon_class' => 'dashicons dashicons-dismiss', + 'data_args' => [ + 'dismiss' => true, + ], + ), + ), + ]; + + /** + * This is review message and thumbnail. + */ + $notice->message('review', '

    ' . __('We hope you\'re enjoying Essential Addons for Elementor! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'essential-addons-elementor') . '

    '); + $notice->thumbnail('review', plugins_url('assets/admin/images/ea-logo.svg', EAEL_PLUGIN_BASENAME)); + + /** + * Current Notice End Time. + * Notice will dismiss in 3 days if user does nothing. + */ + $notice->cne_time = '3 Day'; + /** + * Current Notice Maybe Later Time. + * Notice will show again in 7 days + */ + $notice->maybe_later_time = '7 Day'; + + $notice->text_domain = 'essential-addons-elementor'; + + $notice->options_args = array( + 'notice_will_show' => [ + 'opt_in' => $notice->timestamp, + 'review' => $notice->makeTime($notice->timestamp, '4 Day'), // after 4 days + ], + ); + + $notice->init(); + } +} diff --git a/includes/traits/Core.php b/includes/traits/Core.php new file mode 100755 index 000000000..19346f38e --- /dev/null +++ b/includes/traits/Core.php @@ -0,0 +1,153 @@ +registered_elements); + } + + /** + * Return saved settings + * + * @since 3.0.0 + */ + public function get_settings($element = null) + { + $elements = get_option('eael_save_settings', array_fill_keys(array_keys($this->registered_elements), true)); + + return (isset($element) ? $elements[$element] : array_keys(array_filter($elements))); + } + + /** + * Creates an Action Menu + */ + public function eael_add_settings_link($links) + { + $settings_link = sprintf('' . __('Settings') . ''); + $go_pro_link = sprintf('' . __('Go Pro') . ''); + array_push($links, $settings_link, $go_pro_link); + return $links; + } + + /** + * Redirect to options page + * + * @since v1.0.0 + */ + public function eael_redirect() + { + if (get_option('eael_do_activation_redirect', false)) { + delete_option('eael_do_activation_redirect'); + if (!isset($_GET['activate-multi'])) { + wp_redirect("admin.php?page=eael-settings"); + } + } + } + + public function plugins_footer_for_pro() + { + ?> + + eael_is_elementor_active()) { + if (!current_user_can('activate_plugins')) { + return; + } + $activation_url = wp_nonce_url('plugins.php?action=activate&plugin=' . $elementor . '&plugin_status=all&paged=1&s', 'activate-plugin_' . $elementor); + $message = __('Essential Addons for Elementor requires Elementor plugin to be active. Please activate Elementor to continue.', 'essential-addons-elementor'); + $button_text = __('Activate Elementor', 'essential-addons-elementor'); + } else { + if (!current_user_can('activate_plugins')) { + return; + } + $activation_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=elementor'), 'install-plugin_elementor'); + $message = sprintf(__('Essential Addons for Elementor requires Elementor plugin to be installed and activated. Please install Elementor to continue.', 'essential-addons-elementor'), '', ''); + $button_text = __('Install Elementor', 'essential-addons-elementor'); + } + $button = '

    ' . $button_text . '

    '; + printf('

    %1$s

    %2$s
    ', __($message), $button); + } + + /** + * Optional usage tracker + * + * @since v1.0.0 + */ + public function start_plugin_tracking() + { + $wpins = new Plugin_Usage_Tracker( + EAEL_PLUGIN_FILE, + 'http://app.wpdeveloper.net', + array(), + true, + true, + 1 + ); + } +} diff --git a/includes/traits/Elements.php b/includes/traits/Elements.php new file mode 100755 index 000000000..242faa2c6 --- /dev/null +++ b/includes/traits/Elements.php @@ -0,0 +1,68 @@ +add_category( + 'essential-addons-elementor', + [ + 'title' => __('Essential Addons', 'essential-addons-elementor'), + 'icon' => 'font', + ], 1); + } + + /** + * Add new group control + * + * @since v1.0.0 + */ + public function controls_registered($controls_manager) + { + $controls_manager->add_group_control('eaeposts', new Group_Control_EA_Posts); + } + + /** + * Acivate or Deactivate Modules + * + * @since v1.0.0 + */ + public function eael_add_elements($widgets_manager) + { + $active_elements = $this->get_settings(); + + if (empty($active_elements)) { + return; + } + + foreach ($active_elements as $active_element) { + + if (!isset($this->registered_elements[$active_element])) { + continue; + } + + if (isset($this->registered_elements[$active_element]['condition'])) { + if ($this->registered_elements[$active_element]['condition'][0]($this->registered_elements[$active_element]['condition'][1]) == false) { + continue; + } + } + + $element_class = '\Essential_Addons_Elementor\Elements\\' . $this->registered_elements[$active_element]['class']; + $widgets_manager->register_widget_type(new $element_class); + } + } + +} diff --git a/includes/traits/Enqueue.php b/includes/traits/Enqueue.php new file mode 100755 index 000000000..3661edc29 --- /dev/null +++ b/includes/traits/Enqueue.php @@ -0,0 +1,116 @@ +eael_select_gravity_form() as $form_id => $form_name) { + if ($form_id != '0') { + gravity_form_enqueue_scripts($form_id); + } + }; + } + + // WPforms compatibility + if (function_exists('wpforms')) { + wpforms()->frontend->assets_css(); + } + + // My Assets + if (Plugin::$instance->preview->is_preview_mode()) { + if (file_exists(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael.min.js')) { + $js_file = EAEL_ASSET_URL . '/eael.min.js'; + } else { + $js_file = EAEL_PLUGIN_URL . '/assets/front-end/js/eael.min.js'; + $this->generate_scripts($this->get_settings()); + } + + if (file_exists(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael.min.css')) { + $css_file = EAEL_ASSET_URL . '/eael.min.css'; + } else { + $css_file = EAEL_PLUGIN_URL . '/assets/front-end/css/eael.min.css'; + $this->generate_scripts($this->get_settings()); + } + + wp_enqueue_script( + 'eael-backend', + $js_file, + ['jquery'], + EAEL_PLUGIN_VERSION, + true + ); + + wp_enqueue_style( + 'eael-editor-css', + EAEL_PLUGIN_URL . '/assets/front-end/css/eael-editor.css', + false, + EAEL_PLUGIN_VERSION + ); + + wp_enqueue_style( + 'eael-backend', + $css_file, + false, + EAEL_PLUGIN_VERSION + ); + + // localize script + wp_localize_script('eael-backend', 'localize', array( + 'ajaxurl' => admin_url('admin-ajax.php'), + )); + } else if (is_singular()) { + $post_id = get_the_ID(); + $elements = $this->widgets_in_post($post_id); + + if (empty($elements)) { + return; + } + + if (file_exists(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael-' . $post_id . '.min.js')) { + $js_file = EAEL_ASSET_URL . '/eael-' . $post_id . '.min.js'; + } else { + $js_file = EAEL_PLUGIN_URL . '/assets/front-end/js/eael.min.js'; + $this->generate_post_scripts($post_id, $elements); + } + + if (file_exists(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael-' . $post_id . '.min.css')) { + $css_file = EAEL_ASSET_URL . '/eael-' . $post_id . '.min.css'; + } else { + $css_file = EAEL_PLUGIN_URL . '/assets/front-end/css/eael.min.css'; + $this->generate_post_scripts($post_id, $elements); + } + + wp_enqueue_script( + 'eael-front-end', + $js_file, + ['jquery'], + EAEL_PLUGIN_VERSION, + true + ); + + wp_enqueue_style( + 'eael-front-end', + $css_file, + false, + EAEL_PLUGIN_VERSION + ); + + // localize script + wp_localize_script('eael-front-end', 'localize', array( + 'ajaxurl' => admin_url('admin-ajax.php'), + )); + } + } +} diff --git a/includes/traits/Generator.php b/includes/traits/Generator.php new file mode 100755 index 000000000..ced47dece --- /dev/null +++ b/includes/traits/Generator.php @@ -0,0 +1,239 @@ + array( + 'assets/front-end/js/vendor/fancy-text/fancy-text.js', + ), + 'count-down' => array( + 'assets/front-end/js/vendor/count-down/count-down.min.js', + ), + 'filter-gallery' => array( + 'assets/front-end/js/vendor/isotope/isotope.pkgd.min.js', + 'assets/front-end/js/vendor/magnific-popup/jquery.magnific-popup.min.js', + ), + 'post-timeline' => array( + 'assets/front-end/js/vendor/load-more/load-more.js', + ), + 'price-table' => array( + 'assets/front-end/js/vendor/tooltipster/tooltipster.bundle.min.js', + ), + 'progress-bar' => array( + 'assets/front-end/js/vendor/progress-bar/progress-bar.min.js', + 'assets/front-end/js/vendor/inview/inview.min.js', + ), + 'twitter-feed' => array( + 'assets/front-end/js/vendor/isotope/isotope.pkgd.min.js', + 'assets/front-end/js/vendor/social-feeds/codebird.js', + 'assets/front-end/js/vendor/social-feeds/doT.min.js', + 'assets/front-end/js/vendor/social-feeds/moment.js', + 'assets/front-end/js/vendor/social-feeds/jquery.socialfeed.js', + ), + 'post-grid' => array( + 'assets/front-end/js/vendor/isotope/isotope.pkgd.min.js', + 'assets/front-end/js/vendor/load-more/load-more.js', + ), + ); + + /** + * Define css dependencies + * + * @since 3.0.0 + */ + public $css_dependencies = [ + 'post-grid' => [ + 'assets/front-end/css/product-grid.css', + ], + 'filter-gallery' => [ + 'assets/front-end/css/magnific-popup.css', + ], + ]; + + /** + * Collect dependencies for modules + * + * @since 3.0.0 + */ + public function generate_dependency(array $elements, array $deps) + { + $paths = []; + foreach ($elements as $element) { + if (isset($deps[$element])) { + foreach ($deps[$element] as $path) { + $paths[] = EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . $path; + } + } + } + + return array_unique($paths); + } + + /** + * Search elements in a post. + * + * @since 3.0.0 + */ + public function widgets_in_post($post_id) + { + $elements = array(); + $sections = json_decode((string) get_post_meta($post_id, '_elementor_data', true)); + + if (empty($sections)) { + return $elements; + } + + foreach ((array) $sections as $section) { + if (empty($section->elements)) { + continue; + } + foreach ((array) $section->elements as $element) { + if (empty($element->elements)) { + continue; + } + foreach ((array) $element->elements as $widget) { + if (@$widget->widgetType) { + $elements[] = $widget->widgetType; + } else { + foreach ((array) $widget as $inner_section) { + if (empty($inner_section)) { + continue; + } + + foreach ((array) $inner_section as $inner_elements) { + if (empty($inner_elements->elements)) { + continue; + } + foreach ((array) $inner_elements->elements as $inner_widget) { + if (@$inner_widget->widgetType) { + $elements[] = $inner_widget->widgetType; + } + } + } + } + } + } + } + } + + $elements = array_map(function ($val) { + $val = str_replace(['eael-'], [''], $val); + + return str_replace([ + 'eicon-woocommerce', + 'countdown', + 'creative-button', + 'team-member', + 'testimonial', + 'weform', + 'cta-box', + 'dual-color-header', + 'pricing-table', + 'filterable-gallery', + ], [ + 'product-grid', + 'count-down', + 'creative-btn', + 'team-members', + 'testimonials', + 'weforms', + 'call-to-action', + 'dual-header', + 'price-table', + 'filter-gallery', + ], $val); + }, $elements); + + $elements = array_intersect(array_keys($this->registered_elements), $elements); + + return $elements; + } + + /** + * Generate scripts and minify. + * + * @since 3.0.0 + */ + public function generate_scripts($elements, $file_name = null) + { + if (empty($elements)) { + return; + } + + // if folder not exists, create new folder + if (!file_exists(EAEL_ASSET_PATH)) { + wp_mkdir_p(EAEL_ASSET_PATH); + } + + // collect eael js + $js_paths = array( + EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'assets/front-end/js/general.js', + ); + $css_paths = array( + EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . "assets/front-end/css/general.css", + ); + + // collect library scripts + $js_paths = array_merge($js_paths, $this->generate_dependency($elements, $this->js_dependencies)); + + // collect library styles + $css_paths = array_merge($css_paths, $this->generate_dependency($elements, $this->css_dependencies)); + + foreach ((array) $elements as $element) { + $js_file = EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'assets/front-end/js/' . $element . '/index.js'; + if (file_exists($js_file)) { + $js_paths[] = $js_file; + } + + $css_file = EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . "assets/front-end/css/$element.css"; + if (file_exists($css_file)) { + $css_paths[] = $css_file; + } + } + + $minifier = new Minify\JS($js_paths); + file_put_contents(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . ($file_name ? $file_name : 'eael') . '.min.js', $minifier->minify()); + + $minifier = new Minify\CSS($css_paths); + file_put_contents(EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . ($file_name ? $file_name : 'eael') . '.min.css', $minifier->minify()); + } + + /** + * Generate single post scripts + * + * @since 3.0.0 + */ + public function generate_post_scripts($post_id, $elements = null) + { + if (!is_array($elements)) { + $elements = $this->widgets_in_post($post_id); + } + + if (empty($elements)) { + $css_path = EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael-' . $post_id . '.min.css'; + $js_path = EAEL_ASSET_PATH . DIRECTORY_SEPARATOR . 'eael-' . $post_id . '.min.js'; + + if (file_exists($css_path)) { + unlink($css_path); + } + + if (file_exists($js_path)) { + unlink($js_path); + } + } else { + $this->generate_scripts($elements, 'eael-' . $post_id); + } + } +} diff --git a/includes/traits/Helper.php b/includes/traits/Helper.php new file mode 100755 index 000000000..50a42d9f5 --- /dev/null +++ b/includes/traits/Helper.php @@ -0,0 +1,1320 @@ +get_name()) { + $this->start_controls_section( + 'eael_section_content_ticker_filters', + [ + 'label' => __('Dynamic Content Settings', 'essential-addons-elementor'), + 'condition' => [ + 'eael_ticker_type' => 'dynamic', + ], + ] + ); + } + + if ('eael-content-timeline' === $this->get_name()) { + $this->start_controls_section( + 'eael_section_timeline__filters', + [ + 'label' => __('Dynamic Content Settings', 'essential-addons-elementor'), + 'condition' => [ + 'eael_content_timeline_choose' => 'dynamic', + ], + ] + ); + } + + if ('eael-content-timeline' !== $this->get_name() && 'eael-content-ticker' !== $this->get_name()) { + $this->start_controls_section( + 'eael_section_post__filters', + [ + 'label' => __('Query', 'essential-addons-elementor'), + ] + ); + } + + $this->add_group_control( + 'eaeposts', + [ + 'name' => 'eaeposts', + ] + ); + + $this->add_control( + 'post__not_in', + [ + 'label' => __('Exclude', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT2, + 'options' => $this->eael_get_all_types_post(), + 'label_block' => true, + 'post_type' => '', + 'multiple' => true, + 'condition' => [ + 'eaeposts_post_type!' => 'by_id', + ], + ] + ); + + $this->add_control( + 'posts_per_page', + [ + 'label' => __('Posts Per Page', 'essential-addons-elementor'), + 'type' => Controls_Manager::NUMBER, + 'default' => '4', + ] + ); + + $this->add_control( + 'offset', + [ + 'label' => __('Offset', 'essential-addons-elementor'), + 'type' => Controls_Manager::NUMBER, + 'default' => '0', + ] + ); + + $this->add_control( + 'orderby', + [ + 'label' => __('Order By', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT, + 'options' => $this->eael_get_post_orderby_options(), + 'default' => 'date', + + ] + ); + + $this->add_control( + 'order', + [ + 'label' => __('Order', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'asc' => 'Ascending', + 'desc' => 'Descending', + ], + 'default' => 'desc', + + ] + ); + + $this->end_controls_section(); + } + + /** + * Layout Controls For Post Block + * + */ + protected function eael_layout_controls() + { + $this->start_controls_section( + 'eael_section_post_timeline_layout', + [ + 'label' => __('Layout Settings', 'essential-addons-elementor'), + ] + ); + + if ('eael-post-grid' === $this->get_name()) { + $this->add_control( + 'eael_post_grid_columns', + [ + 'label' => esc_html__('Number of Columns', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT, + 'default' => 'eael-col-4', + 'options' => [ + 'eael-col-1' => esc_html__('Single Column', 'essential-addons-elementor'), + 'eael-col-2' => esc_html__('Two Columns', 'essential-addons-elementor'), + 'eael-col-3' => esc_html__('Three Columns', 'essential-addons-elementor'), + 'eael-col-4' => esc_html__('Four Columns', 'essential-addons-elementor'), + 'eael-col-5' => esc_html__('Five Columns', 'essential-addons-elementor'), + 'eael-col-6' => esc_html__('Six Columns', 'essential-addons-elementor'), + ], + ] + ); + } + + if ('eael-post-block' === $this->get_name()) { + $this->add_control( + 'grid_style', + [ + 'label' => esc_html__('Post Block Style Preset', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT, + 'default' => 'post-block-style-default', + 'options' => [ + 'post-block-style-default' => esc_html__('Default', 'essential-addons-elementor'), + 'post-block-style-overlay' => esc_html__('Overlay', 'essential-addons-elementor'), + ], + ] + ); + } + + if ('eael-post-carousel' !== $this->get_name()) { + + /** + * Show Read More + * @uses ContentTimeLine Elements - EAE + */ + if ('eael-content-timeline' === $this->get_name()) { + + $this->add_control( + 'eael_show_read_more', + [ + 'label' => __('Show Read More', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '1', + 'condition' => [ + 'eael_content_timeline_choose' => 'dynamic', + ], + ] + ); + + $this->add_control( + 'eael_read_more_text', + [ + 'label' => esc_html__('Label Text', 'essential-addons-elementor'), + 'type' => Controls_Manager::TEXT, + 'label_block' => false, + 'default' => esc_html__('Read More', 'essential-addons-elementor'), + 'condition' => [ + 'eael_content_timeline_choose' => 'dynamic', + 'eael_show_read_more' => '1', + ], + ] + ); + + } else { + + $this->add_control( + 'show_load_more', + [ + 'label' => __('Show Load More', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '0', + ] + ); + + $this->add_control( + 'show_load_more_text', + [ + 'label' => esc_html__('Label Text', 'essential-addons-elementor'), + 'type' => Controls_Manager::TEXT, + 'label_block' => false, + 'default' => esc_html__('Load More', 'essential-addons-elementor'), + 'condition' => [ + 'show_load_more' => '1', + ], + ] + ); + } + + } + + if ('eael-content-timeline' !== $this->get_name()) { + $this->add_control( + 'eael_show_image', + [ + 'label' => __('Show Image', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '1', + ] + ); + $this->add_group_control( + Group_Control_Image_Size::get_type(), + [ + 'name' => 'image', + 'exclude' => ['custom'], + 'default' => 'medium', + 'condition' => [ + 'eael_show_image' => '1', + ], + ] + ); + + } + + if ('eael-content-timeline' === $this->get_name()) { + + $this->add_control( + 'eael_show_image_or_icon', + [ + 'label' => __('Show Circle Image / Icon', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + 'img' => [ + 'title' => __('Image', 'essential-addons-elementor'), + 'icon' => 'fa fa-picture-o', + ], + 'icon' => [ + 'title' => __('Icon', 'essential-addons-elementor'), + 'icon' => 'fa fa-info', + ], + 'bullet' => [ + 'title' => __('Bullet', 'essential-addons-elementor'), + 'icon' => 'fa fa-circle', + ], + ], + 'default' => 'icon', + 'condition' => [ + 'eael_content_timeline_choose' => 'dynamic', + ], + ] + ); + + $this->add_control( + 'eael_icon_image', + [ + 'label' => esc_html__('Icon Image', 'essential-addons-elementor'), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => Utils::get_placeholder_image_src(), + ], + 'condition' => [ + 'eael_show_image_or_icon' => 'img', + ], + ] + ); + $this->add_control( + 'eael_icon_image_size', + [ + 'label' => esc_html__('Icon Image Size', 'essential-addons-elementor'), + 'type' => Controls_Manager::SLIDER, + 'default' => [ + 'size' => 24, + ], + 'range' => [ + 'px' => [ + 'max' => 60, + ], + ], + 'condition' => [ + 'eael_show_image_or_icon' => 'img', + ], + 'selectors' => [ + '{{WRAPPER}} .eael-content-timeline-img img' => 'width: {{SIZE}}px;', + ], + ] + ); + + $this->add_control( + 'eael_content_timeline_circle_icon', + [ + 'label' => esc_html__('Icon', 'essential-addons-elementor'), + 'type' => Controls_Manager::ICON, + 'default' => 'fa fa-pencil', + 'condition' => [ + 'eael_content_timeline_choose' => 'dynamic', + 'eael_show_image_or_icon' => 'icon', + ], + ] + ); + + } + + $this->add_control( + 'eael_show_title', + [ + 'label' => __('Show Title', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '1', + ] + ); + + $this->add_control( + 'eael_show_excerpt', + [ + 'label' => __('Show excerpt', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '1', + ] + ); + + $this->add_control( + 'eael_excerpt_length', + [ + 'label' => __('Excerpt Words', 'essential-addons-elementor'), + 'type' => Controls_Manager::NUMBER, + 'default' => '10', + 'condition' => [ + 'eael_show_excerpt' => '1', + ], + 'description' => ' Pro Feature. Get Pro version ', + ] + ); + + if ('eael-post-grid' === $this->get_name() || 'eael-post-block' === $this->get_name() || 'eael-post-carousel' === $this->get_name()) { + + $this->add_control( + 'eael_show_meta', + [ + 'label' => __('Show Meta', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('Yes', 'essential-addons-elementor'), + 'icon' => 'fa fa-check', + ], + '0' => [ + 'title' => __('No', 'essential-addons-elementor'), + 'icon' => 'fa fa-ban', + ], + ], + 'default' => '1', + ] + ); + + $this->add_control( + 'meta_position', + [ + 'label' => esc_html__('Meta Position', 'essential-addons-elementor'), + 'type' => Controls_Manager::SELECT, + 'default' => 'meta-entry-footer', + 'options' => [ + 'meta-entry-header' => esc_html__('Entry Header', 'essential-addons-elementor'), + 'meta-entry-footer' => esc_html__('Entry Footer', 'essential-addons-elementor'), + ], + 'condition' => [ + 'eael_show_meta' => '1', + ], + ] + ); + + } + + $this->end_controls_section(); + } + + /** + * Load More Button Style + * + */ + protected function eael_load_more_button_style() + { + $this->start_controls_section( + 'eael_section_load_more_btn', + [ + 'label' => __('Load More Button Style', 'essential-addons-elementor'), + 'tab' => Controls_Manager::TAB_STYLE, + 'condition' => [ + 'show_load_more' => '1', + ], + ] + ); + + $this->add_responsive_control( + 'eael_post_grid_load_more_btn_padding', + [ + 'label' => esc_html__('Padding', 'essential-addons-elementor'), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => ['px', 'em', '%'], + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + ] + ); + + $this->add_responsive_control( + 'eael_post_grid_load_more_btn_margin', + [ + 'label' => esc_html__('Margin', 'essential-addons-elementor'), + 'type' => Controls_Manager::DIMENSIONS, + 'size_units' => ['px', 'em', '%'], + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', + ], + ] + ); + $this->add_group_control( + Group_Control_Typography::get_type(), + [ + 'name' => 'eael_post_grid_load_more_btn_typography', + 'selector' => '{{WRAPPER}} .eael-load-more-button', + ] + ); + + $this->start_controls_tabs('eael_post_grid_load_more_btn_tabs'); + + // Normal State Tab + $this->start_controls_tab('eael_post_grid_load_more_btn_normal', ['label' => esc_html__('Normal', 'essential-addons-elementor')]); + + $this->add_control( + 'eael_post_grid_load_more_btn_normal_text_color', + [ + 'label' => esc_html__('Text Color', 'essential-addons-elementor'), + 'type' => Controls_Manager::COLOR, + 'default' => '#fff', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button' => 'color: {{VALUE}};', + ], + ] + ); + + $this->add_control( + 'eael_cta_btn_normal_bg_color', + [ + 'label' => esc_html__('Background Color', 'essential-addons-elementor'), + 'type' => Controls_Manager::COLOR, + 'default' => '#29d8d8', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button' => 'background: {{VALUE}};', + ], + ] + ); + + $this->add_group_control( + Group_Control_Border::get_type(), + [ + 'name' => 'eael_post_grid_load_more_btn_normal_border', + 'label' => esc_html__('Border', 'essential-addons-elementor'), + 'selector' => '{{WRAPPER}} .eael-load-more-button', + ] + ); + + $this->add_control( + 'eael_post_grid_load_more_btn_border_radius', + [ + 'label' => esc_html__('Border Radius', 'essential-addons-elementor'), + 'type' => Controls_Manager::SLIDER, + 'range' => [ + 'px' => [ + 'max' => 100, + ], + ], + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button' => 'border-radius: {{SIZE}}px;', + ], + ] + ); + $this->add_group_control( + Group_Control_Box_Shadow::get_type(), + [ + 'name' => 'eael_post_grid_load_more_btn_shadow', + 'selector' => '{{WRAPPER}} .eael-load-more-button', + 'separator' => 'before', + ] + ); + + $this->end_controls_tab(); + + // Hover State Tab + $this->start_controls_tab('eael_post_grid_load_more_btn_hover', ['label' => esc_html__('Hover', 'essential-addons-elementor')]); + + $this->add_control( + 'eael_post_grid_load_more_btn_hover_text_color', + [ + 'label' => esc_html__('Text Color', 'essential-addons-elementor'), + 'type' => Controls_Manager::COLOR, + 'default' => '#fff', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button:hover' => 'color: {{VALUE}};', + ], + ] + ); + + $this->add_control( + 'eael_post_grid_load_more_btn_hover_bg_color', + [ + 'label' => esc_html__('Background Color', 'essential-addons-elementor'), + 'type' => Controls_Manager::COLOR, + 'default' => '#27bdbd', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button:hover' => 'background: {{VALUE}};', + ], + ] + ); + + $this->add_control( + 'eael_post_grid_load_more_btn_hover_border_color', + [ + 'label' => esc_html__('Border Color', 'essential-addons-elementor'), + 'type' => Controls_Manager::COLOR, + 'default' => '', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button:hover' => 'border-color: {{VALUE}};', + ], + ] + + ); + $this->add_group_control( + Group_Control_Box_Shadow::get_type(), + [ + 'name' => 'eael_post_grid_load_more_btn_hover_shadow', + 'selector' => '{{WRAPPER}} .eael-load-more-button:hover', + 'separator' => 'before', + ] + ); + $this->end_controls_tab(); + + $this->end_controls_tabs(); + + $this->add_responsive_control( + 'eael_post_grid_loadmore_button_alignment', + [ + 'label' => __('Button Alignment', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + 'flex-start' => [ + 'title' => __('Left', 'essential-addons-elementor'), + 'icon' => 'fa fa-align-left', + ], + 'center' => [ + 'title' => __('Center', 'essential-addons-elementor'), + 'icon' => 'fa fa-align-center', + ], + 'flex-end' => [ + 'title' => __('Right', 'essential-addons-elementor'), + 'icon' => 'fa fa-align-right', + ], + ], + 'default' => 'center', + 'selectors' => [ + '{{WRAPPER}} .eael-load-more-button-wrap' => 'justify-content: {{VALUE}};', + ], + ] + ); + + $this->end_controls_section(); + } + + /** + * Go Premium + * + */ + protected function eael_go_premium() + { + $this->start_controls_section( + 'eael_section_pro', + [ + 'label' => __('Go Premium for More Features', 'essential-addons-elementor'), + ] + ); + + $this->add_control( + 'eael_control_get_pro', + [ + 'label' => __('Unlock more possibilities', 'essential-addons-elementor'), + 'type' => Controls_Manager::CHOOSE, + 'options' => [ + '1' => [ + 'title' => __('', 'essential-addons-elementor'), + 'icon' => 'fa fa-unlock-alt', + ], + ], + 'default' => '1', + 'description' => ' Get the Pro version for more stunning elements and customization options.', + ] + ); + + $this->end_controls_section(); + } + + public function eael_get_query_args($control_id, $settings) + { + $defaults = [ + $control_id . '_post_type' => 'post', + $control_id . '_posts_ids' => [], + 'orderby' => 'date', + 'order' => 'desc', + 'posts_per_page' => 3, + 'offset' => 0, + ]; + + $settings = wp_parse_args($settings, $defaults); + + $post_type = $settings[$control_id . '_post_type']; + + $query_args = [ + 'orderby' => $settings['orderby'], + 'order' => $settings['order'], + 'ignore_sticky_posts' => 1, + 'post_status' => 'publish', // Hide drafts/private posts for admins + ]; + + if ('by_id' === $post_type) { + $query_args['post_type'] = 'any'; + $query_args['post__in'] = $settings[$control_id . '_posts_ids']; + + if (empty($query_args['post__in'])) { + // If no selection - return an empty query + $query_args['post__in'] = [0]; + } + } else { + $query_args['post_type'] = $post_type; + $query_args['posts_per_page'] = $settings['posts_per_page']; + $query_args['tax_query'] = []; + + $query_args['offset'] = $settings['offset']; + + $taxonomies = get_object_taxonomies($post_type, 'objects'); + + foreach ($taxonomies as $object) { + $setting_key = $control_id . '_' . $object->name . '_ids'; + + if (!empty($settings[$setting_key])) { + $query_args['tax_query'][] = [ + 'taxonomy' => $object->name, + 'field' => 'term_id', + 'terms' => $settings[$setting_key], + ]; + } + } + } + + if (!empty($settings[$control_id . '_authors'])) { + $query_args['author__in'] = $settings[$control_id . '_authors']; + } + + $post__not_in = []; + if (!empty($settings['post__not_in'])) { + $post__not_in = array_merge($post__not_in, $settings['post__not_in']); + $query_args['post__not_in'] = $post__not_in; + } + + if (isset($query_args['tax_query']) && count($query_args['tax_query']) > 1) { + $query_args['tax_query']['relation'] = 'OR'; + } + + return $query_args; + } + + /** + * Get All POst Types + * @return array + */ + public function eael_get_post_types() + { + $eael_cpts = get_post_types(array('public' => true, 'show_in_nav_menus' => true), 'object'); + $eael_exclude_cpts = array('elementor_library', 'attachment'); + + foreach ($eael_exclude_cpts as $exclude_cpt) { + unset($eael_cpts[$exclude_cpt]); + } + $post_types = array_merge($eael_cpts); + foreach ($post_types as $type) { + $types[$type->name] = $type->label; + } + + return $types; + } + + /** + * Get all types of post. + * @return array + */ + public function eael_get_all_types_post() + { + $posts_args = array( + 'post_type' => 'any', + 'post_style' => 'all_types', + 'post_status' => 'publish', + 'posts_per_page' => '-1', + ); + $posts = $this->eael_load_more_ajax($posts_args); + + $post_list = []; + + foreach ($posts as $post) { + $post_list[$post->ID] = $post->post_title; + } + + return $post_list; + } + + /** + * Post Settings Parameter + * @param array $settings + * @return array + */ + public function eael_get_post_settings($settings) + { + foreach ($settings as $key => $value) { + if (in_array($key, $this->post_args)) { + $post_args[$key] = $value; + } + } + + $post_args['post_style'] = isset($post_args['post_style']) ? $post_args['post_style'] : 'grid'; + $post_args['post_status'] = 'publish'; + + return $post_args; + } + + /** + * Getting Excerpts By Post Id + * @param int $post_id + * @param int $excerpt_length + * @return string + */ + public function eael_get_excerpt_by_id($post_id, $excerpt_length) + { + $the_post = get_post($post_id); //Gets post ID + + $the_excerpt = null; + if ($the_post) { + $the_excerpt = $the_post->post_excerpt ? $the_post->post_excerpt : $the_post->post_content; + } + + $the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images + $words = explode(' ', $the_excerpt, $excerpt_length + 1); + + if (count($words) > $excerpt_length): + array_pop($words); + array_push($words, '…'); + $the_excerpt = implode(' ', $words); + endif; + + return $the_excerpt; + } + + /** + * Get Post Thumbnail Size + * + * @return array + */ + public function eael_get_thumbnail_sizes() + { + $sizes = get_intermediate_image_sizes(); + foreach ($sizes as $s) { + $ret[$s] = $s; + } + + return $ret; + } + + /** + * POst Orderby Options + * + * @return array + */ + public function eael_get_post_orderby_options() + { + $orderby = array( + 'ID' => 'Post ID', + 'author' => 'Post Author', + 'title' => 'Title', + 'date' => 'Date', + 'modified' => 'Last Modified Date', + 'parent' => 'Parent Id', + 'rand' => 'Random', + 'comment_count' => 'Comment Count', + 'menu_order' => 'Menu Order', + ); + + return $orderby; + } + + /** + * Get Post Categories + * + * @return array + */ + public function eael_post_type_categories() + { + $terms = get_terms(array( + 'taxonomy' => 'category', + 'hide_empty' => true, + )); + + if (!empty($terms) && !is_wp_error($terms)) { + foreach ($terms as $term) { + $options[$term->term_id] = $term->name; + } + } + + return $options; + } + + /** + * WooCommerce Product Query + * + * @return array + */ + public function eael_woocommerce_product_categories() + { + $terms = get_terms(array( + 'taxonomy' => 'product_cat', + 'hide_empty' => true, + )); + + if (!empty($terms) && !is_wp_error($terms)) { + foreach ($terms as $term) { + $options[$term->slug] = $term->name; + } + return $options; + } + } + + /** + * WooCommerce Get Product By Id + * + * @return array + */ + public function eael_woocommerce_product_get_product_by_id() + { + $postlist = get_posts(array( + 'post_type' => 'product', + 'showposts' => 9999, + )); + $options = array(); + + if (!empty($postlist) && !is_wp_error($postlist)) { + foreach ($postlist as $post) { + $options[$post->ID] = $post->post_title; + } + return $options; + + } + } + + /** + * WooCommerce Get Product Category By Id + * + * @return array + */ + public function eael_woocommerce_product_categories_by_id() + { + $terms = get_terms(array( + 'taxonomy' => 'product_cat', + 'hide_empty' => true, + )); + + if (!empty($terms) && !is_wp_error($terms)) { + foreach ($terms as $term) { + $options[$term->term_id] = $term->name; + } + return $options; + } + + } + + /** + * Get Contact Form 7 [ if exists ] + */ + public function eael_select_contact_form() + { + $options = array(); + + if (function_exists('wpcf7')) { + $wpcf7_form_list = get_posts(array( + 'post_type' => 'wpcf7_contact_form', + 'showposts' => 999, + )); + $options[0] = esc_html__('Select a Contact Form', 'essential-addons-elementor'); + if (!empty($wpcf7_form_list) && !is_wp_error($wpcf7_form_list)) { + foreach ($wpcf7_form_list as $post) { + $options[$post->ID] = $post->post_title; + } + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + } + return $options; + } + + /** + * Get Gravity Form [ if exists ] + * + * @return array + */ + public function eael_select_gravity_form() + { + $options = array(); + + if (class_exists('GFCommon')) { + $gravity_forms = \RGFormsModel::get_forms(null, 'title'); + + if (!empty($gravity_forms) && !is_wp_error($gravity_forms)) { + + $options[0] = esc_html__('Select Gravity Form', 'essential-addons-elementor'); + foreach ($gravity_forms as $form) { + $options[$form->id] = $form->title; + } + + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + } + + return $options; + } + + /** + * Get WeForms Form List + * + * @return array + */ + public function eael_select_weform() + { + $wpuf_form_list = get_posts(array( + 'post_type' => 'wpuf_contact_form', + 'showposts' => 999, + )); + + $options = array(); + + if (!empty($wpuf_form_list) && !is_wp_error($wpuf_form_list)) { + $options[0] = esc_html__('Select weForm', 'essential-addons-elementor'); + foreach ($wpuf_form_list as $post) { + $options[$post->ID] = $post->post_title; + } + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + + return $options; + } + + /** + * Get Ninja Form List + * + * @return array + */ + public function eael_select_ninja_form() + { + $options = array(); + + if (class_exists('Ninja_Forms')) { + $contact_forms = Ninja_Forms()->form()->get_forms(); + + if (!empty($contact_forms) && !is_wp_error($contact_forms)) { + + $options[0] = esc_html__('Select Ninja Form', 'essential-addons-elementor'); + + foreach ($contact_forms as $form) { + $options[$form->get_id()] = $form->get_setting('title'); + } + } + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + + return $options; + } + + /** + * Get Caldera Form List + * + * @return array + */ + public function eael_select_caldera_form() + { + $options = array(); + + if (class_exists('Caldera_Forms')) { + $contact_forms = \Caldera_Forms_Forms::get_forms(true, true); + + if (!empty($contact_forms) && !is_wp_error($contact_forms)) { + $options[0] = esc_html__('Select Caldera Form', 'essential-addons-elementor'); + foreach ($contact_forms as $form) { + $options[$form['ID']] = $form['name']; + } + } + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + + return $options; + } + + /** + * Get WPForms List + * + * @return array + */ + public function eael_select_wpforms_forms() + { + $options = array(); + + if (class_exists('\WPForms\WPForms')) { + $args = array( + 'post_type' => 'wpforms', + 'posts_per_page' => -1, + ); + + $contact_forms = get_posts($args); + + if (!empty($contact_forms) && !is_wp_error($contact_forms)) { + $options[0] = esc_html__('Select a WPForm', 'essential-addons-elementor'); + foreach ($contact_forms as $post) { + $options[$post->ID] = $post->post_title; + } + } + } else { + $options[0] = esc_html__('Create a Form First', 'essential-addons-elementor'); + } + + return $options; + } + + /** + * Get all elementor page templates + * + * @return array + */ + public function eael_get_page_templates() + { + $page_templates = get_posts(array( + 'post_type' => 'elementor_library', + 'posts_per_page' => -1, + )); + + $options = array(); + + if (!empty($page_templates) && !is_wp_error($page_templates)) { + foreach ($page_templates as $post) { + $options[$post->ID] = $post->post_title; + } + } + return $options; + } + + /** + * Get all Authors + * + * @return array + */ + public function eael_get_authors() + { + $options = array(); + $users = get_users(); + + if ($users) { + foreach ($users as $user) { + $options[$user->ID] = $user->display_name; + } + } + + return $options; + } + + /** + * Get all Tags + * + * @return array + */ + public function eael_get_tags() + { + $options = array(); + $tags = get_tags(); + + foreach ($tags as $tag) { + $options[$tag->term_id] = $tag->name; + } + + return $options; + } + + /** + * Get all Posts + * + * @return array + */ + public function eael_get_posts() + { + $post_list = get_posts(array( + 'post_type' => 'post', + 'orderby' => 'date', + 'order' => 'DESC', + 'posts_per_page' => -1, + )); + + $posts = array(); + + if (!empty($post_list) && !is_wp_error($post_list)) { + foreach ($post_list as $post) { + $posts[$post->ID] = $post->post_title; + } + } + + return $posts; + } + + /** + * Get all Pages + * + * @return array + */ + public function eael_get_pages() + { + $page_list = get_posts(array( + 'post_type' => 'page', + 'orderby' => 'date', + 'order' => 'DESC', + 'posts_per_page' => -1, + )); + + $pages = array(); + + if (!empty($page_list) && !is_wp_error($page_list)) { + foreach ($page_list as $page) { + $pages[$page->ID] = $page->post_title; + } + } + + return $pages; + } + + /** + * This function is responsible for get the post data. + * It will return HTML markup with AJAX call and with normal call. + * + * @return string of an html markup with AJAX call. + * @return array of content and found posts count without AJAX call. + */ + public function eael_load_more_ajax() + { + if (isset($_POST['action']) && $_POST['action'] == 'load_more') { + $post_args = $this->eael_get_post_settings($_POST); + $post_args = array_merge($this->eael_get_query_args('eaeposts', $_POST), $post_args); + + if (isset($_POST['tax_query']) && count($_POST['tax_query']) > 1) { + $post_args['tax_query']['relation'] = 'OR'; + } + } else { + $args = func_get_args(); + $post_args = $args[0]; + } + + $posts = new \WP_Query($post_args); + + /** + * For returning all types of post as an array + * @return array; + */ + if (isset($post_args['post_style']) && $post_args['post_style'] == 'all_types') { + return $posts->posts; + } + + $return = array(); + $return['count'] = $posts->found_posts; + + ob_start(); + + while ($posts->have_posts()): $posts->the_post(); + include EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/content/' . @$post_args['post_style'] . '.php'; + endwhile; + + $return['content'] = ob_get_clean(); + + wp_reset_postdata(); + wp_reset_query(); + + if (isset($_POST['action']) && $_POST['action'] == 'load_more') { + wp_send_json($return['content']); + } else { + return $return; + } + } + +} diff --git a/package.json b/package.json index 5d5cd881f..98d4add85 100755 --- a/package.json +++ b/package.json @@ -1,28 +1,28 @@ { - "name": "essential-addons-for-elementor-lite", - "version": "1.0.0", - "description": "=== Essential Addons for Elementor === Contributors: Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, manik08cse Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form Requires at least: 4.0 Tested up to: 4.9.8 Requires PHP: 5.4 Stable tag: 2.8.3 License: GPLv3 License URI: https://opensource.org/licenses/GPL-3.0", - "main": "gulpfile.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/rupok/essential-addons-elementor-lite.git" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/rupok/essential-addons-elementor-lite/issues" - }, - "homepage": "https://github.com/rupok/essential-addons-elementor-lite#readme", - "devDependencies": { - "gulp-autoprefixer": "^6.0.0", - "gulp-clean-css": "^4.0.0", - "gulp-compass": "^2.1.0", - "gulp-notify": "^3.2.0" - }, - "dependencies": { - "gulp": "^3.9.1" - } + "name": "essential-addons-for-elementor-lite", + "version": "1.0.0", + "description": "=== Essential Addons for Elementor === Contributors: Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, manik08cse Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form Requires at least: 4.0 Tested up to: 4.9.8 Requires PHP: 5.4 Stable tag: 2.8.3 License: GPLv3 License URI: https://opensource.org/licenses/GPL-3.0", + "main": "gulpfile.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/rupok/essential-addons-elementor-lite.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/rupok/essential-addons-elementor-lite/issues" + }, + "homepage": "https://github.com/rupok/essential-addons-elementor-lite#readme", + "devDependencies": { + "gulp-autoprefixer": "^6.0.0", + "gulp-clean-css": "^4.0.0", + "gulp-compass": "^2.1.0", + "gulp-notify": "^3.2.0" + }, + "dependencies": { + "gulp": "^3.9.1" + } } diff --git a/readme.txt b/readme.txt index 771a7c89b..1d3d443f3 100755 --- a/readme.txt +++ b/readme.txt @@ -1,10 +1,10 @@ === Essential Addons for Elementor === -Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, mdsabuz, manik08cse +Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, priyomukul, mahfuz01, nazsabuz Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form Requires at least: 4.0 Tested up to: 5.1 Requires PHP: 5.4 -Stable tag: 2.9.9 +Stable tag: 2.10.1 License: GPLv3 License URI: https://opensource.org/licenses/GPL-3.0 @@ -68,7 +68,11 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu 26. [Advanced Tabs](https://essential-addons.com/elementor/advanced-tabs/) - Include tab to put information in different styles. Supports nested tabs. 27. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions. 28. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles -29. [Feature List](https://essential-addons.com/elementor/feature-list/) - Display feature lists with icon and images beautifully +29. [Feature List](https://essential-addons.com/elementor/feature-list/) - Display feature lists with custom icons and styles + +Extensions: + +1. [Particle Effect](https://essential-addons.com/elementor/particle-effect/) - Add creative particle effects to your section, your visitors will love it. ### More elements (29+) on [Premium Version](https://essential-addons.com/elementor/buy.php) @@ -103,6 +107,10 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu 28. [Advanced Menu](https://essential-addons.com/elementor/advanced-menu/) - Use advanced navigation menu anywhere. Choose design from different skins and customize. 29. [Image Scroller](https://essential-addons.com/elementor/image-scroller/) - Show your panaromic or long height images within image scroller widget. +Extensions: + +1. [Parallax Scrolling](https://essential-addons.com/elementor/parallax-scrolling/) - Add creative parallax scrolling effects to your section, your visitors will love it. + More coming soon (weekly update) ... @@ -160,12 +168,20 @@ Your existing elements/content will work with premium version. So you won't lose == Changelog == -= 2.9.9 - 07/03/2019 = - -- Added : Feature List element -- Particles extension removed += 2.10.1 - 31/03/2019 = +- Feature List element added +- Fixed few errors and conflicts +- Advanced Tabs responsiveness improved - Few minor bugfix and improvements += 2.10.0 - 27/03/2019 = + +- Refractored plugin structure for improved performance +- Only one minified JS and one CSS file (if required for the widget) will be used on the page where EA element is being used +- No extra asset will be loaded if you don't use EA on any page +- Massive performance improved minimizing the dependencies +- Lots minor bugfix and improvements + = 2.9.8 - 28/02/2019 = - Facebook Feed removed as it doesn't work with new API @@ -176,7 +192,7 @@ Your existing elements/content will work with premium version. So you won't lose - Particles extension revamped -= 2.9.6 - 17/02/2019 = += 2.9.6 - 17/02/2019= - Admin side performance improved - Few minor bugfix and improvements diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 000000000..4a98e3414 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 000000000..f27399a04 --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 000000000..7a91153b0 --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,9 @@ + array($vendorDir . '/matthiasmullie/path-converter/src'), + 'MatthiasMullie\\Minify\\' => array($vendorDir . '/matthiasmullie/minify/src'), + 'Essential_Addons_Elementor\\Traits\\' => array($baseDir . '/includes/traits'), + 'Essential_Addons_Elementor\\Elements\\' => array($baseDir . '/elements'), + 'Essential_Addons_Elementor\\Classes\\' => array($baseDir . '/includes/classes'), + 'Essential_Addons_Elementor\\Admin\\' => array($baseDir . '/admin'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 000000000..a1ea39616 --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,52 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInite6e2cbae70c835106a2f6367baecac5f::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 000000000..74384d986 --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,59 @@ + + array ( + 'MatthiasMullie\\PathConverter\\' => 29, + 'MatthiasMullie\\Minify\\' => 22, + ), + 'E' => + array ( + 'Essential_Addons_Elementor\\Traits\\' => 34, + 'Essential_Addons_Elementor\\Elements\\' => 36, + 'Essential_Addons_Elementor\\Classes\\' => 35, + 'Essential_Addons_Elementor\\Admin\\' => 33, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'MatthiasMullie\\PathConverter\\' => + array ( + 0 => __DIR__ . '/..' . '/matthiasmullie/path-converter/src', + ), + 'MatthiasMullie\\Minify\\' => + array ( + 0 => __DIR__ . '/..' . '/matthiasmullie/minify/src', + ), + 'Essential_Addons_Elementor\\Traits\\' => + array ( + 0 => __DIR__ . '/../..' . '/includes/traits', + ), + 'Essential_Addons_Elementor\\Elements\\' => + array ( + 0 => __DIR__ . '/../..' . '/elements', + ), + 'Essential_Addons_Elementor\\Classes\\' => + array ( + 0 => __DIR__ . '/../..' . '/includes/classes', + ), + 'Essential_Addons_Elementor\\Admin\\' => + array ( + 0 => __DIR__ . '/../..' . '/admin', + ), + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInite6e2cbae70c835106a2f6367baecac5f::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInite6e2cbae70c835106a2f6367baecac5f::$prefixDirsPsr4; + + }, null, ClassLoader::class); + } +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 000000000..546e68fcf --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,115 @@ +[ + { + "name": "matthiasmullie/minify", + "version": "1.3.61", + "version_normalized": "1.3.61.0", + "source": { + "type": "git", + "url": "https://github.com/matthiasmullie/minify.git", + "reference": "d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751", + "reference": "d5acb8ce5b6acb7d11bafe97cecc533f6e4fd751", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "matthiasmullie/path-converter": "~1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.0", + "matthiasmullie/scrapbook": "~1.0", + "phpunit/phpunit": "~4.8" + }, + "suggest": { + "psr/cache-implementation": "Cache implementation to use with Minify::cache" + }, + "time": "2018-11-26T23:10:39+00:00", + "bin": [ + "bin/minifycss", + "bin/minifyjs" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "MatthiasMullie\\Minify\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthias Mullie", + "email": "minify@mullie.eu", + "homepage": "http://www.mullie.eu", + "role": "Developer" + } + ], + "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", + "homepage": "http://www.minifier.org", + "keywords": [ + "JS", + "css", + "javascript", + "minifier", + "minify" + ] + }, + { + "name": "matthiasmullie/path-converter", + "version": "1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/matthiasmullie/path-converter.git", + "reference": "5e4b121c8b9f97c80835c1d878b0812ba1d607c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/5e4b121c8b9f97c80835c1d878b0812ba1d607c9", + "reference": "5e4b121c8b9f97c80835c1d878b0812ba1d607c9", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8" + }, + "time": "2018-10-25T15:19:41+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "MatthiasMullie\\PathConverter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthias Mullie", + "email": "pathconverter@mullie.eu", + "homepage": "http://www.mullie.eu", + "role": "Developer" + } + ], + "description": "Relative path converter", + "homepage": "http://github.com/matthiasmullie/path-converter", + "keywords": [ + "converter", + "path", + "paths", + "relative" + ] + } +] diff --git a/vendor/matthiasmullie/minify/CONTRIBUTING.md b/vendor/matthiasmullie/minify/CONTRIBUTING.md new file mode 100644 index 000000000..226cf976b --- /dev/null +++ b/vendor/matthiasmullie/minify/CONTRIBUTING.md @@ -0,0 +1,59 @@ +# How to contribute + + +## Issues + +When [filing bugs](https://github.com/matthiasmullie/minify/issues/new), +try to be as thorough as possible: +* What version did you use? +* What did you try to do? ***Please post the relevant parts of your code.*** +* What went wrong? ***Please include error messages, if any.*** +* What was the expected result? + + +## Pull requests + +Bug fixes and general improvements to the existing codebase are always welcome. +New features are also welcome, but will be judged on an individual basis. If +you'd rather not risk wasting your time implementing a new feature only to see +it turned down, please start the discussion by +[opening an issue](https://github.com/matthiasmullie/minify/issues/new). + +Don't forget to add your changes to the [changelog](CHANGELOG.md). + + +### Testing + +Please include tests for every change or addition to the code. +To run the complete test suite: + +```sh +vendor/bin/phpunit +``` + +When submitting a new pull request, please make sure that that the test suite +passes (Travis CI will run it & report back on your pull request.) + +To run the tests on Windows, run `tests/convert_symlinks_to_windows_style.sh` +from the command line in order to convert Linux-style test symlinks to +Windows-style. + + +### Coding standards + +All code must follow [PSR-2](http://www.php-fig.org/psr/psr-2/). Just make sure +to run php-cs-fixer before submitting the code, it'll take care of the +formatting for you: + +```sh +vendor/bin/php-cs-fixer fix src +vendor/bin/php-cs-fixer fix tests +``` + +Document the code thoroughly! + + +## License + +Note that minify is MIT-licensed, which basically allows anyone to do +anything they like with it, without restriction. diff --git a/vendor/matthiasmullie/minify/Dockerfile b/vendor/matthiasmullie/minify/Dockerfile new file mode 100644 index 000000000..d17f9d74e --- /dev/null +++ b/vendor/matthiasmullie/minify/Dockerfile @@ -0,0 +1,13 @@ +ARG version=cli +FROM php:$version + +COPY . /var/www +WORKDIR /var/www + +RUN apt-get update +RUN apt-get install -y zip unzip zlib1g-dev +RUN docker-php-ext-install zip +RUN docker-php-ext-install pcntl +RUN curl -sS https://getcomposer.org/installer | php +RUN mv composer.phar /usr/local/bin/composer +RUN composer install diff --git a/vendor/matthiasmullie/minify/LICENSE b/vendor/matthiasmullie/minify/LICENSE new file mode 100644 index 000000000..0c0d08a79 --- /dev/null +++ b/vendor/matthiasmullie/minify/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2012 Matthias Mullie + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/matthiasmullie/minify/bin/minifycss b/vendor/matthiasmullie/minify/bin/minifycss new file mode 100755 index 000000000..6a681a850 --- /dev/null +++ b/vendor/matthiasmullie/minify/bin/minifycss @@ -0,0 +1,45 @@ +#!/usr/bin/env php +minify(); +} catch (Exception $e) { + fwrite(STDERR, $e->getMessage(), PHP_EOL); + exit(1); +} diff --git a/vendor/matthiasmullie/minify/bin/minifyjs b/vendor/matthiasmullie/minify/bin/minifyjs new file mode 100755 index 000000000..4cbe63ff8 --- /dev/null +++ b/vendor/matthiasmullie/minify/bin/minifyjs @@ -0,0 +1,45 @@ +#!/usr/bin/env php +minify(); +} catch (Exception $e) { + fwrite(STDERR, $e->getMessage(), PHP_EOL); + exit(1); +} diff --git a/vendor/matthiasmullie/minify/composer.json b/vendor/matthiasmullie/minify/composer.json new file mode 100644 index 000000000..6d81b4f9d --- /dev/null +++ b/vendor/matthiasmullie/minify/composer.json @@ -0,0 +1,38 @@ +{ + "name": "matthiasmullie/minify", + "type": "library", + "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", + "keywords": ["minify", "minifier", "css", "js", "javascript"], + "homepage": "http://www.minifier.org", + "license": "MIT", + "authors": [ + { + "name": "Matthias Mullie", + "homepage": "http://www.mullie.eu", + "email": "minify@mullie.eu", + "role": "Developer" + } + ], + "require": { + "php": ">=5.3.0", + "ext-pcre": "*", + "matthiasmullie/path-converter": "~1.1" + }, + "require-dev": { + "matthiasmullie/scrapbook": "~1.0", + "phpunit/phpunit": "~4.8", + "friendsofphp/php-cs-fixer": "~2.0" + }, + "suggest": { + "psr/cache-implementation": "Cache implementation to use with Minify::cache" + }, + "autoload": { + "psr-4": { + "MatthiasMullie\\Minify\\": "src/" + } + }, + "bin": [ + "bin/minifycss", + "bin/minifyjs" + ] +} diff --git a/vendor/matthiasmullie/minify/data/js/keywords_after.txt b/vendor/matthiasmullie/minify/data/js/keywords_after.txt new file mode 100644 index 000000000..5c8cba7f3 --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/keywords_after.txt @@ -0,0 +1,7 @@ +in +public +extends +private +protected +implements +instanceof \ No newline at end of file diff --git a/vendor/matthiasmullie/minify/data/js/keywords_before.txt b/vendor/matthiasmullie/minify/data/js/keywords_before.txt new file mode 100644 index 000000000..5abf35799 --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/keywords_before.txt @@ -0,0 +1,26 @@ +do +in +let +new +var +case +else +enum +void +with +class +const +yield +delete +export +import +public +static +typeof +extends +package +private +function +protected +implements +instanceof \ No newline at end of file diff --git a/vendor/matthiasmullie/minify/data/js/keywords_reserved.txt b/vendor/matthiasmullie/minify/data/js/keywords_reserved.txt new file mode 100644 index 000000000..2a3ad3c0e --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/keywords_reserved.txt @@ -0,0 +1,63 @@ +do +if +in +for +let +new +try +var +case +else +enum +eval +null +this +true +void +with +break +catch +class +const +false +super +throw +while +yield +delete +export +import +public +return +static +switch +typeof +default +extends +finally +package +private +continue +debugger +function +arguments +interface +protected +implements +instanceof +abstract +boolean +byte +char +double +final +float +goto +int +long +native +short +synchronized +throws +transient +volatile \ No newline at end of file diff --git a/vendor/matthiasmullie/minify/data/js/operators.txt b/vendor/matthiasmullie/minify/data/js/operators.txt new file mode 100644 index 000000000..e66229ae1 --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/operators.txt @@ -0,0 +1,46 @@ ++ +- +* +/ +% += ++= +-= +*= +/= +%= +<<= +>>= +>>>= +&= +^= +|= +& +| +^ +~ +<< +>> +>>> +== +=== +!= +!== +> +< +>= +<= +&& +|| +! +. +[ +] +? +: +, +; +( +) +{ +} \ No newline at end of file diff --git a/vendor/matthiasmullie/minify/data/js/operators_after.txt b/vendor/matthiasmullie/minify/data/js/operators_after.txt new file mode 100644 index 000000000..71a9b7091 --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/operators_after.txt @@ -0,0 +1,43 @@ ++ +- +* +/ +% += ++= +-= +*= +/= +%= +<<= +>>= +>>>= +&= +^= +|= +& +| +^ +<< +>> +>>> +== +=== +!= +!== +> +< +>= +<= +&& +|| +. +[ +] +? +: +, +; +( +) +} \ No newline at end of file diff --git a/vendor/matthiasmullie/minify/data/js/operators_before.txt b/vendor/matthiasmullie/minify/data/js/operators_before.txt new file mode 100644 index 000000000..ff50d8703 --- /dev/null +++ b/vendor/matthiasmullie/minify/data/js/operators_before.txt @@ -0,0 +1,43 @@ ++ +- +* +/ +% += ++= +-= +*= +/= +%= +<<= +>>= +>>>= +&= +^= +|= +& +| +^ +~ +<< +>> +>>> +== +=== +!= +!== +> +< +>= +<= +&& +|| +! +. +[ +? +: +, +; +( +{ diff --git a/vendor/matthiasmullie/minify/docker-compose.yml b/vendor/matthiasmullie/minify/docker-compose.yml new file mode 100644 index 000000000..5413e24b0 --- /dev/null +++ b/vendor/matthiasmullie/minify/docker-compose.yml @@ -0,0 +1,31 @@ +version: '2.1' +services: + php: + build: + context: . + dockerfile: Dockerfile + volumes: + - ./src:/var/www/src + - ./data:/var/www/data + - ./tests:/var/www/tests + - ./phpunit.xml.dist:/var/www/phpunit.xml.dist + '7.2': + extends: php + build: + args: + version: 7.2-cli + '7.1': + extends: php + build: + args: + version: 7.1-cli + '7.0': + extends: php + build: + args: + version: 7.0-cli + '5.6': + extends: php + build: + args: + version: 5.6-cli diff --git a/vendor/matthiasmullie/minify/src/CSS.php b/vendor/matthiasmullie/minify/src/CSS.php new file mode 100644 index 000000000..e5a466907 --- /dev/null +++ b/vendor/matthiasmullie/minify/src/CSS.php @@ -0,0 +1,751 @@ + + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ + +namespace MatthiasMullie\Minify; + +use MatthiasMullie\Minify\Exceptions\FileImportException; +use MatthiasMullie\PathConverter\ConverterInterface; +use MatthiasMullie\PathConverter\Converter; + +/** + * CSS minifier + * + * Please report bugs on https://github.com/matthiasmullie/minify/issues + * + * @package Minify + * @author Matthias Mullie + * @author Tijs Verkoyen + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +class CSS extends Minify +{ + /** + * @var int maximum inport size in kB + */ + protected $maxImportSize = 5; + + /** + * @var string[] valid import extensions + */ + protected $importExtensions = array( + 'gif' => 'data:image/gif', + 'png' => 'data:image/png', + 'jpe' => 'data:image/jpeg', + 'jpg' => 'data:image/jpeg', + 'jpeg' => 'data:image/jpeg', + 'svg' => 'data:image/svg+xml', + 'woff' => 'data:application/x-font-woff', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'xbm' => 'image/x-xbitmap', + ); + + /** + * Set the maximum size if files to be imported. + * + * Files larger than this size (in kB) will not be imported into the CSS. + * Importing files into the CSS as data-uri will save you some connections, + * but we should only import relatively small decorative images so that our + * CSS file doesn't get too bulky. + * + * @param int $size Size in kB + */ + public function setMaxImportSize($size) + { + $this->maxImportSize = $size; + } + + /** + * Set the type of extensions to be imported into the CSS (to save network + * connections). + * Keys of the array should be the file extensions & respective values + * should be the data type. + * + * @param string[] $extensions Array of file extensions + */ + public function setImportExtensions(array $extensions) + { + $this->importExtensions = $extensions; + } + + /** + * Move any import statements to the top. + * + * @param string $content Nearly finished CSS content + * + * @return string + */ + protected function moveImportsToTop($content) + { + if (preg_match_all('/(;?)(@import (?url\()?(?P["\']?).+?(?P=quotes)(?(url)\)));?/', $content, $matches)) { + // remove from content + foreach ($matches[0] as $import) { + $content = str_replace($import, '', $content); + } + + // add to top + $content = implode(';', $matches[2]).';'.trim($content, ';'); + } + + return $content; + } + + /** + * Combine CSS from import statements. + * + * @import's will be loaded and their content merged into the original file, + * to save HTTP requests. + * + * @param string $source The file to combine imports for + * @param string $content The CSS content to combine imports for + * @param string[] $parents Parent paths, for circular reference checks + * + * @return string + * + * @throws FileImportException + */ + protected function combineImports($source, $content, $parents) + { + $importRegexes = array( + // @import url(xxx) + '/ + # import statement + @import + + # whitespace + \s+ + + # open url() + url\( + + # (optional) open path enclosure + (?P["\']?) + + # fetch path + (?P.+?) + + # (optional) close path enclosure + (?P=quotes) + + # close url() + \) + + # (optional) trailing whitespace + \s* + + # (optional) media statement(s) + (?P[^;]*) + + # (optional) trailing whitespace + \s* + + # (optional) closing semi-colon + ;? + + /ix', + + // @import 'xxx' + '/ + + # import statement + @import + + # whitespace + \s+ + + # open path enclosure + (?P["\']) + + # fetch path + (?P.+?) + + # close path enclosure + (?P=quotes) + + # (optional) trailing whitespace + \s* + + # (optional) media statement(s) + (?P[^;]*) + + # (optional) trailing whitespace + \s* + + # (optional) closing semi-colon + ;? + + /ix', + ); + + // find all relative imports in css + $matches = array(); + foreach ($importRegexes as $importRegex) { + if (preg_match_all($importRegex, $content, $regexMatches, PREG_SET_ORDER)) { + $matches = array_merge($matches, $regexMatches); + } + } + + $search = array(); + $replace = array(); + + // loop the matches + foreach ($matches as $match) { + // get the path for the file that will be imported + $importPath = dirname($source).'/'.$match['path']; + + // only replace the import with the content if we can grab the + // content of the file + if (!$this->canImportByPath($match['path']) || !$this->canImportFile($importPath)) { + continue; + } + + // check if current file was not imported previously in the same + // import chain. + if (in_array($importPath, $parents)) { + throw new FileImportException('Failed to import file "'.$importPath.'": circular reference detected.'); + } + + // grab referenced file & minify it (which may include importing + // yet other @import statements recursively) + $minifier = new static($importPath); + $minifier->setMaxImportSize($this->maxImportSize); + $minifier->setImportExtensions($this->importExtensions); + $importContent = $minifier->execute($source, $parents); + + // check if this is only valid for certain media + if (!empty($match['media'])) { + $importContent = '@media '.$match['media'].'{'.$importContent.'}'; + } + + // add to replacement array + $search[] = $match[0]; + $replace[] = $importContent; + } + + // replace the import statements + return str_replace($search, $replace, $content); + } + + /** + * Import files into the CSS, base64-ized. + * + * @url(image.jpg) images will be loaded and their content merged into the + * original file, to save HTTP requests. + * + * @param string $source The file to import files for + * @param string $content The CSS content to import files for + * + * @return string + */ + protected function importFiles($source, $content) + { + $regex = '/url\((["\']?)(.+?)\\1\)/i'; + if ($this->importExtensions && preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) { + $search = array(); + $replace = array(); + + // loop the matches + foreach ($matches as $match) { + $extension = substr(strrchr($match[2], '.'), 1); + if ($extension && !array_key_exists($extension, $this->importExtensions)) { + continue; + } + + // get the path for the file that will be imported + $path = $match[2]; + $path = dirname($source).'/'.$path; + + // only replace the import with the content if we're able to get + // the content of the file, and it's relatively small + if ($this->canImportFile($path) && $this->canImportBySize($path)) { + // grab content && base64-ize + $importContent = $this->load($path); + $importContent = base64_encode($importContent); + + // build replacement + $search[] = $match[0]; + $replace[] = 'url('.$this->importExtensions[$extension].';base64,'.$importContent.')'; + } + } + + // replace the import statements + $content = str_replace($search, $replace, $content); + } + + return $content; + } + + /** + * Minify the data. + * Perform CSS optimizations. + * + * @param string[optional] $path Path to write the data to + * @param string[] $parents Parent paths, for circular reference checks + * + * @return string The minified data + */ + public function execute($path = null, $parents = array()) + { + $content = ''; + + // loop CSS data (raw data and files) + foreach ($this->data as $source => $css) { + /* + * Let's first take out strings & comments, since we can't just + * remove whitespace anywhere. If whitespace occurs inside a string, + * we should leave it alone. E.g.: + * p { content: "a test" } + */ + $this->extractStrings(); + $this->stripComments(); + $this->extractCalcs(); + $css = $this->replace($css); + + $css = $this->stripWhitespace($css); + $css = $this->shortenColors($css); + $css = $this->shortenZeroes($css); + $css = $this->shortenFontWeights($css); + $css = $this->stripEmptyTags($css); + + // restore the string we've extracted earlier + $css = $this->restoreExtractedData($css); + + $source = is_int($source) ? '' : $source; + $parents = $source ? array_merge($parents, array($source)) : $parents; + $css = $this->combineImports($source, $css, $parents); + $css = $this->importFiles($source, $css); + + /* + * If we'll save to a new path, we'll have to fix the relative paths + * to be relative no longer to the source file, but to the new path. + * If we don't write to a file, fall back to same path so no + * conversion happens (because we still want it to go through most + * of the move code, which also addresses url() & @import syntax...) + */ + $converter = $this->getPathConverter($source, $path ?: $source); + $css = $this->move($converter, $css); + + // combine css + $content .= $css; + } + + $content = $this->moveImportsToTop($content); + + return $content; + } + + /** + * Moving a css file should update all relative urls. + * Relative references (e.g. ../images/image.gif) in a certain css file, + * will have to be updated when a file is being saved at another location + * (e.g. ../../images/image.gif, if the new CSS file is 1 folder deeper). + * + * @param ConverterInterface $converter Relative path converter + * @param string $content The CSS content to update relative urls for + * + * @return string + */ + protected function move(ConverterInterface $converter, $content) + { + /* + * Relative path references will usually be enclosed by url(). @import + * is an exception, where url() is not necessary around the path (but is + * allowed). + * This *could* be 1 regular expression, where both regular expressions + * in this array are on different sides of a |. But we're using named + * patterns in both regexes, the same name on both regexes. This is only + * possible with a (?J) modifier, but that only works after a fairly + * recent PCRE version. That's why I'm doing 2 separate regular + * expressions & combining the matches after executing of both. + */ + $relativeRegexes = array( + // url(xxx) + '/ + # open url() + url\( + + \s* + + # open path enclosure + (?P["\'])? + + # fetch path + (?P.+?) + + # close path enclosure + (?(quotes)(?P=quotes)) + + \s* + + # close url() + \) + + /ix', + + // @import "xxx" + '/ + # import statement + @import + + # whitespace + \s+ + + # we don\'t have to check for @import url(), because the + # condition above will already catch these + + # open path enclosure + (?P["\']) + + # fetch path + (?P.+?) + + # close path enclosure + (?P=quotes) + + /ix', + ); + + // find all relative urls in css + $matches = array(); + foreach ($relativeRegexes as $relativeRegex) { + if (preg_match_all($relativeRegex, $content, $regexMatches, PREG_SET_ORDER)) { + $matches = array_merge($matches, $regexMatches); + } + } + + $search = array(); + $replace = array(); + + // loop all urls + foreach ($matches as $match) { + // determine if it's a url() or an @import match + $type = (strpos($match[0], '@import') === 0 ? 'import' : 'url'); + + $url = $match['path']; + if ($this->canImportByPath($url)) { + // attempting to interpret GET-params makes no sense, so let's discard them for awhile + $params = strrchr($url, '?'); + $url = $params ? substr($url, 0, -strlen($params)) : $url; + + // fix relative url + $url = $converter->convert($url); + + // now that the path has been converted, re-apply GET-params + $url .= $params; + } + + /* + * Urls with control characters above 0x7e should be quoted. + * According to Mozilla's parser, whitespace is only allowed at the + * end of unquoted urls. + * Urls with `)` (as could happen with data: uris) should also be + * quoted to avoid being confused for the url() closing parentheses. + * And urls with a # have also been reported to cause issues. + * Urls with quotes inside should also remain escaped. + * + * @see https://developer.mozilla.org/nl/docs/Web/CSS/url#The_url()_functional_notation + * @see https://hg.mozilla.org/mozilla-central/rev/14abca4e7378 + * @see https://github.com/matthiasmullie/minify/issues/193 + */ + $url = trim($url); + if (preg_match('/[\s\)\'"#\x{7f}-\x{9f}]/u', $url)) { + $url = $match['quotes'] . $url . $match['quotes']; + } + + // build replacement + $search[] = $match[0]; + if ($type === 'url') { + $replace[] = 'url('.$url.')'; + } elseif ($type === 'import') { + $replace[] = '@import "'.$url.'"'; + } + } + + // replace urls + return str_replace($search, $replace, $content); + } + + /** + * Shorthand hex color codes. + * #FF0000 -> #F00. + * + * @param string $content The CSS content to shorten the hex color codes for + * + * @return string + */ + protected function shortenColors($content) + { + $content = preg_replace('/(?<=[: ])#([0-9a-z])\\1([0-9a-z])\\2([0-9a-z])\\3(?:([0-9a-z])\\4)?(?=[; }])/i', '#$1$2$3$4', $content); + + // remove alpha channel if it's pointless... + $content = preg_replace('/(?<=[: ])#([0-9a-z]{6})ff?(?=[; }])/i', '#$1', $content); + $content = preg_replace('/(?<=[: ])#([0-9a-z]{3})f?(?=[; }])/i', '#$1', $content); + + $colors = array( + // we can shorten some even more by replacing them with their color name + '#F0FFFF' => 'azure', + '#F5F5DC' => 'beige', + '#A52A2A' => 'brown', + '#FF7F50' => 'coral', + '#FFD700' => 'gold', + '#808080' => 'gray', + '#008000' => 'green', + '#4B0082' => 'indigo', + '#FFFFF0' => 'ivory', + '#F0E68C' => 'khaki', + '#FAF0E6' => 'linen', + '#800000' => 'maroon', + '#000080' => 'navy', + '#808000' => 'olive', + '#CD853F' => 'peru', + '#FFC0CB' => 'pink', + '#DDA0DD' => 'plum', + '#800080' => 'purple', + '#F00' => 'red', + '#FA8072' => 'salmon', + '#A0522D' => 'sienna', + '#C0C0C0' => 'silver', + '#FFFAFA' => 'snow', + '#D2B48C' => 'tan', + '#FF6347' => 'tomato', + '#EE82EE' => 'violet', + '#F5DEB3' => 'wheat', + // or the other way around + 'WHITE' => '#fff', + 'BLACK' => '#000', + ); + + return preg_replace_callback( + '/(?<=[: ])('.implode(array_keys($colors), '|').')(?=[; }])/i', + function ($match) use ($colors) { + return $colors[strtoupper($match[0])]; + }, + $content + ); + } + + /** + * Shorten CSS font weights. + * + * @param string $content The CSS content to shorten the font weights for + * + * @return string + */ + protected function shortenFontWeights($content) + { + $weights = array( + 'normal' => 400, + 'bold' => 700, + ); + + $callback = function ($match) use ($weights) { + return $match[1].$weights[$match[2]]; + }; + + return preg_replace_callback('/(font-weight\s*:\s*)('.implode('|', array_keys($weights)).')(?=[;}])/', $callback, $content); + } + + /** + * Shorthand 0 values to plain 0, instead of e.g. -0em. + * + * @param string $content The CSS content to shorten the zero values for + * + * @return string + */ + protected function shortenZeroes($content) + { + // we don't want to strip units in `calc()` expressions: + // `5px - 0px` is valid, but `5px - 0` is not + // `10px * 0` is valid (equates to 0), and so is `10 * 0px`, but + // `10 * 0` is invalid + // we've extracted calcs earlier, so we don't need to worry about this + + // reusable bits of code throughout these regexes: + // before & after are used to make sure we don't match lose unintended + // 0-like values (e.g. in #000, or in http://url/1.0) + // units can be stripped from 0 values, or used to recognize non 0 + // values (where wa may be able to strip a .0 suffix) + $before = '(?<=[:(, ])'; + $after = '(?=[ ,);}])'; + $units = '(em|ex|%|px|cm|mm|in|pt|pc|ch|rem|vh|vw|vmin|vmax|vm)'; + + // strip units after zeroes (0px -> 0) + // NOTE: it should be safe to remove all units for a 0 value, but in + // practice, Webkit (especially Safari) seems to stumble over at least + // 0%, potentially other units as well. Only stripping 'px' for now. + // @see https://github.com/matthiasmullie/minify/issues/60 + $content = preg_replace('/'.$before.'(-?0*(\.0+)?)(?<=0)px'.$after.'/', '\\1', $content); + + // strip 0-digits (.0 -> 0) + $content = preg_replace('/'.$before.'\.0+'.$units.'?'.$after.'/', '0\\1', $content); + // strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px + $content = preg_replace('/'.$before.'(-?[0-9]+\.[0-9]+)0+'.$units.'?'.$after.'/', '\\1\\2', $content); + // strip trailing 0: 50.00 -> 50, 50.00px -> 50px + $content = preg_replace('/'.$before.'(-?[0-9]+)\.0+'.$units.'?'.$after.'/', '\\1\\2', $content); + // strip leading 0: 0.1 -> .1, 01.1 -> 1.1 + $content = preg_replace('/'.$before.'(-?)0+([0-9]*\.[0-9]+)'.$units.'?'.$after.'/', '\\1\\2\\3', $content); + + // strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0) + $content = preg_replace('/'.$before.'-?0+'.$units.'?'.$after.'/', '0\\1', $content); + + // IE doesn't seem to understand a unitless flex-basis value (correct - + // it goes against the spec), so let's add it in again (make it `%`, + // which is only 1 char: 0%, 0px, 0 anything, it's all just the same) + // @see https://developer.mozilla.org/nl/docs/Web/CSS/flex + $content = preg_replace('/flex:([0-9]+\s[0-9]+\s)0([;\}])/', 'flex:${1}0%${2}', $content); + $content = preg_replace('/flex-basis:0([;\}])/', 'flex-basis:0%${1}', $content); + + return $content; + } + + /** + * Strip empty tags from source code. + * + * @param string $content + * + * @return string + */ + protected function stripEmptyTags($content) + { + $content = preg_replace('/(?<=^)[^\{\};]+\{\s*\}/', '', $content); + $content = preg_replace('/(?<=(\}|;))[^\{\};]+\{\s*\}/', '', $content); + + return $content; + } + + /** + * Strip comments from source code. + */ + protected function stripComments() + { + // PHP only supports $this inside anonymous functions since 5.4 + $minifier = $this; + $callback = function ($match) use ($minifier) { + $count = count($minifier->extracted); + $placeholder = '/*'.$count.'*/'; + $minifier->extracted[$placeholder] = $match[0]; + + return $placeholder; + }; + $this->registerPattern('/\n?\/\*(!|.*?@license|.*?@preserve).*?\*\/\n?/s', $callback); + + $this->registerPattern('/\/\*.*?\*\//s', ''); + } + + /** + * Strip whitespace. + * + * @param string $content The CSS content to strip the whitespace for + * + * @return string + */ + protected function stripWhitespace($content) + { + // remove leading & trailing whitespace + $content = preg_replace('/^\s*/m', '', $content); + $content = preg_replace('/\s*$/m', '', $content); + + // replace newlines with a single space + $content = preg_replace('/\s+/', ' ', $content); + + // remove whitespace around meta characters + // inspired by stackoverflow.com/questions/15195750/minify-compress-css-with-regex + $content = preg_replace('/\s*([\*$~^|]?+=|[{};,>~]|!important\b)\s*/', '$1', $content); + $content = preg_replace('/([\[(:>\+])\s+/', '$1', $content); + $content = preg_replace('/\s+([\]\)>\+])/', '$1', $content); + $content = preg_replace('/\s+(:)(?![^\}]*\{)/', '$1', $content); + + // whitespace around + and - can only be stripped inside some pseudo- + // classes, like `:nth-child(3+2n)` + // not in things like `calc(3px + 2px)`, shorthands like `3px -2px`, or + // selectors like `div.weird- p` + $pseudos = array('nth-child', 'nth-last-child', 'nth-last-of-type', 'nth-of-type'); + $content = preg_replace('/:('.implode('|', $pseudos).')\(\s*([+-]?)\s*(.+?)\s*([+-]?)\s*(.*?)\s*\)/', ':$1($2$3$4$5)', $content); + + // remove semicolon/whitespace followed by closing bracket + $content = str_replace(';}', '}', $content); + + return trim($content); + } + + /** + * Replace all `calc()` occurrences. + */ + protected function extractCalcs() + { + // PHP only supports $this inside anonymous functions since 5.4 + $minifier = $this; + $callback = function ($match) use ($minifier) { + $length = strlen($match[1]); + $expr = ''; + $opened = 0; + + for ($i = 0; $i < $length; $i++) { + $char = $match[1][$i]; + $expr .= $char; + if ($char === '(') { + $opened++; + } elseif ($char === ')' && --$opened === 0) { + break; + } + } + $rest = str_replace($expr, '', $match[1]); + $expr = trim(substr($expr, 1, -1)); + + $count = count($minifier->extracted); + $placeholder = 'calc('.$count.')'; + $minifier->extracted[$placeholder] = 'calc('.$expr.')'; + + return $placeholder.$rest; + }; + + $this->registerPattern('/calc(\(.+?)(?=$|;|calc\()/', $callback); + } + + /** + * Check if file is small enough to be imported. + * + * @param string $path The path to the file + * + * @return bool + */ + protected function canImportBySize($path) + { + return ($size = @filesize($path)) && $size <= $this->maxImportSize * 1024; + } + + /** + * Check if file a file can be imported, going by the path. + * + * @param string $path + * + * @return bool + */ + protected function canImportByPath($path) + { + return preg_match('/^(data:|https?:|\\/)/', $path) === 0; + } + + /** + * Return a converter to update relative paths to be relative to the new + * destination. + * + * @param string $source + * @param string $target + * + * @return ConverterInterface + */ + protected function getPathConverter($source, $target) + { + return new Converter($source, $target); + } +} diff --git a/vendor/matthiasmullie/minify/src/Exception.php b/vendor/matthiasmullie/minify/src/Exception.php new file mode 100644 index 000000000..d03898f04 --- /dev/null +++ b/vendor/matthiasmullie/minify/src/Exception.php @@ -0,0 +1,20 @@ + + */ +namespace MatthiasMullie\Minify; + +/** + * Base Exception Class + * @deprecated Use Exceptions\BasicException instead + * + * @package Minify + * @author Matthias Mullie + */ +abstract class Exception extends \Exception +{ +} diff --git a/vendor/matthiasmullie/minify/src/Exceptions/BasicException.php b/vendor/matthiasmullie/minify/src/Exceptions/BasicException.php new file mode 100644 index 000000000..af5e81bc0 --- /dev/null +++ b/vendor/matthiasmullie/minify/src/Exceptions/BasicException.php @@ -0,0 +1,23 @@ + + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +namespace MatthiasMullie\Minify\Exceptions; + +use MatthiasMullie\Minify\Exception; + +/** + * Basic Exception Class + * + * @package Minify\Exception + * @author Matthias Mullie + */ +abstract class BasicException extends Exception +{ +} diff --git a/vendor/matthiasmullie/minify/src/Exceptions/FileImportException.php b/vendor/matthiasmullie/minify/src/Exceptions/FileImportException.php new file mode 100644 index 000000000..912a2c908 --- /dev/null +++ b/vendor/matthiasmullie/minify/src/Exceptions/FileImportException.php @@ -0,0 +1,21 @@ + + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +namespace MatthiasMullie\Minify\Exceptions; + +/** + * File Import Exception Class + * + * @package Minify\Exception + * @author Matthias Mullie + */ +class FileImportException extends BasicException +{ +} diff --git a/vendor/matthiasmullie/minify/src/Exceptions/IOException.php b/vendor/matthiasmullie/minify/src/Exceptions/IOException.php new file mode 100644 index 000000000..b172eb48f --- /dev/null +++ b/vendor/matthiasmullie/minify/src/Exceptions/IOException.php @@ -0,0 +1,21 @@ + + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +namespace MatthiasMullie\Minify\Exceptions; + +/** + * IO Exception Class + * + * @package Minify\Exception + * @author Matthias Mullie + */ +class IOException extends BasicException +{ +} diff --git a/vendor/matthiasmullie/minify/src/JS.php b/vendor/matthiasmullie/minify/src/JS.php new file mode 100644 index 000000000..92389cdd5 --- /dev/null +++ b/vendor/matthiasmullie/minify/src/JS.php @@ -0,0 +1,612 @@ + + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +namespace MatthiasMullie\Minify; + +/** + * JavaScript Minifier Class + * + * Please report bugs on https://github.com/matthiasmullie/minify/issues + * + * @package Minify + * @author Matthias Mullie + * @author Tijs Verkoyen + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +class JS extends Minify +{ + /** + * Var-matching regex based on http://stackoverflow.com/a/9337047/802993. + * + * Note that regular expressions using that bit must have the PCRE_UTF8 + * pattern modifier (/u) set. + * + * @var string + */ + const REGEX_VARIABLE = '\b[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}0-9\x{0300}-\x{036f}\x{0483}-\x{0487}\x{0591}-\x{05bd}\x{05bf}\x{05c1}\x{05c2}\x{05c4}\x{05c5}\x{05c7}\x{0610}-\x{061a}\x{064b}-\x{0669}\x{0670}\x{06d6}-\x{06dc}\x{06df}-\x{06e4}\x{06e7}\x{06e8}\x{06ea}-\x{06ed}\x{06f0}-\x{06f9}\x{0711}\x{0730}-\x{074a}\x{07a6}-\x{07b0}\x{07c0}-\x{07c9}\x{07eb}-\x{07f3}\x{0816}-\x{0819}\x{081b}-\x{0823}\x{0825}-\x{0827}\x{0829}-\x{082d}\x{0859}-\x{085b}\x{08e4}-\x{08fe}\x{0900}-\x{0903}\x{093a}-\x{093c}\x{093e}-\x{094f}\x{0951}-\x{0957}\x{0962}\x{0963}\x{0966}-\x{096f}\x{0981}-\x{0983}\x{09bc}\x{09be}-\x{09c4}\x{09c7}\x{09c8}\x{09cb}-\x{09cd}\x{09d7}\x{09e2}\x{09e3}\x{09e6}-\x{09ef}\x{0a01}-\x{0a03}\x{0a3c}\x{0a3e}-\x{0a42}\x{0a47}\x{0a48}\x{0a4b}-\x{0a4d}\x{0a51}\x{0a66}-\x{0a71}\x{0a75}\x{0a81}-\x{0a83}\x{0abc}\x{0abe}-\x{0ac5}\x{0ac7}-\x{0ac9}\x{0acb}-\x{0acd}\x{0ae2}\x{0ae3}\x{0ae6}-\x{0aef}\x{0b01}-\x{0b03}\x{0b3c}\x{0b3e}-\x{0b44}\x{0b47}\x{0b48}\x{0b4b}-\x{0b4d}\x{0b56}\x{0b57}\x{0b62}\x{0b63}\x{0b66}-\x{0b6f}\x{0b82}\x{0bbe}-\x{0bc2}\x{0bc6}-\x{0bc8}\x{0bca}-\x{0bcd}\x{0bd7}\x{0be6}-\x{0bef}\x{0c01}-\x{0c03}\x{0c3e}-\x{0c44}\x{0c46}-\x{0c48}\x{0c4a}-\x{0c4d}\x{0c55}\x{0c56}\x{0c62}\x{0c63}\x{0c66}-\x{0c6f}\x{0c82}\x{0c83}\x{0cbc}\x{0cbe}-\x{0cc4}\x{0cc6}-\x{0cc8}\x{0cca}-\x{0ccd}\x{0cd5}\x{0cd6}\x{0ce2}\x{0ce3}\x{0ce6}-\x{0cef}\x{0d02}\x{0d03}\x{0d3e}-\x{0d44}\x{0d46}-\x{0d48}\x{0d4a}-\x{0d4d}\x{0d57}\x{0d62}\x{0d63}\x{0d66}-\x{0d6f}\x{0d82}\x{0d83}\x{0dca}\x{0dcf}-\x{0dd4}\x{0dd6}\x{0dd8}-\x{0ddf}\x{0df2}\x{0df3}\x{0e31}\x{0e34}-\x{0e3a}\x{0e47}-\x{0e4e}\x{0e50}-\x{0e59}\x{0eb1}\x{0eb4}-\x{0eb9}\x{0ebb}\x{0ebc}\x{0ec8}-\x{0ecd}\x{0ed0}-\x{0ed9}\x{0f18}\x{0f19}\x{0f20}-\x{0f29}\x{0f35}\x{0f37}\x{0f39}\x{0f3e}\x{0f3f}\x{0f71}-\x{0f84}\x{0f86}\x{0f87}\x{0f8d}-\x{0f97}\x{0f99}-\x{0fbc}\x{0fc6}\x{102b}-\x{103e}\x{1040}-\x{1049}\x{1056}-\x{1059}\x{105e}-\x{1060}\x{1062}-\x{1064}\x{1067}-\x{106d}\x{1071}-\x{1074}\x{1082}-\x{108d}\x{108f}-\x{109d}\x{135d}-\x{135f}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}\x{1753}\x{1772}\x{1773}\x{17b4}-\x{17d3}\x{17dd}\x{17e0}-\x{17e9}\x{180b}-\x{180d}\x{1810}-\x{1819}\x{18a9}\x{1920}-\x{192b}\x{1930}-\x{193b}\x{1946}-\x{194f}\x{19b0}-\x{19c0}\x{19c8}\x{19c9}\x{19d0}-\x{19d9}\x{1a17}-\x{1a1b}\x{1a55}-\x{1a5e}\x{1a60}-\x{1a7c}\x{1a7f}-\x{1a89}\x{1a90}-\x{1a99}\x{1b00}-\x{1b04}\x{1b34}-\x{1b44}\x{1b50}-\x{1b59}\x{1b6b}-\x{1b73}\x{1b80}-\x{1b82}\x{1ba1}-\x{1bad}\x{1bb0}-\x{1bb9}\x{1be6}-\x{1bf3}\x{1c24}-\x{1c37}\x{1c40}-\x{1c49}\x{1c50}-\x{1c59}\x{1cd0}-\x{1cd2}\x{1cd4}-\x{1ce8}\x{1ced}\x{1cf2}-\x{1cf4}\x{1dc0}-\x{1de6}\x{1dfc}-\x{1dff}\x{200c}\x{200d}\x{203f}\x{2040}\x{2054}\x{20d0}-\x{20dc}\x{20e1}\x{20e5}-\x{20f0}\x{2cef}-\x{2cf1}\x{2d7f}\x{2de0}-\x{2dff}\x{302a}-\x{302f}\x{3099}\x{309a}\x{a620}-\x{a629}\x{a66f}\x{a674}-\x{a67d}\x{a69f}\x{a6f0}\x{a6f1}\x{a802}\x{a806}\x{a80b}\x{a823}-\x{a827}\x{a880}\x{a881}\x{a8b4}-\x{a8c4}\x{a8d0}-\x{a8d9}\x{a8e0}-\x{a8f1}\x{a900}-\x{a909}\x{a926}-\x{a92d}\x{a947}-\x{a953}\x{a980}-\x{a983}\x{a9b3}-\x{a9c0}\x{a9d0}-\x{a9d9}\x{aa29}-\x{aa36}\x{aa43}\x{aa4c}\x{aa4d}\x{aa50}-\x{aa59}\x{aa7b}\x{aab0}\x{aab2}-\x{aab4}\x{aab7}\x{aab8}\x{aabe}\x{aabf}\x{aac1}\x{aaeb}-\x{aaef}\x{aaf5}\x{aaf6}\x{abe3}-\x{abea}\x{abec}\x{abed}\x{abf0}-\x{abf9}\x{fb1e}\x{fe00}-\x{fe0f}\x{fe20}-\x{fe26}\x{fe33}\x{fe34}\x{fe4d}-\x{fe4f}\x{ff10}-\x{ff19}\x{ff3f}]*\b'; + + /** + * Full list of JavaScript reserved words. + * Will be loaded from /data/js/keywords_reserved.txt. + * + * @see https://mathiasbynens.be/notes/reserved-keywords + * + * @var string[] + */ + protected $keywordsReserved = array(); + + /** + * List of JavaScript reserved words that accept a + * after them. Some end of lines are not the end of a statement, like with + * these keywords. + * + * E.g.: we shouldn't insert a ; after this else + * else + * console.log('this is quite fine') + * + * Will be loaded from /data/js/keywords_before.txt + * + * @var string[] + */ + protected $keywordsBefore = array(); + + /** + * List of JavaScript reserved words that accept a + * before them. Some end of lines are not the end of a statement, like when + * continued by one of these keywords on the newline. + * + * E.g.: we shouldn't insert a ; before this instanceof + * variable + * instanceof String + * + * Will be loaded from /data/js/keywords_after.txt + * + * @var string[] + */ + protected $keywordsAfter = array(); + + /** + * List of all JavaScript operators. + * + * Will be loaded from /data/js/operators.txt + * + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators + * + * @var string[] + */ + protected $operators = array(); + + /** + * List of JavaScript operators that accept a after + * them. Some end of lines are not the end of a statement, like with these + * operators. + * + * Note: Most operators are fine, we've only removed ++ and --. + * ++ & -- have to be joined with the value they're in-/decrementing. + * + * Will be loaded from /data/js/operators_before.txt + * + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators + * + * @var string[] + */ + protected $operatorsBefore = array(); + + /** + * List of JavaScript operators that accept a before + * them. Some end of lines are not the end of a statement, like when + * continued by one of these operators on the newline. + * + * Note: Most operators are fine, we've only removed ), ], ++, --, ! and ~. + * There can't be a newline separating ! or ~ and whatever it is negating. + * ++ & -- have to be joined with the value they're in-/decrementing. + * ) & ] are "special" in that they have lots or usecases. () for example + * is used for function calls, for grouping, in if () and for (), ... + * + * Will be loaded from /data/js/operators_after.txt + * + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators + * + * @var string[] + */ + protected $operatorsAfter = array(); + + /** + * {@inheritdoc} + */ + public function __construct() + { + call_user_func_array(array('parent', '__construct'), func_get_args()); + + $dataDir = __DIR__.'/../data/js/'; + $options = FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES; + $this->keywordsReserved = file($dataDir.'keywords_reserved.txt', $options); + $this->keywordsBefore = file($dataDir.'keywords_before.txt', $options); + $this->keywordsAfter = file($dataDir.'keywords_after.txt', $options); + $this->operators = file($dataDir.'operators.txt', $options); + $this->operatorsBefore = file($dataDir.'operators_before.txt', $options); + $this->operatorsAfter = file($dataDir.'operators_after.txt', $options); + } + + /** + * Minify the data. + * Perform JS optimizations. + * + * @param string[optional] $path Path to write the data to + * + * @return string The minified data + */ + public function execute($path = null) + { + $content = ''; + + /* + * Let's first take out strings, comments and regular expressions. + * All of these can contain JS code-like characters, and we should make + * sure any further magic ignores anything inside of these. + * + * Consider this example, where we should not strip any whitespace: + * var str = "a test"; + * + * Comments will be removed altogether, strings and regular expressions + * will be replaced by placeholder text, which we'll restore later. + */ + $this->extractStrings('\'"`'); + $this->stripComments(); + $this->extractRegex(); + + // loop files + foreach ($this->data as $source => $js) { + // take out strings, comments & regex (for which we've registered + // the regexes just a few lines earlier) + $js = $this->replace($js); + + $js = $this->propertyNotation($js); + $js = $this->shortenBools($js); + $js = $this->stripWhitespace($js); + + // combine js: separating the scripts by a ; + $content .= $js.";"; + } + + // clean up leftover `;`s from the combination of multiple scripts + $content = ltrim($content, ';'); + $content = (string) substr($content, 0, -1); + + /* + * Earlier, we extracted strings & regular expressions and replaced them + * with placeholder text. This will restore them. + */ + $content = $this->restoreExtractedData($content); + + return $content; + } + + /** + * Strip comments from source code. + */ + protected function stripComments() + { + // PHP only supports $this inside anonymous functions since 5.4 + $minifier = $this; + $callback = function ($match) use ($minifier) { + $count = count($minifier->extracted); + $placeholder = '/*'.$count.'*/'; + $minifier->extracted[$placeholder] = $match[0]; + + return $placeholder; + }; + // multi-line comments + $this->registerPattern('/\n?\/\*(!|.*?@license|.*?@preserve).*?\*\/\n?/s', $callback); + $this->registerPattern('/\/\*.*?\*\//s', ''); + + // single-line comments + $this->registerPattern('/\/\/.*$/m', ''); + } + + /** + * JS can have /-delimited regular expressions, like: /ab+c/.match(string). + * + * The content inside the regex can contain characters that may be confused + * for JS code: e.g. it could contain whitespace it needs to match & we + * don't want to strip whitespace in there. + * + * The regex can be pretty simple: we don't have to care about comments, + * (which also use slashes) because stripComments() will have stripped those + * already. + * + * This method will replace all string content with simple REGEX# + * placeholder text, so we've rid all regular expressions from characters + * that may be misinterpreted. Original regex content will be saved in + * $this->extracted and after doing all other minifying, we can restore the + * original content via restoreRegex() + */ + protected function extractRegex() + { + // PHP only supports $this inside anonymous functions since 5.4 + $minifier = $this; + $callback = function ($match) use ($minifier) { + $count = count($minifier->extracted); + $placeholder = '"'.$count.'"'; + $minifier->extracted[$placeholder] = $match[0]; + + return $placeholder; + }; + + // match all chars except `/` and `\` + // `\` is allowed though, along with whatever char follows (which is the + // one being escaped) + // this should allow all chars, except for an unescaped `/` (= the one + // closing the regex) + // then also ignore bare `/` inside `[]`, where they don't need to be + // escaped: anything inside `[]` can be ignored safely + $pattern = '\\/(?!\*)(?:[^\\[\\/\\\\\n\r]++|(?:\\\\.)++|(?:\\[(?:[^\\]\\\\\n\r]++|(?:\\\\.)++)++\\])++)++\\/[gimuy]*'; + + // a regular expression can only be followed by a few operators or some + // of the RegExp methods (a `\` followed by a variable or value is + // likely part of a division, not a regex) + $keywords = array('do', 'in', 'new', 'else', 'throw', 'yield', 'delete', 'return', 'typeof'); + $before = '([=:,;\+\-\*\/\}\(\{\[&\|!]|^|'.implode('|', $keywords).')\s*'; + $propertiesAndMethods = array( + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Properties_2 + 'constructor', + 'flags', + 'global', + 'ignoreCase', + 'multiline', + 'source', + 'sticky', + 'unicode', + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Methods_2 + 'compile(', + 'exec(', + 'test(', + 'toSource(', + 'toString(', + ); + $delimiters = array_fill(0, count($propertiesAndMethods), '/'); + $propertiesAndMethods = array_map('preg_quote', $propertiesAndMethods, $delimiters); + $after = '(?=\s*([\.,;\)\}&\|+]|\/\/|$|\.('.implode('|', $propertiesAndMethods).')))'; + $this->registerPattern('/'.$before.'\K'.$pattern.$after.'/', $callback); + + // regular expressions following a `)` are rather annoying to detect... + // quite often, `/` after `)` is a division operator & if it happens to + // be followed by another one (or a comment), it is likely to be + // confused for a regular expression + // however, it's perfectly possible for a regex to follow a `)`: after + // a single-line `if()`, `while()`, ... statement, for example + // since, when they occur like that, they're always the start of a + // statement, there's only a limited amount of ways they can be useful: + // by calling the regex methods directly + // if a regex following `)` is not followed by `.`, + // it's quite likely not a regex + $before = '\)\s*'; + $after = '(?=\s*\.('.implode('|', $propertiesAndMethods).'))'; + $this->registerPattern('/'.$before.'\K'.$pattern.$after.'/', $callback); + + // 1 more edge case: a regex can be followed by a lot more operators or + // keywords if there's a newline (ASI) in between, where the operator + // actually starts a new statement + // (https://github.com/matthiasmullie/minify/issues/56) + $operators = $this->getOperatorsForRegex($this->operatorsBefore, '/'); + $operators += $this->getOperatorsForRegex($this->keywordsReserved, '/'); + $after = '(?=\s*\n\s*('.implode('|', $operators).'))'; + $this->registerPattern('/'.$pattern.$after.'/', $callback); + } + + /** + * Strip whitespace. + * + * We won't strip *all* whitespace, but as much as possible. The thing that + * we'll preserve are newlines we're unsure about. + * JavaScript doesn't require statements to be terminated with a semicolon. + * It will automatically fix missing semicolons with ASI (automatic semi- + * colon insertion) at the end of line causing errors (without semicolon.) + * + * Because it's sometimes hard to tell if a newline is part of a statement + * that should be terminated or not, we'll just leave some of them alone. + * + * @param string $content The content to strip the whitespace for + * + * @return string + */ + protected function stripWhitespace($content) + { + // uniform line endings, make them all line feed + $content = str_replace(array("\r\n", "\r"), "\n", $content); + + // collapse all non-line feed whitespace into a single space + $content = preg_replace('/[^\S\n]+/', ' ', $content); + + // strip leading & trailing whitespace + $content = str_replace(array(" \n", "\n "), "\n", $content); + + // collapse consecutive line feeds into just 1 + $content = preg_replace('/\n+/', "\n", $content); + + $operatorsBefore = $this->getOperatorsForRegex($this->operatorsBefore, '/'); + $operatorsAfter = $this->getOperatorsForRegex($this->operatorsAfter, '/'); + $operators = $this->getOperatorsForRegex($this->operators, '/'); + $keywordsBefore = $this->getKeywordsForRegex($this->keywordsBefore, '/'); + $keywordsAfter = $this->getKeywordsForRegex($this->keywordsAfter, '/'); + + // strip whitespace that ends in (or next line begin with) an operator + // that allows statements to be broken up over multiple lines + unset($operatorsBefore['+'], $operatorsBefore['-'], $operatorsAfter['+'], $operatorsAfter['-']); + $content = preg_replace( + array( + '/('.implode('|', $operatorsBefore).')\s+/', + '/\s+('.implode('|', $operatorsAfter).')/', + ), + '\\1', + $content + ); + + // make sure + and - can't be mistaken for, or joined into ++ and -- + $content = preg_replace( + array( + '/(?%&|', $delimiter); + $operators['='] = '(?keywordsReserved; + $callback = function ($match) use ($minifier, $keywords) { + $property = trim($minifier->extracted[$match[1]], '\'"'); + + /* + * Check if the property is a reserved keyword. In this context (as + * property of an object literal/array) it shouldn't matter, but IE8 + * freaks out with "Expected identifier". + */ + if (in_array($property, $keywords)) { + return $match[0]; + } + + /* + * See if the property is in a variable-like format (e.g. + * array['key-here'] can't be replaced by array.key-here since '-' + * is not a valid character there. + */ + if (!preg_match('/^'.$minifier::REGEX_VARIABLE.'$/u', $property)) { + return $match[0]; + } + + return '.'.$property; + }; + + /* + * Figure out if previous character is a variable name (of the array + * we want to use property notation on) - this is to make sure + * standalone ['value'] arrays aren't confused for keys-of-an-array. + * We can (and only have to) check the last character, because PHP's + * regex implementation doesn't allow unfixed-length look-behind + * assertions. + */ + preg_match('/(\[[^\]]+\])[^\]]*$/', static::REGEX_VARIABLE, $previousChar); + $previousChar = $previousChar[1]; + + /* + * Make sure word preceding the ['value'] is not a keyword, e.g. + * return['x']. Because -again- PHP's regex implementation doesn't allow + * unfixed-length look-behind assertions, I'm just going to do a lot of + * separate look-behind assertions, one for each keyword. + */ + $keywords = $this->getKeywordsForRegex($keywords); + $keywords = '(? + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +namespace MatthiasMullie\Minify; + +use MatthiasMullie\Minify\Exceptions\IOException; +use Psr\Cache\CacheItemInterface; + +/** + * Abstract minifier class. + * + * Please report bugs on https://github.com/matthiasmullie/minify/issues + * + * @package Minify + * @author Matthias Mullie + * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved + * @license MIT License + */ +abstract class Minify +{ + /** + * The data to be minified. + * + * @var string[] + */ + protected $data = array(); + + /** + * Array of patterns to match. + * + * @var string[] + */ + protected $patterns = array(); + + /** + * This array will hold content of strings and regular expressions that have + * been extracted from the JS source code, so we can reliably match "code", + * without having to worry about potential "code-like" characters inside. + * + * @var string[] + */ + public $extracted = array(); + + /** + * Init the minify class - optionally, code may be passed along already. + */ + public function __construct(/* $data = null, ... */) + { + // it's possible to add the source through the constructor as well ;) + if (func_num_args()) { + call_user_func_array(array($this, 'add'), func_get_args()); + } + } + + /** + * Add a file or straight-up code to be minified. + * + * @param string|string[] $data + * + * @return static + */ + public function add($data /* $data = null, ... */) + { + // bogus "usage" of parameter $data: scrutinizer warns this variable is + // not used (we're using func_get_args instead to support overloading), + // but it still needs to be defined because it makes no sense to have + // this function without argument :) + $args = array($data) + func_get_args(); + + // this method can be overloaded + foreach ($args as $data) { + if (is_array($data)) { + call_user_func_array(array($this, 'add'), $data); + continue; + } + + // redefine var + $data = (string) $data; + + // load data + $value = $this->load($data); + $key = ($data != $value) ? $data : count($this->data); + + // replace CR linefeeds etc. + // @see https://github.com/matthiasmullie/minify/pull/139 + $value = str_replace(array("\r\n", "\r"), "\n", $value); + + // store data + $this->data[$key] = $value; + } + + return $this; + } + + /** + * Minify the data & (optionally) saves it to a file. + * + * @param string[optional] $path Path to write the data to + * + * @return string The minified data + */ + public function minify($path = null) + { + $content = $this->execute($path); + + // save to path + if ($path !== null) { + $this->save($content, $path); + } + + return $content; + } + + /** + * Minify & gzip the data & (optionally) saves it to a file. + * + * @param string[optional] $path Path to write the data to + * @param int[optional] $level Compression level, from 0 to 9 + * + * @return string The minified & gzipped data + */ + public function gzip($path = null, $level = 9) + { + $content = $this->execute($path); + $content = gzencode($content, $level, FORCE_GZIP); + + // save to path + if ($path !== null) { + $this->save($content, $path); + } + + return $content; + } + + /** + * Minify the data & write it to a CacheItemInterface object. + * + * @param CacheItemInterface $item Cache item to write the data to + * + * @return CacheItemInterface Cache item with the minifier data + */ + public function cache(CacheItemInterface $item) + { + $content = $this->execute(); + $item->set($content); + + return $item; + } + + /** + * Minify the data. + * + * @param string[optional] $path Path to write the data to + * + * @return string The minified data + */ + abstract public function execute($path = null); + + /** + * Load data. + * + * @param string $data Either a path to a file or the content itself + * + * @return string + */ + protected function load($data) + { + // check if the data is a file + if ($this->canImportFile($data)) { + $data = file_get_contents($data); + + // strip BOM, if any + if (substr($data, 0, 3) == "\xef\xbb\xbf") { + $data = substr($data, 3); + } + } + + return $data; + } + + /** + * Save to file. + * + * @param string $content The minified data + * @param string $path The path to save the minified data to + * + * @throws IOException + */ + protected function save($content, $path) + { + $handler = $this->openFileForWriting($path); + + $this->writeToFile($handler, $content); + + @fclose($handler); + } + + /** + * Register a pattern to execute against the source content. + * + * @param string $pattern PCRE pattern + * @param string|callable $replacement Replacement value for matched pattern + */ + protected function registerPattern($pattern, $replacement = '') + { + // study the pattern, we'll execute it more than once + $pattern .= 'S'; + + $this->patterns[] = array($pattern, $replacement); + } + + /** + * We can't "just" run some regular expressions against JavaScript: it's a + * complex language. E.g. having an occurrence of // xyz would be a comment, + * unless it's used within a string. Of you could have something that looks + * like a 'string', but inside a comment. + * The only way to accurately replace these pieces is to traverse the JS one + * character at a time and try to find whatever starts first. + * + * @param string $content The content to replace patterns in + * + * @return string The (manipulated) content + */ + protected function replace($content) + { + $processed = ''; + $positions = array_fill(0, count($this->patterns), -1); + $matches = array(); + + while ($content) { + // find first match for all patterns + foreach ($this->patterns as $i => $pattern) { + list($pattern, $replacement) = $pattern; + + // we can safely ignore patterns for positions we've unset earlier, + // because we know these won't show up anymore + if (array_key_exists($i, $positions) == false) { + continue; + } + + // no need to re-run matches that are still in the part of the + // content that hasn't been processed + if ($positions[$i] >= 0) { + continue; + } + + $match = null; + if (preg_match($pattern, $content, $match, PREG_OFFSET_CAPTURE)) { + $matches[$i] = $match; + + // we'll store the match position as well; that way, we + // don't have to redo all preg_matches after changing only + // the first (we'll still know where those others are) + $positions[$i] = $match[0][1]; + } else { + // if the pattern couldn't be matched, there's no point in + // executing it again in later runs on this same content; + // ignore this one until we reach end of content + unset($matches[$i], $positions[$i]); + } + } + + // no more matches to find: everything's been processed, break out + if (!$matches) { + $processed .= $content; + break; + } + + // see which of the patterns actually found the first thing (we'll + // only want to execute that one, since we're unsure if what the + // other found was not inside what the first found) + $discardLength = min($positions); + $firstPattern = array_search($discardLength, $positions); + $match = $matches[$firstPattern][0][0]; + + // execute the pattern that matches earliest in the content string + list($pattern, $replacement) = $this->patterns[$firstPattern]; + $replacement = $this->replacePattern($pattern, $replacement, $content); + + // figure out which part of the string was unmatched; that's the + // part we'll execute the patterns on again next + $content = (string) substr($content, $discardLength); + $unmatched = (string) substr($content, strpos($content, $match) + strlen($match)); + + // move the replaced part to $processed and prepare $content to + // again match batch of patterns against + $processed .= substr($replacement, 0, strlen($replacement) - strlen($unmatched)); + $content = $unmatched; + + // first match has been replaced & that content is to be left alone, + // the next matches will start after this replacement, so we should + // fix their offsets + foreach ($positions as $i => $position) { + $positions[$i] -= $discardLength + strlen($match); + } + } + + return $processed; + } + + /** + * This is where a pattern is matched against $content and the matches + * are replaced by their respective value. + * This function will be called plenty of times, where $content will always + * move up 1 character. + * + * @param string $pattern Pattern to match + * @param string|callable $replacement Replacement value + * @param string $content Content to match pattern against + * + * @return string + */ + protected function replacePattern($pattern, $replacement, $content) + { + if (is_callable($replacement)) { + return preg_replace_callback($pattern, $replacement, $content, 1, $count); + } else { + return preg_replace($pattern, $replacement, $content, 1, $count); + } + } + + /** + * Strings are a pattern we need to match, in order to ignore potential + * code-like content inside them, but we just want all of the string + * content to remain untouched. + * + * This method will replace all string content with simple STRING# + * placeholder text, so we've rid all strings from characters that may be + * misinterpreted. Original string content will be saved in $this->extracted + * and after doing all other minifying, we can restore the original content + * via restoreStrings(). + * + * @param string[optional] $chars + * @param string[optional] $placeholderPrefix + */ + protected function extractStrings($chars = '\'"', $placeholderPrefix = '') + { + // PHP only supports $this inside anonymous functions since 5.4 + $minifier = $this; + $callback = function ($match) use ($minifier, $placeholderPrefix) { + // check the second index here, because the first always contains a quote + if ($match[2] === '') { + /* + * Empty strings need no placeholder; they can't be confused for + * anything else anyway. + * But we still needed to match them, for the extraction routine + * to skip over this particular string. + */ + return $match[0]; + } + + $count = count($minifier->extracted); + $placeholder = $match[1].$placeholderPrefix.$count.$match[1]; + $minifier->extracted[$placeholder] = $match[1].$match[2].$match[1]; + + return $placeholder; + }; + + /* + * The \\ messiness explained: + * * Don't count ' or " as end-of-string if it's escaped (has backslash + * in front of it) + * * Unless... that backslash itself is escaped (another leading slash), + * in which case it's no longer escaping the ' or " + * * So there can be either no backslash, or an even number + * * multiply all of that times 4, to account for the escaping that has + * to be done to pass the backslash into the PHP string without it being + * considered as escape-char (times 2) and to get it in the regex, + * escaped (times 2) + */ + $this->registerPattern('/(['.$chars.'])(.*?(?extracted. + * + * @param string $content + * + * @return string + */ + protected function restoreExtractedData($content) + { + if (!$this->extracted) { + // nothing was extracted, nothing to restore + return $content; + } + + $content = strtr($content, $this->extracted); + + $this->extracted = array(); + + return $content; + } + + /** + * Check if the path is a regular file and can be read. + * + * @param string $path + * + * @return bool + */ + protected function canImportFile($path) + { + $parsed = parse_url($path); + if ( + // file is elsewhere + isset($parsed['host']) || + // file responds to queries (may change, or need to bypass cache) + isset($parsed['query']) + ) { + return false; + } + + return strlen($path) < PHP_MAXPATHLEN && @is_file($path) && is_readable($path); + } + + /** + * Attempts to open file specified by $path for writing. + * + * @param string $path The path to the file + * + * @return resource Specifier for the target file + * + * @throws IOException + */ + protected function openFileForWriting($path) + { + if (($handler = @fopen($path, 'w')) === false) { + throw new IOException('The file "'.$path.'" could not be opened for writing. Check if PHP has enough permissions.'); + } + + return $handler; + } + + /** + * Attempts to write $content to the file specified by $handler. $path is used for printing exceptions. + * + * @param resource $handler The resource to write to + * @param string $content The content to write + * @param string $path The path to the file (for exception printing only) + * + * @throws IOException + */ + protected function writeToFile($handler, $content, $path = '') + { + if (($result = @fwrite($handler, $content)) === false || ($result < strlen($content))) { + throw new IOException('The file "'.$path.'" could not be written to. Check your disk space and file permissions.'); + } + } +} diff --git a/vendor/matthiasmullie/path-converter/LICENSE b/vendor/matthiasmullie/path-converter/LICENSE new file mode 100644 index 000000000..491295ad3 --- /dev/null +++ b/vendor/matthiasmullie/path-converter/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2015 Matthias Mullie + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/matthiasmullie/path-converter/composer.json b/vendor/matthiasmullie/path-converter/composer.json new file mode 100644 index 000000000..1cb6a4c59 --- /dev/null +++ b/vendor/matthiasmullie/path-converter/composer.json @@ -0,0 +1,28 @@ +{ + "name": "matthiasmullie/path-converter", + "type": "library", + "description": "Relative path converter", + "keywords": ["relative", "path", "converter", "paths"], + "homepage": "http://github.com/matthiasmullie/path-converter", + "license": "MIT", + "authors": [ + { + "name": "Matthias Mullie", + "homepage": "http://www.mullie.eu", + "email": "pathconverter@mullie.eu", + "role": "Developer" + } + ], + "require": { + "php": ">=5.3.0", + "ext-pcre": "*" + }, + "require-dev": { + "phpunit/phpunit": "~4.8" + }, + "autoload": { + "psr-4": { + "MatthiasMullie\\PathConverter\\": "src/" + } + } +} diff --git a/vendor/matthiasmullie/path-converter/src/Converter.php b/vendor/matthiasmullie/path-converter/src/Converter.php new file mode 100644 index 000000000..519d3c84f --- /dev/null +++ b/vendor/matthiasmullie/path-converter/src/Converter.php @@ -0,0 +1,196 @@ + + * @copyright Copyright (c) 2015, Matthias Mullie. All rights reserved + * @license MIT License + */ +class Converter implements ConverterInterface +{ + /** + * @var string + */ + protected $from; + + /** + * @var string + */ + protected $to; + + /** + * @param string $from The original base path (directory, not file!) + * @param string $to The new base path (directory, not file!) + * @param string $root Root directory (defaults to `getcwd`) + */ + public function __construct($from, $to, $root = '') + { + $shared = $this->shared($from, $to); + if ($shared === '') { + // when both paths have nothing in common, one of them is probably + // absolute while the other is relative + $root = $root ?: getcwd(); + $from = strpos($from, $root) === 0 ? $from : preg_replace('/\/+/', '/', $root.'/'.$from); + $to = strpos($to, $root) === 0 ? $to : preg_replace('/\/+/', '/', $root.'/'.$to); + + // or traveling the tree via `..` + // attempt to resolve path, or assume it's fine if it doesn't exist + $from = @realpath($from) ?: $from; + $to = @realpath($to) ?: $to; + } + + $from = $this->dirname($from); + $to = $this->dirname($to); + + $from = $this->normalize($from); + $to = $this->normalize($to); + + $this->from = $from; + $this->to = $to; + } + + /** + * Normalize path. + * + * @param string $path + * + * @return string + */ + protected function normalize($path) + { + // deal with different operating systems' directory structure + $path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', $path), '/'); + + /* + * Example: + * /home/forkcms/frontend/cache/compiled_templates/../../core/layout/css/../images/img.gif + * to + * /home/forkcms/frontend/core/layout/images/img.gif + */ + do { + $path = preg_replace('/[^\/]+(? $chunk) { + if (isset($path2[$i]) && $path1[$i] == $path2[$i]) { + $shared[] = $chunk; + } else { + break; + } + } + + return implode('/', $shared); + } + + /** + * Convert paths relative from 1 file to another. + * + * E.g. + * ../images/img.gif relative to /home/forkcms/frontend/core/layout/css + * should become: + * ../../core/layout/images/img.gif relative to + * /home/forkcms/frontend/cache/minified_css + * + * @param string $path The relative path that needs to be converted + * + * @return string The new relative path + */ + public function convert($path) + { + // quit early if conversion makes no sense + if ($this->from === $this->to) { + return $path; + } + + $path = $this->normalize($path); + // if we're not dealing with a relative path, just return absolute + if (strpos($path, '/') === 0) { + return $path; + } + + // normalize paths + $path = $this->normalize($this->from.'/'.$path); + + // strip shared ancestor paths + $shared = $this->shared($path, $this->to); + $path = mb_substr($path, mb_strlen($shared)); + $to = mb_substr($this->to, mb_strlen($shared)); + + // add .. for every directory that needs to be traversed to new path + $to = str_repeat('../', count(array_filter(explode('/', $to)))); + + return $to.ltrim($path, '/'); + } + + /** + * Attempt to get the directory name from a path. + * + * @param string $path + * + * @return string + */ + protected function dirname($path) + { + if (@is_file($path)) { + return dirname($path); + } + + if (@is_dir($path)) { + return rtrim($path, '/'); + } + + // no known file/dir, start making assumptions + + // ends in / = dir + if (mb_substr($path, -1) === '/') { + return rtrim($path, '/'); + } + + // has a dot in the name, likely a file + if (preg_match('/.*\..*$/', basename($path)) !== 0) { + return dirname($path); + } + + // you're on your own here! + return $path; + } +} diff --git a/vendor/matthiasmullie/path-converter/src/ConverterInterface.php b/vendor/matthiasmullie/path-converter/src/ConverterInterface.php new file mode 100644 index 000000000..dc1b76573 --- /dev/null +++ b/vendor/matthiasmullie/path-converter/src/ConverterInterface.php @@ -0,0 +1,24 @@ + + * @copyright Copyright (c) 2015, Matthias Mullie. All rights reserved + * @license MIT License + */ +interface ConverterInterface +{ + /** + * Convert file paths. + * + * @param string $path The path to be converted + * + * @return string The new path + */ + public function convert($path); +} diff --git a/vendor/matthiasmullie/path-converter/src/NoConverter.php b/vendor/matthiasmullie/path-converter/src/NoConverter.php new file mode 100644 index 000000000..2fcfd0f20 --- /dev/null +++ b/vendor/matthiasmullie/path-converter/src/NoConverter.php @@ -0,0 +1,23 @@ + + * @copyright Copyright (c) 2015, Matthias Mullie. All rights reserved + * @license MIT License + */ +class NoConverter implements ConverterInterface +{ + /** + * {@inheritdoc} + */ + public function convert($path) + { + return $path; + } +}