Elementor Essential Addons - Version 2.9.7

Version Description

  • Particles extension revamped
Download this release

Release Info

Developer re_enter_rupok
Plugin Icon 128x128 Elementor Essential Addons
Version 2.9.7
Comparing to
See all releases

Code changes from version 2.9.6 to 2.9.7

admin/settings.php CHANGED
File without changes
assets/css/essential-addons-elementor.css CHANGED
@@ -41,6 +41,7 @@
41
  32. Tooltip
42
  33. Progress Bar
43
  34. Image accordion
 
44
  -------------------------------------------------------*/
45
  /*--------------------------*/
46
  /* 01. General Styles
@@ -7539,6 +7540,432 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover {
7539
  transform: none;
7540
  }
7541
  }
7542
- .elementor-section.eael-particles-section .elementor-container {
 
7543
  z-index: 99;
7544
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  32. Tooltip
42
  33. Progress Bar
43
  34. Image accordion
44
+ 35. Feature List
45
  -------------------------------------------------------*/
46
  /*--------------------------*/
47
  /* 01. General Styles
7540
  transform: none;
7541
  }
7542
  }
7543
+ .elementor-section.eael-particles-section .elementor-container,
7544
+ .elementor-section .elementor-container {
7545
  z-index: 99;
7546
  }
7547
+
7548
+ .elementor-section.eael-particles-section > canvas {
7549
+ position: absolute;
7550
+ top: 0;
7551
+ }
7552
+
7553
+ /*----------------------------*/
7554
+ /* 35. Feature List
7555
+ /*----------------------------*/
7556
+ .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 {
7557
+ top: 3px !important;
7558
+ }
7559
+ .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 {
7560
+ top: 45px !important;
7561
+ }
7562
+ .elementor-widget-eael-feature-list.-icon-position-right .connector, .elementor-widget-eael-feature-list.-icon-position-right.-tablet-icon-position-right .connector {
7563
+ right: 0;
7564
+ left: calc(100% - 60px);
7565
+ }
7566
+ .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 {
7567
+ padding: 0 50px 0 0;
7568
+ }
7569
+ @media (max-width: 767px) {
7570
+ .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 {
7571
+ padding: 0 30px 0 0;
7572
+ }
7573
+ }
7574
+ .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 {
7575
+ left: auto;
7576
+ right: 0;
7577
+ }
7578
+ .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 {
7579
+ left: auto;
7580
+ right: 5px;
7581
+ top: 30px;
7582
+ }
7583
+ .elementor-widget-eael-feature-list .eael-feature-list-items {
7584
+ list-style-type: none;
7585
+ margin: 0;
7586
+ padding: 0;
7587
+ }
7588
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item {
7589
+ position: relative;
7590
+ }
7591
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .connector {
7592
+ display: block;
7593
+ position: absolute;
7594
+ width: 0;
7595
+ margin: 0 auto;
7596
+ z-index: 1;
7597
+ height: 100%;
7598
+ top: 0.5em;
7599
+ font-size: 60px;
7600
+ left: 0;
7601
+ right: calc(100% - 60px);
7602
+ border-left: 2px solid #2ecc71;
7603
+ border-right: none !important;
7604
+ }
7605
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item:last-child .connector {
7606
+ display: none;
7607
+ }
7608
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box {
7609
+ z-index: 2;
7610
+ }
7611
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon {
7612
+ padding: .5em;
7613
+ -webkit-transition: all 0.5s;
7614
+ -o-transition: all 0.5s;
7615
+ transition: all 0.5s;
7616
+ font-size: 30px;
7617
+ line-height: 1;
7618
+ color: #818a91;
7619
+ text-align: center;
7620
+ display: -webkit-inline-box;
7621
+ display: -webkit-inline-flex;
7622
+ display: -ms-inline-flexbox;
7623
+ display: inline-flex;
7624
+ }
7625
+ @media (prefers-reduced-motion: reduce) {
7626
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon {
7627
+ -webkit-transition: none;
7628
+ -o-transition: none;
7629
+ transition: none;
7630
+ }
7631
+ }
7632
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i {
7633
+ width: 1em;
7634
+ height: 1em;
7635
+ position: relative;
7636
+ display: block;
7637
+ }
7638
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-icon i:before {
7639
+ position: absolute;
7640
+ left: 50%;
7641
+ -webkit-transform: translateX(-50%);
7642
+ -ms-transform: translateX(-50%);
7643
+ transform: translateX(-50%);
7644
+ }
7645
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-icon-box .eael-feature-list-img {
7646
+ font-size: 8px;
7647
+ line-height: 1;
7648
+ }
7649
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box {
7650
+ margin: 0 0 0 20px;
7651
+ }
7652
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-title {
7653
+ margin-top: 0;
7654
+ line-height: 1.5em;
7655
+ }
7656
+ .elementor-widget-eael-feature-list .eael-feature-list-items .eael-feature-list-item .eael-feature-list-content-box .eael-feature-list-content {
7657
+ padding: 0;
7658
+ margin: 0;
7659
+ line-height: 1.5em;
7660
+ }
7661
+ .elementor-widget-eael-feature-list .eael-feature-list-items.stacked .eael-feature-list-icon-box .eael-feature-list-icon {
7662
+ background-color: #818a91;
7663
+ color: #fff;
7664
+ }
7665
+ .elementor-widget-eael-feature-list .eael-feature-list-items.framed .eael-feature-list-icon-box .eael-feature-list-icon {
7666
+ border: 1px solid #818a91;
7667
+ background-color: #fff;
7668
+ }
7669
+ .elementor-widget-eael-feature-list .eael-feature-list-items.circle .eael-feature-list-icon-box .eael-feature-list-icon {
7670
+ -webkit-border-radius: 50%;
7671
+ border-radius: 50%;
7672
+ }
7673
+ .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon {
7674
+ -webkit-transform: rotate(45deg);
7675
+ -ms-transform: rotate(45deg);
7676
+ transform: rotate(45deg);
7677
+ margin: 15px;
7678
+ }
7679
+ .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon i {
7680
+ -ms-transform: rotate(-43deg);
7681
+ -webkit-transform: rotate(-43deg);
7682
+ transform: rotate(-43deg);
7683
+ }
7684
+ .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-icon-box .eael-feature-list-icon img {
7685
+ -ms-transform: rotate(-45deg);
7686
+ -webkit-transform: rotate(-45deg);
7687
+ transform: rotate(-45deg);
7688
+ }
7689
+ .elementor-widget-eael-feature-list .eael-feature-list-items.rhombus .eael-feature-list-content-box .eael-feature-list-title {
7690
+ margin-top: 15px;
7691
+ }
7692
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
7693
+ padding: 0 0 0 50px;
7694
+ position: relative;
7695
+ }
7696
+ @media (max-width: 767px) {
7697
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
7698
+ padding: 0 0 0 30px;
7699
+ display: block;
7700
+ }
7701
+ }
7702
+ .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 {
7703
+ content: '';
7704
+ position: absolute;
7705
+ display: block;
7706
+ }
7707
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:before {
7708
+ left: 0;
7709
+ top: 0;
7710
+ z-index: 1;
7711
+ border-left: 1px solid #000;
7712
+ border-right: none !important;
7713
+ height: 100%;
7714
+ }
7715
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item:after {
7716
+ left: 5px;
7717
+ top: 30px;
7718
+ width: 23px;
7719
+ display: block;
7720
+ z-index: 2;
7721
+ border-bottom: 1px dashed #000;
7722
+ border-top: none !important;
7723
+ }
7724
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern .eael-feature-list-item .connector {
7725
+ display: none;
7726
+ }
7727
+ @media (min-width: 768px) {
7728
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item {
7729
+ padding: 0 50px 0 0;
7730
+ }
7731
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:before {
7732
+ left: auto;
7733
+ right: 0;
7734
+ }
7735
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item:after {
7736
+ left: auto;
7737
+ right: 5px;
7738
+ top: 30px;
7739
+ }
7740
+ .elementor-widget-eael-feature-list .eael-feature-list-items.connector-type-modern.-icon-position-right .eael-feature-list-item .connector {
7741
+ display: none;
7742
+ }
7743
+ }
7744
+ @media (min-width: 1025px) {
7745
+ .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-content-box {
7746
+ margin-right: 0 !important;
7747
+ margin-top: 0 !important;
7748
+ margin-bottom: 0 !important;
7749
+ }
7750
+ .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-content-box {
7751
+ margin-left: 0 !important;
7752
+ margin-top: 0 !important;
7753
+ margin-bottom: 0 !important;
7754
+ }
7755
+ .elementor-widget-eael-feature-list.-icon-position-top .eael-feature-list-content-box {
7756
+ margin-left: 0 !important;
7757
+ margin-right: 0 !important;
7758
+ margin-bottom: 0 !important;
7759
+ }
7760
+ .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item, .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
7761
+ display: -webkit-box;
7762
+ display: -webkit-flex;
7763
+ display: -ms-flexbox;
7764
+ display: flex;
7765
+ }
7766
+ .elementor-widget-eael-feature-list.-icon-position-left .eael-feature-list-item {
7767
+ text-align: left;
7768
+ -webkit-box-orient: horizontal;
7769
+ -webkit-box-direction: normal;
7770
+ -webkit-flex-direction: row;
7771
+ -ms-flex-direction: row;
7772
+ flex-direction: row;
7773
+ }
7774
+ .elementor-widget-eael-feature-list.-icon-position-right .eael-feature-list-item {
7775
+ text-align: right;
7776
+ -webkit-box-orient: horizontal;
7777
+ -webkit-box-direction: reverse;
7778
+ -webkit-flex-direction: row-reverse;
7779
+ -ms-flex-direction: row-reverse;
7780
+ flex-direction: row-reverse;
7781
+ }
7782
+ }
7783
+ @media (max-width: 1024px) {
7784
+ .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 {
7785
+ display: -webkit-box;
7786
+ display: -webkit-flex;
7787
+ display: -ms-flexbox;
7788
+ display: flex;
7789
+ }
7790
+ .elementor-widget-eael-feature-list.-tablet-icon-position-left .eael-feature-list-item {
7791
+ text-align: left;
7792
+ -webkit-box-orient: horizontal;
7793
+ -webkit-box-direction: normal;
7794
+ -webkit-flex-direction: row;
7795
+ -ms-flex-direction: row;
7796
+ flex-direction: row;
7797
+ }
7798
+ .elementor-widget-eael-feature-list.-tablet-icon-position-right .eael-feature-list-item {
7799
+ text-align: right;
7800
+ -webkit-box-orient: horizontal;
7801
+ -webkit-box-direction: reverse;
7802
+ -webkit-flex-direction: row-reverse;
7803
+ -ms-flex-direction: row-reverse;
7804
+ flex-direction: row-reverse;
7805
+ }
7806
+ }
7807
+ @media (min-width: 768px) and (max-width: 1024px) {
7808
+ .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 {
7809
+ margin-right: 0 !important;
7810
+ margin-top: 0 !important;
7811
+ margin-bottom: 0 !important;
7812
+ }
7813
+ .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 {
7814
+ padding: 0 0 0 50px;
7815
+ }
7816
+ }
7817
+ @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) {
7818
+ .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 {
7819
+ padding: 0 0 0 30px;
7820
+ }
7821
+ }
7822
+ @media (min-width: 768px) and (max-width: 1024px) {
7823
+ .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 {
7824
+ left: 0;
7825
+ right: auto;
7826
+ }
7827
+ .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 {
7828
+ left: 5px;
7829
+ top: 30px;
7830
+ }
7831
+ .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 {
7832
+ margin-left: 0 !important;
7833
+ margin-right: 0 !important;
7834
+ margin-bottom: 0 !important;
7835
+ }
7836
+ .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 {
7837
+ padding: 0 0 0 50px;
7838
+ }
7839
+ }
7840
+ @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) {
7841
+ .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 {
7842
+ padding: 0 0 0 30px;
7843
+ }
7844
+ }
7845
+ @media (min-width: 768px) and (max-width: 1024px) {
7846
+ .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 {
7847
+ left: 0;
7848
+ right: auto;
7849
+ }
7850
+ .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 {
7851
+ left: 5px;
7852
+ }
7853
+ .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 {
7854
+ margin-left: 0 !important;
7855
+ margin-top: 0 !important;
7856
+ margin-bottom: 0 !important;
7857
+ }
7858
+ .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 {
7859
+ padding: 0 50px 0 0;
7860
+ }
7861
+ }
7862
+ @media (min-width: 768px) and (max-width: 1024px) and (max-width: 767px) {
7863
+ .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 {
7864
+ padding: 0 30px 0 0;
7865
+ }
7866
+ }
7867
+ @media (min-width: 768px) and (max-width: 1024px) {
7868
+ .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 {
7869
+ right: 0;
7870
+ left: auto;
7871
+ }
7872
+ .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 {
7873
+ left: auto;
7874
+ right: 5px;
7875
+ }
7876
+ }
7877
+ @media (max-width: 767px) {
7878
+ .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 {
7879
+ display: block;
7880
+ text-align: left;
7881
+ }
7882
+ .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 {
7883
+ display: -webkit-box;
7884
+ display: -webkit-flex;
7885
+ display: -ms-flexbox;
7886
+ display: flex;
7887
+ }
7888
+ .elementor-widget-eael-feature-list.-mobile-icon-position-left .eael-feature-list-item {
7889
+ text-align: left;
7890
+ -webkit-box-orient: horizontal;
7891
+ -webkit-box-direction: normal;
7892
+ -webkit-flex-direction: row;
7893
+ -ms-flex-direction: row;
7894
+ flex-direction: row;
7895
+ }
7896
+ .elementor-widget-eael-feature-list.-mobile-icon-position-right .eael-feature-list-item {
7897
+ text-align: right;
7898
+ -webkit-box-orient: horizontal;
7899
+ -webkit-box-direction: reverse;
7900
+ -webkit-flex-direction: row-reverse;
7901
+ -ms-flex-direction: row-reverse;
7902
+ flex-direction: row-reverse;
7903
+ }
7904
+ .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 {
7905
+ margin-right: 0 !important;
7906
+ margin-top: 0 !important;
7907
+ margin-bottom: 0 !important;
7908
+ }
7909
+ .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 {
7910
+ padding: 0 0 0 50px;
7911
+ }
7912
+ }
7913
+ @media (max-width: 767px) and (max-width: 767px) {
7914
+ .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 {
7915
+ padding: 0 0 0 30px;
7916
+ }
7917
+ }
7918
+ @media (max-width: 767px) {
7919
+ .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 {
7920
+ left: 0;
7921
+ right: auto;
7922
+ }
7923
+ .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 {
7924
+ left: 5px;
7925
+ }
7926
+ .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 {
7927
+ margin-left: 0 !important;
7928
+ margin-right: 0 !important;
7929
+ margin-bottom: 0 !important;
7930
+ }
7931
+ .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 {
7932
+ padding: 0 0 0 50px;
7933
+ }
7934
+ }
7935
+ @media (max-width: 767px) and (max-width: 767px) {
7936
+ .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 {
7937
+ padding: 0 0 0 30px;
7938
+ }
7939
+ }
7940
+ @media (max-width: 767px) {
7941
+ .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 {
7942
+ left: 0;
7943
+ right: auto;
7944
+ }
7945
+ .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 {
7946
+ left: 5px;
7947
+ }
7948
+ .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 {
7949
+ margin-left: 0 !important;
7950
+ margin-top: 0 !important;
7951
+ margin-bottom: 0 !important;
7952
+ }
7953
+ .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 {
7954
+ padding: 0 50px 0 0;
7955
+ }
7956
+ }
7957
+ @media (max-width: 767px) and (max-width: 767px) {
7958
+ .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 {
7959
+ padding: 0 30px 0 0;
7960
+ }
7961
+ }
7962
+ @media (max-width: 767px) {
7963
+ .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 {
7964
+ right: 0;
7965
+ left: auto;
7966
+ }
7967
+ .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 {
7968
+ left: auto;
7969
+ right: 5px;
7970
+ }
7971
+ }
assets/js/eael-scripts.js CHANGED
@@ -644,205 +644,89 @@
644
  }
645
 
646
  var ProgressBar = function ($scope, $) {
647
-
648
- var $progressBar = $scope.find('.eael-progress-bar-container').eq(0),
649
- $layout = mybe_note_undefined($progressBar, "layout"),
650
- $id = mybe_note_undefined($progressBar, "id"),
651
- $number = mybe_note_undefined($progressBar, "number"),
652
- $class = '.elementor-element-' + $scope.data('id'),
653
- $line_stroke_color = mybe_note_undefined($progressBar, "line-stroke-color"),
654
- $line_stroke_width = mybe_note_undefined($progressBar, "line-stroke-width"),
655
- $line_stroke_trail_color = mybe_note_undefined($progressBar, "line-stroke-trail-color"),
656
- $line_stroke_trail_width = mybe_note_undefined($progressBar, "line-stroke-trail-width"),
657
- $line_direction = mybe_note_undefined($progressBar, "line-direction"),
658
-
659
- $fan_stroke_color = mybe_note_undefined($progressBar, "fan-stroke-color"),
660
- $fan_stroke_width = mybe_note_undefined($progressBar, "fan-stroke-width"),
661
- $fan_stroke_trail_color = mybe_note_undefined($progressBar, "fan-stroke-trail-color"),
662
- $fan_stroke_trail_width = mybe_note_undefined($progressBar, "fan-stroke-trail-width"),
663
- $fan_direction = mybe_note_undefined($progressBar, "fan-direction"),
664
-
665
- $circle_stroke_color = mybe_note_undefined($progressBar, "circle-stroke-color"),
666
- $circle_stroke_width = mybe_note_undefined($progressBar, "circle-stroke-width"),
667
- $circle_stroke_trail_color = mybe_note_undefined($progressBar, "circle-stroke-trail-color"),
668
- $circle_stroke_trail_width = mybe_note_undefined($progressBar, "circle-stroke-trail-width"),
669
- $circle_direction = mybe_note_undefined($progressBar, "circle-direction"),
670
-
671
- $bubble_circle_color = mybe_note_undefined($progressBar, "bubble-circle-color"),
672
- $bubble_bg_color = mybe_note_undefined($progressBar, "bubble-bg-color"),
673
- $bubble_circle_width = mybe_note_undefined($progressBar, "bubble-circle-width"),
674
- $bubble_direction = mybe_note_undefined($progressBar, "bubble-direction"),
675
-
676
- $rainbow_stroke_width = mybe_note_undefined($progressBar, "rainbow-stroke-width"),
677
- $rainbow_stroke_trail_width = mybe_note_undefined($progressBar, "rainbow-stroke-trail-width"),
678
- $rainbow_color_one = mybe_note_undefined($progressBar, "rainbow-color-one"),
679
- $rainbow_color_two = mybe_note_undefined($progressBar, "rainbow-color-two"),
680
- $rainbow_color_three = mybe_note_undefined($progressBar, "rainbow-color-three"),
681
- $rainbow_color_four = mybe_note_undefined($progressBar, "rainbow-color-four"),
682
- $rainbow_color_five = mybe_note_undefined($progressBar, "rainbow-color-five"),
683
- $rainbow_direction = mybe_note_undefined($progressBar, "rainbow-direction");
684
-
685
-
686
- if('rainbow' == $layout){
687
- var bar = new ldBar($class + ' .inside-progressbar', {
688
- "type": 'stroke',
689
- "path": 'M0 10L100 10',
690
- "stroke": 'data:ldbar/res,gradient(0,1,'+ $rainbow_color_one +','+ $rainbow_color_two +','+ $rainbow_color_three +','+ $rainbow_color_four +','+ $rainbow_color_five +')',
691
- "aspect-ratio": 'none',
692
- "stroke-width": $rainbow_stroke_width,
693
- "stroke-trail-width": $rainbow_stroke_trail_width,
694
- "stroke-dir": $rainbow_direction
695
- }).set($number);
696
- }
697
- else if('line' == $layout){
698
- var bar = new ldBar($class + ' .inside-progressbar', {
699
- "type": 'stroke',
700
- "path": 'M0 10L100 10',
701
- "stroke": $line_stroke_color,
702
- "stroke-width": $line_stroke_width,
703
- "stroke-trail": $line_stroke_trail_color,
704
- "stroke-trail-width": $line_stroke_trail_width,
705
- "aspect-ratio": 'none',
706
- "stroke-dir": $line_direction
707
- }).set($number);
708
- }
709
- else if('fan' == $layout){
710
- var bar = new ldBar($class + ' .inside-progressbar', {
711
- "type": 'stroke',
712
- "path": 'M10 90A40 40 0 0 1 90 90',
713
- "fill-dir": $fan_direction,
714
- "fill": $fan_stroke_color,
715
- "fill-background": $fan_stroke_trail_color,
716
- "fill-background-extrude": $fan_stroke_width,
717
- "stroke-dir": 'normal',
718
- "stroke": $fan_stroke_color,
719
- "stroke-width": $fan_stroke_width,
720
- "stroke-trail": $fan_stroke_trail_color,
721
- "stroke-trail-width": $fan_stroke_trail_width
722
- }).set($number);
723
- }
724
- else if('circle' == $layout){
725
- var bar = new ldBar($class + ' .inside-progressbar', {
726
- "type": 'stroke',
727
- "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
728
- "fill-dir": $circle_direction,
729
- "fill": $circle_stroke_color,
730
- "fill-background": $circle_stroke_trail_color,
731
- "fill-background-extrude": $circle_stroke_width,
732
- "stroke-dir": 'normal',
733
- "stroke": $circle_stroke_color,
734
- "stroke-width": $circle_stroke_width,
735
- "stroke-trail": $circle_stroke_trail_color,
736
- "stroke-trail-width": $circle_stroke_trail_width
737
- }).set($number);
738
- }
739
- else if('bubble' == $layout){
740
- var bar = new ldBar($class + ' .inside-progressbar', {
741
- "type": 'fill',
742
- "path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
743
- "fill-dir": $bubble_direction,
744
- "fill": 'data:ldbar/res,bubble('+ $bubble_bg_color +','+ $bubble_circle_color +')',
745
- "pattern-size": $bubble_circle_width,
746
- "fill-background": '#ddd',
747
- "fill-background-extrude": 2,
748
- "stroke-dir": 'normal',
749
- "stroke": '#25b',
750
- "stroke-width": '3',
751
- "stroke-trail": '#ddd',
752
- "stroke-trail-width": 0.5
753
- }).set($number);
754
- }
755
  };
756
 
757
  /*=================================*/
758
  /* 36. Section Particles
759
  /*=================================*/
760
- var EaelParticlesHandler = function($scope,$){
761
- var target = $scope,
762
- sectionId = target.data('id'),
763
- editMode = elementorFrontend.isEditMode(),
764
- settings;
765
 
766
-
767
- if ( editMode ) {
768
- settings = generateEditorSettings( sectionId );
769
- }
770
-
771
- if (!editMode || ! settings ) {
772
- return false;
773
- }
774
-
775
- if(settings.switch == 'yes') {
776
- target.addClass('eael-particles-section');
777
- if(settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) {
778
- generateParticles();
779
- }
780
- } else {
781
- target.removeClass('eael-particles-section');
782
- }
783
-
784
-
785
- function generateEditorSettings(targetId){
786
- var editorElements = null,
787
- sectionData = {},
788
- settings = {};
789
-
790
- if ( ! window.elementor.hasOwnProperty( 'elements' ) ) {
791
- return false;
792
- }
793
-
794
- editorElements = window.elementor.elements;
795
-
796
- if ( ! editorElements.models ) {
797
- return false;
798
- }
799
-
800
- $.each(editorElements.models,function(index,elem){
801
- if( targetId == elem.id){
802
- sectionData = elem.attributes.settings.attributes;
803
-
804
- } else if( elem.id == target.closest( '.elementor-top-section' ).data( 'id' ) ) {
805
- $.each(elem.attributes.elements.models,function(index,col){
806
- $.each(col.attributes.elements.models,function(index,subSec){
807
- sectionData = subSec.attributes.settings.attributes;
808
- });
809
- });
810
- }
811
- });
812
-
813
- settings.switch = sectionData[ 'eael_particle_switch' ];
814
- settings.zIndex = sectionData[ 'eael_particles_zindex' ];
815
- settings.themeSource = sectionData['eael_particle_theme_from'];
816
 
 
 
 
 
817
 
818
- if(settings.themeSource == 'presets') {
819
- settings.selected_theme = (ParticleThemesData[sectionData[ 'eael_particle_preset_themes' ]]);
820
- }
821
 
822
- if( (settings.themeSource == 'custom') && ('' !== sectionData[ 'eael_particles_custom_style' ]) ){
823
- settings.selected_theme = sectionData[ 'eael_particles_custom_style' ];
824
- }
825
-
826
- if ( 0 !== settings.length ) {
827
- return settings;
828
- }
829
 
830
- return false;
831
- }
832
-
833
- function generateParticles(){
834
- target.attr('id','eael-section-particles-'+ sectionId);
835
- if(typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) {
836
- particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme));
837
- target.children('canvas.particles-js-canvas-el').css({
838
- zIndex: settings.zIndex,
839
- position: 'absolute',
840
- top:0
841
- });
842
- }
843
- }
844
-
845
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
 
847
  $(window).on('elementor/frontend/init', function () {
848
  if(elementorFrontend.isEditMode()) {
644
  }
645
 
646
  var ProgressBar = function ($scope, $) {
647
+ $('.eael-progressbar', $scope).eaelProgressBar()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
648
  };
649
 
650
  /*=================================*/
651
  /* 36. Section Particles
652
  /*=================================*/
653
+ var EaelParticlesHandler = function ($scope, $) {
654
+ var sectionId = $scope.data('id'),
655
+ editMode = elementorFrontend.isEditMode(),
656
+ theme = $scope.data('theme'),
657
+ settings;
658
 
659
+ $scope.addClass('eael-particles-section');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
 
661
+ if (editMode) {
662
+ var editorElements = null,
663
+ particleArgs = {},
664
+ settings = {};
665
 
666
+ if (!window.elementor.hasOwnProperty('elements')) {
667
+ return false;
668
+ }
669
 
670
+ editorElements = window.elementor.elements;
 
 
 
 
 
 
671
 
672
+ if (!editorElements.models) {
673
+ return false;
674
+ }
675
+
676
+ $.each(editorElements.models, function (i, el) {
677
+ if (sectionId == el.id) {
678
+ particleArgs = el.attributes.settings.attributes;
679
+
680
+ } else if (el.id == $scope.closest('.elementor-top-section').data('id')) {
681
+ $.each(el.attributes.elements.models, function (i, col) {
682
+ $.each(col.attributes.elements.models, function (i, subSec) {
683
+ particleArgs = subSec.attributes.settings.attributes;
684
+ });
685
+ });
686
+ }
687
+ });
688
+
689
+ settings.switch = particleArgs['eael_particle_switch'];
690
+ settings.themeSource = particleArgs['eael_particle_theme_from'];
691
+
692
+ if (settings.themeSource == 'presets') {
693
+ settings.selected_theme = (ParticleThemesData[particleArgs['eael_particle_preset_themes']]);
694
+ }
695
+
696
+ if ((settings.themeSource == 'custom') && ('' !== particleArgs['eael_particles_custom_style'])) {
697
+ settings.selected_theme = particleArgs['eael_particles_custom_style'];
698
+ }
699
+
700
+ if (0 !== settings.length) {
701
+ settings = settings;
702
+ }
703
+ } else {
704
+ if (theme !== '') {
705
+ particlesJS('eael-section-particles-' + sectionId, theme);
706
+ }
707
+ }
708
+
709
+ if (!editMode || !settings) {
710
+ return false;
711
+ }
712
+
713
+ if (settings.switch == 'yes') {
714
+
715
+ if (settings.themeSource === 'presets' || settings.themeSource === 'custom' && '' !== settings.selected_theme) {
716
+ $scope.attr('id', 'eael-section-particles-' + sectionId);
717
+ if (typeof particlesJS !== 'undefined' && $.isFunction(particlesJS)) {
718
+ particlesJS("eael-section-particles-" + sectionId, JSON.parse(settings.selected_theme));
719
+ $scope.children('canvas.particles-js-canvas-el').css({
720
+ position: 'absolute',
721
+ top: 0
722
+ });
723
+ }
724
+ }
725
+ } else {
726
+ $scope.removeClass('eael-particles-section');
727
+ }
728
+
729
+ };
730
 
731
  $(window).on('elementor/frontend/init', function () {
732
  if(elementorFrontend.isEditMode()) {
assets/js/loading-bar.min.js DELETED
@@ -1 +0,0 @@
1
- !function t(e,i,r){function a(n,s){if(!i[n]){if(!e[n]){var h="function"==typeof require&&require;if(!s&&h)return h(n,!0);if(l)return l(n,!0);var d=new Error("Cannot find module '"+n+"'");throw d.code="MODULE_NOT_FOUND",d}var o=i[n]={exports:{}};e[n][0].call(o.exports,function(t){var i=e[n][1][t];return a(i||t)},o,o.exports,t,e,i,r)}return i[n].exports}for(var l="function"==typeof require&&require,n=0;n<r.length;n++)a(r[n]);return a}({1:[function(t,e,i){function r(t,e){var i={}.hasOwnProperty;for(var r in e)i.call(e,r)&&(t[r]=e[r]);return t}var a,l,n=[].slice,s={}.toString;a=t("presets").presets,l=function(t){return"data:image/svg+xml;base64,"+btoa(t)},function(){var t,e,i;t={head:function(t){return'<?xml version="1.0" encoding="utf-8"?>\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="'+t+'">'},gradient:function(t,e){var i,r,a,s,h,d,o,u,f,c;for(null==t&&(t=45),null==e&&(e=1),i=n.call(arguments,2),r=[this.head("0 0 100 100")],a=4*i.length+1,t=t*Math.PI/180,s=Math.pow(Math.cos(t),2),h=Math.sqrt(s-Math.pow(s,2)),t>.25*Math.PI&&(h=Math.pow(Math.sin(t),2),s=Math.sqrt(h-Math.pow(h,2))),d=100*s,o=100*h,r.push('<defs><linearGradient id="gradient" x1="0" x2="'+s+'" y1="0" y2="'+h+'">'),u=0;u<a;++u)c=100*(f=u)/(a-1),r.push('<stop offset="'+c+'%" stop-color="'+i[f%i.length]+'"/>');return r.push('</linearGradient></defs>\n<rect x="0" y="0" width="400" height="400" fill="url(#gradient)">\n<animateTransform attributeName="transform" type="translate" from="-'+d+",-"+o+'"\nto="0,0" dur="'+e+'s" repeatCount="indefinite"/></rect></svg>'),l(r.join(""))},stripe:function(t,e,i){var r,a;return null==t&&(t="#b4b4b4"),null==e&&(e="#e6e6e6"),null==i&&(i=1),r=[this.head("0 0 100 100")],r=r.concat(['<rect fill="'+e+'" width="100" height="100"/>',"<g><g>",function(){var e,i=[];for(e=0;e<13;++e)a=e,i.push('<polygon fill="'+t+'" points="'+(20*a-90)+",100 "+(20*a-100)+",100 "+(20*a-60)+",0 "+(20*a-50)+',0 "/>');return i}().join(""),'</g><animateTransform attributeName="transform" type="translate" ','from="0,0" to="20,0" dur="'+i+'s" repeatCount="indefinite"/></g></svg>'].join("")),l(r)},bubble:function(t,e,i,r,a,n){var s,h,d,o,u,f;for(null==t&&(t="#39d"),null==e&&(e="#9cf"),null==i&&(i=15),null==r&&(r=1),null==a&&(a=6),null==n&&(n=1),s=[this.head("0 0 200 200"),'<rect x="0" y="0" width="200" height="200" fill="'+t+'"/>'],h=0;h<i;++h)d=-h/i*r,o=184*Math.random()+8,u=(.7*Math.random()+.3)*a,f=r*(1+.5*Math.random()),s.push(['<circle cx="'+o+'" cy="0" r="'+u+'" fill="none" stroke="'+e+'" stroke-width="'+n+'">','<animate attributeName="cy" values="190;-10" times="0;1" ','dur="'+f+'s" begin="'+d+'s" repeatCount="indefinite"/>',"</circle>",'<circle cx="'+o+'" cy="0" r="'+u+'" fill="none" stroke="'+e+'" stroke-width="'+n+'">','<animate attributeName="cy" values="390;190" times="0;1" ','dur="'+f+'s" begin="'+d+'s" repeatCount="indefinite"/>',"</circle>"].join(""));return l(s.join("")+"</svg>")}},e={queue:{},running:!1,main:function(t){var e,i,r,a,l,n,s=this;e=!1,i=[];for(r in a=this.queue)(n=(l=a[r])(t))||i.push(l),e=e||n;for(r in a=this.queue)l=a[r],i.indexOf(l)>=0&&delete this.queue[r];return e?requestAnimationFrame(function(t){return s.main(t)}):this.running=!1},add:function(t,e){var i=this;if(this.queue[t]||(this.queue[t]=e),!this.running)return this.running=!0,requestAnimationFrame(function(t){return i.main(t)})}},window.ldBar=i=function(i,l){var n,h,d,o,u,f,c,g,p,w,m,k,b,x,v,y,M,q,A,B,C,S,_,L,N=this;if(null==l&&(l={}),n={xlink:"http://www.w3.org/1999/xlink"},(h="String"===s.call(i).slice(8,-1)?document.querySelector(i):i).ldBar)return h.ldBar;h.ldBar=this,~(d=h.getAttribute("class")||"").indexOf("ldBar")||h.setAttribute("class",d+" ldBar"),o="ldBar-"+Math.random().toString(16).substring(2),u={key:o,clip:o+"-clip",filter:o+"-filter",pattern:o+"-pattern",mask:o+"-mask",maskPath:o+"-mask-path"},f=function(t,e){var i,r;t=c(t);for(i in e)r=e[i],"attr"!==i&&t.appendChild(f(i,r||{}));return t.attrs(e.attr||{}),t},c=function(t){return document.createElementNS("http://www.w3.org/2000/svg",t)},(g=document.body.__proto__.__proto__.__proto__).text=function(t){return this.appendChild(document.createTextNode(t))},g.attrs=function(t){var e,i,r,a=[];for(e in t)i=t[e],(r=/([^:]+):([^:]+)/.exec(e))&&n[r[1]]?a.push(this.setAttributeNS(n[r[1]],e,i)):a.push(this.setAttribute(e,i));return a},g.styles=function(t){var e,i,r=[];for(e in t)i=t[e],r.push(this.style[e]=i);return r},g.append=function(t){return this.appendChild(document.createElementNS("http://www.w3.og/2000/svg",t))},g.attr=function(t,e){return null!=e?this.setAttribute(t,e):this.getAttribute(t)},(p={type:"stroke",img:"",path:"M10 10L90 10","fill-dir":"btt",fill:"#25b","fill-background":"#ddd","fill-background-extrude":3,"pattern-size":null,"stroke-dir":"normal",stroke:"#25b","stroke-width":"3","stroke-trail":"#ddd","stroke-trail-width":.5,duration:1,easing:"linear",value:0,"img-size":null,bbox:null,"set-dim":!0,"aspect-ratio":"xMidYMid"}).preset=h.attr("data-preset")||l.preset,null!=p.preset&&r(p,a[p.preset]);for(w in p)(m=m=h.attr("data-"+w))&&(p[w]=m);return r(p,l),p.img&&(p.path=null),k="stroke"===p.type,b=function(e){var i,r;return i=/data:ldbar\/res,([^()]+)\(([^)]+)\)/,(r=i.exec(e))?r=t[r[1]].apply(t,r[2].split(",")):e},p.fill=b(p.fill),p.stroke=b(p.stroke),"false"===p["set-dim"]&&(p["set-dim"]=!1),x={attr:{"xmlns:xlink":"http://www.w3.org/1999/xlink",preserveAspectRatio:p["aspect-ratio"],width:"100%",height:"100%"},defs:{filter:{attr:{id:u.filter,x:-1,y:-1,width:3,height:3},feMorphology:{attr:{operator:+p["fill-background-extrude"]>=0?"dilate":"erode",radius:Math.abs(+p["fill-background-extrude"])}},feColorMatrix:{attr:{values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0",result:"cm"}}},mask:{attr:{id:u.mask},image:{attr:{"xlink:href":p.img,filter:"url(#"+u.filter+")",x:0,y:0,width:100,height:100,preserveAspectRatio:p["aspect-ratio"]}}},g:{mask:{attr:{id:u.maskPath},path:{attr:{d:p.path||"",fill:"#fff",stroke:"#fff",filter:"url(#"+u.filter+")"}}}},clipPath:{attr:{id:u.clip},rect:{attr:{class:"mask",fill:"#000"}}},pattern:{attr:{id:u.pattern,patternUnits:"userSpaceOnUse",x:0,y:0,width:300,height:300},image:{attr:{x:0,y:0,width:300,height:300}}}}},v=f("svg",x),(y=document.createElement("div")).setAttribute("class","ldBar-label"),h.appendChild(v),h.appendChild(y),M=[0,0],q=0,this.fit=function(){var t,e,i,r;if((t=p.bbox)?(e=t.split(" ").map(function(t){return+t.trim()}),e={x:e[0],y:e[1],width:e[2],height:e[3]}):e=M[1].getBBox(),e&&0!==e.width&&0!==e.height||(e={x:0,y:0,width:100,height:100}),i=1.5*Math.max.apply(null,["stroke-width","stroke-trail-width","fill-background-extrude"].map(function(t){return p[t]})),v.attrs({viewBox:[e.x-i,e.y-i,e.width+2*i,e.height+2*i].join(" ")}),p["set-dim"]&&["width","height"].map(function(t){if(!h.style[t]||N.fit[t])return h.style[t]=e[t]+2*i+"px",N.fit[t]=!0}),r=M[0].querySelector("rect"))return r.attrs({x:e.x-i,y:e.y-i,width:e.width+2*i,height:e.height+2*i})},p.path?(M[0]=k?f("g",{path:{attr:{d:p.path,fill:"none",class:"baseline"}}}):f("g",{rect:{attr:{x:0,y:0,width:100,height:100,mask:"url(#"+u.maskPath+")",fill:p["fill-background"],class:"frame"}}}),v.appendChild(M[0]),M[1]=f("g",{path:{attr:{d:p.path,class:k?"mainline":"solid","clip-path":"fill"===p.type?"url(#"+u.clip+")":""}}}),v.appendChild(M[1]),A=M[0].querySelector(k?"path":"rect"),B=M[1].querySelector("path"),k&&B.attrs({fill:"none"}),C=v.querySelector("pattern image"),(S=new Image).addEventListener("load",function(){var t,e;return t=(e=p["pattern-size"])?{width:+e,height:+e}:S.width&&S.height?{width:S.width,height:S.height}:{width:300,height:300},v.querySelector("pattern").attrs({width:t.width,height:t.height}),C.attrs({width:t.width,height:t.height})}),/.+\..+|^data:/.exec(k?p.stroke:p.fill)&&(S.src=k?p.stroke:p.fill,C.attrs({"xlink:href":S.src})),k&&(A.attrs({stroke:p["stroke-trail"],"stroke-width":p["stroke-trail-width"]}),B.attrs({"stroke-width":p["stroke-width"],stroke:/.+\..+|^data:/.exec(p.stroke)?"url(#"+u.pattern+")":p.stroke})),p.fill&&!k&&B.attrs({fill:/.+\..+|^data:/.exec(p.fill)?"url(#"+u.pattern+")":p.fill}),q=B.getTotalLength(),this.fit(),this.inited=!0):p.img&&(L=p["img-size"]?{width:+(_=p["img-size"].split(","))[0],height:+_[1]}:{width:100,height:100},M[0]=f("g",{rect:{attr:{x:0,y:0,width:100,height:100,mask:"url(#"+u.mask+")",fill:p["fill-background"]}}}),v.querySelector("mask image").attrs({width:L.width,height:L.height}),M[1]=f("g",{image:{attr:{width:L.width,height:L.height,x:0,y:0,preserveAspectRatio:p["aspect-ratio"],"clip-path":"fill"===p.type?"url(#"+u.clip+")":"","xlink:href":p.img,class:"solid"}}}),(S=new Image).addEventListener("load",function(){var t,e;return e=p["img-size"]?{width:+(t=p["img-size"].split(","))[0],height:+t[1]}:S.width&&S.height?{width:S.width,height:S.height}:{width:100,height:100},v.querySelector("mask image").attrs({width:e.width,height:e.height}),M[1].querySelector("image").attrs({width:e.width,height:e.height}),N.fit(),N.set(void 0,!1),N.inited=!0}),S.src=p.img,v.appendChild(M[0]),v.appendChild(M[1])),v.attrs({width:"100%",height:"100%"}),this.transition={value:{src:0,des:0},time:{},ease:function(t,e,i,r){return(t/=.5*r)<1?.5*i*t*t+e:(t-=1,.5*-i*(t*(t-2)-1)+e)},handler:function(t,e){var i,r,a,l,n,s,h,d,o;return null==e&&(e=!0),null==this.time.src&&(this.time.src=t),i=[this.value.des-this.value.src,.001*(t-this.time.src),+p.duration||1],r=i[0],a=i[1],l=i[2],y.textContent=n=e?Math.round(this.ease(a,this.value.src,r,l)):this.value.des,k?(s=B,h={"stroke-dasharray":"reverse"===p["stroke-dir"]?"0 "+q*(100-n)*.01+" "+q*n*.01+" 0":.01*n*q+" "+(.01*(100-n)*q+1)}):(d=M[1].getBBox(),h="btt"!==(o=p["fill-dir"])&&o?"ttb"===o?{y:d.y,height:d.height*n*.01,x:d.x,width:d.width}:"ltr"===o?{y:d.y,height:d.height,x:d.x,width:d.width*n*.01}:"rtl"===o?{y:d.y,height:d.height,x:d.x+d.width*(100-n)*.01,width:d.width*n*.01}:void 0:{y:d.y+d.height*(100-n)*.01,height:d.height*n*.01,x:d.x,width:d.width},s=v.querySelector("rect")),s.attrs(h),!(a>=l)||(delete this.time.src,!1)},start:function(t,i,r){var a,l=this;return a=this.value,a.src=t,a.des=i,h.offsetWidth||h.offsetHeight||h.getClientRects().length,r&&(h.offsetWidth||h.offsetHeight||h.getClientRects().length)?e.add(u.key,function(t){return l.handler(t)}):(this.time.src=0,void this.handler(1e3,!1))}},this.set=function(t,e){var i,r;return null==e&&(e=!0),i=this.value||0,null!=t?this.value=t:t=this.value,r=this.value,this.transition.start(i,r,e)},this.set(+p.value||0,!1),this},window.addEventListener("load",function(){var t,e,r,a,l=[];for(t=0,r=(e=document.querySelectorAll(".ldBar")).length;t<r;++t)(a=e[t]).ldBar||l.push(a.ldBar=new i(a));return l},!1)}()},{presets:2}],2:[function(t,e,i){(void 0!==i&&i||this).presets={rainbow:{type:"stroke",path:"M10 10L90 10",stroke:"data:ldbar/res,gradient(0,1,#a551df,#fd51ad,#ff7f82,#ffb874,#ffeb90)",bbox:"10 10 80 10"},energy:{type:"fill",path:"M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5",stroke:"#f00",fill:"data:ldbar/res,gradient(45,2,#4e9,#8fb,#4e9)","fill-dir":"ltr","fill-background":"#444","fill-background-extrude":1,bbox:"10 5 80 10"},stripe:{type:"fill",path:"M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5",stroke:"#f00",fill:"data:ldbar/res,stripe(#25b,#58e,1)","fill-dir":"ltr","fill-background":"#ddd","fill-background-extrude":1,bbox:"10 5 80 10"},text:{type:"fill",img:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20" viewBox="0 0 70 20"><text x="35" y="10" text-anchor="middle" dominant-baseline="central" font-family="arial">LOADING</text></svg>',"fill-background-extrude":1.3,"pattern-size":100,"fill-dir":"ltr","img-size":"70,20",bbox:"0 0 70 20"},line:{type:"stroke",path:"M10 10L90 10",stroke:"#25b","stroke-width":3,"stroke-trail":"#ddd","stroke-trail-width":1,bbox:"10 10 80 10"},fan:{type:"stroke",path:"M10 90A40 40 0 0 1 90 90","fill-dir":"btt",fill:"#25b","fill-background":"#ddd","fill-background-extrude":3,"stroke-dir":"normal",stroke:"#25b","stroke-width":"3","stroke-trail":"#ddd","stroke-trail-width":.5,bbox:"10 50 80 40"},circle:{type:"stroke",path:"M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10","fill-dir":"btt",fill:"#25b","fill-background":"#ddd","fill-background-extrude":3,"stroke-dir":"normal",stroke:"#25b","stroke-width":"3","stroke-trail":"#ddd","stroke-trail-width":.5,bbox:"10 10 80 80"},bubble:{type:"fill",path:"M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10","fill-dir":"btt",fill:"data:ldbar/res,bubble(#39d,#cef)","pattern-size":"150","fill-background":"#ddd","fill-background-extrude":2,"stroke-dir":"normal",stroke:"#25b","stroke-width":"3","stroke-trail":"#ddd","stroke-trail-width":.5,bbox:"10 10 80 80"}}},{}]},{},[1]);
 
assets/sass/_feature-list.scss ADDED
@@ -0,0 +1,590 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*----------------------------*/
2
+ /* 35. Feature List
3
+ /*----------------------------*/
4
+
5
+ .elementor-widget-eael-feature-list {
6
+
7
+ &.-icon-position-left .connector-type-modern.rhombus,
8
+ &.-icon-position-top .connector-type-modern.rhombus,
9
+ &.-icon-position-right .connector-type-modern.rhombus {
10
+ .eael-feature-list-item {
11
+
12
+ &:before {
13
+ top: 3px !important;
14
+ }
15
+ &:after {
16
+ top: 45px !important;
17
+ }
18
+ }
19
+ }
20
+
21
+ &.-icon-position-right,
22
+ &.-icon-position-right.-tablet-icon-position-right {
23
+ .connector {
24
+ right: 0;
25
+ left: calc(100% - 60px);
26
+ }
27
+
28
+ .eael-feature-list-items {
29
+ &.connector-type-modern {
30
+
31
+ .eael-feature-list-item {
32
+ padding: 0 50px 0 0;
33
+
34
+ @media (max-width: 767px) {
35
+ padding: 0 30px 0 0;
36
+ }
37
+
38
+ &:before {
39
+ left: auto;
40
+ right: 0;
41
+ }
42
+
43
+ &:after {
44
+ left: auto;
45
+ right: 5px;
46
+ top: 30px;
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+
54
+ .eael-feature-list-items {
55
+ list-style-type: none;
56
+ margin: 0;
57
+ padding: 0;
58
+
59
+ .eael-feature-list-item {
60
+ position: relative;
61
+
62
+ .connector {
63
+ display: block;
64
+ position: absolute;
65
+ width: 0;
66
+ margin: 0 auto;
67
+ z-index: 1;
68
+
69
+ height: 100%;
70
+ top: 0.5em;
71
+
72
+ font-size: 60px;
73
+ left: 0;
74
+ right: calc(100% - 60px);
75
+ border-left: 2px solid #2ecc71;
76
+ border-right: none !important;
77
+ }
78
+
79
+ &:last-child .connector {
80
+ display: none;
81
+ }
82
+
83
+ .eael-feature-list-icon-box {
84
+ z-index: 2;
85
+
86
+ .eael-feature-list-icon {
87
+ padding: .5em;
88
+ @include transition(all .5s);
89
+ font-size: 30px;
90
+ line-height: 1;
91
+ color: #818a91;
92
+ text-align: center;
93
+ display: inline-flex;
94
+
95
+ i {
96
+ width: 1em;
97
+ height: 1em;
98
+ position: relative;
99
+ display: block;
100
+
101
+ &:before {
102
+ position: absolute;
103
+ left: 50%;
104
+ -webkit-transform: translateX(-50%);
105
+ -ms-transform: translateX(-50%);
106
+ transform: translateX(-50%);
107
+ }
108
+ }
109
+ }
110
+
111
+ .eael-feature-list-img {
112
+ font-size: 8px;
113
+ line-height: 1;
114
+ }
115
+ }
116
+
117
+
118
+ .eael-feature-list-content-box {
119
+ margin: 0 0 0 20px;
120
+
121
+ .eael-feature-list-title {
122
+ margin-top: 0;
123
+ line-height: 1.5em;
124
+ }
125
+
126
+ .eael-feature-list-content {
127
+ padding: 0;
128
+ margin: 0;
129
+ line-height: 1.5em;
130
+ }
131
+ }
132
+ }
133
+
134
+ &.stacked {
135
+ .eael-feature-list-icon-box {
136
+ .eael-feature-list-icon {
137
+ background-color: #818a91;
138
+ color: $white;
139
+ }
140
+ }
141
+ }
142
+
143
+ &.framed {
144
+ .eael-feature-list-icon-box {
145
+ .eael-feature-list-icon {
146
+ border: 1px solid #818a91;
147
+ background-color: $white;
148
+ }
149
+ }
150
+ }
151
+
152
+ &.circle {
153
+ .eael-feature-list-icon-box {
154
+ .eael-feature-list-icon {
155
+ @include border-radius(50%);
156
+ }
157
+ }
158
+ }
159
+
160
+ &.square {
161
+ .eael-feature-list-icon-box {
162
+
163
+ }
164
+ }
165
+
166
+ &.rhombus {
167
+ .eael-feature-list-icon-box {
168
+ .eael-feature-list-icon {
169
+ transform: rotate(45deg);
170
+ margin: 15px;
171
+
172
+ i {
173
+ -ms-transform: rotate(-43deg);
174
+ -webkit-transform: rotate(-43deg);
175
+ transform: rotate(-43deg);
176
+ }
177
+
178
+ img {
179
+ -ms-transform: rotate(-45deg);
180
+ -webkit-transform: rotate(-45deg);
181
+ transform: rotate(-45deg);
182
+ }
183
+ }
184
+ }
185
+
186
+ .eael-feature-list-content-box{
187
+ .eael-feature-list-title {
188
+ margin-top: 15px;
189
+ }
190
+ }
191
+ }
192
+
193
+ // Connector type
194
+
195
+ &.connector-type-modern {
196
+
197
+ .eael-feature-list-item {
198
+ padding: 0 0 0 50px;
199
+ position: relative;
200
+
201
+ @media (max-width: 767px) {
202
+ padding: 0 0 0 30px;
203
+ display: block;
204
+ }
205
+
206
+ &:before,
207
+ &:after {
208
+ content: '';
209
+ position: absolute;
210
+ display: block;
211
+ }
212
+
213
+ &:before {
214
+ left: 0;
215
+ top: 0;
216
+ z-index: 1;
217
+ border-left: 1px solid #000;
218
+ border-right: none !important;
219
+ height: 100%;
220
+ }
221
+
222
+ &:after {
223
+ left: 5px;
224
+ top: 30px;
225
+ width: 23px;
226
+ display: block;
227
+ z-index: 2;
228
+ border-bottom: 1px dashed #000;
229
+ border-top: none !important;
230
+ }
231
+
232
+ .connector {
233
+ display: none;
234
+ }
235
+
236
+ }
237
+
238
+ @media (min-width: 768px) {
239
+ &.-icon-position-right {
240
+ .eael-feature-list-item {
241
+ padding: 0 50px 0 0;
242
+
243
+ &:before {
244
+ left: auto;
245
+ right: 0;
246
+ }
247
+
248
+ &:after {
249
+ left: auto;
250
+ right: 5px;
251
+ top: 30px;
252
+ }
253
+
254
+ .connector {
255
+ display: none;
256
+ }
257
+
258
+ }
259
+ }
260
+ }
261
+ }
262
+
263
+ }
264
+
265
+
266
+
267
+ @media (min-width: 1025px) {
268
+
269
+ // Icon position
270
+
271
+ &.-icon-position-left {
272
+ .eael-feature-list-content-box {
273
+ margin-right: 0 !important;
274
+ margin-top: 0 !important;
275
+ margin-bottom: 0 !important;
276
+ }
277
+ }
278
+
279
+ &.-icon-position-right {
280
+ .eael-feature-list-content-box {
281
+ margin-left: 0 !important;
282
+ margin-top: 0 !important;
283
+ margin-bottom: 0 !important;
284
+ }
285
+ }
286
+
287
+ &.-icon-position-top {
288
+ .eael-feature-list-content-box {
289
+ margin-left: 0 !important;
290
+ margin-right: 0 !important;
291
+ margin-bottom: 0 !important;
292
+ }
293
+ }
294
+
295
+ &.-icon-position-left .eael-feature-list-item,
296
+ &.-icon-position-right .eael-feature-list-item {
297
+ display: -webkit-box;
298
+ display: -webkit-flex;
299
+ display: -ms-flexbox;
300
+ display: flex;
301
+ }
302
+
303
+ &.-icon-position-left .eael-feature-list-item {
304
+ text-align: left;
305
+ -webkit-box-orient: horizontal;
306
+ -webkit-box-direction: normal;
307
+ -webkit-flex-direction: row;
308
+ -ms-flex-direction: row;
309
+ flex-direction: row;
310
+ }
311
+
312
+ &.-icon-position-right .eael-feature-list-item {
313
+ text-align: right;
314
+ -webkit-box-orient: horizontal;
315
+ -webkit-box-direction: reverse;
316
+ -webkit-flex-direction: row-reverse;
317
+ -ms-flex-direction: row-reverse;
318
+ flex-direction: row-reverse;
319
+ }
320
+
321
+ }
322
+
323
+ @media (max-width: 1024px) {
324
+
325
+ // Icon position
326
+
327
+ &.-tablet-icon-position-left .eael-feature-list-item,
328
+ &.-tablet-icon-position-right .eael-feature-list-item {
329
+ display: -webkit-box;
330
+ display: -webkit-flex;
331
+ display: -ms-flexbox;
332
+ display: flex;
333
+ }
334
+
335
+ &.-tablet-icon-position-left .eael-feature-list-item {
336
+ text-align: left;
337
+ -webkit-box-orient: horizontal;
338
+ -webkit-box-direction: normal;
339
+ -webkit-flex-direction: row;
340
+ -ms-flex-direction: row;
341
+ flex-direction: row;
342
+ }
343
+
344
+ &.-tablet-icon-position-right .eael-feature-list-item {
345
+ text-align: right;
346
+ -webkit-box-orient: horizontal;
347
+ -webkit-box-direction: reverse;
348
+ -webkit-flex-direction: row-reverse;
349
+ -ms-flex-direction: row-reverse;
350
+ flex-direction: row-reverse;
351
+ }
352
+
353
+ }
354
+
355
+ @media (min-width: 768px) and (max-width: 1024px) {
356
+
357
+ &.-icon-position-left.-tablet-icon-position-left,
358
+ &.-icon-position-right.-tablet-icon-position-left,
359
+ &.-icon-position-top.-tablet-icon-position-left {
360
+ .eael-feature-list-content-box {
361
+ margin-right: 0 !important;
362
+ margin-top: 0 !important;
363
+ margin-bottom: 0 !important;
364
+ }
365
+
366
+
367
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
368
+ padding: 0 0 0 50px;
369
+
370
+ @media (max-width: 767px) {
371
+ padding: 0 0 0 30px;
372
+ }
373
+
374
+ &:before {
375
+ left: 0;
376
+ right: auto;
377
+ }
378
+
379
+ &:after {
380
+ left: 5px;
381
+ top: 30px;
382
+ }
383
+ }
384
+ }
385
+
386
+
387
+ &.-icon-position-left.-tablet-icon-position-top,
388
+ &.-icon-position-right.-tablet-icon-position-top,
389
+ &.-icon-position-top.-tablet-icon-position-top {
390
+ .eael-feature-list-content-box {
391
+ margin-left: 0 !important;
392
+ margin-right: 0 !important;
393
+ margin-bottom: 0 !important;
394
+ }
395
+
396
+
397
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
398
+ padding: 0 0 0 50px;
399
+
400
+ @media (max-width: 767px) {
401
+ padding: 0 0 0 30px;
402
+ }
403
+
404
+ &:before {
405
+ left: 0;
406
+ right: auto;
407
+ }
408
+
409
+ &:after {
410
+ left: 5px;
411
+ }
412
+ }
413
+ }
414
+
415
+ &.-icon-position-left.-tablet-icon-position-right,
416
+ &.-icon-position-right.-tablet-icon-position-right,
417
+ &.-icon-position-top.-tablet-icon-position-right {
418
+ .eael-feature-list-content-box {
419
+ margin-left: 0 !important;
420
+ margin-top: 0 !important;
421
+ margin-bottom: 0 !important;
422
+ }
423
+
424
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
425
+ padding: 0 50px 0 0;
426
+
427
+ @media (max-width: 767px) {
428
+ padding: 0 30px 0 0;
429
+ }
430
+
431
+ &:before {
432
+ right: 0;
433
+ left: auto;
434
+ }
435
+
436
+ &:after {
437
+ left: auto;
438
+ right: 5px;
439
+ }
440
+ }
441
+ }
442
+
443
+ }
444
+
445
+ @media (max-width: 767px) {
446
+
447
+ // Icon Position
448
+ &.-icon-position-left,
449
+ &.-icon-position-right,
450
+ &.-tablet-icon-position-left,
451
+ &.-tablet-icon-position-right {
452
+ .eael-feature-list-item {
453
+ display: block;
454
+ text-align: left;
455
+ }
456
+ }
457
+
458
+ &.-mobile-icon-position-left .eael-feature-list-item,
459
+ &.-mobile-icon-position-right .eael-feature-list-item {
460
+ display: -webkit-box;
461
+ display: -webkit-flex;
462
+ display: -ms-flexbox;
463
+ display: flex;
464
+ }
465
+
466
+ &.-mobile-icon-position-left .eael-feature-list-item {
467
+ text-align: left;
468
+ -webkit-box-orient: horizontal;
469
+ -webkit-box-direction: normal;
470
+ -webkit-flex-direction: row;
471
+ -ms-flex-direction: row;
472
+ flex-direction: row;
473
+ }
474
+
475
+ &.-mobile-icon-position-right .eael-feature-list-item {
476
+ text-align: right;
477
+ -webkit-box-orient: horizontal;
478
+ -webkit-box-direction: reverse;
479
+ -webkit-flex-direction: row-reverse;
480
+ -ms-flex-direction: row-reverse;
481
+ flex-direction: row-reverse;
482
+ }
483
+
484
+
485
+ &.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-left,
486
+ &.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-left,
487
+ &.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-left,
488
+ &.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-left,
489
+ &.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-left,
490
+ &.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-left,
491
+ &.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-left,
492
+ &.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-left,
493
+ &.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-left {
494
+ .eael-feature-list-content-box {
495
+ margin-right: 0 !important;
496
+ margin-top: 0 !important;
497
+ margin-bottom: 0 !important;
498
+ }
499
+
500
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
501
+ padding: 0 0 0 50px;
502
+
503
+ @media (max-width: 767px) {
504
+ padding: 0 0 0 30px;
505
+ }
506
+
507
+ &:before {
508
+ left: 0;
509
+ right: auto;
510
+ }
511
+
512
+ &:after {
513
+ left: 5px;
514
+ }
515
+
516
+ .eael-feature-list-content-box {
517
+
518
+ }
519
+ }
520
+ }
521
+
522
+ &.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-top,
523
+ &.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-top,
524
+ &.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-top,
525
+ &.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-top,
526
+ &.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-top,
527
+ &.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-top,
528
+ &.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-top,
529
+ &.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-top,
530
+ &.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-top {
531
+ .eael-feature-list-content-box {
532
+ margin-left: 0 !important;
533
+ margin-right: 0 !important;
534
+ margin-bottom: 0 !important;
535
+ }
536
+
537
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
538
+ padding: 0 0 0 50px;
539
+
540
+ @media (max-width: 767px) {
541
+ padding: 0 0 0 30px;
542
+ }
543
+
544
+ &:before {
545
+ left: 0;
546
+ right: auto;
547
+ }
548
+
549
+ &:after {
550
+ left: 5px;
551
+ }
552
+ }
553
+ }
554
+
555
+ &.-icon-position-left.-tablet-icon-position-left.-mobile-icon-position-right,
556
+ &.-icon-position-left.-tablet-icon-position-right.-mobile-icon-position-right,
557
+ &.-icon-position-left.-tablet-icon-position-top.-mobile-icon-position-right,
558
+ &.-icon-position-right.-tablet-icon-position-left.-mobile-icon-position-right,
559
+ &.-icon-position-right.-tablet-icon-position-right.-mobile-icon-position-right,
560
+ &.-icon-position-right.-tablet-icon-position-top.-mobile-icon-position-right,
561
+ &.-icon-position-top.-tablet-icon-position-left.-mobile-icon-position-right,
562
+ &.-icon-position-top.-tablet-icon-position-right.-mobile-icon-position-right,
563
+ &.-icon-position-top.-tablet-icon-position-top.-mobile-icon-position-right {
564
+ .eael-feature-list-content-box {
565
+ margin-left: 0 !important;
566
+ margin-top: 0 !important;
567
+ margin-bottom: 0 !important;
568
+ }
569
+
570
+ .eael-feature-list-items.connector-type-modern .eael-feature-list-item {
571
+ padding: 0 50px 0 0;
572
+
573
+ @media (max-width: 767px) {
574
+ padding: 0 30px 0 0;
575
+ }
576
+
577
+ &:before {
578
+ right: 0;
579
+ left: auto;
580
+ }
581
+
582
+ &:after {
583
+ left: auto;
584
+ right: 5px;
585
+ }
586
+ }
587
+ }
588
+
589
+ }
590
+ }
assets/sass/_mixins.scss ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ // Border Radius
3
+
4
+ @mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
5
+ @if $enable-rounded {
6
+ border-radius: $radius;
7
+ } @else if $fallback-border-radius != false {
8
+ border-radius: $fallback-border-radius;
9
+ }
10
+ }
11
+
12
+
13
+ // Transition
14
+
15
+ @mixin transition($transition...) {
16
+ @if $enable-transitions {
17
+ @if length($transition) == 0 {
18
+ transition: $transition-base;
19
+ } @else {
20
+ transition: $transition;
21
+ }
22
+ }
23
+
24
+ @if $enable-prefers-reduced-motion-media-query {
25
+ @media (prefers-reduced-motion: reduce) {
26
+ transition: none;
27
+ }
28
+ }
29
+ }
assets/sass/_particles.scss CHANGED
@@ -1,3 +1,9 @@
1
- .elementor-section.eael-particles-section .elementor-container {
 
2
  z-index: 99;
3
  }
 
 
 
 
 
1
+ .elementor-section.eael-particles-section .elementor-container,
2
+ .elementor-section .elementor-container {
3
  z-index: 99;
4
  }
5
+
6
+ .elementor-section.eael-particles-section > canvas{
7
+ position: absolute;
8
+ top:0;
9
+ }
assets/sass/_variables.scss ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ // Color system
2
+
3
+ $white: #fff !default;
4
+
5
+ $border-radius: .25rem !default;
6
+
7
+ $transition-base: all .2s ease-in-out !default;
8
+
9
+ $enable-rounded: true !default;
10
+ $enable-transitions: true !default;
11
+ $enable-prefers-reduced-motion-media-query: true !default;
assets/sass/essential-addons-elementor.scss CHANGED
@@ -41,8 +41,11 @@
41
  32. Tooltip
42
  33. Progress Bar
43
  34. Image accordion
 
44
  -------------------------------------------------------*/
45
 
 
 
46
  @import "general";
47
  @import "general-slider";
48
  @import "fancy-text";
@@ -78,3 +81,4 @@
78
  @import "progress-bar";
79
  @import "img-accordion";
80
  @import "particles";
 
41
  32. Tooltip
42
  33. Progress Bar
43
  34. Image accordion
44
+ 35. Feature List
45
  -------------------------------------------------------*/
46
 
47
+ @import "variables";
48
+ @import "mixins";
49
  @import "general";
50
  @import "general-slider";
51
  @import "fancy-text";
81
  @import "progress-bar";
82
  @import "img-accordion";
83
  @import "particles";
84
+ @import "feature-list";
elements/feature-list/feature-list.php ADDED
@@ -0,0 +1,733 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Elementor;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit;
7
+ } // If this file is called directly, abort.
8
+
9
+ class Widget_Eael_Feature_List extends Widget_Base {
10
+
11
+ public function get_name() {
12
+ return 'eael-feature-list';
13
+ }
14
+
15
+ public function get_title() {
16
+ return esc_html__( 'EA Feature List', 'essential-addons-elementor' );
17
+ }
18
+
19
+ public function get_icon() {
20
+ return 'eicon-bullet-list';
21
+ }
22
+
23
+ public function get_categories() {
24
+ return [ 'essential-addons-elementor' ];
25
+ }
26
+
27
+ protected function _register_controls() {
28
+ /**
29
+ * Feature List Settings
30
+ */
31
+ $this->start_controls_section(
32
+ 'eael_section_feature_list_content_settings',
33
+ [
34
+ 'label' => esc_html__( 'Content Settings', 'essential-addons-elementor' )
35
+ ]
36
+ );
37
+
38
+ $this->add_control(
39
+ 'eael_feature_list',
40
+ [
41
+ 'label' => esc_html__( 'Feature Item', 'essential-addons-elementor' ),
42
+ 'type' => Controls_Manager::REPEATER,
43
+ 'seperator' => 'before',
44
+ 'default' => [
45
+ [
46
+ 'eael_feature_list_icon' => 'fa fa-check',
47
+ 'eael_feature_list_title' => esc_html__( 'Feature Item 1', 'essential-addons-elementor' ),
48
+ 'eael_feature_list_content' => esc_html__( 'Feature Item 1 content', 'essential-addons-elementor' )
49
+ ],
50
+ [
51
+ 'eael_feature_list_icon' => 'fa fa-times',
52
+ 'eael_feature_list_title' => esc_html__( 'Feature Item 2', 'essential-addons-elementor' ),
53
+ 'eael_feature_list_content' => esc_html__( 'Feature Item 2 content', 'essential-addons-elementor' )
54
+ ],
55
+ [
56
+ 'eael_feature_list_icon' => 'fa fa-dot-circle-o',
57
+ 'eael_feature_list_title' => esc_html__( 'Feature Item 3', 'essential-addons-elementor' ),
58
+ 'eael_feature_list_content' => esc_html__( 'Feature Item 3 content', 'essential-addons-elementor' )
59
+ ]
60
+ ],
61
+ 'fields' => [
62
+ [
63
+ 'name' => 'eael_feature_list_icon_type',
64
+ 'label' => esc_html__( 'Icon Type', 'essential-addons-elementor' ),
65
+ 'type' => Controls_Manager::CHOOSE,
66
+ 'options' => [
67
+ 'icon' => [
68
+ 'title' => esc_html__( 'Icon', 'essential-addons-elementor' ),
69
+ 'icon' => 'fa fa-star',
70
+ ],
71
+ 'image' => [
72
+ 'title' => esc_html__( 'Image', 'essential-addons-elementor' ),
73
+ 'icon' => 'fa fa-picture-o',
74
+ ],
75
+ ],
76
+ 'default' => 'icon',
77
+ 'label_block' => false,
78
+ ],
79
+ [
80
+ 'name' => 'eael_feature_list_icon',
81
+ 'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
82
+ 'type' => Controls_Manager::ICON,
83
+ 'default' => 'fa fa-plus',
84
+ 'condition' => [
85
+ 'eael_feature_list_icon_type' => 'icon'
86
+ ]
87
+ ],
88
+ [
89
+ 'name' => 'eael_feature_list_img',
90
+ 'label' => esc_html__( 'Image', 'essential-addons-elementor' ),
91
+ 'type' => Controls_Manager::MEDIA,
92
+ 'default' => [
93
+ 'url' => Utils::get_placeholder_image_src(),
94
+ ],
95
+ 'condition' => [
96
+ 'eael_feature_list_icon_type' => 'image'
97
+ ]
98
+ ],
99
+ [
100
+ 'name' => 'eael_feature_list_title',
101
+ 'label' => esc_html__( 'Title', 'essential-addons-elementor' ),
102
+ 'type' => Controls_Manager::TEXT,
103
+ 'default' => esc_html__( 'Title', 'essential-addons-elementor' ),
104
+ 'dynamic' => [ 'active' => true ]
105
+ ],
106
+ [
107
+ 'name' => 'eael_feature_list_content',
108
+ 'label' => esc_html__( 'Content', 'essential-addons-elementor' ),
109
+ 'type' => Controls_Manager::TEXTAREA,
110
+ 'default' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio, neque qui velit. Magni dolorum quidem ipsam eligendi, totam, facilis laudantium cum accusamus ullam voluptatibus commodi numquam, error, est. Ea, consequatur.', 'essential-addons-elementor' ),
111
+ 'dynamic' => [ 'active' => true ]
112
+ ],
113
+ [
114
+ 'name' => 'eael_feature_list_link',
115
+ 'label' => esc_html__( 'Link', 'essential-addons-elementor' ),
116
+ 'type' => Controls_Manager::URL,
117
+ 'dynamic' => [ 'active' => true ],
118
+ 'placeholder' => esc_html__( 'https://your-link.com', 'essential-addons-elementor' ),
119
+ 'separator' => 'before',
120
+ ],
121
+ ],
122
+ 'title_field' => '<i class="{{ eael_feature_list_icon }}" aria-hidden="true"></i> {{{ eael_feature_list_title }}}',
123
+ ]
124
+ );
125
+
126
+ $this->add_control(
127
+ 'eael_feature_list_title_size',
128
+ [
129
+ 'label' => esc_html__( 'Title HTML Tag', 'essential-addons-elementor' ),
130
+ 'type' => Controls_Manager::SELECT,
131
+ 'options' => [
132
+ 'h1' => 'H1',
133
+ 'h2' => 'H2',
134
+ 'h3' => 'H3',
135
+ 'h4' => 'H4',
136
+ 'h5' => 'H5',
137
+ 'h6' => 'H6',
138
+ 'div' => 'div',
139
+ 'span' => 'span',
140
+ 'p' => 'p',
141
+ ],
142
+ 'default' => 'h3',
143
+ 'separator' => 'before'
144
+ ]
145
+ );
146
+
147
+ $this->add_control(
148
+ 'eael_feature_list_icon_shape',
149
+ [
150
+ 'label' => esc_html__( 'Icon Shape', 'essential-addons-elementor' ),
151
+ 'type' => Controls_Manager::SELECT,
152
+ 'default' => 'circle',
153
+ 'label_block' => false,
154
+ 'options' => [
155
+ 'circle' => esc_html__( 'Circle', 'essential-addons-elementor' ),
156
+ 'square' => esc_html__( 'Square', 'essential-addons-elementor' ),
157
+ 'rhombus' => esc_html__( 'Rhombus', 'essential-addons-elementor' ),
158
+ ],
159
+ ]
160
+ );
161
+
162
+ $this->add_control(
163
+ 'eael_feature_list_icon_shape_view',
164
+ [
165
+ 'label' => esc_html__( 'Shape View', 'essential-addons-elementor' ),
166
+ 'type' => Controls_Manager::SELECT,
167
+ 'default' => 'stacked',
168
+ 'label_block' => false,
169
+ 'options' => [
170
+ 'framed' => esc_html__( 'Framed', 'essential-addons-elementor' ),
171
+ 'stacked' => esc_html__( 'Stacked', 'essential-addons-elementor' )
172
+ ],
173
+ ]
174
+ );
175
+
176
+ $this->add_responsive_control(
177
+ 'eael_feature_list_icon_position',
178
+ [
179
+ 'label' => esc_html__( 'Icon Position', 'essential-addons-elementor' ),
180
+ 'type' => Controls_Manager::CHOOSE,
181
+ 'options' => [
182
+ 'left' => [
183
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
184
+ 'icon' => 'fa fa-align-left',
185
+ ],
186
+ 'top' => [
187
+ 'title' => esc_html__( 'Top', 'essential-addons-elementor' ),
188
+ 'icon' => 'fa fa-align-center',
189
+ ],
190
+ 'right' => [
191
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
192
+ 'icon' => 'fa fa-align-right',
193
+ ],
194
+ ],
195
+ 'default' => 'left',
196
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
197
+ 'desktop_default' => 'left',
198
+ 'tablet_default' => 'left',
199
+ 'mobile_default' => 'left',
200
+ 'prefix_class' => '%s-icon-position-',
201
+ 'toggle' => false,
202
+ ]
203
+ );
204
+
205
+ $this->add_control(
206
+ 'eael_feature_list_connector',
207
+ [
208
+ 'label' => esc_html__( 'Show Connector', 'essential-addons-elementor' ),
209
+ 'type' => Controls_Manager::SWITCHER,
210
+ 'default' => 'no',
211
+ 'label_on' => esc_html__( 'Show', 'essential-addons-elementor' ),
212
+ 'label_off' => esc_html__( 'No', 'essential-addons-elementor' ),
213
+ 'return_value' => 'yes',
214
+ ]
215
+ );
216
+
217
+ $this->end_controls_section();
218
+
219
+ /**
220
+ * -------------------------------------------
221
+ * Feature List Style
222
+ * -------------------------------------------
223
+ */
224
+
225
+ $this->start_controls_section(
226
+ 'eael_section_feature_list_style',
227
+ [
228
+ 'label' => esc_html__( 'List', 'essential-addons-elementor' ),
229
+ 'tab' => Controls_Manager::TAB_STYLE,
230
+ ]
231
+ );
232
+
233
+ $this->add_responsive_control(
234
+ 'eael_feature_list_space_between',
235
+ [
236
+ 'label' => esc_html__( 'Space Between', 'essential-addons-elementor' ),
237
+ 'type' => Controls_Manager::SLIDER,
238
+ 'default' => [
239
+ 'size' => 15,
240
+ ],
241
+ 'range' => [
242
+ 'px' => [
243
+ 'max' => 50,
244
+ ],
245
+ ],
246
+ 'selectors' => [
247
+ '{{WRAPPER}} .eael-feature-list-items .eael-feature-list-item:not(:last-child)' => 'padding-bottom: calc({{SIZE}}{{UNIT}}/2)',
248
+ '{{WRAPPER}} .eael-feature-list-items .eael-feature-list-item:not(:first-child)' => 'margin-top: calc({{SIZE}}{{UNIT}}/2)',
249
+ '{{WRAPPER}} .eael-feature-list-items.connector-type-modern .eael-feature-list-item:not(:last-child):before' => 'height: calc(100% + {{SIZE}}{{UNIT}})',
250
+ // '{{WRAPPER}} .eael-feature-list-items .eael-feature-list-item' => 'margin-right: calc({{SIZE}}{{UNIT}}/2); margin-left: calc({{SIZE}}{{UNIT}}/2)',
251
+ // '{{WRAPPER}} .eael-feature-list-items' => 'margin-right: calc(-{{SIZE}}{{UNIT}}/2); margin-left: calc(-{{SIZE}}{{UNIT}}/2)',
252
+ 'body.rtl {{WRAPPER}} .eael-feature-list-items .eael-feature-list-item:after' => 'left: calc(-{{SIZE}}{{UNIT}}/2)',
253
+ // 'body:not(.rtl) {{WRAPPER}} .eael-feature-list-items .eael-feature-list-item:after' => 'right: calc(-{{SIZE}}{{UNIT}}/2)',
254
+ ],
255
+ ]
256
+ );
257
+
258
+ $this->add_control(
259
+ 'eael_feature_list_connector_type',
260
+ [
261
+ 'label' => esc_html__( 'Connector Type', 'essential-addons-elementor' ),
262
+ 'type' => Controls_Manager::SELECT,
263
+ 'default' => 'connector-type-classic',
264
+ 'label_block' => false,
265
+ 'options' => [
266
+ 'connector-type-classic' => esc_html__( 'Classic', 'essential-addons-elementor' ),
267
+ 'connector-type-modern' => esc_html__( 'Modern', 'essential-addons-elementor' ),
268
+ ],
269
+ 'condition' => [
270
+ 'eael_feature_list_connector' => 'yes',
271
+ 'eael_feature_list_icon_position!' => 'top',
272
+ ],
273
+ 'separator' => 'before',
274
+ ]
275
+ );
276
+
277
+ $this->add_control(
278
+ 'eael_feature_list_connector_styles',
279
+ [
280
+ 'label' => esc_html__( 'Connector Styles', 'essential-addons-elementor' ),
281
+ 'type' => Controls_Manager::SELECT,
282
+ 'default' => 'solid',
283
+ 'label_block' => false,
284
+ 'options' => [
285
+ 'solid' => esc_html__( 'Solid', 'essential-addons-elementor' ),
286
+ 'dashed' => esc_html__( 'Dashed', 'essential-addons-elementor' ),
287
+ 'dotted' => esc_html__( 'Dotted', 'essential-addons-elementor' ),
288
+ ],
289
+ 'condition' => [
290
+ 'eael_feature_list_connector' => 'yes',
291
+ ],
292
+ 'selectors' => [
293
+ '{{WRAPPER}} .connector-type-classic .connector' => 'border-style: {{VALUE}};',
294
+ '{{WRAPPER}} .connector-type-modern .eael-feature-list-item:before, {{WRAPPER}} .connector-type-modern .eael-feature-list-item:after' => 'border-style: {{VALUE}};',
295
+ ],
296
+ ]
297
+ );
298
+
299
+ $this->add_control(
300
+ 'eael_feature_list_connector_color',
301
+ [
302
+ 'label' => esc_html__( 'Connector Color', 'essential-addons-elementor' ),
303
+ 'type' => Controls_Manager::COLOR,
304
+ 'scheme' => [
305
+ 'type' => Scheme_Color::get_type(),
306
+ 'value' => Scheme_Color::COLOR_1,
307
+ ],
308
+ 'default' => '#3858f4',
309
+ 'selectors' => [
310
+ '{{WRAPPER}} .connector-type-classic .connector' => 'border-color: {{VALUE}};',
311
+ '{{WRAPPER}} .connector-type-modern .eael-feature-list-item:before, {{WRAPPER}} .connector-type-modern .eael-feature-list-item:after' => 'border-color: {{VALUE}};',
312
+ ],
313
+ 'condition' => [
314
+ 'eael_feature_list_connector' => 'yes',
315
+ ],
316
+ ]
317
+ );
318
+
319
+ $this->add_control(
320
+ 'eael_feature_list_connector_width',
321
+ [
322
+ 'label' => esc_html__( 'Connector Width', 'essential-addons-elementor' ),
323
+ 'type' => Controls_Manager::SLIDER,
324
+ 'default' => [
325
+ 'size' => 1,
326
+ ],
327
+ 'range' => [
328
+ 'px' => [
329
+ 'min' => 1,
330
+ 'max' => 5,
331
+ ],
332
+ ],
333
+ 'selectors' => [
334
+ '{{WRAPPER}} .connector-type-classic .connector' => 'border-width: {{SIZE}}{{UNIT}};',
335
+ '{{WRAPPER}}.-icon-position-left .connector-type-modern .eael-feature-list-item:before, {{WRAPPER}}.-icon-position-left .connector-type-modern .eael-feature-list-item:after' => 'border-width: {{SIZE}}{{UNIT}};',
336
+ '{{WRAPPER}}.-icon-position-right .connector-type-modern .eael-feature-list-item:before, {{WRAPPER}}.-icon-position-right .connector-type-modern .eael-feature-list-item:after' => 'border-width: {{SIZE}}{{UNIT}};',
337
+ ],
338
+ 'condition' => [
339
+ 'eael_feature_list_connector' => 'yes',
340
+ ],
341
+ ]
342
+ );
343
+
344
+ $this->end_controls_section();
345
+
346
+ /**
347
+ * -------------------------------------------
348
+ * Feature List Icon Style
349
+ * -------------------------------------------
350
+ */
351
+ $this->start_controls_section(
352
+ 'eael_section_feature_list_style_icon',
353
+ [
354
+ 'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
355
+ 'tab' => Controls_Manager::TAB_STYLE,
356
+ ]
357
+ );
358
+
359
+ $this->add_control(
360
+ 'eael_feature_list_primary_color',
361
+ [
362
+ 'label' => esc_html__( 'Primary Color', 'essential-addons-elementor' ),
363
+ 'type' => Controls_Manager::COLOR,
364
+ 'scheme' => [
365
+ 'type' => Scheme_Color::get_type(),
366
+ 'value' => Scheme_Color::COLOR_1,
367
+ ],
368
+ 'default' => '#3858f4',
369
+ 'selectors' => [
370
+ '{{WRAPPER}} .eael-feature-list-items.stacked .eael-feature-list-icon' => 'background-color: {{VALUE}};',
371
+ '{{WRAPPER}} .eael-feature-list-items.framed .eael-feature-list-icon' => 'color: {{VALUE}}; border-color: {{VALUE}};',
372
+ ],
373
+ ]
374
+ );
375
+
376
+ $this->add_control(
377
+ 'eael_feature_list_secondary_color',
378
+ [
379
+ 'label' => esc_html__( 'Secondary Color', 'essential-addons-elementor' ),
380
+ 'type' => Controls_Manager::COLOR,
381
+ 'default' => '#ffffff',
382
+ 'selectors' => [
383
+ '{{WRAPPER}} .eael-feature-list-items.framed .eael-feature-list-icon' => 'background-color: {{VALUE}};',
384
+ '{{WRAPPER}} .eael-feature-list-items.stacked .eael-feature-list-icon' => 'color: {{VALUE}};',
385
+ ],
386
+ ]
387
+ );
388
+
389
+ $this->add_responsive_control(
390
+ 'eael_feature_list_icon_space',
391
+ [
392
+ 'label' => esc_html__( 'Spacing', 'essential-addons-elementor' ),
393
+ 'type' => Controls_Manager::SLIDER,
394
+ 'range' => [
395
+ 'px' => [
396
+ 'min' => 0,
397
+ 'max' => 100,
398
+ ],
399
+ ],
400
+ 'devices' => [ 'desktop', 'tablet', 'mobile' ],
401
+ 'desktop_default' => [
402
+ 'size' => 30,
403
+ 'unit' => 'px',
404
+ ],
405
+ 'tablet_default' => [
406
+ 'size' => 20,
407
+ 'unit' => 'px',
408
+ ],
409
+ 'mobile_default' => [
410
+ 'size' => 10,
411
+ 'unit' => 'px',
412
+ ],
413
+ 'selectors' => [
414
+ '{{WRAPPER}}.-icon-position-left .eael-feature-list-content-box, {{WRAPPER}}.-icon-position-right .eael-feature-list-content-box, {{WRAPPER}}.-icon-position-top .eael-feature-list-content-box' => 'margin: {{SIZE}}{{UNIT}};',
415
+ '(mobile){{WRAPPER}}.-mobile-icon-position-left .eael-feature-list-content-box' => 'margin: {{SIZE}}{{UNIT}} 0 0 0 !important;',
416
+ '(mobile){{WRAPPER}}.-mobile-icon-position-right .eael-feature-list-content-box' => 'margin: {{SIZE}}{{UNIT}} 0 0 0 !important;',
417
+ ],
418
+ ]
419
+ );
420
+
421
+ $this->add_responsive_control(
422
+ 'eael_feature_list_icon_size',
423
+ [
424
+ 'label' => esc_html__( 'Size', 'essential-addons-elementor' ),
425
+ 'type' => Controls_Manager::SLIDER,
426
+ 'default' => [
427
+ 'size' => 30,
428
+ ],
429
+ 'range' => [
430
+ 'px' => [
431
+ 'min' => 6,
432
+ 'max' => 300,
433
+ ],
434
+ ],
435
+ 'selectors' => [
436
+ '{{WRAPPER}} .eael-feature-list-icon' => 'font-size: {{SIZE}}{{UNIT}};',
437
+ '{{WRAPPER}} .eael-feature-list-img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
438
+ ],
439
+ ]
440
+ );
441
+
442
+ $this->add_responsive_control(
443
+ 'eael_feature_list_icon_padding',
444
+ [
445
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
446
+ 'type' => Controls_Manager::SLIDER,
447
+ 'default' => [
448
+ 'size' => 15,
449
+ ],
450
+ 'range' => [
451
+ 'px' => [
452
+ 'min' => 0,
453
+ 'max' => 50,
454
+ ],
455
+ ],
456
+ 'selectors' => [
457
+ '{{WRAPPER}} .eael-feature-list-icon' => 'padding: {{SIZE}}{{UNIT}};',
458
+ ],
459
+ ]
460
+ );
461
+
462
+ $this->add_control(
463
+ 'eael_feature_list_icon_border_width',
464
+ [
465
+ 'label' => esc_html__( 'Border Width', 'essential-addons-elementor' ),
466
+ 'type' => Controls_Manager::DIMENSIONS,
467
+ 'default' => [
468
+ 'top' => '1',
469
+ 'right' => '1',
470
+ 'bottom' => '1',
471
+ 'left' => '1',
472
+ 'unit' => 'px',
473
+ ],
474
+ 'selectors' => [
475
+ '{{WRAPPER}} .eael-feature-list-icon' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
476
+ ],
477
+ 'condition' => [
478
+ 'eael_feature_list_icon_shape_view' => 'framed',
479
+ ],
480
+ ]
481
+ );
482
+
483
+ $this->add_control(
484
+ 'eael_feature_list_icon_border_radius',
485
+ [
486
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
487
+ 'type' => Controls_Manager::DIMENSIONS,
488
+ 'size_units' => [ 'px', '%' ],
489
+ 'selectors' => [
490
+ '{{WRAPPER}} .eael-feature-list-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
491
+ ]
492
+ ]
493
+ );
494
+
495
+ $this->end_controls_section();
496
+
497
+ /**
498
+ * -------------------------------------------
499
+ * Feature List Content Style
500
+ * -------------------------------------------
501
+ */
502
+ $this->start_controls_section(
503
+ 'eael_section_feature_list_style_content',
504
+ [
505
+ 'label' => esc_html__( 'Content', 'essential-addons-elementor' ),
506
+ 'tab' => Controls_Manager::TAB_STYLE,
507
+ ]
508
+ );
509
+
510
+ $this->add_control(
511
+ 'eael_feature_list_heading_title',
512
+ [
513
+ 'label' => esc_html__( 'Title', 'essential-addons-elementor' ),
514
+ 'type' => Controls_Manager::HEADING,
515
+ ]
516
+ );
517
+
518
+ $this->add_responsive_control(
519
+ 'eael_feature_list_title_bottom_space',
520
+ [
521
+ 'label' => esc_html__( 'Spacing', 'essential-addons-elementor' ),
522
+ 'type' => Controls_Manager::SLIDER,
523
+ 'default' => [
524
+ 'size' => 10,
525
+ ],
526
+ 'range' => [
527
+ 'px' => [
528
+ 'min' => 0,
529
+ 'max' => 100,
530
+ ],
531
+ ],
532
+ 'selectors' => [
533
+ '{{WRAPPER}} .eael-feature-list-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
534
+ ],
535
+ ]
536
+ );
537
+
538
+ $this->add_control(
539
+ 'eael_feature_list_title_color',
540
+ [
541
+ 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
542
+ 'type' => Controls_Manager::COLOR,
543
+ 'default' => '#414247',
544
+ 'selectors' => [
545
+ '{{WRAPPER}} .eael-feature-list-content-box .eael-feature-list-title' => 'color: {{VALUE}};',
546
+ ],
547
+ 'scheme' => [
548
+ 'type' => Scheme_Color::get_type(),
549
+ 'value' => Scheme_Color::COLOR_1,
550
+ ],
551
+ ]
552
+ );
553
+
554
+ $this->add_group_control(
555
+ Group_Control_Typography::get_type(),
556
+ [
557
+ 'name' => 'eael_feature_list_title_typography',
558
+ 'selector' => '{{WRAPPER}} .eael-feature-list-content-box .eael-feature-list-title',
559
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
560
+ ]
561
+ );
562
+
563
+ $this->add_control(
564
+ 'eael_feature_list_description',
565
+ [
566
+ 'label' => esc_html__( 'Description', 'essential-addons-elementor' ),
567
+ 'type' => Controls_Manager::HEADING,
568
+ 'separator' => 'before',
569
+ ]
570
+ );
571
+
572
+ $this->add_control(
573
+ 'eael_feature_list_description_color',
574
+ [
575
+ 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
576
+ 'type' => Controls_Manager::COLOR,
577
+ 'default' => '',
578
+ 'selectors' => [
579
+ '{{WRAPPER}} .eael-feature-list-content-box .eael-feature-list-content' => 'color: {{VALUE}};',
580
+ ],
581
+ 'scheme' => [
582
+ 'type' => Scheme_Color::get_type(),
583
+ 'value' => Scheme_Color::COLOR_3,
584
+ ],
585
+ ]
586
+ );
587
+
588
+ $this->add_group_control(
589
+ Group_Control_Typography::get_type(),
590
+ [
591
+ 'name' => 'eael_feature_list_description_typography',
592
+ 'selector' => '{{WRAPPER}} .eael-feature-list-content-box .eael-feature-list-content',
593
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
594
+ ]
595
+ );
596
+
597
+ $this->end_controls_section();
598
+ }
599
+
600
+ protected function render() {
601
+ $settings = $this->get_settings_for_display();
602
+
603
+ $this->add_render_attribute( 'eael_feature_list', [
604
+ 'id' => 'eael-feature-list-' . esc_attr( $this->get_id() ),
605
+ 'class' => [
606
+ 'eael-feature-list-items',
607
+ $settings['eael_feature_list_icon_shape'],
608
+ $settings['eael_feature_list_icon_shape_view'],
609
+ $settings['eael_feature_list_connector_type'],
610
+ ]
611
+ ] );
612
+
613
+ if ( ( $settings['eael_feature_list_icon_position'] == 'top' ) && ( $settings['eael_feature_list_connector'] == 'yes' ) ) {
614
+ $this->add_render_attribute( 'eael_feature_list', 'class', 'connector-type-modern' );
615
+ }
616
+
617
+ $this->add_render_attribute( 'eael_feature_list_item', 'class', 'eael-feature-list-item' );
618
+
619
+ $padding = $settings['eael_feature_list_icon_padding']['size'];
620
+ $font = $settings['eael_feature_list_icon_size']['size'];
621
+ $border = $settings['eael_feature_list_icon_border_width']['right'] + $settings['eael_feature_list_icon_border_width']['left'];
622
+
623
+
624
+ if ( $settings['eael_feature_list_icon_shape'] == 'rhombus' ) {
625
+ $margin = 30;
626
+ $connector_width = ( $padding * 2 ) + $font + $border + $margin;
627
+ } else {
628
+ $connector_width = ( $padding * 2 ) + $font + $border;
629
+ }
630
+
631
+
632
+ if ( $settings['eael_feature_list_icon_position'] == 'left' ) {
633
+
634
+ $connector = 'right: calc(100% - ' . $connector_width . 'px) !important; left: 0;';
635
+
636
+ } else {
637
+ $connector = 'left: calc(100% - ' . $connector_width . 'px) !important; right: 0;';
638
+ }
639
+
640
+
641
+ ?>
642
+
643
+ <ul <?php echo $this->get_render_attribute_string( 'eael_feature_list' ); ?>>
644
+ <?php $i = 0;
645
+ foreach ( $settings['eael_feature_list'] as $index => $item ) :
646
+
647
+ $list_icon_setting_key = $this->get_repeater_setting_key( 'eael_feature_list_icon', 'eael_feature_list', $index );
648
+ $list_title_setting_key = $this->get_repeater_setting_key( 'eael_feature_list_title', 'eael_feature_list', $index );
649
+ $list_content_setting_key = $this->get_repeater_setting_key( 'eael_feature_list_content', 'eael_feature_list', $index );
650
+ $list_link_setting_key = $this->get_repeater_setting_key( 'eael_feature_list_link', 'eael_feature_list', $index );
651
+
652
+ $this->add_render_attribute( $list_icon_setting_key, 'class', 'eael-feature-list-icon' );
653
+ $this->add_render_attribute( $list_title_setting_key, 'class', 'eael-feature-list-title' );
654
+ $this->add_render_attribute( $list_content_setting_key, 'class', 'eael-feature-list-content' );
655
+
656
+ $feature_icon_attributes = $this->get_render_attribute_string( $list_icon_setting_key );
657
+
658
+ $feature_icon_tag = 'span';
659
+ $feature_has_icon = ! empty( $item['eael_feature_list_icon'] );
660
+
661
+ if ( ! empty( $item['eael_feature_list_link']['url'] ) ) {
662
+ $this->add_render_attribute( $list_link_setting_key, 'href', $item['eael_feature_list_link']['url'] );
663
+
664
+ if ( $item['eael_feature_list_link']['is_external'] ) {
665
+ $this->add_render_attribute( $list_link_setting_key, 'target', '_blank' );
666
+ }
667
+
668
+ if ( $item['eael_feature_list_link']['nofollow'] ) {
669
+ $this->add_render_attribute( $list_link_setting_key, 'rel', 'nofollow' );
670
+ }
671
+
672
+ $feature_icon_tag = 'a';
673
+ }
674
+
675
+ $feature_link_attributes = $this->get_render_attribute_string( $list_link_setting_key );
676
+
677
+ ?>
678
+ <li class="eael-feature-list-item">
679
+ <?php if ( 'yes' == $settings['eael_feature_list_connector'] ) : ?>
680
+ <span class="connector" style="<?php echo $connector; ?>"></span>
681
+ <?php endif; ?>
682
+
683
+ <?php if ( $feature_has_icon ) : ?>
684
+
685
+ <div class="eael-feature-list-icon-box">
686
+ <<?php echo implode( ' ', [
687
+ $feature_icon_tag,
688
+ $feature_icon_attributes,
689
+ $feature_link_attributes
690
+ ] ); ?>>
691
+
692
+ <?php if ($item['eael_feature_list_icon_type'] == 'icon') { ?>
693
+ <i class="<?php echo esc_attr( $item['eael_feature_list_icon'] ); ?>" aria-hidden="true"></i>
694
+ <?php } ?>
695
+
696
+ <?php if ($item['eael_feature_list_icon_type'] == 'image') {
697
+ $this->add_render_attribute('feature_list_image'.$i, [
698
+ 'src' => esc_url( $item['eael_feature_list_img']['url'] ),
699
+ 'class' => 'eael-feature-list-img',
700
+ 'alt' => esc_attr( $item['eael_feature_list_title'] )
701
+ ]);
702
+
703
+ ?>
704
+ <img <?php echo $this->get_render_attribute_string('feature_list_image'.$i); ?>>
705
+ <?php } ?>
706
+
707
+ </<?php echo $feature_icon_tag; ?>>
708
+ </div>
709
+
710
+ <?php endif; ?>
711
+
712
+ <div class="eael-feature-list-content-box">
713
+ <<?php echo implode( ' ', [
714
+ $settings['eael_feature_list_title_size'],
715
+ $this->get_render_attribute_string( $list_title_setting_key )
716
+ ] ); ?>
717
+ ><?php echo $item['eael_feature_list_title']; ?></<?php echo $settings['eael_feature_list_title_size']; ?>
718
+ >
719
+ <p <?php echo $this->get_render_attribute_string( $list_content_setting_key ); ?>><?php echo $item['eael_feature_list_content']; ?></p>
720
+ </div>
721
+
722
+ </li>
723
+ <?php $i++; endforeach; ?>
724
+ </ul>
725
+ <?php
726
+ }
727
+
728
+ protected function _content_template() {
729
+ }
730
+ }
731
+
732
+
733
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Feature_List() );
elements/flipbox/flipbox.php CHANGED
@@ -96,7 +96,6 @@ class Widget_Eael_Flip_Box extends Widget_Base {
96
  'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
97
  'type' => Controls_Manager::ICON,
98
  'default' => 'fa fa-snowflake-o',
99
- 'separator' => 'before',
100
  'condition' => [
101
  'eael_flipbox_img_or_icon' => 'icon'
102
  ]
@@ -116,7 +115,6 @@ class Widget_Eael_Flip_Box extends Widget_Base {
116
  'max' => 500,
117
  ],
118
  ],
119
- 'separator' => 'before',
120
  'selectors' => [
121
  '{{WRAPPER}} .eael-elements-flip-box-front-container .eael-elements-flip-box-icon-image > img' => 'width: {{SIZE}}px;'
122
  ],
@@ -200,9 +198,8 @@ class Widget_Eael_Flip_Box extends Widget_Base {
200
  'max' => 500,
201
  ],
202
  ],
203
- 'separator' => 'before',
204
  'selectors' => [
205
- '{{WRAPPER}} .eael-elements-flip-box-rear-container .flipbox-back-image-icon > img' => 'width: {{SIZE}}px;'
206
  ],
207
  'condition' => [
208
  'eael_flipbox_img_or_icon_back' => 'img'
@@ -237,80 +234,71 @@ class Widget_Eael_Flip_Box extends Widget_Base {
237
  'label' => esc_html__( 'Flipbox Content', 'essential-addons-elementor' ),
238
  ]
239
  );
240
- $this->add_responsive_control(
241
- 'eael_flipbox_front_or_back_content',
242
- [
243
- 'label' => esc_html__( 'Front or Back Content', 'essential-addons-elementor' ),
244
- 'type' => Controls_Manager::CHOOSE,
245
- 'label_block' => true,
246
- 'options' => [
247
- 'front' => [
248
- 'title' => esc_html__( 'Front Content', 'essential-addons-elementor' ),
249
- 'icon' => 'fa fa-reply',
250
- ],
251
- 'back' => [
252
- 'title' => esc_html__( 'Back Content', 'essential-addons-elementor' ),
253
- 'icon' => 'fa fa-share',
254
- ],
255
- ],
256
- 'default' => 'front',
257
- ]
258
- );
259
- /**
260
- * Condition: 'eael_flipbox_front_or_back_content' => 'front'
261
- */
262
- $this->add_control(
263
- 'eael_flipbox_front_title',
264
- [
265
- 'label' => esc_html__( 'Front Title', 'essential-addons-elementor' ),
266
- 'type' => Controls_Manager::TEXT,
267
- 'label_block' => true,
268
- 'default' => esc_html__( 'Elementor Flipbox', 'essential-addons-elementor' ),
269
- 'condition' => [
270
- 'eael_flipbox_front_or_back_content' => 'front'
271
  ]
272
- ]
273
- );
274
- $this->add_control(
275
- 'eael_flipbox_front_text',
276
- [
277
- 'label' => esc_html__( 'Front Text', 'essential-addons-elementor' ),
278
- 'type' => Controls_Manager::WYSIWYG,
279
- 'label_block' => true,
280
- 'default' => __( 'This is front-end content.', 'essential-addons-elementor' ),
281
- 'condition' => [
282
- 'eael_flipbox_front_or_back_content' => 'front'
283
  ]
284
- ]
285
- );
286
- /**
287
- * Condition: 'eael_flipbox_front_or_back_content' => 'back'
288
- */
289
- $this->add_control(
290
- 'eael_flipbox_back_title',
291
- [
292
- 'label' => esc_html__( 'Back Title', 'essential-addons-elementor' ),
293
- 'type' => Controls_Manager::TEXT,
294
- 'label_block' => true,
295
- 'default' => esc_html__( 'Elementor Flipbox', 'essential-addons-elementor' ),
296
- 'condition' => [
297
- 'eael_flipbox_front_or_back_content' => 'back'
298
  ]
299
- ]
300
- );
301
- $this->add_control(
302
- 'eael_flipbox_back_text',
303
- [
304
- 'label' => esc_html__( 'Back Text', 'essential-addons-elementor' ),
305
- 'type' => Controls_Manager::WYSIWYG,
306
- 'label_block' => true,
307
- 'default' => __( 'This is back-end content.', 'essential-addons-elementor' ),
308
- 'condition' => [
309
- 'eael_flipbox_front_or_back_content' => 'back'
310
  ]
311
- ]
312
- );
313
- $this->add_responsive_control(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  'eael_flipbox_content_alignment',
315
  [
316
  'label' => esc_html__( 'Content Alignment', 'essential-addons-elementor' ),
@@ -334,6 +322,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
334
  'prefix_class' => 'eael-flipbox-content-align-',
335
  ]
336
  );
 
337
  $this->end_controls_section();
338
 
339
  /**
@@ -497,7 +486,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
497
  $this->add_responsive_control(
498
  'eael_flipbox_front_back_padding',
499
  [
500
- 'label' => esc_html__( 'Fornt / Back Content Padding', 'essential-addons-elementor' ),
501
  'type' => Controls_Manager::DIMENSIONS,
502
  'size_units' => [ 'px', 'em', '%' ],
503
  'selectors' => [
@@ -601,7 +590,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
601
  ],
602
  'selectors' => [
603
  '{{WRAPPER}} .eael-elements-flip-box-icon-image img' => 'border-radius: {{SIZE}}px;',
604
- '{{WRAPPER}} .flipbox-back-image-icon img' => 'border-radius: {{SIZE}}px;',
605
  ],
606
  'condition' => [
607
  'eael_flipbox_img_or_icon' => 'img',
@@ -616,7 +605,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
616
  * -------------------------------------------
617
  * Tab Style (Flip Box Icon Style)
618
  * -------------------------------------------
619
- */
620
  $this->start_controls_section(
621
  'eael_section_flipbox_icon_style_settings',
622
  [
@@ -628,56 +617,122 @@ class Widget_Eael_Flip_Box extends Widget_Base {
628
  ]
629
  );
630
 
631
- $this->add_group_control(
632
- Group_Control_Border::get_type(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
633
  [
634
- 'name' => 'eael_flipbox_border',
635
- 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
636
- 'selector' => '{{WRAPPER}} .eael-elements-flip-box-icon-image',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
637
  'condition' => [
638
  'eael_flipbox_img_or_icon' => 'icon'
639
  ]
640
  ]
641
- );
642
-
643
- $this->add_responsive_control(
644
- 'eael_flipbox_icon_padding',
645
- [
646
- 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
647
- 'type' => Controls_Manager::DIMENSIONS,
648
- 'size_units' => [ 'px', 'em' ],
649
- 'selectors' => [
650
- '{{WRAPPER}} .eael-elements-flip-box-icon-image' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
651
- ],
652
- ]
653
- );
654
 
655
- $this->add_control(
656
- 'eael_flipbox_icon_border_radius',
657
- [
658
- 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
659
- 'type' => Controls_Manager::SLIDER,
660
- 'size_units' => [ 'px', '%' ],
661
- 'range' => [
662
- 'px' => [
663
- 'min' => 0,
664
- 'step' => 1,
665
- 'max' => 500,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
666
  ],
667
- '%' => [
668
- 'min' => 0,
669
- 'step' => 3,
670
- 'max' => 100
 
671
  ]
672
- ],
673
- 'selectors' => [
674
- '{{WRAPPER}} .eael-elements-flip-box-icon-image' => 'border-radius: {{SIZE}}{{UNIT}};',
675
- ],
676
- 'condition' => [
677
- 'eael_flipbox_img_or_icon' => 'icon'
678
  ]
679
- ]
680
- );
 
 
 
681
  $this->end_controls_section();
682
 
683
  /**
@@ -695,7 +750,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
695
 
696
  $this->start_controls_tabs('eael_section_flipbox_typo_style_settings');
697
  $this->start_controls_tab('eael_section_flipbox_typo_style_front_settings', [
698
- 'label' => esc_html__( 'Front Content', 'essential-addons-elementor' )
699
  ]);
700
 
701
  /**
@@ -796,7 +851,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
796
  $this->end_controls_tab();
797
 
798
  $this->start_controls_tab('eael_section_flipbox_typo_style_back_settings', [
799
- 'label' => esc_html__( 'Back Content', 'essential-addons-elementor' )
800
  ]);
801
 
802
  /**
@@ -817,7 +872,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
817
  'type' => Controls_Manager::COLOR,
818
  'default' => '#fff',
819
  'selectors' => [
820
- '{{WRAPPER}} .eael-elements-flip-box-rear-container .flipbox-back-image-icon i' => 'color: {{VALUE}};',
821
  ]
822
  ]
823
  );
@@ -826,7 +881,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
826
  Group_Control_Typography::get_type(),
827
  [
828
  'name' => 'eael_flipbox_back_icon_typography',
829
- 'selector' => '{{WRAPPER}} .eael-elements-flip-box-rear-container .flipbox-back-image-icon i'
830
  ]
831
  );
832
 
@@ -1167,7 +1222,7 @@ class Widget_Eael_Flip_Box extends Widget_Base {
1167
  <div class="eael-elements-flip-box-vertical-align">
1168
  <div class="eael-elements-flip-box-padding">
1169
  <?php if( 'none' != $settings['eael_flipbox_img_or_icon_back'] ) : ?>
1170
- <div class="flipbox-back-image-icon">
1171
  <?php if('img' == $settings['eael_flipbox_img_or_icon_back']) : ?>
1172
  <img <?php echo $this->get_render_attribute_string('flipbox-back-icon-image-container'); ?>>
1173
  <?php elseif('icon' == $settings['eael_flipbox_img_or_icon_back']): ?>
96
  'label' => esc_html__( 'Icon', 'essential-addons-elementor' ),
97
  'type' => Controls_Manager::ICON,
98
  'default' => 'fa fa-snowflake-o',
 
99
  'condition' => [
100
  'eael_flipbox_img_or_icon' => 'icon'
101
  ]
115
  'max' => 500,
116
  ],
117
  ],
 
118
  'selectors' => [
119
  '{{WRAPPER}} .eael-elements-flip-box-front-container .eael-elements-flip-box-icon-image > img' => 'width: {{SIZE}}px;'
120
  ],
198
  'max' => 500,
199
  ],
200
  ],
 
201
  'selectors' => [
202
+ '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image > img' => 'width: {{SIZE}}px;'
203
  ],
204
  'condition' => [
205
  'eael_flipbox_img_or_icon_back' => 'img'
234
  'label' => esc_html__( 'Flipbox Content', 'essential-addons-elementor' ),
235
  ]
236
  );
237
+
238
+ $this->start_controls_tabs('eael_flipbox_content_tabs');
239
+
240
+ $this->start_controls_tab(
241
+ 'eael_flipbox_content_front',
242
+ [
243
+ 'label' => __( 'Front', 'essential-addons-elementor' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
  ]
245
+ );
246
+
247
+ $this->add_control(
248
+ 'eael_flipbox_front_title',
249
+ [
250
+ 'label' => esc_html__( 'Front Title', 'essential-addons-elementor' ),
251
+ 'type' => Controls_Manager::TEXT,
252
+ 'label_block' => true,
253
+ 'default' => esc_html__( 'Front Title', 'essential-addons-elementor' ),
 
 
254
  ]
255
+ );
256
+
257
+ $this->add_control(
258
+ 'eael_flipbox_front_text',
259
+ [
260
+ 'label' => esc_html__( 'Front Text', 'essential-addons-elementor' ),
261
+ 'type' => Controls_Manager::WYSIWYG,
262
+ 'label_block' => true,
263
+ 'default' => __( 'This is front side content.', 'essential-addons-elementor' ),
 
 
 
 
 
264
  ]
265
+ );
266
+
267
+ $this->end_controls_tab();
268
+
269
+
270
+ $this->start_controls_tab(
271
+ 'eael_flipbox_content_back',
272
+ [
273
+ 'label' => __( 'Back', 'essential-addons-elementor' )
 
 
274
  ]
275
+ );
276
+
277
+ $this->add_control(
278
+ 'eael_flipbox_back_title',
279
+ [
280
+ 'label' => esc_html__( 'Back Title', 'essential-addons-elementor' ),
281
+ 'type' => Controls_Manager::TEXT,
282
+ 'label_block' => true,
283
+ 'default' => esc_html__( 'Back Title', 'essential-addons-elementor' ),
284
+ ]
285
+ );
286
+
287
+ $this->add_control(
288
+ 'eael_flipbox_back_text',
289
+ [
290
+ 'label' => esc_html__( 'Back Text', 'essential-addons-elementor' ),
291
+ 'type' => Controls_Manager::WYSIWYG,
292
+ 'label_block' => true,
293
+ 'default' => __( 'This is back side content.', 'essential-addons-elementor' ),
294
+ ]
295
+ );
296
+
297
+ $this->end_controls_tab();
298
+
299
+ $this->end_controls_tabs();
300
+
301
+ $this->add_control(
302
  'eael_flipbox_content_alignment',
303
  [
304
  'label' => esc_html__( 'Content Alignment', 'essential-addons-elementor' ),
322
  'prefix_class' => 'eael-flipbox-content-align-',
323
  ]
324
  );
325
+
326
  $this->end_controls_section();
327
 
328
  /**
486
  $this->add_responsive_control(
487
  'eael_flipbox_front_back_padding',
488
  [
489
+ 'label' => esc_html__( 'Content Padding', 'essential-addons-elementor' ),
490
  'type' => Controls_Manager::DIMENSIONS,
491
  'size_units' => [ 'px', 'em', '%' ],
492
  'selectors' => [
590
  ],
591
  'selectors' => [
592
  '{{WRAPPER}} .eael-elements-flip-box-icon-image img' => 'border-radius: {{SIZE}}px;',
593
+ '{{WRAPPER}} .eael-elements-flip-box-icon-image img' => 'border-radius: {{SIZE}}px;',
594
  ],
595
  'condition' => [
596
  'eael_flipbox_img_or_icon' => 'img',
605
  * -------------------------------------------
606
  * Tab Style (Flip Box Icon Style)
607
  * -------------------------------------------
608
+ */
609
  $this->start_controls_section(
610
  'eael_section_flipbox_icon_style_settings',
611
  [
617
  ]
618
  );
619
 
620
+ $this->start_controls_tabs('eael_section_icon_style_settings');
621
+ $this->start_controls_tab('eael_section_icon_front_style_settings', [
622
+ 'label' => esc_html__( 'Front', 'essential-addons-elementor' )
623
+ ]);
624
+
625
+ $this->add_group_control(
626
+ Group_Control_Border::get_type(),
627
+ [
628
+ 'name' => 'eael_flipbox_icon_front_border',
629
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
630
+ 'selector' => '{{WRAPPER}} .eael-elements-flip-box-front-container .eael-elements-flip-box-icon-image',
631
+ 'condition' => [
632
+ 'eael_flipbox_img_or_icon' => 'icon'
633
+ ]
634
+ ]
635
+ );
636
+
637
+ $this->add_responsive_control(
638
+ 'eael_flipbox_icon_front_padding',
639
  [
640
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
641
+ 'type' => Controls_Manager::DIMENSIONS,
642
+ 'size_units' => [ 'px', 'em' ],
643
+ 'selectors' => [
644
+ '{{WRAPPER}} .eael-elements-flip-box-front-container .eael-elements-flip-box-icon-image' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
645
+ ],
646
+ ]
647
+ );
648
+
649
+ $this->add_control(
650
+ 'eael_flipbox_icon_front_border_radius',
651
+ [
652
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
653
+ 'type' => Controls_Manager::SLIDER,
654
+ 'size_units' => [ 'px', '%' ],
655
+ 'range' => [
656
+ 'px' => [
657
+ 'min' => 0,
658
+ 'step' => 1,
659
+ 'max' => 500,
660
+ ],
661
+ '%' => [
662
+ 'min' => 0,
663
+ 'step' => 3,
664
+ 'max' => 100
665
+ ]
666
+ ],
667
+ 'selectors' => [
668
+ '{{WRAPPER}} .eael-elements-flip-box-front-container .eael-elements-flip-box-icon-image' => 'border-radius: {{SIZE}}{{UNIT}};',
669
+ ],
670
  'condition' => [
671
  'eael_flipbox_img_or_icon' => 'icon'
672
  ]
673
  ]
674
+ );
675
+
676
+ $this->end_controls_tab();
677
+
678
+ $this->start_controls_tab('eael_section_icon_back_style_settings', [
679
+ 'label' => esc_html__( 'Back', 'essential-addons-elementor' )
680
+ ]);
 
 
 
 
 
 
681
 
682
+ $this->add_group_control(
683
+ Group_Control_Border::get_type(),
684
+ [
685
+ 'name' => 'eael_flipbox_icon_back_border',
686
+ 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
687
+ 'selector' => '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image',
688
+ 'condition' => [
689
+ 'eael_flipbox_img_or_icon' => 'icon'
690
+ ]
691
+ ]
692
+ );
693
+
694
+ $this->add_responsive_control(
695
+ 'eael_flipbox_icon_back_padding',
696
+ [
697
+ 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
698
+ 'type' => Controls_Manager::DIMENSIONS,
699
+ 'size_units' => [ 'px', 'em' ],
700
+ 'selectors' => [
701
+ '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
702
+ ],
703
+ ]
704
+ );
705
+
706
+ $this->add_control(
707
+ 'eael_flipbox_icon_back_border_radius',
708
+ [
709
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
710
+ 'type' => Controls_Manager::SLIDER,
711
+ 'size_units' => [ 'px', '%' ],
712
+ 'range' => [
713
+ 'px' => [
714
+ 'min' => 0,
715
+ 'step' => 1,
716
+ 'max' => 500,
717
+ ],
718
+ '%' => [
719
+ 'min' => 0,
720
+ 'step' => 3,
721
+ 'max' => 100
722
+ ]
723
  ],
724
+ 'selectors' => [
725
+ '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image' => 'border-radius: {{SIZE}}{{UNIT}};',
726
+ ],
727
+ 'condition' => [
728
+ 'eael_flipbox_img_or_icon' => 'icon'
729
  ]
 
 
 
 
 
 
730
  ]
731
+ );
732
+
733
+ $this->end_controls_tab();
734
+ $this->end_controls_tabs();
735
+
736
  $this->end_controls_section();
737
 
738
  /**
750
 
751
  $this->start_controls_tabs('eael_section_flipbox_typo_style_settings');
752
  $this->start_controls_tab('eael_section_flipbox_typo_style_front_settings', [
753
+ 'label' => esc_html__( 'Front', 'essential-addons-elementor' )
754
  ]);
755
 
756
  /**
851
  $this->end_controls_tab();
852
 
853
  $this->start_controls_tab('eael_section_flipbox_typo_style_back_settings', [
854
+ 'label' => esc_html__( 'Back', 'essential-addons-elementor' )
855
  ]);
856
 
857
  /**
872
  'type' => Controls_Manager::COLOR,
873
  'default' => '#fff',
874
  'selectors' => [
875
+ '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image i' => 'color: {{VALUE}};',
876
  ]
877
  ]
878
  );
881
  Group_Control_Typography::get_type(),
882
  [
883
  'name' => 'eael_flipbox_back_icon_typography',
884
+ 'selector' => '{{WRAPPER}} .eael-elements-flip-box-rear-container .eael-elements-flip-box-icon-image i'
885
  ]
886
  );
887
 
1222
  <div class="eael-elements-flip-box-vertical-align">
1223
  <div class="eael-elements-flip-box-padding">
1224
  <?php if( 'none' != $settings['eael_flipbox_img_or_icon_back'] ) : ?>
1225
+ <div class="eael-elements-flip-box-icon-image">
1226
  <?php if('img' == $settings['eael_flipbox_img_or_icon_back']) : ?>
1227
  <img <?php echo $this->get_render_attribute_string('flipbox-back-icon-image-container'); ?>>
1228
  <?php elseif('icon' == $settings['eael_flipbox_img_or_icon_back']): ?>
elements/product-grid/product-grid.php CHANGED
File without changes
essential_adons_elementor.php CHANGED
@@ -4,7 +4,7 @@
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
- * Version: 2.9.6
8
  * Author URI: https://wpdeveloper.net/
9
  *
10
  * Text Domain: essential-addons-elementor
@@ -16,8 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
  define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
17
  define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
19
- define( 'ESSENTIAL_ADDONS_VERSION', '2.9.6' );
20
- define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.6' );
21
  define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
22
 
23
 
@@ -37,7 +37,7 @@ require_once ESSENTIAL_ADDONS_EL_PATH.'includes/extensions.php';
37
  */
38
  function eael_activated_modules() {
39
 
40
- $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' ];
41
 
42
  $eael_default_settings = array_fill_keys( $eael_default_keys, true );
43
  $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
@@ -170,6 +170,9 @@ function add_eael_elements() {
170
  if( $is_component_active['progress-bar'] ) {
171
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/progress-bar/progress-bar.php';
172
  }
 
 
 
173
  }
174
  add_action('elementor/widgets/widgets_registered','add_eael_elements');
175
 
@@ -242,7 +245,7 @@ function essential_addons_el_enqueue(){
242
  }
243
 
244
  if( $is_component_active['progress-bar'] ) {
245
- wp_enqueue_script('essential_addons_elementor-progress-bar',ESSENTIAL_ADDONS_EL_URL.'assets/js/loading-bar.min.js', array('jquery'),'1.0', true);
246
  }
247
  if( $is_component_active['section-particles'] ) {
248
  wp_enqueue_script(
@@ -313,7 +316,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
313
  }
314
  if( ! function_exists( 'essential_addons_elementor_lite_start_plugin_tracking' ) ) {
315
  function essential_addons_elementor_lite_start_plugin_tracking() {
316
- $wisdom = new Eael_Plugin_Usage_Tracker(
317
  __FILE__,
318
  'http://app.wpdeveloper.net',
319
  array(),
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
+ * Version: 2.9.7
8
  * Author URI: https://wpdeveloper.net/
9
  *
10
  * Text Domain: essential-addons-elementor
16
  define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
17
  define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
19
+ define( 'ESSENTIAL_ADDONS_VERSION', '2.9.7' );
20
+ define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.7' );
21
  define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
22
 
23
 
37
  */
38
  function eael_activated_modules() {
39
 
40
+ $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' ];
41
 
42
  $eael_default_settings = array_fill_keys( $eael_default_keys, true );
43
  $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
170
  if( $is_component_active['progress-bar'] ) {
171
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/progress-bar/progress-bar.php';
172
  }
173
+ if( $is_component_active['feature-list'] ) {
174
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/feature-list/feature-list.php';
175
+ }
176
  }
177
  add_action('elementor/widgets/widgets_registered','add_eael_elements');
178
 
245
  }
246
 
247
  if( $is_component_active['progress-bar'] ) {
248
+ wp_enqueue_script('essential_addons_elementor-progress-bar',ESSENTIAL_ADDONS_EL_URL.'assets/js/progress-bar.js', array('jquery'),'1.0', true);
249
  }
250
  if( $is_component_active['section-particles'] ) {
251
  wp_enqueue_script(
316
  }
317
  if( ! function_exists( 'essential_addons_elementor_lite_start_plugin_tracking' ) ) {
318
  function essential_addons_elementor_lite_start_plugin_tracking() {
319
+ $wpins = new Eael_Plugin_Usage_Tracker(
320
  __FILE__,
321
  'http://app.wpdeveloper.net',
322
  array(),
extensions/eael-particle-section/eael-particle-section.php CHANGED
@@ -7,186 +7,123 @@ use Elementor\Controls_Manager;
7
  use Elementor\Element_Base;
8
  use Elementor\Widget_Base;
9
 
10
- class EAEL_Particle_Section extends Module_Base {
11
-
12
- public function __construct() {
13
- parent::__construct();
14
-
15
- add_action( 'elementor/frontend/section/before_render',array( $this,'before_render') );
16
-
17
- add_action('elementor/element/section/section_layout/after_section_end',array($this,'register_controls'),10 );
18
-
19
- add_action( 'elementor/frontend/section/after_render',array( $this,'after_render') );
20
- }
21
-
22
- public function get_name() {
23
- return 'eael-particles';
24
- }
25
-
26
- public function register_controls( $element ) {
27
-
28
- $element->start_controls_section(
29
- 'eael_particles_section',
30
- [
31
- 'label' => 'EA Particles',
32
- 'tab' => Controls_Manager::TAB_LAYOUT
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  ]
34
- );
35
-
36
- $element->add_control(
37
- 'eael_particle_switch',
38
- [
39
- 'label' => __( 'Enable Particles', 'essential-addons-elementor' ),
40
- 'type' => Controls_Manager::SWITCHER,
 
 
 
 
 
41
  ]
42
- );
43
-
44
- $element->add_control(
45
- 'eael_particle_area_zindex',
46
- [
47
- 'label' => __( 'Z-index', 'essential-addons-elementor' ),
48
- 'type' => Controls_Manager::NUMBER,
49
- 'default' => 0,
50
- 'condition' => [
51
- 'eael_particle_switch' => 'yes'
52
- ]
53
  ]
54
- );
 
 
 
55
 
56
- $element->add_control(
57
- 'eael_particle_theme_from',
58
- [
59
- 'label' => __( 'Theme Source', 'essential-addons-elementor' ),
60
- 'type' => Controls_Manager::CHOOSE,
61
- 'options' => [
62
- 'presets' => [
63
- 'title' => __( 'Defaults', 'essential-addons-elementor' ),
64
- 'icon' => 'fa fa-list',
65
- ],
66
- 'custom' => [
67
- 'title' => __( 'Custom', 'essential-addons-elementor' ),
68
- 'icon' => 'fa fa-edit',
69
- ],
70
- ],
71
- 'condition' => [
72
- 'eael_particle_switch' => 'yes'
73
- ],
74
- 'default' => 'presets'
75
- ]
76
- );
77
 
78
- $element->add_control(
79
- 'eael_particle_preset_themes',
80
- [
81
- 'label' => esc_html__( 'Preset Themes', 'essential-addons-elementor' ),
82
- 'type' => Controls_Manager::SELECT,
83
- 'label_block' => true,
84
- 'options' => [
85
- 11 => __( 'Default', 'essential-addons-elementor' ),
86
- 'nasa' => __( 'Nasa', 'essential-addons-elementor' ),
87
- 'bubble' => __( 'Bubble', 'essential-addons-elementor' ),
88
- 'snow' => __( 'Snow', 'essential-addons-elementor' ),
89
- 'nyan_cat' => __( 'Nyan Cat', 'essential-addons-elementor' )
90
- ],
91
- 'default' => 11,
92
- 'condition' => [
93
- 'eael_particle_theme_from' => 'presets',
94
- 'eael_particle_switch' => 'yes'
95
- ]
96
- ]
97
- );
98
-
99
- $element->add_control(
100
- 'eael_particles_custom_style',
101
- [
102
- 'label' => __( 'Custom Style', 'essential-addons-elementor' ),
103
- 'type' => Controls_Manager::TEXTAREA,
104
- 'description' => __( 'You can generate custom particles JSON code from <a href="http://vincentgarreau.com/particles.js/#default" target="_blank">Here!</a>. Simply just past the JSON code above. For more queries <a href="https://essential-addons.com/elementor/docs/" target="_blank">Click Here!</a>', 'essential-addons-elementor' ),
105
- 'condition' => [
106
- 'eael_particle_theme_from' => 'custom',
107
- 'eael_particle_switch' => 'yes'
108
- ]
109
- ]
110
- );
111
 
112
- $element->add_control(
113
- 'eael_particle_section_notice',
114
- [
115
- 'raw' => __( 'You need to configure a <strong style="color:green">Background Type</strong> to see this in full effect. You can do this by switching to the <strong style="color:green">Style</strong> Tab.', 'essential-addons-elementor' ),
116
- 'type' => Controls_Manager::RAW_HTML,
117
- 'condition' => [
118
- 'eael_particle_theme_from' => 'custom',
119
- 'eael_particle_switch' => 'yes'
120
- ]
121
- ]
122
- );
123
-
124
- $element->end_controls_section();
125
 
126
- }
 
 
 
127
 
128
- public function before_render( $element ) {
129
-
130
- if( $element->get_settings('eael_particle_switch') == 'yes' ){
131
 
132
- $element->add_render_attribute(
133
- '_wrapper','id',
134
- 'eael-section-particles-' . $element->get_id()
135
- );
136
-
137
  }
138
-
139
- }
140
 
141
- public function after_render( $element ) {
142
-
143
- $data = $element->get_data();
144
- $settings = $element->get_settings_for_display();
145
- $type = $data['elType'];
146
- $zindex = ! empty( $settings['eael_particle_area_zindex'] ) ? $settings['eael_particle_area_zindex'] : 0;
147
-
148
- if( ('section' == $type) && ($element->get_settings('eael_particle_switch') == 'yes') ){
149
-
150
- $preset_themes = include('particle-themes.php');
151
- if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'presets') {
152
- $theme = $preset_themes[ $settings['eael_particle_preset_themes'] ];
153
- }
154
-
155
- if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'custom') {
156
- $theme = $settings['eael_particles_custom_style'];
157
- }
158
-
159
- ?>
160
- <style>
161
- .elementor-element-<?php echo $element->get_id(); ?>.eael-particles-section > canvas{
162
- z-index: <?php echo $zindex; ?>;
163
- position: absolute;
164
- top:0;
165
- }
166
- .elementor-section .elementor-container {
167
- z-index: 99;
168
- }
169
- </style>
170
-
171
- <script>
172
- (function($) {
173
- "use strict";
174
-
175
- $(document).ready(function() {
176
- $('.elementor-element-<?php echo $element->get_id(); ?>').addClass('eael-particles-section');
177
- <?php if( $theme !== '' ) : ?>
178
- particlesJS("eael-section-particles-<?php echo $element->get_id(); ?>", <?php echo $theme; ?> );
179
- <?php endif; ?>
180
- });
181
-
182
- }(jQuery));
183
- </script>
184
- <?php
185
  }
186
- }
187
-
188
-
189
 
 
 
190
  }
191
-
192
- EAEL_Particle_Section::instance();
7
  use Elementor\Element_Base;
8
  use Elementor\Widget_Base;
9
 
10
+ add_action( 'elementor/frontend/section/before_render', 'before_render' );
11
+ add_action('elementor/element/section/section_layout/after_section_end', 'register_controls',10 );
12
+
13
+ function register_controls( $element ) {
14
+
15
+ $element->start_controls_section(
16
+ 'eael_particles_section',
17
+ [
18
+ 'label' => 'EA Particles',
19
+ 'tab' => Controls_Manager::TAB_LAYOUT
20
+ ]
21
+ );
22
+
23
+ $element->add_control(
24
+ 'eael_particle_switch',
25
+ [
26
+ 'label' => __( 'Enable Particles', 'essential-addons-elementor' ),
27
+ 'type' => Controls_Manager::SWITCHER,
28
+ ]
29
+ );
30
+
31
+ $element->add_control(
32
+ 'eael_particle_theme_from',
33
+ [
34
+ 'label' => __( 'Theme Source', 'essential-addons-elementor' ),
35
+ 'type' => Controls_Manager::CHOOSE,
36
+ 'options' => [
37
+ 'presets' => [
38
+ 'title' => __( 'Defaults', 'essential-addons-elementor' ),
39
+ 'icon' => 'fa fa-list',
40
+ ],
41
+ 'custom' => [
42
+ 'title' => __( 'Custom', 'essential-addons-elementor' ),
43
+ 'icon' => 'fa fa-edit',
44
+ ],
45
+ ],
46
+ 'condition' => [
47
+ 'eael_particle_switch' => 'yes'
48
+ ],
49
+ 'default' => 'presets'
50
+ ]
51
+ );
52
+
53
+ $element->add_control(
54
+ 'eael_particle_preset_themes',
55
+ [
56
+ 'label' => esc_html__( 'Preset Themes', 'essential-addons-elementor' ),
57
+ 'type' => Controls_Manager::SELECT,
58
+ 'label_block' => true,
59
+ 'options' => [
60
+ 11 => __( 'Default', 'essential-addons-elementor' ),
61
+ 'nasa' => __( 'Nasa', 'essential-addons-elementor' ),
62
+ 'bubble' => __( 'Bubble', 'essential-addons-elementor' ),
63
+ 'snow' => __( 'Snow', 'essential-addons-elementor' ),
64
+ 'nyan_cat' => __( 'Nyan Cat', 'essential-addons-elementor' )
65
+ ],
66
+ 'default' => 11,
67
+ 'condition' => [
68
+ 'eael_particle_theme_from' => 'presets',
69
+ 'eael_particle_switch' => 'yes'
70
  ]
71
+ ]
72
+ );
73
+
74
+ $element->add_control(
75
+ 'eael_particles_custom_style',
76
+ [
77
+ 'label' => __( 'Custom Style', 'essential-addons-elementor' ),
78
+ 'type' => Controls_Manager::TEXTAREA,
79
+ 'description' => __( 'You can generate custom particles JSON code from <a href="http://vincentgarreau.com/particles.js/#default" target="_blank">Here!</a>. Simply just past the JSON code above. For more queries <a href="https://essential-addons.com/elementor/docs/" target="_blank">Click Here!</a>', 'essential-addons-elementor' ),
80
+ 'condition' => [
81
+ 'eael_particle_theme_from' => 'custom',
82
+ 'eael_particle_switch' => 'yes'
83
  ]
84
+ ]
85
+ );
86
+
87
+ $element->add_control(
88
+ 'eael_particle_section_notice',
89
+ [
90
+ 'raw' => __( 'You need to configure a <strong style="color:green">Background Type</strong> to see this in full effect. You can do this by switching to the <strong style="color:green">Style</strong> Tab.', 'essential-addons-elementor' ),
91
+ 'type' => Controls_Manager::RAW_HTML,
92
+ 'condition' => [
93
+ 'eael_particle_theme_from' => 'custom',
94
+ 'eael_particle_switch' => 'yes'
95
  ]
96
+ ]
97
+ );
98
+
99
+ $element->end_controls_section();
100
 
101
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
+ function before_render( $element ) {
104
+ $settings = $element->get_settings_for_display();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
+ if( $settings['eael_particle_switch'] == 'yes' ){
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
+ $element->add_render_attribute(
109
+ '_wrapper','id',
110
+ 'eael-section-particles-' . $element->get_id()
111
+ );
112
 
 
 
 
113
 
114
+ $preset_themes = include('particle-themes.php');
115
+ if( isset($settings['eael_particle_theme_from']) && $settings['eael_particle_theme_from'] == 'presets') {
116
+ $theme = $preset_themes[ $settings['eael_particle_preset_themes'] ];
117
+ $element->add_render_attribute('_wrapper', 'data-theme', $theme);
 
118
  }
 
 
119
 
120
+ if(
121
+ isset($settings['eael_particle_theme_from'])
122
+ && $settings['eael_particle_theme_from'] == 'custom'
123
+ ) {
124
+ $element->add_render_attribute('_wrapper', 'data-theme', $settings['eael_particles_custom_style']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  }
 
 
 
126
 
127
+ }
128
+
129
  }
 
 
includes/class-plugin-usage-tracker.php CHANGED
@@ -24,12 +24,6 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
24
  private $marketing = false;
25
  private $collect_email = false;
26
  private $pro_plugin_name = 'Essential Addons for Elementor Pro';
27
- /**
28
- * for matching the deactivation form header color with plugins appearance.
29
- * @var string
30
- */
31
- private $header_bg = '#3A56FF';
32
- private $text_color = '#FFFFFF';
33
 
34
  /**
35
  * Class constructor
@@ -116,22 +110,22 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
116
  $this->do_tracking( true );
117
  }
118
  // Hook our do_tracking function to the daily action
119
- add_action( 'wpdeveloper_notice_clicked', array( $this, 'clicked' ) );
120
 
121
  add_action( 'put_do_weekly_action', array( $this, 'do_tracking' ) );
122
 
123
  // Use this action for local testing and for one time force tracking in a life time.
124
  add_action( 'admin_init', array( $this, 'force_track_for_one_time' ) );
125
  // add_action( 'admin_init', array( $this, 'force_tracking' ) );
126
-
127
  // Display the admin notice on activation
128
- add_action( 'wpdeveloper_optin_notice', array( $this, 'optin_notice' ) );
129
  add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
130
 
131
  // Deactivation
132
  add_filter( 'plugin_action_links_' . plugin_basename( $this->plugin_file ), array( $this, 'filter_action_links' ) );
133
  add_action( 'admin_footer-plugins.php', array( $this, 'goodbye_ajax' ) );
134
- add_action( 'wp_ajax_goodbye_form', array( $this, 'goodbye_form_callback' ) );
135
 
136
  }
137
 
@@ -635,7 +629,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
635
  // @credit EDD
636
  // Don't bother asking user to opt in if they're in local dev
637
  $is_local = false;
638
- if( stristr( network_site_url( '/' ), '.test' ) !== false || stristr( network_site_url( '/' ), 'localhost' ) !== false || stristr( network_site_url( '/' ), ':8888' ) !== false ) {
639
  $is_local = true;
640
  }
641
  $is_local = apply_filters( 'wpins_is_local_' . $this->plugin_name, $is_local );
@@ -685,7 +679,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
685
  <p><?php echo __( 'We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins & themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.' ); ?></p>
686
  </div>
687
  <p>
688
- <a href="<?php echo esc_url( $url_yes ); ?>" class="button-primary"><?php _e( 'Allow', 'plugin-usage-tracker' ); ?></a>
689
  <a href="<?php echo esc_url( $url_no ); ?>" class="button-secondary"><?php _e( 'No Thanks', 'plugin-usage-tracker' ); ?></a>
690
  </p>
691
  <?php echo "<script type='text/javascript'>jQuery('.insights-data-we-collect').on('click', function(e) {
@@ -753,7 +747,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
753
 
754
 
755
  // Insert an onClick action to allow form before deactivating
756
- $deactivation_link = str_replace( '<a ', '<div class="eael-put-goodbye-form-wrapper"><div class="eael-put-goodbye-form-bg"></div><span class="eael-put-goodbye-form" id="eael-put-goodbye-form-' . esc_attr( $this->plugin_name ) . '"></span></div><a onclick="javascript:event.preventDefault();" id="eael-put-goodbye-link-' . esc_attr( $this->plugin_name ) . '" ', $deactivation_link );
757
  $links['deactivate'] = $deactivation_link;
758
  }
759
  return $links;
@@ -812,15 +806,16 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
812
  $form = $this->form_default_text();
813
  }
814
  // Build the HTML to go in the form
815
- $html = '<div class="eael-put-goodbye-form-head"><strong>' . esc_html( $form['heading'] ) . '</strong></div>';
816
- $html .= '<div class="eael-put-goodbye-form-body"><p class="eael-put-goodbye-form-caption">' . esc_html( $form['body'] ) . '</p>';
817
  if( is_array( $form['options'] ) ) {
818
- $html .= '<div id="eael-put-goodbye-options" class="eael-put-goodbye-options"><ul>';
819
  foreach( $form['options'] as $option ) {
820
  if( is_array( $option ) ) {
821
  $id = strtolower( str_replace( " ", "_", esc_attr( $option['label'] ) ) );
 
822
  $html .= '<li class="has-goodbye-extra">';
823
- $html .= '<input type="radio" name="eael-put-goodbye-options" id="' . $id . '" value="' . esc_attr( $option['label'] ) . '">';
824
  $html .= '<div><label for="' . $id . '">' . esc_attr( $option['label'] ) . '</label>';
825
  if( isset( $option[ 'extra_field' ] ) && ! isset( $option['type'] )) {
826
  $html .= '<input type="text" style="display: none" name="'. $id .'" id="' . str_replace( " ", "", esc_attr( $option['extra_field'] ) ) . '" placeholder="' . esc_attr( $option['extra_field'] ) . '">';
@@ -831,16 +826,17 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
831
  $html .= '</div></li>';
832
  } else {
833
  $id = strtolower( str_replace( " ", "_", esc_attr( $option ) ) );
834
- $html .= '<li><input type="radio" name="eael-put-goodbye-options" id="' . $id . '" value="' . esc_attr( $option ) . '"> <label for="' . $id . '">' . esc_attr( $option ) . '</label></li>';
 
835
  }
836
  }
837
- $html .= '</ul></div><!-- .eael-put-goodbye-options -->';
838
  }
839
- $html .= '</div><!-- .eael-put-goodbye-form-body -->';
840
  $html .= '<p class="deactivating-spinner"><span class="spinner"></span> ' . __( 'Submitting form', 'plugin-usage-tracker' ) . '</p>';
841
  ?>
842
  <style type="text/css">
843
- .eael-put-form-active .eael-put-goodbye-form-bg {
844
  background: rgba( 0, 0, 0, .8 );
845
  position: fixed;
846
  top: 0;
@@ -849,11 +845,11 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
849
  height: 100%;
850
  z-index: 9;
851
  }
852
- .eael-put-goodbye-form-wrapper {
853
  position: relative;
854
  display: none;
855
  }
856
- .eael-put-form-active .eael-put-goodbye-form-wrapper {
857
  display: flex !important;
858
  align-items: center;
859
  justify-content: center;
@@ -863,10 +859,10 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
863
  left: 0px;
864
  top: 0px;
865
  }
866
- .eael-put-goodbye-form {
867
  display: none;
868
  }
869
- .eael-put-form-active .eael-put-goodbye-form {
870
  position: relative !important;
871
  width: 550px;
872
  max-width: 80%;
@@ -878,34 +874,34 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
878
  display: block;
879
  z-index: 999999;
880
  }
881
- .eael-put-goodbye-form-head {
882
  background: #fff;
883
  color: #495157;
884
  padding: 18px;
885
  box-shadow: 0 0 8px rgba(0,0,0,.1);
886
  font-size: 15px;
887
  }
888
- .eael-put-goodbye-form .eael-put-goodbye-form-head strong {
889
  font-size: 15px;
890
  }
891
- .eael-put-goodbye-form-body {
892
  padding: 8px 18px;
893
  color: #333;
894
  }
895
- .eael-put-goodbye-form-body label {
896
  color: #6d7882;
897
  padding-left: 5px;
898
  }
899
- .eael-put-goodbye-form-body .eael-put-goodbye-form-caption {
900
  font-weight: 500;
901
  font-size: 15px;
902
  color: #495157;
903
  line-height: 1.4;
904
  }
905
- .eael-put-goodbye-form-body #eael-put-goodbye-options {
906
  padding-top: 5px;
907
  }
908
- .eael-put-goodbye-form-body #eael-put-goodbye-options ul > li {
909
  margin-bottom: 15px;
910
  }
911
  .deactivating-spinner {
@@ -918,16 +914,16 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
918
  vertical-align: bottom;
919
  visibility: visible;
920
  }
921
- .eael-put-goodbye-form-footer {
922
  padding: 8px 18px;
923
  margin-bottom: 15px;
924
  }
925
- .eael-put-goodbye-form-footer > .eael-put-goodbye-form-buttons {
926
  display: flex;
927
  align-items: center;
928
  justify-content: space-between;
929
  }
930
- .eael-put-goodbye-form-footer .eael-put-submit-btn {
931
  background-color: #d30c5c;
932
  -webkit-border-radius: 3px;
933
  border-radius: 3px;
@@ -936,7 +932,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
936
  padding: 15px 20px;
937
  font-size: 13px;
938
  }
939
- .eael-put-goodbye-form-footer .eael-put-deactivate-btn {
940
  font-size: 13px;
941
  color: #a4afb7;
942
  background: none;
@@ -945,11 +941,11 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
945
  width: auto;
946
  text-decoration: underline;
947
  }
948
- #eael-put-goodbye-options ul li > div {
949
  display: inline;
950
  padding-left: 3px;
951
  }
952
- #eael-put-goodbye-options ul li > div > input, #eael-put-goodbye-options ul li > div > textarea {
953
  margin: 10px 18px;
954
  padding: 8px;
955
  width: 80%;
@@ -957,20 +953,20 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
957
  </style>
958
  <script>
959
  jQuery(document).ready(function($){
960
- $("#eael-put-goodbye-link-<?php echo esc_attr( $this->plugin_name ); ?>").on("click",function(){
961
  // We'll send the user to this deactivation link when they've completed or dismissed the form
962
- var url = document.getElementById("eael-put-goodbye-link-<?php echo esc_attr( $this->plugin_name ); ?>");
963
- $('body').toggleClass('eael-put-form-active');
964
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").fadeIn();
965
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").html( '<?php echo $html; ?>' + '<div class="eael-put-goodbye-form-footer"><div class="eael-put-goodbye-form-buttons"><a id="put-submit-form" class="eael-put-submit-btn" href="#"><?php _e( 'Submit and Deactivate', 'plugin-usage-tracker' ); ?></a>&nbsp;<a class="eael-put-deactivate-btn" href="'+url+'"><?php _e( 'Just Deactivate', 'plugin-usage-tracker' ); ?></a></div></div>');
966
- $('#put-submit-form').on('click', function(e){
967
  // As soon as we click, the body of the form should disappear
968
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .eael-put-goodbye-form-body").fadeOut();
969
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .eael-put-goodbye-form-footer").fadeOut();
970
  // Fade in spinner
971
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .deactivating-spinner").fadeIn();
972
  e.preventDefault();
973
- var checkedInput = $("input[name='eael-put-goodbye-options']:checked"),
974
  checkedInputVal, details;
975
  if( checkedInput.length > 0 ) {
976
  checkedInputVal = checkedInput.val();
@@ -985,7 +981,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
985
  }
986
 
987
  var data = {
988
- 'action': 'goodbye_form',
989
  'values': checkedInputVal,
990
  'details': details,
991
  'security': "<?php echo wp_create_nonce ( 'wpins_goodbye_form' ); ?>",
@@ -1001,15 +997,15 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
1001
  }
1002
  );
1003
  });
1004
- $('#eael-put-goodbye-options > ul ').on('click', 'li label, li > input', function( e ){
1005
  var parent = $(this).parents('li');
1006
  parent.siblings().find('label').next('input, textarea').css('display', 'none');
1007
  parent.find('label').next('input, textarea').css('display', 'block');
1008
  });
1009
  // If we click outside the form, the form will close
1010
- $('.eael-put-goodbye-form-bg').on('click',function(){
1011
- $("#eael-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").fadeOut();
1012
- $('body').removeClass('eael-put-form-active');
1013
  });
1014
  });
1015
 
24
  private $marketing = false;
25
  private $collect_email = false;
26
  private $pro_plugin_name = 'Essential Addons for Elementor Pro';
 
 
 
 
 
 
27
 
28
  /**
29
  * Class constructor
110
  $this->do_tracking( true );
111
  }
112
  // Hook our do_tracking function to the daily action
113
+ add_action( 'wpdeveloper_notice_clicked_for_' . $this->plugin_name, array( $this, 'clicked' ) );
114
 
115
  add_action( 'put_do_weekly_action', array( $this, 'do_tracking' ) );
116
 
117
  // Use this action for local testing and for one time force tracking in a life time.
118
  add_action( 'admin_init', array( $this, 'force_track_for_one_time' ) );
119
  // add_action( 'admin_init', array( $this, 'force_tracking' ) );
120
+
121
  // Display the admin notice on activation
122
+ add_action( 'wpdeveloper_optin_notice_for_' . $this->plugin_name, array( $this, 'optin_notice' ) );
123
  add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
124
 
125
  // Deactivation
126
  add_filter( 'plugin_action_links_' . plugin_basename( $this->plugin_file ), array( $this, 'filter_action_links' ) );
127
  add_action( 'admin_footer-plugins.php', array( $this, 'goodbye_ajax' ) );
128
+ add_action( 'wp_ajax_goodbye_form_' . esc_attr( $this->plugin_name ), array( $this, 'goodbye_form_callback' ) );
129
 
130
  }
131
 
629
  // @credit EDD
630
  // Don't bother asking user to opt in if they're in local dev
631
  $is_local = false;
632
+ if( stristr( network_site_url( '/' ), '.dev' ) !== false || stristr( network_site_url( '/' ), 'localhost' ) !== false || stristr( network_site_url( '/' ), ':8888' ) !== false ) {
633
  $is_local = true;
634
  }
635
  $is_local = apply_filters( 'wpins_is_local_' . $this->plugin_name, $is_local );
679
  <p><?php echo __( 'We collect non-sensitive diagnostic data and plugin usage information. Your site URL, WordPress & PHP version, plugins & themes and email address to send you the discount coupon. This data lets us make sure this plugin always stays compatible with the most popular plugins and themes. No spam, I promise.' ); ?></p>
680
  </div>
681
  <p>
682
+ <a href="<?php echo esc_url( $url_yes ); ?>" class="button-primary"><?php _e( 'Sure, I\'d like to help', 'plugin-usage-tracker' ); ?></a>
683
  <a href="<?php echo esc_url( $url_no ); ?>" class="button-secondary"><?php _e( 'No Thanks', 'plugin-usage-tracker' ); ?></a>
684
  </p>
685
  <?php echo "<script type='text/javascript'>jQuery('.insights-data-we-collect').on('click', function(e) {
747
 
748
 
749
  // Insert an onClick action to allow form before deactivating
750
+ $deactivation_link = str_replace( '<a ', '<div class="wpdev-put-goodbye-form-wrapper-' . esc_attr( $this->plugin_name ) . '"><div class="wpdev-put-goodbye-form-bg-' . esc_attr( $this->plugin_name ) . '"></div><span class="wpdev-put-goodbye-form" id="wpdev-put-goodbye-form-' . esc_attr( $this->plugin_name ) . '"></span></div><a onclick="javascript:event.preventDefault();" id="wpdev-put-goodbye-link-' . esc_attr( $this->plugin_name ) . '" ', $deactivation_link );
751
  $links['deactivate'] = $deactivation_link;
752
  }
753
  return $links;
806
  $form = $this->form_default_text();
807
  }
808
  // Build the HTML to go in the form
809
+ $html = '<div class="wpdev-put-goodbye-form-head"><strong>' . esc_html( $form['heading'] ) . '</strong></div>';
810
+ $html .= '<div class="wpdev-put-goodbye-form-body"><p class="wpdev-put-goodbye-form-caption">' . esc_html( $form['body'] ) . '</p>';
811
  if( is_array( $form['options'] ) ) {
812
+ $html .= '<div id="wpdev-'. esc_attr( $this->plugin_name ) .'-goodbye-options" class="wpdev-'. esc_attr( $this->plugin_name ) .'-goodbye-options"><ul>';
813
  foreach( $form['options'] as $option ) {
814
  if( is_array( $option ) ) {
815
  $id = strtolower( str_replace( " ", "_", esc_attr( $option['label'] ) ) );
816
+ $id = $id . '_' . esc_attr( $this->plugin_name );
817
  $html .= '<li class="has-goodbye-extra">';
818
+ $html .= '<input type="radio" name="wpdev-'. esc_attr( $this->plugin_name ) .'-goodbye-options" id="' . $id . '" value="' . esc_attr( $option['label'] ) . '">';
819
  $html .= '<div><label for="' . $id . '">' . esc_attr( $option['label'] ) . '</label>';
820
  if( isset( $option[ 'extra_field' ] ) && ! isset( $option['type'] )) {
821
  $html .= '<input type="text" style="display: none" name="'. $id .'" id="' . str_replace( " ", "", esc_attr( $option['extra_field'] ) ) . '" placeholder="' . esc_attr( $option['extra_field'] ) . '">';
826
  $html .= '</div></li>';
827
  } else {
828
  $id = strtolower( str_replace( " ", "_", esc_attr( $option ) ) );
829
+ $id = $id . '_' . esc_attr( $this->plugin_name );
830
+ $html .= '<li><input type="radio" name="wpdev-'. esc_attr( $this->plugin_name ) .'-goodbye-options" id="' . $id . '" value="' . esc_attr( $option ) . '"> <label for="' . $id . '">' . esc_attr( $option ) . '</label></li>';
831
  }
832
  }
833
+ $html .= '</ul></div><!-- .wpdev-'. esc_attr( $this->plugin_name ) .'-goodbye-options -->';
834
  }
835
+ $html .= '</div><!-- .wpdev-put-goodbye-form-body -->';
836
  $html .= '<p class="deactivating-spinner"><span class="spinner"></span> ' . __( 'Submitting form', 'plugin-usage-tracker' ) . '</p>';
837
  ?>
838
  <style type="text/css">
839
+ .wpdev-put-form-active-<?php echo esc_attr( $this->plugin_name ); ?> .wpdev-put-goodbye-form-bg-<?php echo esc_attr( $this->plugin_name ); ?> {
840
  background: rgba( 0, 0, 0, .8 );
841
  position: fixed;
842
  top: 0;
845
  height: 100%;
846
  z-index: 9;
847
  }
848
+ .wpdev-put-goodbye-form-wrapper-<?php echo esc_attr( $this->plugin_name ); ?> {
849
  position: relative;
850
  display: none;
851
  }
852
+ .wpdev-put-form-active-<?php echo esc_attr( $this->plugin_name ); ?> .wpdev-put-goodbye-form-wrapper-<?php echo esc_attr( $this->plugin_name ); ?> {
853
  display: flex !important;
854
  align-items: center;
855
  justify-content: center;
859
  left: 0px;
860
  top: 0px;
861
  }
862
+ .wpdev-put-goodbye-form {
863
  display: none;
864
  }
865
+ .wpdev-put-form-active-<?php echo esc_attr( $this->plugin_name ); ?> .wpdev-put-goodbye-form {
866
  position: relative !important;
867
  width: 550px;
868
  max-width: 80%;
874
  display: block;
875
  z-index: 999999;
876
  }
877
+ .wpdev-put-goodbye-form-head {
878
  background: #fff;
879
  color: #495157;
880
  padding: 18px;
881
  box-shadow: 0 0 8px rgba(0,0,0,.1);
882
  font-size: 15px;
883
  }
884
+ .wpdev-put-goodbye-form .wpdev-put-goodbye-form-head strong {
885
  font-size: 15px;
886
  }
887
+ .wpdev-put-goodbye-form-body {
888
  padding: 8px 18px;
889
  color: #333;
890
  }
891
+ .wpdev-put-goodbye-form-body label {
892
  color: #6d7882;
893
  padding-left: 5px;
894
  }
895
+ .wpdev-put-goodbye-form-body .wpdev-put-goodbye-form-caption {
896
  font-weight: 500;
897
  font-size: 15px;
898
  color: #495157;
899
  line-height: 1.4;
900
  }
901
+ .wpdev-put-goodbye-form-body #wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options {
902
  padding-top: 5px;
903
  }
904
+ .wpdev-put-goodbye-form-body #wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options ul > li {
905
  margin-bottom: 15px;
906
  }
907
  .deactivating-spinner {
914
  vertical-align: bottom;
915
  visibility: visible;
916
  }
917
+ .wpdev-put-goodbye-form-footer {
918
  padding: 8px 18px;
919
  margin-bottom: 15px;
920
  }
921
+ .wpdev-put-goodbye-form-footer > .wpdev-put-goodbye-form-buttons {
922
  display: flex;
923
  align-items: center;
924
  justify-content: space-between;
925
  }
926
+ .wpdev-put-goodbye-form-footer .eael-put-submit-btn {
927
  background-color: #d30c5c;
928
  -webkit-border-radius: 3px;
929
  border-radius: 3px;
932
  padding: 15px 20px;
933
  font-size: 13px;
934
  }
935
+ .wpdev-put-goodbye-form-footer .eael-put-deactivate-btn {
936
  font-size: 13px;
937
  color: #a4afb7;
938
  background: none;
941
  width: auto;
942
  text-decoration: underline;
943
  }
944
+ #wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options ul li > div {
945
  display: inline;
946
  padding-left: 3px;
947
  }
948
+ #wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options ul li > div > input, #wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options ul li > div > textarea {
949
  margin: 10px 18px;
950
  padding: 8px;
951
  width: 80%;
953
  </style>
954
  <script>
955
  jQuery(document).ready(function($){
956
+ $("#wpdev-put-goodbye-link-<?php echo esc_attr( $this->plugin_name ); ?>").on("click",function(){
957
  // We'll send the user to this deactivation link when they've completed or dismissed the form
958
+ var url = document.getElementById("wpdev-put-goodbye-link-<?php echo esc_attr( $this->plugin_name ); ?>");
959
+ $('body').toggleClass('wpdev-put-form-active-<?php echo esc_attr( $this->plugin_name ); ?>');
960
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").fadeIn();
961
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").html( '<?php echo $html; ?>' + '<div class="wpdev-put-goodbye-form-footer"><div class="wpdev-put-goodbye-form-buttons"><a id="put-submit-form-<?php echo esc_attr( $this->plugin_name ); ?>" class="eael-put-submit-btn" href="#"><?php _e( 'Submit and Deactivate', 'plugin-usage-tracker' ); ?></a>&nbsp;<a class="eael-put-deactivate-btn" href="'+url+'"><?php _e( 'Just Deactivate', 'plugin-usage-tracker' ); ?></a></div></div>');
962
+ $('#put-submit-form-<?php echo esc_attr( $this->plugin_name ); ?>').on('click', function(e){
963
  // As soon as we click, the body of the form should disappear
964
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .wpdev-put-goodbye-form-body").fadeOut();
965
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .wpdev-put-goodbye-form-footer").fadeOut();
966
  // Fade in spinner
967
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?> .deactivating-spinner").fadeIn();
968
  e.preventDefault();
969
+ var checkedInput = $("input[name='wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options']:checked"),
970
  checkedInputVal, details;
971
  if( checkedInput.length > 0 ) {
972
  checkedInputVal = checkedInput.val();
981
  }
982
 
983
  var data = {
984
+ 'action': 'goodbye_form_<?php echo esc_attr( $this->plugin_name ); ?>',
985
  'values': checkedInputVal,
986
  'details': details,
987
  'security': "<?php echo wp_create_nonce ( 'wpins_goodbye_form' ); ?>",
997
  }
998
  );
999
  });
1000
+ $('#wpdev-<?php echo esc_attr( $this->plugin_name ); ?>-goodbye-options > ul ').on('click', 'li label, li > input', function( e ){
1001
  var parent = $(this).parents('li');
1002
  parent.siblings().find('label').next('input, textarea').css('display', 'none');
1003
  parent.find('label').next('input, textarea').css('display', 'block');
1004
  });
1005
  // If we click outside the form, the form will close
1006
+ $('.wpdev-put-goodbye-form-bg-<?php echo esc_attr( $this->plugin_name ); ?>').on('click',function(){
1007
+ $("#wpdev-put-goodbye-form-<?php echo esc_attr( $this->plugin_name ); ?>").fadeOut();
1008
+ $('body').removeClass('wpdev-put-form-active-<?php echo esc_attr( $this->plugin_name ); ?>');
1009
  });
1010
  });
1011
 
includes/class-wpdev-core-install.php CHANGED
@@ -4,12 +4,19 @@ if ( ! class_exists( 'WPDeveloper_Core_Installer' ) ) :
4
  * WPDeveloper Core Install
5
  */
6
  class WPDeveloper_Core_Installer {
 
 
 
 
 
 
7
  /**
8
  * Instantiate the class
9
  *
10
  * @param string $affiliate
11
  */
12
- function __construct() {
 
13
  add_action( 'init', array( $this, 'init_hooks' ) );
14
  }
15
  /**
@@ -21,7 +28,7 @@ if ( ! class_exists( 'WPDeveloper_Core_Installer' ) ) :
21
  if ( ! current_user_can( 'manage_options' ) ) {
22
  return;
23
  }
24
- add_action( 'wp_ajax_wpdeveloper_upsale_core_install', array( $this, 'core_install' ) );
25
  }
26
  /**
27
  * Fail if plugin installtion/activation fails
@@ -42,7 +49,7 @@ if ( ! class_exists( 'WPDeveloper_Core_Installer' ) ) :
42
  * @return void
43
  */
44
  public function core_install() {
45
- check_ajax_referer( 'wpdeveloper_upsale_core_install' );
46
 
47
  if ( ! current_user_can( 'manage_options' ) ) {
48
  wp_send_json_error( __( 'You don\'t have permission to install the plugins' ) );
@@ -92,9 +99,4 @@ if ( ! class_exists( 'WPDeveloper_Core_Installer' ) ) :
92
  return activate_plugin( $plugin_basename );
93
  }
94
  }
95
- /**
96
- * Initiate The Core Installer
97
- */
98
- new WPDeveloper_Core_Installer();
99
- endif;
100
-
4
  * WPDeveloper Core Install
5
  */
6
  class WPDeveloper_Core_Installer {
7
+ /**
8
+ * Plugin Base Name
9
+ *
10
+ * @var string
11
+ */
12
+ private $plugin_basename;
13
  /**
14
  * Instantiate the class
15
  *
16
  * @param string $affiliate
17
  */
18
+ function __construct( $plugin_basename = '' ) {
19
+ $this->plugin_basename = $plugin_basename;
20
  add_action( 'init', array( $this, 'init_hooks' ) );
21
  }
22
  /**
28
  if ( ! current_user_can( 'manage_options' ) ) {
29
  return;
30
  }
31
+ add_action( 'wp_ajax_wpdeveloper_upsale_core_install_' . $this->plugin_basename, array( $this, 'core_install' ) );
32
  }
33
  /**
34
  * Fail if plugin installtion/activation fails
49
  * @return void
50
  */
51
  public function core_install() {
52
+ check_ajax_referer( 'wpdeveloper_upsale_core_install_' . $this->plugin_basename );
53
 
54
  if ( ! current_user_can( 'manage_options' ) ) {
55
  wp_send_json_error( __( 'You don\'t have permission to install the plugins' ) );
99
  return activate_plugin( $plugin_basename );
100
  }
101
  }
102
+ endif;
 
 
 
 
 
includes/class-wpdev-notices.php CHANGED
@@ -52,6 +52,12 @@ class WPDeveloper_Notice {
52
  * @var integer
53
  */
54
  public $timestamp;
 
 
 
 
 
 
55
  /**
56
  * Default Options Set
57
  *
@@ -90,8 +96,12 @@ class WPDeveloper_Notice {
90
  $this->timestamp = intval( current_time( 'timestamp' ) );
91
  $this->notice_id = 'wpdeveloper_notice_' . str_replace( '.', '_', $this->version );
92
 
 
 
93
  if( ! class_exists( 'WPDeveloper_Core_Installer' ) ) {
94
  require_once dirname( __FILE__ ) . '/class-wpdev-core-install.php';
 
 
95
  }
96
  }
97
  /**
@@ -108,16 +118,16 @@ class WPDeveloper_Notice {
108
  * @return void
109
  */
110
  public function hooks(){
111
- add_action( 'wpdeveloper_notice_clicked', array( $this, 'clicked' ) );
112
- add_action( 'wp_ajax_wpdeveloper_upsale_notice_dissmiss', array( $this, 'upsale_notice_dissmiss' ) );
113
- add_action( 'wpdeveloper_before_notice', array( $this, 'before' ) );
114
- add_action( 'wpdeveloper_after_notice', array( $this, 'after' ) );
115
- add_action( 'wpdeveloper_before_upsale_notice', array( $this, 'before_upsale' ) );
116
- add_action( 'wpdeveloper_after_upsale_notice', array( $this, 'after' ) );
117
- add_action( 'wpdeveloper_notices', array( $this, 'content' ) );
118
  if( current_user_can( 'install_plugins' ) ) {
119
  if( isset( $_GET['plugin'] ) && $_GET['plugin'] == $this->plugin_name ) {
120
- do_action( 'wpdeveloper_notice_clicked' );
121
  /**
122
  * Redirect User To the Current URL, but without set query arguments.
123
  */
@@ -149,20 +159,26 @@ class WPDeveloper_Notice {
149
  $this->maybe_later( $current_notice );
150
  $notice_time = false;
151
  }
 
152
  if( $notice_time != false ) {
153
  if( $notice_time <= $this->timestamp ) {
154
  if( $current_notice === 'upsale' ) {
155
  $upsale_args = $this->get_upsale_args();
156
- if ( ! function_exists( 'get_plugins' ) ) {
157
- include ABSPATH . '/wp-admin/includes/plugin.php';
158
- }
159
- $plugins = get_plugins();
160
- $pkey = $upsale_args['slug'] . '/' . $upsale_args['file'];
161
- if( isset( $plugins[ $pkey ] ) ) {
162
- $this->update( $current_notice );
163
- return;
 
 
 
 
 
 
164
  }
165
- add_action( 'admin_notices', array( $this, 'upsale_notice' ) );
166
  } else {
167
  add_action( 'admin_notices', array( $this, 'admin_notices' ) );
168
  }
@@ -296,22 +312,22 @@ class WPDeveloper_Notice {
296
 
297
  switch( $notice ) {
298
  case 'opt_in' :
299
- do_action('wpdeveloper_optin_notice');
300
  break;
301
  case 'first_install' :
302
  if( $options_data[ $this->plugin_name ]['first_install'] !== 'deactivated' ) {
303
- do_action('wpdeveloper_first_install_notice');
304
  $this->get_thumbnail( 'first_install' );
305
  $this->get_message( 'first_install' );
306
  }
307
  break;
308
  case 'update' :
309
- do_action('wpdeveloper_update_notice');
310
  $this->get_thumbnail( 'update' );
311
  $this->get_message( 'update' );
312
  break;
313
  case 'review' :
314
- do_action('wpdeveloper_review_notice');
315
  $this->get_thumbnail( 'review' );
316
  $this->get_message( 'review' );
317
  break;
@@ -332,11 +348,11 @@ class WPDeveloper_Notice {
332
  * Upsale Notice
333
  */
334
  public function upsale_notice(){
335
- do_action( 'wpdeveloper_before_upsale_notice' );
336
- do_action('wpdeveloper_upsale_notice');
337
  $this->get_thumbnail( 'upsale' );
338
  $this->get_message( 'upsale' );
339
- do_action( 'wpdeveloper_after_upsale_notice' );
340
  $this->upsale_button_script();
341
  }
342
  /**
@@ -355,7 +371,7 @@ class WPDeveloper_Notice {
355
  if( empty( $plugin_slug ) ) {
356
  return;
357
  }
358
- echo '<button data-slug="'. $plugin_slug .'" id="plugin-install-core" class="button button-primary">'. __( 'Install Now!', $this->text_domain ) .'</button>';
359
  }
360
  /**
361
  * This methods is responsible for get notice image.
@@ -455,12 +471,12 @@ class WPDeveloper_Notice {
455
  public function admin_notices(){
456
  $current_notice = current( $this->next_notice() );
457
  if( $current_notice == 'opt_in' ) {
458
- do_action( 'wpdeveloper_notices' );
459
  return;
460
  }
461
- do_action( 'wpdeveloper_before_notice' );
462
- do_action( 'wpdeveloper_notices' );
463
- do_action( 'wpdeveloper_after_notice' );
464
  }
465
  /**
466
  * This method is responsible for all dismissible links generation.
@@ -685,7 +701,7 @@ class WPDeveloper_Notice {
685
  return;
686
  }
687
 
688
- if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_upsale_notice_dissmiss' ) ) {
689
  return;
690
  }
691
 
@@ -715,7 +731,7 @@ class WPDeveloper_Notice {
715
  <script type="text/javascript">
716
  jQuery(document).ready( function($) {
717
  <?php if( ! empty( $plugin_slug ) && ! empty( $plugin_file ) ) : ?>
718
- $('#plugin-install-core').on('click', function (e) {
719
  var self = $(this);
720
  e.preventDefault();
721
  self.addClass('install-now updating-message');
@@ -725,8 +741,8 @@ class WPDeveloper_Notice {
725
  url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
726
  type: 'POST',
727
  data: {
728
- action: 'wpdeveloper_upsale_core_install',
729
- _wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_core_install'); ?>',
730
  slug : '<?php echo $plugin_slug; ?>',
731
  file : '<?php echo $plugin_file; ?>'
732
  },
@@ -755,7 +771,7 @@ class WPDeveloper_Notice {
755
  url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
756
  type: 'post',
757
  data: {
758
- action: 'wpdeveloper_upsale_notice_dissmiss',
759
  _wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_notice_dissmiss'); ?>',
760
  dismiss: true
761
  },
@@ -821,15 +837,6 @@ $notice->links = [
821
  )
822
  ];
823
 
824
- /**
825
- * This is upsale notice settings
826
- * classes for wrapper,
827
- * Message message for showing.
828
- */
829
- $notice->classes( 'upsale', 'notice is-dismissible' );
830
- $notice->message( 'upsale', '<p>'. __( 'Get the missing Drag & Drop Post Calendar feature for WordPress for Free!', 'essential-addons-elementor' ) .'</p>' );
831
- $notice->thumbnail( 'upsale', plugins_url( 'admin/assets/images/wpsp-logo.svg', ESSENTIAL_ADDONS_BASENAME ) );
832
-
833
  /**
834
  * This is review message and thumbnail.
835
  */
@@ -847,19 +854,12 @@ $notice->cne_time = '3 Day';
847
  */
848
  $notice->maybe_later_time = '7 Day';
849
 
850
- $notice->upsale_args = array(
851
- 'slug' => 'wp-scheduled-posts',
852
- 'page_slug' => 'wpsp-schedule-calendar',
853
- 'file' => 'wp-scheduled-posts.php'
854
- );
855
-
856
  $notice->text_domain = 'essential-addons-elementor';
857
 
858
  $notice->options_args = array(
859
  'notice_will_show' => [
860
  'opt_in' => $notice->timestamp,
861
  'review' => $notice->makeTime( $notice->timestamp, '4 Day' ), // after 4 days
862
- 'upsale' => $notice->makeTime( $notice->timestamp, '2 Hour' ), // will be after 2 hours
863
  ]
864
  );
865
 
52
  * @var integer
53
  */
54
  public $timestamp;
55
+ /**
56
+ * Primary Notice Action
57
+ *
58
+ * @var string
59
+ */
60
+ private $do_notice_action;
61
  /**
62
  * Default Options Set
63
  *
96
  $this->timestamp = intval( current_time( 'timestamp' ) );
97
  $this->notice_id = 'wpdeveloper_notice_' . str_replace( '.', '_', $this->version );
98
 
99
+ $this->do_notice_action = 'wpdeveloper_notices_for_' . $this->plugin_name;
100
+
101
  if( ! class_exists( 'WPDeveloper_Core_Installer' ) ) {
102
  require_once dirname( __FILE__ ) . '/class-wpdev-core-install.php';
103
+
104
+ new WPDeveloper_Core_Installer( $this->plugin_name );
105
  }
106
  }
107
  /**
118
  * @return void
119
  */
120
  public function hooks(){
121
+ add_action( 'wpdeveloper_notice_clicked_for_' . $this->plugin_name, array( $this, 'clicked' ) );
122
+ add_action( 'wp_ajax_wpdeveloper_upsale_notice_dissmiss_for_' . $this->plugin_name, array( $this, 'upsale_notice_dissmiss' ) );
123
+ add_action( 'wpdeveloper_before_notice_for_' . $this->plugin_name, array( $this, 'before' ) );
124
+ add_action( 'wpdeveloper_after_notice_for_' . $this->plugin_name, array( $this, 'after' ) );
125
+ add_action( 'wpdeveloper_before_upsale_notice_for_' . $this->plugin_name, array( $this, 'before_upsale' ) );
126
+ add_action( 'wpdeveloper_after_upsale_notice_for_' . $this->plugin_name, array( $this, 'after' ) );
127
+ add_action( $this->do_notice_action, array( $this, 'content' ) );
128
  if( current_user_can( 'install_plugins' ) ) {
129
  if( isset( $_GET['plugin'] ) && $_GET['plugin'] == $this->plugin_name ) {
130
+ do_action( 'wpdeveloper_notice_clicked_for_' . $this->plugin_name );
131
  /**
132
  * Redirect User To the Current URL, but without set query arguments.
133
  */
159
  $this->maybe_later( $current_notice );
160
  $notice_time = false;
161
  }
162
+
163
  if( $notice_time != false ) {
164
  if( $notice_time <= $this->timestamp ) {
165
  if( $current_notice === 'upsale' ) {
166
  $upsale_args = $this->get_upsale_args();
167
+ if( empty( $upsale_args ) ) {
168
+ unset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] );
169
+ $this->update_options_data( $options_data[ $this->plugin_name ] );
170
+ } else {
171
+ if ( ! function_exists( 'get_plugins' ) ) {
172
+ include ABSPATH . '/wp-admin/includes/plugin.php';
173
+ }
174
+ $plugins = get_plugins();
175
+ $pkey = $upsale_args['slug'] . '/' . $upsale_args['file'];
176
+ if( isset( $plugins[ $pkey ] ) ) {
177
+ $this->update( $current_notice );
178
+ return;
179
+ }
180
+ add_action( 'admin_notices', array( $this, 'upsale_notice' ) );
181
  }
 
182
  } else {
183
  add_action( 'admin_notices', array( $this, 'admin_notices' ) );
184
  }
312
 
313
  switch( $notice ) {
314
  case 'opt_in' :
315
+ do_action('wpdeveloper_optin_notice_for_' . $this->plugin_name );
316
  break;
317
  case 'first_install' :
318
  if( $options_data[ $this->plugin_name ]['first_install'] !== 'deactivated' ) {
319
+ do_action( 'wpdeveloper_first_install_notice_for_' . $this->plugin_name );
320
  $this->get_thumbnail( 'first_install' );
321
  $this->get_message( 'first_install' );
322
  }
323
  break;
324
  case 'update' :
325
+ do_action( 'wpdeveloper_update_notice_for_' . $this->plugin_name );
326
  $this->get_thumbnail( 'update' );
327
  $this->get_message( 'update' );
328
  break;
329
  case 'review' :
330
+ do_action( 'wpdeveloper_review_notice_for_' . $this->plugin_name );
331
  $this->get_thumbnail( 'review' );
332
  $this->get_message( 'review' );
333
  break;
348
  * Upsale Notice
349
  */
350
  public function upsale_notice(){
351
+ do_action( 'wpdeveloper_before_upsale_notice_for_' . $this->plugin_name );
352
+ do_action('wpdeveloper_upsale_notice_for_' . $this->plugin_name);
353
  $this->get_thumbnail( 'upsale' );
354
  $this->get_message( 'upsale' );
355
+ do_action( 'wpdeveloper_after_upsale_notice_for_' . $this->plugin_name );
356
  $this->upsale_button_script();
357
  }
358
  /**
371
  if( empty( $plugin_slug ) ) {
372
  return;
373
  }
374
+ echo '<button data-slug="'. $plugin_slug .'" id="plugin-install-core-'. $this->plugin_name .'" class="button button-primary">'. __( 'Install Now!', $this->text_domain ) .'</button>';
375
  }
376
  /**
377
  * This methods is responsible for get notice image.
471
  public function admin_notices(){
472
  $current_notice = current( $this->next_notice() );
473
  if( $current_notice == 'opt_in' ) {
474
+ do_action( $this->do_notice_action );
475
  return;
476
  }
477
+ do_action( 'wpdeveloper_before_notice_for_' . $this->plugin_name );
478
+ do_action( $this->do_notice_action );
479
+ do_action( 'wpdeveloper_after_notice_for_' . $this->plugin_name );
480
  }
481
  /**
482
  * This method is responsible for all dismissible links generation.
701
  return;
702
  }
703
 
704
+ if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_upsale_notice_dissmiss_for_' . $this->plugin_name ) ) {
705
  return;
706
  }
707
 
731
  <script type="text/javascript">
732
  jQuery(document).ready( function($) {
733
  <?php if( ! empty( $plugin_slug ) && ! empty( $plugin_file ) ) : ?>
734
+ $('#plugin-install-core-<?php echo $this->plugin_name; ?>').on('click', function (e) {
735
  var self = $(this);
736
  e.preventDefault();
737
  self.addClass('install-now updating-message');
741
  url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
742
  type: 'POST',
743
  data: {
744
+ action: 'wpdeveloper_upsale_core_install_<?php echo $this->plugin_name; ?>',
745
+ _wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_core_install_' . $this->plugin_name); ?>',
746
  slug : '<?php echo $plugin_slug; ?>',
747
  file : '<?php echo $plugin_file; ?>'
748
  },
771
  url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
772
  type: 'post',
773
  data: {
774
+ action: 'wpdeveloper_upsale_notice_dissmiss_for_<?php echo $this->plugin_name; ?>',
775
  _wpnonce: '<?php echo wp_create_nonce('wpdeveloper_upsale_notice_dissmiss'); ?>',
776
  dismiss: true
777
  },
837
  )
838
  ];
839
 
 
 
 
 
 
 
 
 
 
840
  /**
841
  * This is review message and thumbnail.
842
  */
854
  */
855
  $notice->maybe_later_time = '7 Day';
856
 
 
 
 
 
 
 
857
  $notice->text_domain = 'essential-addons-elementor';
858
 
859
  $notice->options_args = array(
860
  'notice_will_show' => [
861
  'opt_in' => $notice->timestamp,
862
  'review' => $notice->makeTime( $notice->timestamp, '4 Day' ), // after 4 days
 
863
  ]
864
  );
865
 
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, mdsabuz, manik08cse
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
4
  Requires at least: 4.0
5
- Tested up to: 5.0.3
6
  Requires PHP: 5.4
7
- Stable tag: 2.9.6
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
@@ -169,6 +169,10 @@ Your existing elements/content will work with premium version. So you won't lose
169
 
170
  == Changelog ==
171
 
 
 
 
 
172
  = 2.9.6 =
173
 
174
  - Admin side performance improved
2
  Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, robicse11128, priyomukul, mahfuz01, mdsabuz, manik08cse
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
4
  Requires at least: 4.0
5
+ Tested up to: 5.1
6
  Requires PHP: 5.4
7
+ Stable tag: 2.9.7
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
169
 
170
  == Changelog ==
171
 
172
+ = 2.9.7 =
173
+
174
+ - Particles extension revamped
175
+
176
  = 2.9.6 =
177
 
178
  - Admin side performance improved