Elementor Essential Addons - Version 4.2.0

Version Description

  • 06/08/2020 =
  • Added: EA Login | Register Widget
  • Removed: Upsell Notices
  • Added: Compatibility with WooCommerce 4.3.1
  • Fixed: SSL Issue
  • Few minor bugfix and improvements
Download this release

Release Info

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

Code changes from version 4.1.2 to 4.2.0

assets/admin/css/eaicon.css CHANGED
@@ -23,6 +23,9 @@
23
  speak: none;
24
  }
25
 
 
 
 
26
  .eaicon-login:before {
27
  content: "\e900";
28
  }
23
  speak: none;
24
  }
25
 
26
+ .eaicon-reviewx:before {
27
+ content: "\e951";
28
+ }
29
  .eaicon-login:before {
30
  content: "\e900";
31
  }
assets/admin/css/editor.css CHANGED
@@ -135,3 +135,12 @@
135
  .elementor-control-ea_woo_checkout_notices_border_color {
136
  display: none;
137
  }
 
 
 
 
 
 
 
 
 
135
  .elementor-control-ea_woo_checkout_notices_border_color {
136
  display: none;
137
  }
138
+ /*hide popup reset button for login register general control as they are used only for grouping controls*/
139
+ .elementor-control-gen_lgn_content_po_toggle .elementor-control-popover-toggle-reset-label,
140
+ .elementor-control-gen_reg_content_po_toggle .elementor-control-popover-toggle-reset-label {
141
+ display: none !important;
142
+ }
143
+ .elementor-control-gen_lgn_content_po_toggle .elementor-control-popover-toggle-toggle:checked + .elementor-control-popover-toggle-toggle-label,
144
+ .elementor-control-gen_reg_content_po_toggle .elementor-control-popover-toggle-toggle:checked + .elementor-control-popover-toggle-toggle-label {
145
+ color: inherit !important;
146
+ }
assets/admin/fonts/eaicon.eot CHANGED
Binary file
assets/admin/fonts/eaicon.svg CHANGED
@@ -103,4 +103,5 @@
103
  <glyph unicode="&#xe94e;" glyph-name="wpforms" data-tags="wpforms" horiz-adv-x="965" d="M639.269 648.411h141.897c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-141.897c-10.24 0-16.091-5.851-19.017-14.629-1.463-1.463-1.463-4.389-1.463-7.314 1.463-8.777 8.777-16.091 20.48-16.091zM896.731 929.28h-830.903c-35.109 0-65.829-26.331-65.829-65.829v-830.903c0-35.109 30.72-65.829 65.829-65.829h830.903c35.109 0 65.829 30.72 65.829 65.829v830.903c0 39.497-27.794 65.829-65.829 65.829zM35.109 32.549v734.354h893.806c-1.463 0-1.463-734.354-1.463-734.354 0-16.091-16.091-30.72-30.72-30.72h-830.903c-16.091 0-30.72 16.091-30.72 30.72zM896.731 894.171c16.091 0 30.72-16.091 30.72-30.72v-61.44h-892.343v61.44c0 16.091 16.091 30.72 30.72 30.72h830.903zM757.76 478.72h-550.034c-19.017 0-35.109-16.091-35.109-35.109v-193.097c2.926-13.166 10.24-23.406 19.017-29.257 4.389-2.926 10.24-4.389 16.091-4.389h554.423c19.017 0 30.72 16.091 30.72 30.72v196.023c0 19.017-16.091 35.109-35.109 35.109zM212.114 440.686h545.646v-188.709h-545.646v188.709zM84.846 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017 0 16.091-11.703 19.017-20.48 19.017h-14.629c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM160.914 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-16.091c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM241.371 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-16.091c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM181.394 652.8c2.926-2.926 7.314-4.389 11.703-4.389h124.343c1.463 0 2.926 0 4.389 1.463 8.777 1.463 13.166 8.777 13.166 17.554 0 11.703-7.314 19.017-19.017 19.017h-122.88c-11.703 0-19.017-7.314-19.017-19.017 1.463-5.851 4.389-10.24 7.314-14.629zM403.749 648.411h143.36c1.463 0 2.926 0 4.389 1.463 8.777 1.463 13.166 8.777 13.166 17.554 0 11.703-7.314 19.017-19.017 19.017h-141.897c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM754.834 132.023h-551.497c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017h550.034c11.703 0 19.017 7.314 19.017 19.017s-5.851 19.017-17.554 19.017zM785.554 582.583h-592.457c-11.703 0-19.017-7.314-19.017-19.017 1.463-4.389 2.926-7.314 4.389-8.777 2.926-5.851 8.777-11.703 14.629-11.703h589.531c2.926 0 4.389 1.463 7.314 1.463 8.777 1.463 14.629 8.777 14.629 19.017 0 11.703-7.314 19.017-19.017 19.017z" />
104
  <glyph unicode="&#xe94f;" glyph-name="woo-checkout" data-tags="woo-checkout" horiz-adv-x="1164" d="M472.436 182.691c-67.491 0-123.345-55.855-123.345-123.345s55.855-123.345 123.345-123.345 123.345 55.855 123.345 123.345c0 67.491-55.855 123.345-123.345 123.345zM472.436 5.818c-30.255 0-53.527 23.273-53.527 53.527s23.273 53.527 53.527 53.527c30.255 0 53.527-23.273 53.527-53.527s-23.273-53.527-53.527-53.527zM907.636 182.691c-67.491 0-123.345-55.855-123.345-123.345s55.855-123.345 123.345-123.345c67.491 0 123.345 55.855 123.345 123.345s-55.855 123.345-123.345 123.345zM907.636 5.818c-30.255 0-53.527 23.273-53.527 53.527s23.273 53.527 53.527 53.527c30.255 0 53.527-23.273 53.527-53.527s-23.273-53.527-53.527-53.527zM1154.327 778.473c-6.982 9.309-16.291 13.964-27.927 13.964h-844.8l-37.236 141.964c-2.327 13.964-16.291 25.6-32.582 25.6h-172.218c-20.945 0-34.909-16.291-34.909-34.909s13.964-34.909 34.909-34.909h146.618l167.564-642.327c4.655-16.291 18.618-25.6 32.582-25.6h609.745c16.291 0 30.255 11.636 32.582 25.6l130.327 502.691c2.327 9.309 0 20.945-4.655 27.927zM968.145 292.073h-556.218l-111.709 430.545h781.964l-114.036-430.545zM870.4 645.818c11.636-11.636 11.636-32.582 0-44.218l-209.455-209.455c-11.636-11.636-32.582-11.636-44.218 0l-100.073 100.073c-11.636 11.636-11.636 32.582 0 44.218s32.582 11.636 44.218 0l76.8-76.8 186.182 186.182c13.964 11.636 32.582 11.636 46.545 0v0z" />
105
  <glyph unicode="&#xe950;" glyph-name="typeform" data-tags="typeform" d="M954.182 960h-884.364c-37.236 0-69.818-32.582-69.818-69.818v-884.364c0-37.236 32.582-69.818 69.818-69.818h884.364c37.236 0 69.818 32.582 69.818 69.818v884.364c0 40.339-29.479 69.818-69.818 69.818zM986.764 823.467c0 0 0 0 0-4.655v-809.891c0-17.067-17.067-32.582-32.582-32.582h-884.364c-17.067 0-32.582 17.067-32.582 32.582 0 1.552 0 814.545 0 814.545v69.818c0 17.067 17.067 32.582 32.582 32.582h884.364c17.067 0 32.582-17.067 32.582-32.582v-69.818zM800.582 506.958h-595.782c-20.17 0-37.236-17.067-37.236-37.236v-204.8c0-24.824 17.067-37.236 37.236-37.236h597.333c20.17 0 37.236 17.067 37.236 37.236v204.8c-1.552 20.17-18.618 37.236-38.788 37.236zM797.479 266.473h-592.679v201.697h594.23v-201.697zM169.115 717.964c-1.552-12.412 7.758-20.17 20.17-20.17h265.309c12.412 0 20.17 7.758 20.17 20.17s-7.758 20.17-20.17 20.17h-265.309c-12.412 0-20.17-7.758-20.17-20.17zM564.752 697.794h246.691c12.412 0 20.17 7.758 20.17 20.17s-7.758 20.17-20.17 20.17h-246.691c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17zM380.121 148.558h-183.079c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17h184.63c12.412 0 20.17 7.758 20.17 20.17s-9.309 20.17-21.721 20.17zM817.648 626.424h-628.364c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17h629.915c12.412 0 20.17 7.758 20.17 20.17-1.552 12.412-9.309 20.17-21.721 20.17zM99.297 887.079v0c-10.861 0-18.618-6.206-18.618-18.618s7.758-17.067 18.618-17.067v0c10.861 0 18.618 6.206 18.618 18.618s-7.758 17.067-18.618 17.067zM167.564 851.394c0 0 0 0 0 0s0 0 0 0v0zM167.564 887.079c0 0 0 0 0 0s0 0 0 0v0zM186.182 868.461c0 10.861-6.206 18.618-17.067 18.618s-17.067-6.206-17.067-18.618c0-10.861 6.206-18.618 17.067-18.618 9.309 1.552 17.067 7.758 17.067 18.618zM234.279 851.394c10.861 0 18.618 6.206 18.618 18.618 0 10.861-6.206 18.618-18.618 18.618-10.861 0-18.618-6.206-18.618-18.618s7.758-18.618 18.618-18.618zM234.279 851.394v0 0zM234.279 887.079v0 0z" />
 
106
  </font></defs></svg>
103
  <glyph unicode="&#xe94e;" glyph-name="wpforms" data-tags="wpforms" horiz-adv-x="965" d="M639.269 648.411h141.897c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-141.897c-10.24 0-16.091-5.851-19.017-14.629-1.463-1.463-1.463-4.389-1.463-7.314 1.463-8.777 8.777-16.091 20.48-16.091zM896.731 929.28h-830.903c-35.109 0-65.829-26.331-65.829-65.829v-830.903c0-35.109 30.72-65.829 65.829-65.829h830.903c35.109 0 65.829 30.72 65.829 65.829v830.903c0 39.497-27.794 65.829-65.829 65.829zM35.109 32.549v734.354h893.806c-1.463 0-1.463-734.354-1.463-734.354 0-16.091-16.091-30.72-30.72-30.72h-830.903c-16.091 0-30.72 16.091-30.72 30.72zM896.731 894.171c16.091 0 30.72-16.091 30.72-30.72v-61.44h-892.343v61.44c0 16.091 16.091 30.72 30.72 30.72h830.903zM757.76 478.72h-550.034c-19.017 0-35.109-16.091-35.109-35.109v-193.097c2.926-13.166 10.24-23.406 19.017-29.257 4.389-2.926 10.24-4.389 16.091-4.389h554.423c19.017 0 30.72 16.091 30.72 30.72v196.023c0 19.017-16.091 35.109-35.109 35.109zM212.114 440.686h545.646v-188.709h-545.646v188.709zM84.846 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017 0 16.091-11.703 19.017-20.48 19.017h-14.629c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM160.914 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-16.091c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM241.371 829.806h16.091c11.703 0 19.017 7.314 19.017 19.017s-7.314 19.017-19.017 19.017h-16.091c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM181.394 652.8c2.926-2.926 7.314-4.389 11.703-4.389h124.343c1.463 0 2.926 0 4.389 1.463 8.777 1.463 13.166 8.777 13.166 17.554 0 11.703-7.314 19.017-19.017 19.017h-122.88c-11.703 0-19.017-7.314-19.017-19.017 1.463-5.851 4.389-10.24 7.314-14.629zM403.749 648.411h143.36c1.463 0 2.926 0 4.389 1.463 8.777 1.463 13.166 8.777 13.166 17.554 0 11.703-7.314 19.017-19.017 19.017h-141.897c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017zM754.834 132.023h-551.497c-11.703 0-19.017-7.314-19.017-19.017s7.314-19.017 19.017-19.017h550.034c11.703 0 19.017 7.314 19.017 19.017s-5.851 19.017-17.554 19.017zM785.554 582.583h-592.457c-11.703 0-19.017-7.314-19.017-19.017 1.463-4.389 2.926-7.314 4.389-8.777 2.926-5.851 8.777-11.703 14.629-11.703h589.531c2.926 0 4.389 1.463 7.314 1.463 8.777 1.463 14.629 8.777 14.629 19.017 0 11.703-7.314 19.017-19.017 19.017z" />
104
  <glyph unicode="&#xe94f;" glyph-name="woo-checkout" data-tags="woo-checkout" horiz-adv-x="1164" d="M472.436 182.691c-67.491 0-123.345-55.855-123.345-123.345s55.855-123.345 123.345-123.345 123.345 55.855 123.345 123.345c0 67.491-55.855 123.345-123.345 123.345zM472.436 5.818c-30.255 0-53.527 23.273-53.527 53.527s23.273 53.527 53.527 53.527c30.255 0 53.527-23.273 53.527-53.527s-23.273-53.527-53.527-53.527zM907.636 182.691c-67.491 0-123.345-55.855-123.345-123.345s55.855-123.345 123.345-123.345c67.491 0 123.345 55.855 123.345 123.345s-55.855 123.345-123.345 123.345zM907.636 5.818c-30.255 0-53.527 23.273-53.527 53.527s23.273 53.527 53.527 53.527c30.255 0 53.527-23.273 53.527-53.527s-23.273-53.527-53.527-53.527zM1154.327 778.473c-6.982 9.309-16.291 13.964-27.927 13.964h-844.8l-37.236 141.964c-2.327 13.964-16.291 25.6-32.582 25.6h-172.218c-20.945 0-34.909-16.291-34.909-34.909s13.964-34.909 34.909-34.909h146.618l167.564-642.327c4.655-16.291 18.618-25.6 32.582-25.6h609.745c16.291 0 30.255 11.636 32.582 25.6l130.327 502.691c2.327 9.309 0 20.945-4.655 27.927zM968.145 292.073h-556.218l-111.709 430.545h781.964l-114.036-430.545zM870.4 645.818c11.636-11.636 11.636-32.582 0-44.218l-209.455-209.455c-11.636-11.636-32.582-11.636-44.218 0l-100.073 100.073c-11.636 11.636-11.636 32.582 0 44.218s32.582 11.636 44.218 0l76.8-76.8 186.182 186.182c13.964 11.636 32.582 11.636 46.545 0v0z" />
105
  <glyph unicode="&#xe950;" glyph-name="typeform" data-tags="typeform" d="M954.182 960h-884.364c-37.236 0-69.818-32.582-69.818-69.818v-884.364c0-37.236 32.582-69.818 69.818-69.818h884.364c37.236 0 69.818 32.582 69.818 69.818v884.364c0 40.339-29.479 69.818-69.818 69.818zM986.764 823.467c0 0 0 0 0-4.655v-809.891c0-17.067-17.067-32.582-32.582-32.582h-884.364c-17.067 0-32.582 17.067-32.582 32.582 0 1.552 0 814.545 0 814.545v69.818c0 17.067 17.067 32.582 32.582 32.582h884.364c17.067 0 32.582-17.067 32.582-32.582v-69.818zM800.582 506.958h-595.782c-20.17 0-37.236-17.067-37.236-37.236v-204.8c0-24.824 17.067-37.236 37.236-37.236h597.333c20.17 0 37.236 17.067 37.236 37.236v204.8c-1.552 20.17-18.618 37.236-38.788 37.236zM797.479 266.473h-592.679v201.697h594.23v-201.697zM169.115 717.964c-1.552-12.412 7.758-20.17 20.17-20.17h265.309c12.412 0 20.17 7.758 20.17 20.17s-7.758 20.17-20.17 20.17h-265.309c-12.412 0-20.17-7.758-20.17-20.17zM564.752 697.794h246.691c12.412 0 20.17 7.758 20.17 20.17s-7.758 20.17-20.17 20.17h-246.691c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17zM380.121 148.558h-183.079c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17h184.63c12.412 0 20.17 7.758 20.17 20.17s-9.309 20.17-21.721 20.17zM817.648 626.424h-628.364c-12.412 0-20.17-7.758-20.17-20.17s7.758-20.17 20.17-20.17h629.915c12.412 0 20.17 7.758 20.17 20.17-1.552 12.412-9.309 20.17-21.721 20.17zM99.297 887.079v0c-10.861 0-18.618-6.206-18.618-18.618s7.758-17.067 18.618-17.067v0c10.861 0 18.618 6.206 18.618 18.618s-7.758 17.067-18.618 17.067zM167.564 851.394c0 0 0 0 0 0s0 0 0 0v0zM167.564 887.079c0 0 0 0 0 0s0 0 0 0v0zM186.182 868.461c0 10.861-6.206 18.618-17.067 18.618s-17.067-6.206-17.067-18.618c0-10.861 6.206-18.618 17.067-18.618 9.309 1.552 17.067 7.758 17.067 18.618zM234.279 851.394c10.861 0 18.618 6.206 18.618 18.618 0 10.861-6.206 18.618-18.618 18.618-10.861 0-18.618-6.206-18.618-18.618s7.758-18.618 18.618-18.618zM234.279 851.394v0 0zM234.279 887.079v0 0z" />
106
+ <glyph unicode="&#xe951;" glyph-name="reviewx" data-tags="reviewx" horiz-adv-x="884" d="M372.364 94.255l-16.291 2.327c-169.891 20.945-307.2 144.291-344.436 311.855-25.6 109.382-6.982 221.091 53.527 316.509 46.545 72.145 111.709 128 188.509 162.909l4.655 2.327c2.327 0 6.982 2.327 9.309 2.327 20.945 0 37.236-16.291 37.236-37.236 0-13.964-6.982-25.6-16.291-30.255l-2.327-2.327c0 0-2.327-2.327-4.655-2.327h-4.655c-65.164-30.255-116.364-74.473-153.6-132.655-48.873-79.127-62.836-172.218-41.891-262.982 37.236-155.927 169.891-258.327 330.473-258.327h39.564c0 0 2.327 0 2.327-2.327l-13.964-128 27.927 11.636c144.291 65.164 258.327 195.491 293.236 337.455 0 0 0 2.327 0 2.327l2.327 2.327v2.327c4.655 13.964 18.618 23.273 32.582 23.273 18.618 0 34.909-16.291 34.909-34.909 0-2.327 0-4.655 0-6.982l-2.327-6.982c-16.291-60.509-44.218-118.691-81.455-174.545-81.455-118.691-207.127-207.127-342.109-242.036l-48.873-13.964 16.291 158.255zM816.873 557.382l-34.909-16.291 11.636 37.236-27.927 30.255h39.564l18.618 34.909 11.636-37.236 39.564-6.982-32.582-25.6 4.655-37.236zM467.782 876.218l-37.236-16.291 13.964 37.236-27.927 27.927h39.564l20.945 34.909 11.636-37.236 37.236-6.982-32.582-23.273 6.982-39.564zM674.909 778.473l-51.2 9.309 44.218 32.582-6.982 53.527 41.891-32.582 48.873 23.273-16.291-53.527 37.236-37.236h-53.527l-25.6-46.545z" />
107
  </font></defs></svg>
assets/admin/fonts/eaicon.ttf CHANGED
Binary file
assets/admin/fonts/eaicon.woff CHANGED
Binary file
assets/admin/js/admin.js CHANGED
@@ -222,3 +222,4 @@
222
  })
223
 
224
  })(jQuery);
 
222
  })
223
 
224
  })(jQuery);
225
+
assets/front-end/css/view/login-register.css ADDED
@@ -0,0 +1,427 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*------------------------------*/
2
+ /* Login Register
3
+ /*------------------------------*/
4
+ /*-----General---*/
5
+ .eael-w-10 {
6
+ width: 10%;
7
+ }
8
+ .eael-w-20 {
9
+ width: 20%;
10
+ }
11
+ .eael-w-25 {
12
+ width: 25%;
13
+ }
14
+ .eael-w-30 {
15
+ width: 30%;
16
+ }
17
+ .eael-w-33 {
18
+ width: 33%;
19
+ }
20
+ .eael-w-40 {
21
+ width: 40%;
22
+ }
23
+ .eael-w-50 {
24
+ width: 50%;
25
+ }
26
+ .eael-w-60 {
27
+ width: 60%;
28
+ }
29
+ .eael-w-66 {
30
+ width: 66%;
31
+ }
32
+ .eael-w-70 {
33
+ width: 70%;
34
+ }
35
+ .eael-w-75 {
36
+ width: 75%;
37
+ }
38
+ .eael-w-80 {
39
+ width: 80%;
40
+ }
41
+ .eael-w-90 {
42
+ width: 90%;
43
+ }
44
+ .eael-w-100 {
45
+ width: 100%;
46
+ }
47
+ .d-none {
48
+ display: none;
49
+ }
50
+ .d-ib {
51
+ display: inline-block;
52
+ }
53
+ .mr-auto {
54
+ margin-right: auto;
55
+ }
56
+ .ml-auto {
57
+ margin-left: auto;
58
+ }
59
+ .fd-row {
60
+ -webkit-box-orient: horizontal;
61
+ -webkit-box-direction: normal;
62
+ -ms-flex-direction: row;
63
+ flex-direction: row;
64
+ }
65
+ .fd-col {
66
+ -webkit-box-orient: vertical;
67
+ -webkit-box-direction: normal;
68
+ -ms-flex-direction: column;
69
+ flex-direction: column;
70
+ }
71
+ /*-----Form Specific---*/
72
+ .eael-lr-form-wrapper {
73
+ width: 370px;
74
+ margin: 0 auto;
75
+ background-color: #fff;
76
+ padding: 35px;
77
+ border-radius: 10px;
78
+ -webkit-box-shadow: 0 0 37.5px 14px rgba(2, 8, 53, 0.06);
79
+ box-shadow: 0 0 37.5px 14px rgba(2, 8, 53, 0.06);
80
+ }
81
+ .eael-lr-form-wrapper.style-2 {
82
+ display: -webkit-box;
83
+ display: -ms-flexbox;
84
+ display: flex;
85
+ -ms-flex-wrap: wrap;
86
+ flex-wrap: wrap;
87
+ -webkit-box-align: stretch;
88
+ -ms-flex-align: stretch;
89
+ align-items: stretch;
90
+ padding: 0;
91
+ border-radius: 0;
92
+ }
93
+ @media (max-width: 767px) {
94
+ .eael-lr-form-wrapper.style-2 {
95
+ -webkit-box-orient: vertical;
96
+ -webkit-box-direction: normal;
97
+ -ms-flex-direction: column;
98
+ flex-direction: column;
99
+ }
100
+ }
101
+ .eael-lr-form-wrapper.style-2 .lr-form-illustration {
102
+ width: 50%;
103
+ background-repeat: no-repeat;
104
+ background-size: cover;
105
+ background-position: center;
106
+ position: relative;
107
+ z-index: 1;
108
+ }
109
+ @media (max-width: 767px) {
110
+ .eael-lr-form-wrapper.style-2 .lr-form-illustration {
111
+ padding-bottom: 200px;
112
+ }
113
+ }
114
+ .eael-lr-form-wrapper.style-2 .lr-form-wrapper {
115
+ padding: 35px;
116
+ width: 370px;
117
+ }
118
+ .eael-lr-form-wrapper .eael-lr-form-group {
119
+ margin-bottom: 1rem;
120
+ }
121
+ .eael-lr-form-wrapper .eael-lr-form-group label {
122
+ display: inline-block;
123
+ margin-bottom: 0.5rem;
124
+ }
125
+ .eael-lr-form-wrapper .eael-lr-form-group label.mark-required {
126
+ position: relative;
127
+ }
128
+ .eael-lr-form-wrapper .eael-lr-form-group label.mark-required::after {
129
+ content: " *";
130
+ color: #ff0000;
131
+ position: absolute;
132
+ line-height: 0;
133
+ top: 17px;
134
+ right: -10px;
135
+ }
136
+ .eael-lr-form-wrapper .eael-lr-form-group .eael-lr-form-control {
137
+ display: block;
138
+ width: 100%;
139
+ padding: 15px;
140
+ font-size: 1rem;
141
+ line-height: 1.5;
142
+ color: #495057;
143
+ background-color: #fff;
144
+ background-clip: padding-box;
145
+ border: 1px solid #cfcfe8;
146
+ border-radius: 3px;
147
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
148
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
149
+ -o-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
150
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
151
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
152
+ outline: none;
153
+ }
154
+ .eael-lr-form-wrapper .eael-forever-forget {
155
+ display: -webkit-box;
156
+ display: -ms-flexbox;
157
+ display: flex;
158
+ font-size: 0.9em;
159
+ }
160
+ .eael-lr-form-wrapper .eael-forever-forget .forget-menot {
161
+ display: -webkit-box;
162
+ display: -ms-flexbox;
163
+ display: flex;
164
+ -webkit-box-align: center;
165
+ -ms-flex-align: center;
166
+ align-items: center;
167
+ }
168
+ .eael-lr-form-wrapper .eael-forever-forget .forget-menot label {
169
+ margin: 0 0 0 10px;
170
+ }
171
+ .eael-lr-form-wrapper .eael-forever-forget .forget-menot, .eael-lr-form-wrapper .eael-forever-forget .forget-pass {
172
+ -webkit-box-flex: 1;
173
+ -ms-flex: 1;
174
+ flex: 1;
175
+ margin: 0;
176
+ }
177
+ .eael-lr-form-wrapper .eael-forever-forget .forget-pass {
178
+ text-align: right;
179
+ }
180
+ .eael-lr-form-wrapper .eael-lr-password-wrapper {
181
+ position: relative;
182
+ }
183
+ .eael-lr-form-wrapper .eael-lr-password-wrapper button {
184
+ position: absolute;
185
+ top: 0;
186
+ right: 0;
187
+ height: 100%;
188
+ background: transparent;
189
+ border: none;
190
+ color: red;
191
+ }
192
+ .eael-lr-form-wrapper .eael-lr-btn {
193
+ background-color: #744ffb;
194
+ color: #fff;
195
+ position: relative;
196
+ overflow: hidden;
197
+ display: inline-block;
198
+ vertical-align: top;
199
+ text-decoration: none;
200
+ border: none;
201
+ -webkit-transition: all 0.2s;
202
+ -o-transition: all 0.2s;
203
+ transition: all 0.2s;
204
+ padding: 15px;
205
+ width: 130px;
206
+ }
207
+ .eael-lr-form-wrapper .eael-lr-btn.eael-lr-btn-block {
208
+ display: block;
209
+ }
210
+ .eael-lr-form-wrapper .eael-lr-btn.eael-lr-btn-inline {
211
+ display: inline-block;
212
+ }
213
+ .eael-lr-form-wrapper .eael-lr-link {
214
+ display: inline-block;
215
+ }
216
+ .eael-lr-form-wrapper .eael-sign-wrapper {
217
+ text-align: center;
218
+ padding: 20px 0 0;
219
+ }
220
+ .eael-lr-form-wrapper .lr-form-header.header-inline {
221
+ display: -webkit-box;
222
+ display: -ms-flexbox;
223
+ display: flex;
224
+ }
225
+ .eael-lr-form-wrapper .lr-form-header.header-inline .form-logo {
226
+ -webkit-box-flex: 0;
227
+ -ms-flex: 0 0 30%;
228
+ flex: 0 0 30%;
229
+ }
230
+ .eael-lr-form-wrapper .lr-form-header.header-inline .form-dsc {
231
+ -webkit-box-flex: 0;
232
+ -ms-flex: 0 0 70%;
233
+ flex: 0 0 70%;
234
+ padding-left: 15px;
235
+ }
236
+ .eael-lr-form-wrapper .lr-form-header img {
237
+ width: 100px;
238
+ }
239
+ .eael-lr-form-wrapper .lr-form-header h4 {
240
+ font-size: 18px;
241
+ font-weight: 500;
242
+ margin-top: 0;
243
+ }
244
+ .eael-lr-form-wrapper .lr-form-header p {
245
+ font-size: 14px;
246
+ }
247
+ .eael-lr-form-wrapper .eael-form-msg {
248
+ display: block;
249
+ width: 100%;
250
+ margin-top: 1rem;
251
+ font-size: 1rem;
252
+ padding: 10px 15px;
253
+ border-top-right-radius: 8px;
254
+ border-bottom-right-radius: 8px;
255
+ }
256
+ .eael-lr-form-wrapper .eael-form-msg.invalid {
257
+ color: #721c24;
258
+ background-color: #f8d7da;
259
+ border-left: 3px solid red;
260
+ }
261
+ .eael-lr-form-wrapper .eael-form-msg.valid {
262
+ color: #155724;
263
+ background-color: #d4edda;
264
+ border-left: 3px solid green;
265
+ }
266
+ .eael-lr-form-wrapper ul, .eael-lr-form-wrapper ol, .eael-lr-form-wrapper .eael-form-msg ul, .eael-lr-form-wrapper .eael-form-msg ol {
267
+ margin: 0;
268
+ padding-left: 30px;
269
+ }
270
+ .eael-lr-form-wrapper ul li:not(:last-child), .eael-lr-form-wrapper ol li:not(:last-child), .eael-lr-form-wrapper .eael-form-msg ul li:not(:last-child), .eael-lr-form-wrapper .eael-form-msg ol li:not(:last-child) {
271
+ padding-bottom: 10px;
272
+ }
273
+ .eael-lr-form-wrapper .eael_accept_tnc_wrap {
274
+ display: -webkit-box;
275
+ display: -ms-flexbox;
276
+ display: flex;
277
+ margin-bottom: 1rem;
278
+ -webkit-box-align: center;
279
+ -ms-flex-align: center;
280
+ align-items: center;
281
+ }
282
+ .eael-lr-form-wrapper .eael_accept_tnc_wrap .eael-lr-tnc-link {
283
+ margin-left: 5px;
284
+ display: inline-block;
285
+ }
286
+ .eael-lr-form-wrapper .eael-lr-footer {
287
+ display: -webkit-box;
288
+ display: -ms-flexbox;
289
+ display: flex;
290
+ -webkit-box-pack: center;
291
+ -ms-flex-pack: center;
292
+ justify-content: center;
293
+ -webkit-box-align: center;
294
+ -ms-flex-align: center;
295
+ align-items: center;
296
+ }
297
+ @supports (-webkit-appearance: none) or (-moz-appearance: none) {
298
+ .eael-lr-form-wrapper input[type=checkbox] {
299
+ --active: #275EFE;
300
+ --active-inner: #fff;
301
+ --focus: 0;
302
+ --border: #b7b7b7;
303
+ --border-hover: var(--active);
304
+ --background: #fff;
305
+ --disabled: #F6F8FF;
306
+ --disabled-inner: #E1E6F9;
307
+ -webkit-appearance: none;
308
+ -moz-appearance: none;
309
+ height: 18px;
310
+ outline: none;
311
+ display: inline-block;
312
+ vertical-align: top;
313
+ position: relative;
314
+ top: 2px;
315
+ margin: 0;
316
+ cursor: pointer;
317
+ border: 2px solid var(--bc, var(--border));
318
+ background: var(--b, var(--background));
319
+ -webkit-transition: background 0.3s, border-color 0.3s, -webkit-box-shadow 0.2s;
320
+ transition: background 0.3s, border-color 0.3s, -webkit-box-shadow 0.2s;
321
+ -o-transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
322
+ transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
323
+ transition: background 0.3s, border-color 0.3s, box-shadow 0.2s, -webkit-box-shadow 0.2s;
324
+ }
325
+ .eael-lr-form-wrapper input[type=checkbox]:after {
326
+ content: "";
327
+ display: block;
328
+ left: 0;
329
+ top: 0;
330
+ position: absolute;
331
+ -webkit-transition: opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
332
+ transition: opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
333
+ -o-transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s);
334
+ transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s);
335
+ transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s), -webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);
336
+ }
337
+ .eael-lr-form-wrapper input[type=checkbox]:before {
338
+ content: none;
339
+ }
340
+ .eael-lr-form-wrapper input[type=checkbox]:checked {
341
+ --b: var(--active);
342
+ --bc: var(--active);
343
+ --d-o: .3s;
344
+ --d-t: .6s;
345
+ --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
346
+ }
347
+ .eael-lr-form-wrapper input[type=checkbox]:checked:before {
348
+ content: none;
349
+ }
350
+ .eael-lr-form-wrapper input[type=checkbox]:disabled {
351
+ --b: var(--disabled);
352
+ cursor: not-allowed;
353
+ opacity: 0.9;
354
+ }
355
+ .eael-lr-form-wrapper input[type=checkbox]:disabled:checked {
356
+ --b: var(--disabled-inner);
357
+ --bc: var(--border);
358
+ }
359
+ .eael-lr-form-wrapper input[type=checkbox]:disabled + label {
360
+ cursor: not-allowed;
361
+ }
362
+ .eael-lr-form-wrapper input[type=checkbox]:hover:not(:checked):not(:disabled) {
363
+ --bc: var(--border-hover);
364
+ }
365
+ .eael-lr-form-wrapper input[type=checkbox]:focus {
366
+ -webkit-box-shadow: 0 0 0 var(--focus);
367
+ box-shadow: 0 0 0 var(--focus);
368
+ }
369
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc) {
370
+ width: 18px;
371
+ }
372
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):after {
373
+ opacity: var(--o, 0);
374
+ }
375
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):checked {
376
+ --o: 1;
377
+ }
378
+ .eael-lr-form-wrapper input[type=checkbox] + label {
379
+ font-size: 14px;
380
+ line-height: 21px;
381
+ display: inline-block;
382
+ vertical-align: top;
383
+ cursor: pointer;
384
+ margin-left: 4px;
385
+ }
386
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc) {
387
+ border-radius: 3px;
388
+ }
389
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):after {
390
+ width: 5px;
391
+ height: 9px;
392
+ border: 2px solid var(--active-inner);
393
+ border-top: 0;
394
+ border-left: 0;
395
+ left: 5px;
396
+ top: 1px;
397
+ -webkit-transform: rotate(var(--r, 20deg));
398
+ -ms-transform: rotate(var(--r, 20deg));
399
+ transform: rotate(var(--r, 20deg));
400
+ }
401
+ .eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):checked {
402
+ --r: 43deg;
403
+ }
404
+ .eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc {
405
+ width: 31px;
406
+ border-radius: 11px;
407
+ border-width: 1px;
408
+ }
409
+ .eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:after {
410
+ left: 2px;
411
+ top: 2px;
412
+ border-radius: 50%;
413
+ width: 12px;
414
+ height: 12px;
415
+ background: var(--ab, var(--border));
416
+ -webkit-transform: translateX(var(--x, 0));
417
+ -ms-transform: translateX(var(--x, 0));
418
+ transform: translateX(var(--x, 0));
419
+ }
420
+ .eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:checked {
421
+ --ab: var(--active-inner);
422
+ --x: 13px;
423
+ }
424
+ .eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:disabled:not(:checked):after {
425
+ opacity: 0.6;
426
+ }
427
+ }
assets/front-end/css/view/login-register.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .eael-w-10{width:10%}.eael-w-20{width:20%}.eael-w-25{width:25%}.eael-w-30{width:30%}.eael-w-33{width:33%}.eael-w-40{width:40%}.eael-w-50{width:50%}.eael-w-60{width:60%}.eael-w-66{width:66%}.eael-w-70{width:70%}.eael-w-75{width:75%}.eael-w-80{width:80%}.eael-w-90{width:90%}.eael-w-100{width:100%}.d-none{display:none}.d-ib{display:inline-block}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.fd-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eael-lr-form-wrapper{width:370px;margin:0 auto;background-color:#fff;padding:35px;border-radius:10px;-webkit-box-shadow:0 0 37.5px 14px rgba(2,8,53,.06);box-shadow:0 0 37.5px 14px rgba(2,8,53,.06)}.eael-lr-form-wrapper.style-2{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:0;border-radius:0}@media(max-width: 767px){.eael-lr-form-wrapper.style-2{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.eael-lr-form-wrapper.style-2 .lr-form-illustration{width:50%;background-repeat:no-repeat;background-size:cover;background-position:center;position:relative;z-index:1}@media(max-width: 767px){.eael-lr-form-wrapper.style-2 .lr-form-illustration{padding-bottom:200px}}.eael-lr-form-wrapper.style-2 .lr-form-wrapper{padding:35px;width:370px}.eael-lr-form-wrapper .eael-lr-form-group{margin-bottom:1rem}.eael-lr-form-wrapper .eael-lr-form-group label{display:inline-block;margin-bottom:.5rem}.eael-lr-form-wrapper .eael-lr-form-group label.mark-required{position:relative}.eael-lr-form-wrapper .eael-lr-form-group label.mark-required::after{content:" *";color:red;position:absolute;line-height:0;top:17px;right:-10px}.eael-lr-form-wrapper .eael-lr-form-group .eael-lr-form-control{display:block;width:100%;padding:15px;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #cfcfe8;border-radius:3px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;-o-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;outline:none}.eael-lr-form-wrapper .eael-forever-forget{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.9em}.eael-lr-form-wrapper .eael-forever-forget .forget-menot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-lr-form-wrapper .eael-forever-forget .forget-menot label{margin:0 0 0 10px}.eael-lr-form-wrapper .eael-forever-forget .forget-menot,.eael-lr-form-wrapper .eael-forever-forget .forget-pass{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0}.eael-lr-form-wrapper .eael-forever-forget .forget-pass{text-align:right}.eael-lr-form-wrapper .eael-lr-password-wrapper{position:relative}.eael-lr-form-wrapper .eael-lr-password-wrapper button{position:absolute;top:0;right:0;height:100%;background:transparent;border:none;color:red}.eael-lr-form-wrapper .eael-lr-btn{background-color:#744ffb;color:#fff;position:relative;overflow:hidden;display:inline-block;vertical-align:top;text-decoration:none;border:none;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s;padding:15px;width:130px}.eael-lr-form-wrapper .eael-lr-btn.eael-lr-btn-block{display:block}.eael-lr-form-wrapper .eael-lr-btn.eael-lr-btn-inline{display:inline-block}.eael-lr-form-wrapper .eael-lr-link{display:inline-block}.eael-lr-form-wrapper .eael-sign-wrapper{text-align:center;padding:20px 0 0}.eael-lr-form-wrapper .lr-form-header.header-inline{display:-webkit-box;display:-ms-flexbox;display:flex}.eael-lr-form-wrapper .lr-form-header.header-inline .form-logo{-webkit-box-flex:0;-ms-flex:0 0 30%;flex:0 0 30%}.eael-lr-form-wrapper .lr-form-header.header-inline .form-dsc{-webkit-box-flex:0;-ms-flex:0 0 70%;flex:0 0 70%;padding-left:15px}.eael-lr-form-wrapper .lr-form-header img{width:100px}.eael-lr-form-wrapper .lr-form-header h4{font-size:18px;font-weight:500;margin-top:0}.eael-lr-form-wrapper .lr-form-header p{font-size:14px}.eael-lr-form-wrapper .eael-form-msg{display:block;width:100%;margin-top:1rem;font-size:1rem;padding:10px 15px;border-top-right-radius:8px;border-bottom-right-radius:8px}.eael-lr-form-wrapper .eael-form-msg.invalid{color:#721c24;background-color:#f8d7da;border-left:3px solid red}.eael-lr-form-wrapper .eael-form-msg.valid{color:#155724;background-color:#d4edda;border-left:3px solid green}.eael-lr-form-wrapper ul,.eael-lr-form-wrapper ol,.eael-lr-form-wrapper .eael-form-msg ul,.eael-lr-form-wrapper .eael-form-msg ol{margin:0;padding-left:30px}.eael-lr-form-wrapper ul li:not(:last-child),.eael-lr-form-wrapper ol li:not(:last-child),.eael-lr-form-wrapper .eael-form-msg ul li:not(:last-child),.eael-lr-form-wrapper .eael-form-msg ol li:not(:last-child){padding-bottom:10px}.eael-lr-form-wrapper .eael_accept_tnc_wrap{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eael-lr-form-wrapper .eael_accept_tnc_wrap .eael-lr-tnc-link{margin-left:5px;display:inline-block}.eael-lr-form-wrapper .eael-lr-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@supports(-webkit-appearance: none) or (-moz-appearance: none){.eael-lr-form-wrapper input[type=checkbox]{--active: #275EFE;--active-inner: #fff;--focus: 0;--border: #b7b7b7;--border-hover: var(--active);--background: #fff;--disabled: #F6F8FF;--disabled-inner: #E1E6F9;-webkit-appearance:none;-moz-appearance:none;height:18px;outline:none;display:inline-block;vertical-align:top;position:relative;top:2px;margin:0;cursor:pointer;border:2px solid var(--bc, var(--border));background:var(--b, var(--background));-webkit-transition:background .3s,border-color .3s,-webkit-box-shadow .2s;transition:background .3s,border-color .3s,-webkit-box-shadow .2s;-o-transition:background .3s,border-color .3s,box-shadow .2s;transition:background .3s,border-color .3s,box-shadow .2s;transition:background .3s,border-color .3s,box-shadow .2s,-webkit-box-shadow .2s}.eael-lr-form-wrapper input[type=checkbox]:after{content:"";display:block;left:0;top:0;position:absolute;-webkit-transition:opacity var(--d-o, 0.2s),-webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);transition:opacity var(--d-o, 0.2s),-webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease);-o-transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s);transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s);transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s),-webkit-transform var(--d-t, 0.3s) var(--d-t-e, ease)}.eael-lr-form-wrapper input[type=checkbox]:before{content:none}.eael-lr-form-wrapper input[type=checkbox]:checked{--b: var(--active);--bc: var(--active);--d-o: .3s;--d-t: .6s;--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}.eael-lr-form-wrapper input[type=checkbox]:checked:before{content:none}.eael-lr-form-wrapper input[type=checkbox]:disabled{--b: var(--disabled);cursor:not-allowed;opacity:.9}.eael-lr-form-wrapper input[type=checkbox]:disabled:checked{--b: var(--disabled-inner);--bc: var(--border)}.eael-lr-form-wrapper input[type=checkbox]:disabled+label{cursor:not-allowed}.eael-lr-form-wrapper input[type=checkbox]:hover:not(:checked):not(:disabled){--bc: var(--border-hover)}.eael-lr-form-wrapper input[type=checkbox]:focus{-webkit-box-shadow:0 0 0 var(--focus);box-shadow:0 0 0 var(--focus)}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc){width:18px}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):after{opacity:var(--o, 0)}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):checked{--o: 1}.eael-lr-form-wrapper input[type=checkbox]+label{font-size:14px;line-height:21px;display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc){border-radius:3px}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):after{width:5px;height:9px;border:2px solid var(--active-inner);border-top:0;border-left:0;left:5px;top:1px;-webkit-transform:rotate(var(--r, 20deg));-ms-transform:rotate(var(--r, 20deg));transform:rotate(var(--r, 20deg))}.eael-lr-form-wrapper input[type=checkbox]:not(#eael_accept_tnc):checked{--r: 43deg}.eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc{width:31px;border-radius:11px;border-width:1px}.eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:after{left:2px;top:2px;border-radius:50%;width:12px;height:12px;background:var(--ab, var(--border));-webkit-transform:translateX(var(--x, 0));-ms-transform:translateX(var(--x, 0));transform:translateX(var(--x, 0))}.eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:checked{--ab: var(--active-inner);--x: 13px}.eael-lr-form-wrapper input[type=checkbox]#eael_accept_tnc:disabled:not(:checked):after{opacity:.6}}
assets/front-end/js/edit/advanced-data-table.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var a={};function t(n){if(a[n])return a[n].exports;var l=a[n]={i:n,l:!1,exports:{}};return e[n].call(l.exports,l,l.exports,t),l.l=!0,l.exports}t.m=e,t.c=a,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,a){if(1&a&&(e=t(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var l in e)t.d(n,l,function(a){return e[a]}.bind(null,l));return n},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="",t(t.s=22)}({22:function(e,a){function t(e,a){for(var t=0;t<a.length;t++){var n=a[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var n=function(){function e(){!function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}(this,e),this.panel=null,this.model=null,this.view=null,this.table=null,this.timeout=null,this.activeCell=null,this.dragStartX=null,this.dragStartWidth=null,this.dragEl=null,this.dragging=!1,ea.hooks.addFilter("advancedDataTable.getClassProps","ea",this.getClassProps.bind(this)),ea.hooks.addFilter("advancedDataTable.setClassProps","ea",this.setClassProps.bind(this)),ea.hooks.addFilter("advancedDataTable.parseHTML","ea",this.parseHTML),ea.hooks.addAction("advancedDataTable.initEditor","ea",this.initEditor.bind(this)),ea.hooks.addAction("advancedDataTable.updateFromView","ea",this.updateFromView.bind(this)),ea.hooks.addAction("advancedDataTable.initInlineEdit","ea",this.initInlineEdit.bind(this)),ea.hooks.addAction("advancedDataTable.initPanelAction","ea",this.initPanelAction.bind(this)),elementor.hooks.addFilter("elements/widget/contextMenuGroups",this.initContextMenu),elementor.hooks.addAction("panel/open_editor/widget/eael-advanced-data-table",this.initPanel.bind(this))}var a,n,l;return a=e,(n=[{key:"updateFromView",value:function(e,a){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.model;if(n.remoteRender=t,elementor.config.version>"2.7.6"){var l=e.getContainer(),o=e.getContainer().settings.attributes;Object.keys(a).forEach((function(e){o[e]=a[e]})),parent.window.$e.run("document/elements/settings",{container:l,settings:o,options:{external:t}})}else Object.keys(a).forEach((function(e){n.setSetting(e,a[e])}));this.timeout=setTimeout((function(){n.remoteRender=!0}),1001)}},{key:"getClassProps",value:function(){return{view:this.view,model:this.model,table:this.table,activeCell:this.activeCell}}},{key:"setClassProps",value:function(e){var a=this;Object.keys(e).forEach((function(t){a[t]=e[t]}))}},{key:"parseHTML",value:function(e){return e.querySelectorAll("th, td").forEach((function(e){null!==e.querySelector(".inline-editor")&&(e.innerHTML=decodeURI(e.dataset.quill||""),delete e.dataset.quill)})),e}},{key:"initEditor",value:function(e){var a=this;e.dataset.quill=encodeURI(e.innerHTML),e.innerHTML='<div class="inline-editor">'.concat(e.innerHTML,"</div>");var t=new Quill(e.querySelector(".inline-editor"),{theme:"bubble",modules:{toolbar:["bold","italic","underline","strike","link",{list:"ordered"},{list:"bullet"}]}});t.on("text-change",(function(n,l,o){clearTimeout(a.timeout),e.dataset.quill=encodeURI(t.root.innerHTML);var i=a.parseHTML(a.table.cloneNode(!0));a.updateFromView(a.view,{ea_adv_data_table_static_html:i.innerHTML})}))}},{key:"initInlineEdit",value:function(){var e=this,a=setInterval((function(){e.view.el.querySelector(".ea-advanced-data-table")&&(e.table!==e.view.el.querySelector(".ea-advanced-data-table")&&(e.table=e.view.el.querySelector(".ea-advanced-data-table"),e.table.classList.contains("ea-advanced-data-table-static")&&e.table.querySelectorAll("th, td").forEach((function(a){e.initEditor(a)})),e.table.addEventListener("mousedown",(function(a){a.stopPropagation(),"th"===a.target.tagName.toLowerCase()&&(e.dragging=!0,e.dragEl=a.target,e.dragStartX=a.pageX,e.dragStartWidth=a.target.offsetWidth),"th"===a.target.tagName.toLowerCase()||"td"===a.target.tagName.toLowerCase()?e.activeCell=a.target:"th"===a.target.parentNode.tagName.toLowerCase()||"td"===a.target.parentNode.tagName.toLowerCase()?e.activeCell=a.target.parentNode:"th"===a.target.parentNode.parentNode.tagName.toLowerCase()||"td"===a.target.parentNode.parentNode.tagName.toLowerCase()?e.activeCell=a.target.parentNode.parentNode:"th"!==a.target.parentNode.parentNode.parentNode.tagName.toLowerCase()&&"td"!==a.target.parentNode.parentNode.parentNode.tagName.toLowerCase()||(e.activeCell=a.target.parentNode.parentNode.parentNode)})),e.table.addEventListener("mousemove",(function(a){e.dragging&&(e.dragEl.style.width="".concat(e.dragStartWidth+(event.pageX-e.dragStartX),"px"))})),e.table.addEventListener("mouseup",(function(a){if(e.dragging)if(e.dragging=!1,clearTimeout(e.timeout),e.table.classList.contains("ea-advanced-data-table-static")){var t=e.parseHTML(e.table.cloneNode(!0));e.updateFromView(e.view,{ea_adv_data_table_static_html:t.innerHTML})}else{var n=[];e.table.querySelectorAll("th").forEach((function(e,a){n[a]=e.style.width})),e.updateFromView(e.view,{ea_adv_data_table_dynamic_th_width:n})}})),e.table.addEventListener("dblclick",(function(a){if("th"===a.target.tagName.toLowerCase())if(a.stopPropagation(),clearTimeout(e.timeout),e.table.classList.contains("ea-advanced-data-table-static")){var t=e.parseHTML(e.table.cloneNode(!0));e.updateFromView(e.view,{ea_adv_data_table_static_html:t.innerHTML})}else{var n=[];e.table.querySelectorAll("th").forEach((function(e,a){n[a]=e.style.width})),e.updateFromView(e.view,{ea_adv_data_table_dynamic_th_width:n})}}))),clearInterval(a))}),500)}},{key:"initPanelAction",value:function(){var e=this;this.panel.content.el.onclick=function(a){if("ea:advTable:export"==a.target.dataset.event){for(var t=e.table.querySelectorAll("table tr"),n=[],l=0;l<t.length;l++){var o=[],i=t[l].querySelectorAll("th, td");if(e.table.classList.contains("ea-advanced-data-table-static"))for(var r=0;r<i.length;r++)o.push(JSON.stringify(decodeURI(i[r].dataset.quill)));else for(var d=0;d<i.length;d++)o.push(JSON.stringify(i[d].innerHTML.replace(/(\r\n|\n|\r)/gm," ").trim()));n.push(o.join(","))}var s=new Blob([n.join("\n")],{type:"text/csv"}),c=parent.document.createElement("a");c.classList.add("ea-adv-data-table-download-".concat(e.model.attributes.id)),c.download="ea-adv-data-table-".concat(e.model.attributes.id,".csv"),c.href=window.URL.createObjectURL(s),c.style.display="none",parent.document.body.appendChild(c),c.click(),parent.document.querySelector(".ea-adv-data-table-download-".concat(e.model.attributes.id)).remove()}else if("ea:advTable:import"==a.target.dataset.event){var v=e.panel.content.el.querySelector(".ea_adv_table_csv_string"),u=e.panel.content.el.querySelector(".ea_adv_table_csv_string_table").checked,h=v.value.split("\n"),p="",b="";if(v.value.length>0&&(b+="<tbody>",h.forEach((function(e,a){e.length>0&&(cols=e.match(/("(?:[^"\\]|\\.)*"|[^","]+)/gm),cols.length>0&&(u&&0==a?(p+="<thead><tr>",cols.forEach((function(e){e.match(/(^"")|(^")|("$)|(""$)/g)?p+="<th>".concat(JSON.parse(e),"</th>"):p+="<th>".concat(e,"</th>")})),p+="</tr></thead>"):(b+="<tr>",cols.forEach((function(e){e.match(/(^"")|(^")|("$)|(""$)/g)?b+="<td>".concat(JSON.parse(e),"</td>"):b+="<td>".concat(e,"</td>")})),b+="</tr>")))})),b+="</tbody>",p.length>0||b.length>0)){e.updateFromView(e.view,{ea_adv_data_table_static_html:p+b},!0);var f=setInterval((function(){e.view.el.querySelector(".ea-advanced-data-table").innerHTML==p+b&&(clearInterval(f),ea.hooks.doAction("advancedDataTable.initInlineEdit"))}),500)}v.value=""}ea.hooks.doAction("advancedDataTable.panelAction",e.panel,e.model,e.view,a)}}},{key:"initPanel",value:function(e,a,t){var n=this;this.panel=e,this.model=a,this.view=t,ea.hooks.doAction("advancedDataTable.initInlineEdit"),ea.hooks.doAction("advancedDataTable.initPanelAction"),ea.hooks.doAction("advancedDataTable.afterInitPanel",e,a,t),a.once("editor:close",(function(){var e=n.parseHTML(n.table.cloneNode(!0));n.updateFromView(n.view,{ea_adv_data_table_static_html:e.innerHTML},!0)}))}},{key:"initContextMenu",value:function(e,a){return"eael-advanced-data-table"==a.options.model.attributes.widgetType&&"static"==a.options.model.attributes.settings.attributes.ea_adv_data_table_source&&e.push({name:"ea_advanced_data_table",actions:[{name:"add_row_above",title:"Add Row Above",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n&&"th"!=n.tagName.toLowerCase()){for(var l=n.parentNode.rowIndex,o=t.insertRow(l),i=0;i<t.rows[0].cells.length;i++){var r=o.insertCell(i);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_row_below",title:"Add Row Below",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.parentNode.rowIndex+1,o=t.insertRow(l),i=0;i<t.rows[0].cells.length;i++){var r=o.insertCell(i);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_column_left",title:"Add Column Left",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex,o=0;o<t.rows.length;o++)if("th"==t.rows[o].cells[0].tagName.toLowerCase()){var i=t.rows[o].insertBefore(document.createElement("th"),t.rows[o].cells[l]);ea.hooks.doAction("advancedDataTable.initEditor",i)}else{var r=t.rows[o].insertCell(l);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_column_right",title:"Add Column Right",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex+1,o=0;o<t.rows.length;o++)if("th"==t.rows[o].cells[0].tagName.toLowerCase()){var i=t.rows[o].insertBefore(document.createElement("th"),t.rows[o].cells[l]);ea.hooks.doAction("advancedDataTable.initEditor",i)}else{var r=t.rows[o].insertCell(l);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"delete_row",title:"Delete Row",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){var l=n.parentNode.rowIndex;t.deleteRow(l),ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var o=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:o.innerHTML})}}},{name:"delete_column",title:"Delete Column",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex,o=0;o<t.rows.length;o++)t.rows[o].deleteCell(l);ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var i=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:i.innerHTML})}}}]}),e}}])&&t(a.prototype,n),l&&t(a,l),e}();ea.hooks.addAction("editMode.init","ea",(function(){new n}))}});
1
+ !function(e){var a={};function t(n){if(a[n])return a[n].exports;var l=a[n]={i:n,l:!1,exports:{}};return e[n].call(l.exports,l,l.exports,t),l.l=!0,l.exports}t.m=e,t.c=a,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,a){if(1&a&&(e=t(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var l in e)t.d(n,l,function(a){return e[a]}.bind(null,l));return n},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="",t(t.s=23)}({23:function(e,a){function t(e,a){for(var t=0;t<a.length;t++){var n=a[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var n=function(){function e(){!function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}(this,e),this.panel=null,this.model=null,this.view=null,this.table=null,this.timeout=null,this.activeCell=null,this.dragStartX=null,this.dragStartWidth=null,this.dragEl=null,this.dragging=!1,ea.hooks.addFilter("advancedDataTable.getClassProps","ea",this.getClassProps.bind(this)),ea.hooks.addFilter("advancedDataTable.setClassProps","ea",this.setClassProps.bind(this)),ea.hooks.addFilter("advancedDataTable.parseHTML","ea",this.parseHTML),ea.hooks.addAction("advancedDataTable.initEditor","ea",this.initEditor.bind(this)),ea.hooks.addAction("advancedDataTable.updateFromView","ea",this.updateFromView.bind(this)),ea.hooks.addAction("advancedDataTable.initInlineEdit","ea",this.initInlineEdit.bind(this)),ea.hooks.addAction("advancedDataTable.initPanelAction","ea",this.initPanelAction.bind(this)),elementor.hooks.addFilter("elements/widget/contextMenuGroups",this.initContextMenu),elementor.hooks.addAction("panel/open_editor/widget/eael-advanced-data-table",this.initPanel.bind(this))}var a,n,l;return a=e,(n=[{key:"updateFromView",value:function(e,a){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.model;if(n.remoteRender=t,elementor.config.version>"2.7.6"){var l=e.getContainer(),o=e.getContainer().settings.attributes;Object.keys(a).forEach((function(e){o[e]=a[e]})),parent.window.$e.run("document/elements/settings",{container:l,settings:o,options:{external:t}})}else Object.keys(a).forEach((function(e){n.setSetting(e,a[e])}));this.timeout=setTimeout((function(){n.remoteRender=!0}),1001)}},{key:"getClassProps",value:function(){return{view:this.view,model:this.model,table:this.table,activeCell:this.activeCell}}},{key:"setClassProps",value:function(e){var a=this;Object.keys(e).forEach((function(t){a[t]=e[t]}))}},{key:"parseHTML",value:function(e){return e.querySelectorAll("th, td").forEach((function(e){null!==e.querySelector(".inline-editor")&&(e.innerHTML=decodeURI(e.dataset.quill||""),delete e.dataset.quill)})),e}},{key:"initEditor",value:function(e){var a=this;e.dataset.quill=encodeURI(e.innerHTML),e.innerHTML='<div class="inline-editor">'.concat(e.innerHTML,"</div>");var t=new Quill(e.querySelector(".inline-editor"),{theme:"bubble",modules:{toolbar:["bold","italic","underline","strike","link",{list:"ordered"},{list:"bullet"}]}});t.on("text-change",(function(n,l,o){clearTimeout(a.timeout),e.dataset.quill=encodeURI(t.root.innerHTML);var i=a.parseHTML(a.table.cloneNode(!0));a.updateFromView(a.view,{ea_adv_data_table_static_html:i.innerHTML})}))}},{key:"initInlineEdit",value:function(){var e=this,a=setInterval((function(){e.view.el.querySelector(".ea-advanced-data-table")&&(e.table!==e.view.el.querySelector(".ea-advanced-data-table")&&(e.table=e.view.el.querySelector(".ea-advanced-data-table"),e.table.classList.contains("ea-advanced-data-table-static")&&e.table.querySelectorAll("th, td").forEach((function(a){e.initEditor(a)})),e.table.addEventListener("mousedown",(function(a){a.stopPropagation(),"th"===a.target.tagName.toLowerCase()&&(e.dragging=!0,e.dragEl=a.target,e.dragStartX=a.pageX,e.dragStartWidth=a.target.offsetWidth),"th"===a.target.tagName.toLowerCase()||"td"===a.target.tagName.toLowerCase()?e.activeCell=a.target:"th"===a.target.parentNode.tagName.toLowerCase()||"td"===a.target.parentNode.tagName.toLowerCase()?e.activeCell=a.target.parentNode:"th"===a.target.parentNode.parentNode.tagName.toLowerCase()||"td"===a.target.parentNode.parentNode.tagName.toLowerCase()?e.activeCell=a.target.parentNode.parentNode:"th"!==a.target.parentNode.parentNode.parentNode.tagName.toLowerCase()&&"td"!==a.target.parentNode.parentNode.parentNode.tagName.toLowerCase()||(e.activeCell=a.target.parentNode.parentNode.parentNode)})),e.table.addEventListener("mousemove",(function(a){e.dragging&&(e.dragEl.style.width="".concat(e.dragStartWidth+(event.pageX-e.dragStartX),"px"))})),e.table.addEventListener("mouseup",(function(a){if(e.dragging)if(e.dragging=!1,clearTimeout(e.timeout),e.table.classList.contains("ea-advanced-data-table-static")){var t=e.parseHTML(e.table.cloneNode(!0));e.updateFromView(e.view,{ea_adv_data_table_static_html:t.innerHTML})}else{var n=[];e.table.querySelectorAll("th").forEach((function(e,a){n[a]=e.style.width})),e.updateFromView(e.view,{ea_adv_data_table_dynamic_th_width:n})}})),e.table.addEventListener("dblclick",(function(a){if("th"===a.target.tagName.toLowerCase())if(a.stopPropagation(),clearTimeout(e.timeout),e.table.classList.contains("ea-advanced-data-table-static")){var t=e.parseHTML(e.table.cloneNode(!0));e.updateFromView(e.view,{ea_adv_data_table_static_html:t.innerHTML})}else{var n=[];e.table.querySelectorAll("th").forEach((function(e,a){n[a]=e.style.width})),e.updateFromView(e.view,{ea_adv_data_table_dynamic_th_width:n})}}))),clearInterval(a))}),500)}},{key:"initPanelAction",value:function(){var e=this;this.panel.content.el.onclick=function(a){if("ea:advTable:export"==a.target.dataset.event){for(var t=e.table.querySelectorAll("table tr"),n=[],l=0;l<t.length;l++){var o=[],i=t[l].querySelectorAll("th, td");if(e.table.classList.contains("ea-advanced-data-table-static"))for(var r=0;r<i.length;r++)o.push(JSON.stringify(decodeURI(i[r].dataset.quill)));else for(var d=0;d<i.length;d++)o.push(JSON.stringify(i[d].innerHTML.replace(/(\r\n|\n|\r)/gm," ").trim()));n.push(o.join(","))}var s=new Blob([n.join("\n")],{type:"text/csv"}),c=parent.document.createElement("a");c.classList.add("ea-adv-data-table-download-".concat(e.model.attributes.id)),c.download="ea-adv-data-table-".concat(e.model.attributes.id,".csv"),c.href=window.URL.createObjectURL(s),c.style.display="none",parent.document.body.appendChild(c),c.click(),parent.document.querySelector(".ea-adv-data-table-download-".concat(e.model.attributes.id)).remove()}else if("ea:advTable:import"==a.target.dataset.event){var v=e.panel.content.el.querySelector(".ea_adv_table_csv_string"),u=e.panel.content.el.querySelector(".ea_adv_table_csv_string_table").checked,h=v.value.split("\n"),p="",b="";if(v.value.length>0&&(b+="<tbody>",h.forEach((function(e,a){e.length>0&&(cols=e.match(/("(?:[^"\\]|\\.)*"|[^","]+)/gm),cols.length>0&&(u&&0==a?(p+="<thead><tr>",cols.forEach((function(e){e.match(/(^"")|(^")|("$)|(""$)/g)?p+="<th>".concat(JSON.parse(e),"</th>"):p+="<th>".concat(e,"</th>")})),p+="</tr></thead>"):(b+="<tr>",cols.forEach((function(e){e.match(/(^"")|(^")|("$)|(""$)/g)?b+="<td>".concat(JSON.parse(e),"</td>"):b+="<td>".concat(e,"</td>")})),b+="</tr>")))})),b+="</tbody>",p.length>0||b.length>0)){e.updateFromView(e.view,{ea_adv_data_table_static_html:p+b},!0);var f=setInterval((function(){e.view.el.querySelector(".ea-advanced-data-table").innerHTML==p+b&&(clearInterval(f),ea.hooks.doAction("advancedDataTable.initInlineEdit"))}),500)}v.value=""}ea.hooks.doAction("advancedDataTable.panelAction",e.panel,e.model,e.view,a)}}},{key:"initPanel",value:function(e,a,t){var n=this;this.panel=e,this.model=a,this.view=t,ea.hooks.doAction("advancedDataTable.initInlineEdit"),ea.hooks.doAction("advancedDataTable.initPanelAction"),ea.hooks.doAction("advancedDataTable.afterInitPanel",e,a,t),a.once("editor:close",(function(){var e=n.parseHTML(n.table.cloneNode(!0));n.updateFromView(n.view,{ea_adv_data_table_static_html:e.innerHTML},!0)}))}},{key:"initContextMenu",value:function(e,a){return"eael-advanced-data-table"==a.options.model.attributes.widgetType&&"static"==a.options.model.attributes.settings.attributes.ea_adv_data_table_source&&e.push({name:"ea_advanced_data_table",actions:[{name:"add_row_above",title:"Add Row Above",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n&&"th"!=n.tagName.toLowerCase()){for(var l=n.parentNode.rowIndex,o=t.insertRow(l),i=0;i<t.rows[0].cells.length;i++){var r=o.insertCell(i);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_row_below",title:"Add Row Below",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.parentNode.rowIndex+1,o=t.insertRow(l),i=0;i<t.rows[0].cells.length;i++){var r=o.insertCell(i);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_column_left",title:"Add Column Left",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex,o=0;o<t.rows.length;o++)if("th"==t.rows[o].cells[0].tagName.toLowerCase()){var i=t.rows[o].insertBefore(document.createElement("th"),t.rows[o].cells[l]);ea.hooks.doAction("advancedDataTable.initEditor",i)}else{var r=t.rows[o].insertCell(l);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"add_column_right",title:"Add Column Right",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex+1,o=0;o<t.rows.length;o++)if("th"==t.rows[o].cells[0].tagName.toLowerCase()){var i=t.rows[o].insertBefore(document.createElement("th"),t.rows[o].cells[l]);ea.hooks.doAction("advancedDataTable.initEditor",i)}else{var r=t.rows[o].insertCell(l);ea.hooks.doAction("advancedDataTable.initEditor",r)}ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var d=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:d.innerHTML})}}},{name:"delete_row",title:"Delete Row",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){var l=n.parentNode.rowIndex;t.deleteRow(l),ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var o=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:o.innerHTML})}}},{name:"delete_column",title:"Delete Column",callback:function(){var e=ea.hooks.applyFilters("advancedDataTable.getClassProps"),a=e.view,t=e.table,n=e.activeCell;if(null!==n){for(var l=n.cellIndex,o=0;o<t.rows.length;o++)t.rows[o].deleteCell(l);ea.hooks.applyFilters("advancedDataTable.setClassProps",{activeCell:null});var i=ea.hooks.applyFilters("advancedDataTable.parseHTML",t.cloneNode(!0));ea.hooks.doAction("advancedDataTable.updateFromView",a,{ea_adv_data_table_static_html:i.innerHTML})}}}]}),e}}])&&t(a.prototype,n),l&&t(a,l),e}();ea.hooks.addAction("editMode.init","ea",(function(){new n}))}});
assets/front-end/js/edit/promotion.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=23)}({23:function(e,t){ea.hooks.addAction("editMode.init","ea",(function(){parent.document.addEventListener("mousedown",(function(e){var t=parent.document.querySelectorAll(".elementor-element--promotion");if(t.length>0)for(var n=0;n<t.length;n++)if(t[n].contains(e.target)){var o=parent.document.querySelector("#elementor-element--promotion__dialog");if(t[n].querySelector(".icon > i").classList.toString().indexOf("eaicon")>=0)if(o.querySelector(".dialog-buttons-action").style.display="none",null===o.querySelector(".ea-dialog-buttons-action")){var r=document.createElement("a"),a=document.createTextNode("Upgrade Essential Addons");r.setAttribute("href","https://wpdeveloper.net/upgrade/ea-pro"),r.setAttribute("target","_blank"),r.classList.add("dialog-button","dialog-action","dialog-buttons-action","elementor-button","elementor-button-success","ea-dialog-buttons-action"),r.appendChild(a),o.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend",r.outerHTML)}else o.querySelector(".ea-dialog-buttons-action").style.display="";else o.querySelector(".dialog-buttons-action").style.display="",null!==o.querySelector(".ea-dialog-buttons-action")&&(o.querySelector(".ea-dialog-buttons-action").style.display="none");break}}))}))}});
1
+ !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=24)}({24:function(e,t){ea.hooks.addAction("editMode.init","ea",(function(){parent.document.addEventListener("mousedown",(function(e){var t=parent.document.querySelectorAll(".elementor-element--promotion");if(t.length>0)for(var n=0;n<t.length;n++)if(t[n].contains(e.target)){var o=parent.document.querySelector("#elementor-element--promotion__dialog");if(t[n].querySelector(".icon > i").classList.toString().indexOf("eaicon")>=0)if(o.querySelector(".dialog-buttons-action").style.display="none",null===o.querySelector(".ea-dialog-buttons-action")){var r=document.createElement("a"),a=document.createTextNode("Upgrade Essential Addons");r.setAttribute("href","https://wpdeveloper.net/upgrade/ea-pro"),r.setAttribute("target","_blank"),r.classList.add("dialog-button","dialog-action","dialog-buttons-action","elementor-button","elementor-button-success","ea-dialog-buttons-action"),r.appendChild(a),o.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend",r.outerHTML)}else o.querySelector(".ea-dialog-buttons-action").style.display="";else o.querySelector(".dialog-buttons-action").style.display="",null!==o.querySelector(".ea-dialog-buttons-action")&&(o.querySelector(".ea-dialog-buttons-action").style.display="none");break}}))}))}});
assets/front-end/js/view/general.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var n={};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)r.d(t,o,function(n){return e[n]}.bind(null,o));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=67)}({67:function(e,n,r){"use strict";r.r(n);var t=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(e){return function(n,r,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(n)&&t(r))if("function"==typeof i)if("number"==typeof u){var c={callback:i,priority:u,namespace:r};if(e[n]){var a,l=e[n].handlers;for(a=l.length;a>0&&!(u>=l[a-1].priority);a--);a===l.length?l[a]=c:l.splice(a,0,c),(e.__current||[]).forEach((function(e){e.name===n&&e.currentIndex>=a&&e.currentIndex++}))}else e[n]={handlers:[c],runs:0};"hookAdded"!==n&&p("hookAdded",n,r,i,u)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var u=function(e,n){return function(r,i){if(o(r)&&(n||t(i))){if(!e[r])return 0;var u=0;if(n)u=e[r].handlers.length,e[r]={runs:e[r].runs,handlers:[]};else for(var c=e[r].handlers,a=function(n){c[n].namespace===i&&(c.splice(n,1),u++,(e.__current||[]).forEach((function(e){e.name===r&&e.currentIndex>=n&&e.currentIndex--})))},l=c.length-1;l>=0;l--)a(l);return"hookRemoved"!==r&&p("hookRemoved",r,i),u}}};var c=function(e){return function(n,r){return void 0!==r?n in e&&e[n].handlers.some((function(e){return e.namespace===r})):n in e}};var a=function(e,n){return function(r){e[r]||(e[r]={handlers:[],runs:0}),e[r].runs++;var t=e[r].handlers;for(var o=arguments.length,i=new Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=arguments[u];if(!t||!t.length)return n?i[0]:void 0;var c={name:r,currentIndex:0};for(e.__current.push(c);c.currentIndex<t.length;){var a=t[c.currentIndex],l=a.callback.apply(null,i);n&&(i[0]=l),c.currentIndex++}return e.__current.pop(),n?i[0]:void 0}};var l=function(e){return function(){return e.__current&&e.__current.length?e.__current[e.__current.length-1].name:null}};var d=function(e){return function(n){return void 0===n?void 0!==e.__current[0]:!!e.__current[0]&&n===e.__current[0].name}};var s=function(e){return function(n){if(o(n))return e[n]&&e[n].runs?e[n].runs:0}};var f=function(){var e=Object.create(null),n=Object.create(null);return e.__current=[],n.__current=[],{addAction:i(e),addFilter:i(n),removeAction:u(e),removeFilter:u(n),hasAction:c(e),hasFilter:c(n),removeAllActions:u(e,!0),removeAllFilters:u(n,!0),doAction:a(e),applyFilters:a(n,!0),currentAction:l(e),currentFilter:l(n),doingAction:d(e),doingFilter:d(n),didAction:s(e),didFilter:s(n),actions:e,filters:n}},h=f(),p=(h.addAction,h.addFilter,h.removeAction,h.removeFilter,h.hasAction,h.hasFilter,h.removeAllActions,h.removeAllFilters,h.doAction);h.applyFilters,h.currentAction,h.currentFilter,h.doingAction,h.doingFilter,h.didAction,h.didFilter,h.actions,h.filters;window.isEditMode=!1,window.ea={hooks:f(),isEditMode:!1},jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.ea.isEditMode=elementorFrontend.isEditMode(),ea.hooks.doAction("init"),ea.isEditMode&&ea.hooks.doAction("editMode.init")}))}});
1
+ !function(e){var n={};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)r.d(t,o,function(n){return e[n]}.bind(null,o));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=69)}({69:function(e,n,r){"use strict";r.r(n);var t=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(e){return function(n,r,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(n)&&t(r))if("function"==typeof i)if("number"==typeof u){var c={callback:i,priority:u,namespace:r};if(e[n]){var a,l=e[n].handlers;for(a=l.length;a>0&&!(u>=l[a-1].priority);a--);a===l.length?l[a]=c:l.splice(a,0,c),(e.__current||[]).forEach((function(e){e.name===n&&e.currentIndex>=a&&e.currentIndex++}))}else e[n]={handlers:[c],runs:0};"hookAdded"!==n&&p("hookAdded",n,r,i,u)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var u=function(e,n){return function(r,i){if(o(r)&&(n||t(i))){if(!e[r])return 0;var u=0;if(n)u=e[r].handlers.length,e[r]={runs:e[r].runs,handlers:[]};else for(var c=e[r].handlers,a=function(n){c[n].namespace===i&&(c.splice(n,1),u++,(e.__current||[]).forEach((function(e){e.name===r&&e.currentIndex>=n&&e.currentIndex--})))},l=c.length-1;l>=0;l--)a(l);return"hookRemoved"!==r&&p("hookRemoved",r,i),u}}};var c=function(e){return function(n,r){return void 0!==r?n in e&&e[n].handlers.some((function(e){return e.namespace===r})):n in e}};var a=function(e,n){return function(r){e[r]||(e[r]={handlers:[],runs:0}),e[r].runs++;var t=e[r].handlers;for(var o=arguments.length,i=new Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=arguments[u];if(!t||!t.length)return n?i[0]:void 0;var c={name:r,currentIndex:0};for(e.__current.push(c);c.currentIndex<t.length;){var a=t[c.currentIndex],l=a.callback.apply(null,i);n&&(i[0]=l),c.currentIndex++}return e.__current.pop(),n?i[0]:void 0}};var l=function(e){return function(){return e.__current&&e.__current.length?e.__current[e.__current.length-1].name:null}};var d=function(e){return function(n){return void 0===n?void 0!==e.__current[0]:!!e.__current[0]&&n===e.__current[0].name}};var s=function(e){return function(n){if(o(n))return e[n]&&e[n].runs?e[n].runs:0}};var f=function(){var e=Object.create(null),n=Object.create(null);return e.__current=[],n.__current=[],{addAction:i(e),addFilter:i(n),removeAction:u(e),removeFilter:u(n),hasAction:c(e),hasFilter:c(n),removeAllActions:u(e,!0),removeAllFilters:u(n,!0),doAction:a(e),applyFilters:a(n,!0),currentAction:l(e),currentFilter:l(n),doingAction:d(e),doingFilter:d(n),didAction:s(e),didFilter:s(n),actions:e,filters:n}},h=f(),p=(h.addAction,h.addFilter,h.removeAction,h.removeFilter,h.hasAction,h.hasFilter,h.removeAllActions,h.removeAllFilters,h.doAction);h.applyFilters,h.currentAction,h.currentFilter,h.doingAction,h.doingFilter,h.didAction,h.didFilter,h.actions,h.filters;window.isEditMode=!1,window.ea={hooks:f(),isEditMode:!1},jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.ea.isEditMode=elementorFrontend.isEditMode(),ea.hooks.doAction("init"),ea.isEditMode&&ea.hooks.doAction("editMode.init")}))}});
assets/front-end/js/view/login-register.js ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/js/view/login-register.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./src/js/view/login-register.js":
90
+ /*!***************************************!*\
91
+ !*** ./src/js/view/login-register.js ***!
92
+ \***************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ eval("ea.hooks.addAction(\"init\", \"ea\", function () {\n var EALoginRegister = function EALoginRegister($scope, $) {\n var $loginFormWrapper = $scope.find(\"#eael-login-form-wrapper\");\n var $regFormWrapper = $scope.find(\"#eael-register-form-wrapper\");\n var $regLinkAction = $scope.find('#eael-lr-reg-toggle');\n var $loginLinkAction = $scope.find('#eael-lr-login-toggle');\n var $passField = $loginFormWrapper.find('#eael-user-password');\n\n if ('form' === $regLinkAction.data('action')) {\n $regLinkAction.on('click', function (e) {\n e.preventDefault();\n $loginFormWrapper.hide();\n $regFormWrapper.fadeIn();\n });\n }\n\n if ('form' === $loginLinkAction.data('action')) {\n $loginLinkAction.on('click', function (e) {\n e.preventDefault();\n $regFormWrapper.hide();\n $loginFormWrapper.fadeIn();\n });\n } // Password Visibility Toggle\n\n\n var pass_shown = false;\n $(document).on('click', '#wp-hide-pw', function (e) {\n var $icon = $(this).find('span'); // cache\n\n if (pass_shown) {\n $passField.attr('type', 'password');\n $icon.removeClass('dashicons-hidden').addClass('dashicons-visibility');\n pass_shown = false;\n } else {\n $passField.attr('type', 'text');\n $icon.removeClass('dashicons-visibility').addClass('dashicons-hidden');\n pass_shown = true;\n }\n });\n };\n\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-login-register.default\", EALoginRegister);\n});\n\n//# sourceURL=webpack:///./src/js/view/login-register.js?");
97
+
98
+ /***/ })
99
+
100
+ /******/ });
assets/front-end/js/view/login-register.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=13)}({13:function(e,n){ea.hooks.addAction("init","ea",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-login-register.default",(function(e,n){var t=e.find("#eael-login-form-wrapper"),r=e.find("#eael-register-form-wrapper"),o=e.find("#eael-lr-reg-toggle"),i=e.find("#eael-lr-login-toggle"),a=t.find("#eael-user-password");"form"===o.data("action")&&o.on("click",(function(e){e.preventDefault(),t.hide(),r.fadeIn()})),"form"===i.data("action")&&i.on("click",(function(e){e.preventDefault(),r.hide(),t.fadeIn()}));var d=!1;n(document).on("click","#wp-hide-pw",(function(e){var t=n(this).find("span");d?(a.attr("type","password"),t.removeClass("dashicons-hidden").addClass("dashicons-visibility"),d=!1):(a.attr("type","text"),t.removeClass("dashicons-visibility").addClass("dashicons-hidden"),d=!0)}))}))}))}});
assets/front-end/js/view/post-grid.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=13)}({13:function(e,t){var n=function(e,t){var n=t(".eael-post-appender",e),o=n.data("layout-mode");"masonry"===o&&(n.isotope({itemSelector:".eael-grid-post",layoutMode:o,percentPosition:!0}),n.imagesLoaded().progress((function(){n.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-post-grid.default",n)}))}});
1
+ !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=14)}({14:function(e,t){var n=function(e,t){var n=t(".eael-post-appender",e),o=n.data("layout-mode");"masonry"===o&&(n.isotope({itemSelector:".eael-grid-post",layoutMode:o,percentPosition:!0}),n.imagesLoaded().progress((function(){n.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-post-grid.default",n)}))}});
assets/front-end/js/view/price-table.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=14)}({14:function(t,e){var n=function(t,e){if(e.fn.tooltipster){var n,r=t.find(".tooltip");for(n=0;n<r.length;n++){var o=e("#"+e(r[n]).attr("id")),a=void 0!==o.data("side")&&o.data("side"),i=void 0!==o.data("trigger")?o.data("trigger"):"hover",d=void 0!==o.data("animation")?o.data("animation"):"fade",u=void 0!==o.data("animation_duration")?o.data("animation_duration"):300,f=void 0!==o.data("theme")?o.data("theme"):"default",l="yes"==o.data("arrow");o.tooltipster({animation:d,trigger:i,side:a,delay:u,arrow:l,theme:"tooltipster-"+f})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-pricing-table.default",n)}))}});
1
+ !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=15)}({15:function(t,e){var n=function(t,e){if(e.fn.tooltipster){var n,r=t.find(".tooltip");for(n=0;n<r.length;n++){var o=e("#"+e(r[n]).attr("id")),a=void 0!==o.data("side")&&o.data("side"),i=void 0!==o.data("trigger")?o.data("trigger"):"hover",d=void 0!==o.data("animation")?o.data("animation"):"fade",u=void 0!==o.data("animation_duration")?o.data("animation_duration"):300,f=void 0!==o.data("theme")?o.data("theme"):"default",l="yes"==o.data("arrow");o.tooltipster({animation:d,trigger:i,side:a,delay:u,arrow:l,theme:"tooltipster-"+f})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-pricing-table.default",n)}))}});
assets/front-end/js/view/progress-bar.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=15)}({15:function(e,r){var t=function(e,r){var t=r(".eael-progressbar",e),n=t.data("layout"),o=t.data("count"),i=t.data("duration");o>100&&(o=100),t.one("inview",(function(){"line"==n?r(".eael-progressbar-line-fill",t).css({width:o+"%"}):"half_circle"==n&&r(".eael-progressbar-circle-half",t).css({transform:"rotate("+1.8*o+"deg)"}),ea.hooks.doAction("progressBar.initValue",t,n,o),r(".eael-progressbar-count",t).prop({counter:0}).animate({counter:o},{duration:i,easing:"linear",step:function(e){if("circle"==n||"circle_fill"==n){var o=3.6*e;r(".eael-progressbar-circle-half-left",t).css({transform:"rotate("+o+"deg)"}),o>180&&(r(".eael-progressbar-circle-pie",t).css({"-webkit-clip-path":"inset(0)","clip-path":"inset(0)"}),r(".eael-progressbar-circle-half-right",t).css({visibility:"visible"}))}r(this).text(Math.ceil(e))}})}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-progress-bar.default",t)}))}});
1
+ !function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=16)}({16:function(e,r){var t=function(e,r){var t=r(".eael-progressbar",e),n=t.data("layout"),o=t.data("count"),i=t.data("duration");o>100&&(o=100),t.one("inview",(function(){"line"==n?r(".eael-progressbar-line-fill",t).css({width:o+"%"}):"half_circle"==n&&r(".eael-progressbar-circle-half",t).css({transform:"rotate("+1.8*o+"deg)"}),ea.hooks.doAction("progressBar.initValue",t,n,o),r(".eael-progressbar-count",t).prop({counter:0}).animate({counter:o},{duration:i,easing:"linear",step:function(e){if("circle"==n||"circle_fill"==n){var o=3.6*e;r(".eael-progressbar-circle-half-left",t).css({transform:"rotate("+o+"deg)"}),o>180&&(r(".eael-progressbar-circle-pie",t).css({"-webkit-clip-path":"inset(0)","clip-path":"inset(0)"}),r(".eael-progressbar-circle-half-right",t).css({visibility:"visible"}))}r(this).text(Math.ceil(e))}})}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-progress-bar.default",t)}))}});
assets/front-end/js/view/reading-progress.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var r={};function a(s){if(r[s])return r[s].exports;var n=r[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=r,a.d=function(e,r,s){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:s})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(a.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(s,n,function(r){return e[r]}.bind(null,n));return s},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=16)}({16:function(e,r){jQuery(document).ready((function(){jQuery(window).scroll((function(){var e=(document.body.scrollTop||document.documentElement.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)*100;jQuery(".eael-reading-progress-fill").css({width:e+"%"})})),isEditMode&&(elementor.settings.page.addChangeCallback("eael_ext_reading_progress",(function(e){var r=elementor.settings.page.getSettings();"yes"==e?(0==jQuery(".eael-reading-progress-wrap").length&&jQuery("body").append('<div class="eael-reading-progress-wrap eael-reading-progress-wrap-local"><div class="eael-reading-progress eael-reading-progress-local eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div><div class="eael-reading-progress eael-reading-progress-global eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div></div>'),jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-local").removeClass("eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled")):(jQuery(".eael-reading-progress-wrap").removeClass("eael-reading-progress-wrap-local eael-reading-progress-wrap-global"),1==r.settings.eael_ext_reading_progress_has_global?jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-global"):jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-disabled"))})),elementor.settings.page.addChangeCallback("eael_ext_reading_progress_position",(function(e){elementor.settings.page.setSettings("eael_ext_reading_progress_position",e),jQuery(".eael-reading-progress").removeClass("eael-reading-progress-top eael-reading-progress-bottom").addClass("eael-reading-progress-"+e)})))}))}});
1
+ !function(e){var r={};function a(s){if(r[s])return r[s].exports;var n=r[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=r,a.d=function(e,r,s){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:s})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(a.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(s,n,function(r){return e[r]}.bind(null,n));return s},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=17)}({17:function(e,r){jQuery(document).ready((function(){jQuery(window).scroll((function(){var e=(document.body.scrollTop||document.documentElement.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)*100;jQuery(".eael-reading-progress-fill").css({width:e+"%"})})),isEditMode&&(elementor.settings.page.addChangeCallback("eael_ext_reading_progress",(function(e){var r=elementor.settings.page.getSettings();"yes"==e?(0==jQuery(".eael-reading-progress-wrap").length&&jQuery("body").append('<div class="eael-reading-progress-wrap eael-reading-progress-wrap-local"><div class="eael-reading-progress eael-reading-progress-local eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div><div class="eael-reading-progress eael-reading-progress-global eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div></div>'),jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-local").removeClass("eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled")):(jQuery(".eael-reading-progress-wrap").removeClass("eael-reading-progress-wrap-local eael-reading-progress-wrap-global"),1==r.settings.eael_ext_reading_progress_has_global?jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-global"):jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-disabled"))})),elementor.settings.page.addChangeCallback("eael_ext_reading_progress_position",(function(e){elementor.settings.page.setSettings("eael_ext_reading_progress_position",e),jQuery(".eael-reading-progress").removeClass("eael-reading-progress-top eael-reading-progress-bottom").addClass("eael-reading-progress-"+e)})))}))}});
assets/front-end/js/view/sticky-video.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function i(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(o,r,function(t){return e[t]}.bind(null,r));return o},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=17)}({17:function(e,t){var i="",o=0,r=0,a=0,s="off",n=0;function l(e){var t=jQuery(e).parent().height(),i=n*t/100;return jQuery(e).parent().offset().top+i}function u(e,t,i){"top-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),"top-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),jQuery(".eael-sticky-video-player2.out").css("width",i+"px"),jQuery(".eael-sticky-video-player2.out").css("height",t+"px")}jQuery(window).on("elementor/frontend/init",(function(){isEditMode&&elementor.hooks.addAction("panel/open_editor/widget/eael-sticky-video",(function(e,t,i){var o;t.attributes.settings.on("change:eaelsv_sticky_width",(function(){clearTimeout(o),o=setTimeout((function(){var i=Math.ceil(t.getSetting("eaelsv_sticky_width")/1.78);t.attributes.settings.attributes.eaelsv_sticky_height=i,e.el.querySelector('[data-setting="eaelsv_sticky_height"]').value=i}),250)})),t.attributes.settings.on("change:eaelsv_sticky_height",(function(){clearTimeout(o),o=setTimeout((function(){var i=Math.ceil(1.78*t.getSetting("eaelsv_sticky_height"));t.attributes.settings.attributes.eaelsv_sticky_width=i,e.el.querySelector('[data-setting="eaelsv_sticky_width"]').value=i}),250)}))})),elementorFrontend.hooks.addAction("frontend/element_ready/eael-sticky-video.default",(function(e,t){t(".eaelsv-sticky-player-close",e).hide();var c,y,d,p=e.find(".eael-sticky-video-player2");c=p.data("sticky"),y=p.data("autoplay"),i=p.data("position"),r=p.data("sheight"),o=p.data("swidth"),d=p.data("overlay"),n=p.data("scroll_height"),u(i,r,o);var v,f=new Plyr("#eaelsv-player-"+e.data("id"));if("no"===d&&"yes"===y&&"yes"===c&&(a=l(p),p.attr("id","videobox"),s="on",v=p,f.on("play",(function(e){a=l(v),jQuery(".eael-sticky-video-player2").removeAttr("id"),jQuery(".eael-sticky-video-player2").removeClass("out"),v.attr("id","videobox"),s="on",i=v.data("position"),r=v.data("sheight"),o=v.data("swidth")}))),"yes"===d){var h=p.prev();s="off",t(h).on("click",(function(){t(".eael-sticky-video-wrapper > i").hide(),t(this).css("display","none"),f.play(),"yes"===t(this).next().data("autoplay")&&(f.restart(),a=l(this),"yes"===c&&(t(this).next().attr("id","videobox"),s="on"))}))}f.on("pause",(function(e){s="off"})),f.on("play",(function(e){s="on"})),t(".eaelsv-sticky-player-close").on("click",(function(){p.removeClass("out").addClass("in"),t(".eael-sticky-video-player2").removeAttr("style"),s="off"})),p.parent().css("height",p.height()+"px"),t(window).resize((function(){p.parent().css("height",p.height()+"px")}))}))})),jQuery(window).scroll((function(){var e=jQuery(window).scrollTop();jQuery(document).height()-e>jQuery(window).height()+400&&(e>=a?"on"==s&&(jQuery("#videobox").find(".eaelsv-sticky-player-close").css("display","block"),jQuery("#videobox").removeClass("in").addClass("out"),u(i,r,o)):(jQuery(".eaelsv-sticky-player-close").hide(),jQuery("#videobox").removeClass("out").addClass("in"),jQuery(".eael-sticky-video-player2").removeAttr("style")))}))}});
1
+ !function(e){var t={};function i(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(o,r,function(t){return e[t]}.bind(null,r));return o},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=18)}({18:function(e,t){var i="",o=0,r=0,a=0,s="off",n=0;function l(e){var t=jQuery(e).parent().height(),i=n*t/100;return jQuery(e).parent().offset().top+i}function u(e,t,i){"top-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),"top-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),jQuery(".eael-sticky-video-player2.out").css("width",i+"px"),jQuery(".eael-sticky-video-player2.out").css("height",t+"px")}jQuery(window).on("elementor/frontend/init",(function(){isEditMode&&elementor.hooks.addAction("panel/open_editor/widget/eael-sticky-video",(function(e,t,i){var o;t.attributes.settings.on("change:eaelsv_sticky_width",(function(){clearTimeout(o),o=setTimeout((function(){var i=Math.ceil(t.getSetting("eaelsv_sticky_width")/1.78);t.attributes.settings.attributes.eaelsv_sticky_height=i,e.el.querySelector('[data-setting="eaelsv_sticky_height"]').value=i}),250)})),t.attributes.settings.on("change:eaelsv_sticky_height",(function(){clearTimeout(o),o=setTimeout((function(){var i=Math.ceil(1.78*t.getSetting("eaelsv_sticky_height"));t.attributes.settings.attributes.eaelsv_sticky_width=i,e.el.querySelector('[data-setting="eaelsv_sticky_width"]').value=i}),250)}))})),elementorFrontend.hooks.addAction("frontend/element_ready/eael-sticky-video.default",(function(e,t){t(".eaelsv-sticky-player-close",e).hide();var c,y,d,p=e.find(".eael-sticky-video-player2");c=p.data("sticky"),y=p.data("autoplay"),i=p.data("position"),r=p.data("sheight"),o=p.data("swidth"),d=p.data("overlay"),n=p.data("scroll_height"),u(i,r,o);var v,f=new Plyr("#eaelsv-player-"+e.data("id"));if("no"===d&&"yes"===y&&"yes"===c&&(a=l(p),p.attr("id","videobox"),s="on",v=p,f.on("play",(function(e){a=l(v),jQuery(".eael-sticky-video-player2").removeAttr("id"),jQuery(".eael-sticky-video-player2").removeClass("out"),v.attr("id","videobox"),s="on",i=v.data("position"),r=v.data("sheight"),o=v.data("swidth")}))),"yes"===d){var h=p.prev();s="off",t(h).on("click",(function(){t(".eael-sticky-video-wrapper > i").hide(),t(this).css("display","none"),f.play(),"yes"===t(this).next().data("autoplay")&&(f.restart(),a=l(this),"yes"===c&&(t(this).next().attr("id","videobox"),s="on"))}))}f.on("pause",(function(e){s="off"})),f.on("play",(function(e){s="on"})),t(".eaelsv-sticky-player-close").on("click",(function(){p.removeClass("out").addClass("in"),t(".eael-sticky-video-player2").removeAttr("style"),s="off"})),p.parent().css("height",p.height()+"px"),t(window).resize((function(){p.parent().css("height",p.height()+"px")}))}))})),jQuery(window).scroll((function(){var e=jQuery(window).scrollTop();jQuery(document).height()-e>jQuery(window).height()+400&&(e>=a?"on"==s&&(jQuery("#videobox").find(".eaelsv-sticky-player-close").css("display","block"),jQuery("#videobox").removeClass("in").addClass("out"),u(i,r,o)):(jQuery(".eaelsv-sticky-player-close").hide(),jQuery("#videobox").removeClass("out").addClass("in"),jQuery(".eael-sticky-video-player2").removeAttr("style")))}))}});
assets/front-end/js/view/table-of-content.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function a(l){if(t[l])return t[l].exports;var o=t[l]={i:l,l:!1,exports:{}};return e[l].call(o.exports,o,o.exports,a),o.l=!0,o.exports}a.m=e,a.c=t,a.d=function(e,t,l){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:l})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var l=Object.create(null);if(a.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)a.d(l,o,function(t){return e[t]}.bind(null,o));return l},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=18)}({18:function(e,t){function a(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=new Array(t);a<t;a++)l[a]=e[a];return l}var o;o=jQuery,jQuery(document).ready((function(){function e(e,t){var c=document.getElementById("eael-toc-list");if(null===e||void 0===t||!c)return null;for(var r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=void 0!==r.dataset.excludeSelector?r.dataset.excludeSelector.replace(/^,|,$/g,""):"",d=[],u=document.querySelectorAll(e),g=0,m=0;m<u.length;m++)d=[].concat(a(d),a(u[m].querySelectorAll(t)));(d=Array.from(new Set(d))).forEach((function(e){l(i,e)||(e.id=g+"-"+n(s,e.textContent),e.classList.add("eael-heading-content"),g++)})),function(e,t,a){var o=t,c=a,r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=document.getElementById("eael-toc-list"),d=void 0!==r.dataset.excludeselector?r.dataset.excludeselector.replace(/^,|,$/g,""):"",u="",g=u=o.trim().split(",")[0].substr(1,1),m=i;i.innerHTML="",c.length>0&&document.getElementById("eael-toc").classList.remove("eael-toc-disable");for(var p=0,f=c.length;p<f;++p){var h=c[p];if(!l(d,h)){var _=parseInt(h.tagName.substr(1,1)),b=_-u;if(b>0){var v=m.lastChild;if(v){var C=document.createElement("UL");v.appendChild(C),m=C,u=_}}var y=!1;if(b<0){for(;0!=b++;)m.parentNode.parentNode&&(m=m.parentNode.parentNode);u=_,y=!0}if("UL"!==m.tagName&&(m=i),""!==h.textContent.trim()){var x=document.createElement("LI"),w=document.createElement("A"),k=document.createElement("SPAN");(g===u||y)&&(x.setAttribute("itemscope",""),x.setAttribute("itemtype","http://schema.org/ListItem"),x.setAttribute("itemprop","itemListElement"));var S="#"+p+"-"+n(s,h.textContent);w.className="eael-toc-link",w.setAttribute("itemprop","item"),w.setAttribute("href",S),k.appendChild(document.createTextNode(h.textContent)),w.appendChild(k),x.appendChild(w),m.appendChild(x)}}}}(0,t,d);var p=o("ul.eael-toc-list > li");p.length<1&&document.getElementById("eael-toc").classList.add("eael-toc-disable"),p.each((function(){this.classList.add("eael-first-child")}))}o(document).on("click","ul.eael-toc-list a",(function(e){e.preventDefault(),o(document).off("scroll");var t=this.hash;if(history.pushState("",document.title,window.location.pathname+window.location.search),o(this).parent().is(".eael-highlight-parent.eael-highlight-active"))return window.location.hash=t,!1;o(".eael-highlight-active, .eael-highlight-parent").removeClass("eael-highlight-active eael-highlight-parent"),o(this).closest(".eael-first-child").addClass("eael-highlight-parent"),o(this).parent().addClass("eael-highlight-active"),window.location.hash=t})),window.addEventListener("scroll",(function(e){var a;(a=document.getElementById("eael-toc"))&&(t=void 0!==t?t:200,window.pageYOffset>=t&&!a.classList.contains("eael-toc-disable")?a.classList.add("eael-sticky"):a.classList.remove("eael-sticky"))}));var t=o("#eael-toc").data("stickyscroll");function l(e,t){return o(t).closest(e).length}function n(e,t){return"true"==e&&""!=t?t.toString().toLowerCase().normalize("NFD").trim().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-+/g,"-"):"eael-table-of-content"}function c(){var e=document.getElementById("eael-toc");if(e&&e.dataset.contentselector)return e.dataset.contentselector;var t=".site-content";return o(".site-content")[0]?t=".site-content":o(".elementor-inner")[0]?t=".elementor-inner":o("#site-content")[0]&&(t="#site-content"),t}o("body").click((function(e){var t=o(e.target),a=o("#eael-toc");a.hasClass("eael-toc-auto-collapse")&&a.hasClass("eael-sticky")&&!a.hasClass("collapsed")&&0===o(t).closest("#eael-toc").length&&a.toggleClass("collapsed")})),o(document).on("click",".eael-toc-close ,.eael-toc-button",(function(e){e.stopPropagation(),o(".eael-toc").toggleClass("collapsed")}));var r=o("#eael-toc").data("eaeltoctag");""===r||isEditMode||e(c(),r),isEditMode&&(elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t,a){var l=a("#eael-toc #eael-toc-list");if(l.find("li.eael-first-child").length<1&&l.length>=1){var o=a("#eael-toc").data("eaeltoctag");o&&e(c(),o)}})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content",(function(t){var a=o(".eael-toc-global");if(a.length>0&&(a.attr("id","eael-toc-temp").removeClass("eael-toc").hide(),o(".eael-toc-global #eael-toc-list").attr("id","")),o("#eael-toc").remove(),"yes"===t){var l=elementor.settings.page.getSettings();o("body").append(function(e){var t=e.settings,a=t.eael_ext_toc_title,l="eael-toc-list eael-toc-list-"+t.eael_ext_table_of_content_list_style,o=t.eael_ext_table_of_content_header_icon.value,n="right"===t.eael_ext_toc_position?" eael-toc-right":" ";return l+="yes"===t.eael_ext_toc_collapse_sub_heading?" eael-toc-collapse":" ",'<div id="eael-toc" class="eael-toc eael-toc-disable '+n+'"><div class="eael-toc-header"><span class="eael-toc-close">×</span><h2 class="eael-toc-title">'+a+'</h2></div><div class="eael-toc-body"><ul id="eael-toc-list" class="'+(l+="number"===t.eael_ext_toc_list_icon?" eael-toc-number":" eael-toc-bullet")+'"></ul></div><button class="eael-toc-button"><i class="'+o+'"></i><span>'+a+"</span></button></div>"}(l)),e(c(),l.settings.eael_ext_toc_supported_heading_tag.join(", "))}else a.length>0&&a.addClass("eael-toc").attr("id","eael-toc").show()})),elementor.settings.page.addChangeCallback("eael_ext_toc_position",(function(e){"right"===e?o("#eael-toc").addClass("eael-toc-right"):o("#eael-toc").removeClass("eael-toc-right")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_list_style",(function(e){var t=o(".eael-toc-list");t.removeClass("eael-toc-list-bar eael-toc-list-arrow"),"none"!==e&&t.addClass("eael-toc-list-"+e)})),elementor.settings.page.addChangeCallback("eael_ext_toc_collapse_sub_heading",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-collapse"):t.removeClass("eael-toc-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_header_icon",(function(e){o(".eael-toc-button i").removeClass().addClass(e.value)})),elementor.settings.page.addChangeCallback("eael_ext_toc_list_icon",(function(e){var t=o(".eael-toc-list");"number"===e?t.addClass("eael-toc-number").removeClass("eael-toc-bullet"):t.addClass("eael-toc-bullet").removeClass("eael-toc-number")})),elementor.settings.page.addChangeCallback("eael_ext_toc_word_wrap",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-word-wrap"):t.removeClass("eael-toc-word-wrap")})),elementor.settings.page.addChangeCallback("eael_ext_toc_close_button_text_style",(function(e){var t=o("#eael-toc");"bottom_to_top"===e?t.addClass("eael-bottom-to-top"):t.removeClass("eael-bottom-to-top")})),elementor.settings.page.addChangeCallback("eael_ext_toc_box_shadow",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-box-shadow"):t.removeClass("eael-box-shadow")})),elementor.settings.page.addChangeCallback("eael_ext_toc_auto_collapse",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-toc-auto-collapse"):t.removeClass("eael-toc-auto-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_toc_title",(function(e){elementorFrontend.elements.$document.find(".eael-toc-title").text(e),elementorFrontend.elements.$document.find(".eael-toc-button span").text(e)})))}))}});
1
+ !function(e){var t={};function a(l){if(t[l])return t[l].exports;var o=t[l]={i:l,l:!1,exports:{}};return e[l].call(o.exports,o,o.exports,a),o.l=!0,o.exports}a.m=e,a.c=t,a.d=function(e,t,l){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:l})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var l=Object.create(null);if(a.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)a.d(l,o,function(t){return e[t]}.bind(null,o));return l},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=19)}({19:function(e,t){function a(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=new Array(t);a<t;a++)l[a]=e[a];return l}var o;o=jQuery,jQuery(document).ready((function(){function e(e,t){var c=document.getElementById("eael-toc-list");if(null===e||void 0===t||!c)return null;for(var r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=void 0!==r.dataset.excludeSelector?r.dataset.excludeSelector.replace(/^,|,$/g,""):"",d=[],u=document.querySelectorAll(e),g=0,m=0;m<u.length;m++)d=[].concat(a(d),a(u[m].querySelectorAll(t)));(d=Array.from(new Set(d))).forEach((function(e){l(i,e)||(e.id=g+"-"+n(s,e.textContent),e.classList.add("eael-heading-content"),g++)})),function(e,t,a){var o=t,c=a,r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=document.getElementById("eael-toc-list"),d=void 0!==r.dataset.excludeselector?r.dataset.excludeselector.replace(/^,|,$/g,""):"",u="",g=u=o.trim().split(",")[0].substr(1,1),m=i;i.innerHTML="",c.length>0&&document.getElementById("eael-toc").classList.remove("eael-toc-disable");for(var p=0,f=c.length;p<f;++p){var h=c[p];if(!l(d,h)){var _=parseInt(h.tagName.substr(1,1)),b=_-u;if(b>0){var v=m.lastChild;if(v){var C=document.createElement("UL");v.appendChild(C),m=C,u=_}}var y=!1;if(b<0){for(;0!=b++;)m.parentNode.parentNode&&(m=m.parentNode.parentNode);u=_,y=!0}if("UL"!==m.tagName&&(m=i),""!==h.textContent.trim()){var x=document.createElement("LI"),w=document.createElement("A"),k=document.createElement("SPAN");(g===u||y)&&(x.setAttribute("itemscope",""),x.setAttribute("itemtype","http://schema.org/ListItem"),x.setAttribute("itemprop","itemListElement"));var S="#"+p+"-"+n(s,h.textContent);w.className="eael-toc-link",w.setAttribute("itemprop","item"),w.setAttribute("href",S),k.appendChild(document.createTextNode(h.textContent)),w.appendChild(k),x.appendChild(w),m.appendChild(x)}}}}(0,t,d);var p=o("ul.eael-toc-list > li");p.length<1&&document.getElementById("eael-toc").classList.add("eael-toc-disable"),p.each((function(){this.classList.add("eael-first-child")}))}o(document).on("click","ul.eael-toc-list a",(function(e){e.preventDefault(),o(document).off("scroll");var t=this.hash;if(history.pushState("",document.title,window.location.pathname+window.location.search),o(this).parent().is(".eael-highlight-parent.eael-highlight-active"))return window.location.hash=t,!1;o(".eael-highlight-active, .eael-highlight-parent").removeClass("eael-highlight-active eael-highlight-parent"),o(this).closest(".eael-first-child").addClass("eael-highlight-parent"),o(this).parent().addClass("eael-highlight-active"),window.location.hash=t})),window.addEventListener("scroll",(function(e){var a;(a=document.getElementById("eael-toc"))&&(t=void 0!==t?t:200,window.pageYOffset>=t&&!a.classList.contains("eael-toc-disable")?a.classList.add("eael-sticky"):a.classList.remove("eael-sticky"))}));var t=o("#eael-toc").data("stickyscroll");function l(e,t){return o(t).closest(e).length}function n(e,t){return"true"==e&&""!=t?t.toString().toLowerCase().normalize("NFD").trim().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-+/g,"-"):"eael-table-of-content"}function c(){var e=document.getElementById("eael-toc");if(e&&e.dataset.contentselector)return e.dataset.contentselector;var t=".site-content";return o(".site-content")[0]?t=".site-content":o(".elementor-inner")[0]?t=".elementor-inner":o("#site-content")[0]&&(t="#site-content"),t}o("body").click((function(e){var t=o(e.target),a=o("#eael-toc");a.hasClass("eael-toc-auto-collapse")&&a.hasClass("eael-sticky")&&!a.hasClass("collapsed")&&0===o(t).closest("#eael-toc").length&&a.toggleClass("collapsed")})),o(document).on("click",".eael-toc-close ,.eael-toc-button",(function(e){e.stopPropagation(),o(".eael-toc").toggleClass("collapsed")}));var r=o("#eael-toc").data("eaeltoctag");""===r||isEditMode||e(c(),r),isEditMode&&(elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t,a){var l=a("#eael-toc #eael-toc-list");if(l.find("li.eael-first-child").length<1&&l.length>=1){var o=a("#eael-toc").data("eaeltoctag");o&&e(c(),o)}})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content",(function(t){var a=o(".eael-toc-global");if(a.length>0&&(a.attr("id","eael-toc-temp").removeClass("eael-toc").hide(),o(".eael-toc-global #eael-toc-list").attr("id","")),o("#eael-toc").remove(),"yes"===t){var l=elementor.settings.page.getSettings();o("body").append(function(e){var t=e.settings,a=t.eael_ext_toc_title,l="eael-toc-list eael-toc-list-"+t.eael_ext_table_of_content_list_style,o=t.eael_ext_table_of_content_header_icon.value,n="right"===t.eael_ext_toc_position?" eael-toc-right":" ";return l+="yes"===t.eael_ext_toc_collapse_sub_heading?" eael-toc-collapse":" ",'<div id="eael-toc" class="eael-toc eael-toc-disable '+n+'"><div class="eael-toc-header"><span class="eael-toc-close">×</span><h2 class="eael-toc-title">'+a+'</h2></div><div class="eael-toc-body"><ul id="eael-toc-list" class="'+(l+="number"===t.eael_ext_toc_list_icon?" eael-toc-number":" eael-toc-bullet")+'"></ul></div><button class="eael-toc-button"><i class="'+o+'"></i><span>'+a+"</span></button></div>"}(l)),e(c(),l.settings.eael_ext_toc_supported_heading_tag.join(", "))}else a.length>0&&a.addClass("eael-toc").attr("id","eael-toc").show()})),elementor.settings.page.addChangeCallback("eael_ext_toc_position",(function(e){"right"===e?o("#eael-toc").addClass("eael-toc-right"):o("#eael-toc").removeClass("eael-toc-right")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_list_style",(function(e){var t=o(".eael-toc-list");t.removeClass("eael-toc-list-bar eael-toc-list-arrow"),"none"!==e&&t.addClass("eael-toc-list-"+e)})),elementor.settings.page.addChangeCallback("eael_ext_toc_collapse_sub_heading",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-collapse"):t.removeClass("eael-toc-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_header_icon",(function(e){o(".eael-toc-button i").removeClass().addClass(e.value)})),elementor.settings.page.addChangeCallback("eael_ext_toc_list_icon",(function(e){var t=o(".eael-toc-list");"number"===e?t.addClass("eael-toc-number").removeClass("eael-toc-bullet"):t.addClass("eael-toc-bullet").removeClass("eael-toc-number")})),elementor.settings.page.addChangeCallback("eael_ext_toc_word_wrap",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-word-wrap"):t.removeClass("eael-toc-word-wrap")})),elementor.settings.page.addChangeCallback("eael_ext_toc_close_button_text_style",(function(e){var t=o("#eael-toc");"bottom_to_top"===e?t.addClass("eael-bottom-to-top"):t.removeClass("eael-bottom-to-top")})),elementor.settings.page.addChangeCallback("eael_ext_toc_box_shadow",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-box-shadow"):t.removeClass("eael-box-shadow")})),elementor.settings.page.addChangeCallback("eael_ext_toc_auto_collapse",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-toc-auto-collapse"):t.removeClass("eael-toc-auto-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_toc_title",(function(e){elementorFrontend.elements.$document.find(".eael-toc-title").text(e),elementorFrontend.elements.$document.find(".eael-toc-button span").text(e)})))}))}});
assets/front-end/js/view/twitter-feed.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=19)}({19:function(e,t){var r=function(e,t){isEditMode||($gutter=t(".eael-twitter-feed-masonry",e).data("gutter"),$settings={itemSelector:".eael-twitter-feed-item",percentPosition:!0,masonry:{columnWidth:".eael-twitter-feed-item",gutter:$gutter}},$twitter_feed_gallery=t(".eael-twitter-feed-masonry",e).isotope($settings),$twitter_feed_gallery.imagesLoaded().progress((function(){$twitter_feed_gallery.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-twitter-feed.default",r)}))}});
1
+ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=20)}({20:function(e,t){var r=function(e,t){isEditMode||($gutter=t(".eael-twitter-feed-masonry",e).data("gutter"),$settings={itemSelector:".eael-twitter-feed-item",percentPosition:!0,masonry:{columnWidth:".eael-twitter-feed-item",gutter:$gutter}},$twitter_feed_gallery=t(".eael-twitter-feed-masonry",e).isotope($settings),$twitter_feed_gallery.imagesLoaded().progress((function(){$twitter_feed_gallery.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-twitter-feed.default",r)}))}});
assets/front-end/js/view/typeform.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=20)}({20:function(e,t){var r=function(e,t){if(typeformEmbed){var r=e.find(".eael-typeform"),n=r.attr("id"),o=r.data("typeform");if(void 0!==n&&void 0!==o){var i=document.getElementById(n);o.url&&typeformEmbed.makeWidget(i,o.url,{hideFooter:o.hideFooter,hideHeaders:o.hideHeaders,opacity:o.opacity})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-typeform.default",r)}))}});
1
+ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=21)}({21:function(e,t){var r=function(e,t){if(typeformEmbed){var r=e.find(".eael-typeform"),n=r.attr("id"),o=r.data("typeform");if(void 0!==n&&void 0!==o){var i=document.getElementById(n);o.url&&typeformEmbed.makeWidget(i,o.url,{hideFooter:o.hideFooter,hideHeaders:o.hideHeaders,opacity:o.opacity})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-typeform.default",r)}))}});
assets/front-end/js/view/woo-checkout.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var o={};function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(o){return e[o]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},t.p="",t(t.s=21)}({21:function(e,o){var t=function(e,o){function t(){var e=o(".ea-woo-checkout");setTimeout((function(){o(".ea-checkout-review-order-table").addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),o.ajax({type:"POST",url:localize.ajaxurl,data:{action:"woo_checkout_update_order_review",orderReviewData:e.data("checkout")},success:function(e){o(".ea-checkout-review-order-table").replaceWith(e.order_review),setTimeout((function(){o(".ea-checkout-review-order-table").removeClass("processing").unblock()}),1e5)}})}),2e3)}o.blockUI.defaults.overlayCSS.cursor="default",o(document).on("click",".woocommerce-remove-coupon",(function(e){t()})),o("form.checkout_coupon").submit((function(e){t()}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-woo-checkout.default",t)}))}});
1
+ !function(e){var o={};function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.m=e,t.c=o,t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,o){if(1&o&&(e=t(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var n in e)t.d(r,n,function(o){return e[o]}.bind(null,n));return r},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},t.p="",t(t.s=22)}({22:function(e,o){var t=function(e,o){function t(){var e=o(".ea-woo-checkout");setTimeout((function(){o(".ea-checkout-review-order-table").addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),o.ajax({type:"POST",url:localize.ajaxurl,data:{action:"woo_checkout_update_order_review",orderReviewData:e.data("checkout")},success:function(e){o(".ea-checkout-review-order-table").replaceWith(e.order_review),setTimeout((function(){o(".ea-checkout-review-order-table").removeClass("processing").unblock()}),1e5)}})}),2e3)}o.blockUI.defaults.overlayCSS.cursor="default",o(document).on("click",".woocommerce-remove-coupon",(function(e){t()})),o("form.checkout_coupon").submit((function(e){t()}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-woo-checkout.default",t)}))}});
config.php CHANGED
@@ -1,665 +1,665 @@
1
  <?php
2
 
3
  $config = [
4
- 'elements' => [
5
- 'post-grid' => [
6
- 'class' => '\Essential_Addons_Elementor\Elements\Post_Grid',
7
  'dependency' => [
8
  'css' => [
9
  [
10
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
11
- 'type' => 'self',
12
  'context' => 'view',
13
  ],
14
  [
15
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/post-grid.min.css',
16
- 'type' => 'self',
17
  'context' => 'view',
18
  ],
19
  [
20
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/product-grid.min.css',
21
- 'type' => 'self',
22
  'context' => 'view',
23
  ],
24
  ],
25
- 'js' => [
26
  [
27
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
28
- 'type' => 'lib',
29
  'context' => 'view',
30
  ],
31
  [
32
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
33
- 'type' => 'lib',
34
  'context' => 'view',
35
  ],
36
  [
37
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
38
- 'type' => 'self',
39
  'context' => 'view',
40
  ],
41
  [
42
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/post-grid.min.js',
43
- 'type' => 'self',
44
  'context' => 'view',
45
  ],
46
  ],
47
  ],
48
  ],
49
- 'post-timeline' => [
50
- 'class' => '\Essential_Addons_Elementor\Elements\Post_Timeline',
51
  'dependency' => [
52
  'css' => [
53
  [
54
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
55
- 'type' => 'self',
56
  'context' => 'view',
57
  ],
58
  [
59
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/post-timeline.min.css',
60
- 'type' => 'self',
61
  'context' => 'view',
62
  ],
63
  ],
64
- 'js' => [
65
  [
66
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
67
- 'type' => 'self',
68
  'context' => 'view',
69
  ],
70
  ],
71
  ],
72
  ],
73
- 'fancy-text' => [
74
- 'class' => '\Essential_Addons_Elementor\Elements\Fancy_Text',
75
  'dependency' => [
76
  'css' => [
77
  [
78
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/fancy-text.min.css',
79
- 'type' => 'self',
80
  'context' => 'view',
81
  ],
82
  ],
83
- 'js' => [
84
  [
85
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/morphext/morphext.min.js',
86
- 'type' => 'lib',
87
  'context' => 'view',
88
  ],
89
  [
90
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/typed/typed.min.js',
91
- 'type' => 'lib',
92
  'context' => 'view',
93
  ],
94
  [
95
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/fancy-text.min.js',
96
- 'type' => 'self',
97
  'context' => 'view',
98
  ],
99
  ],
100
  ],
101
  ],
102
- 'creative-btn' => [
103
- 'class' => '\Essential_Addons_Elementor\Elements\Creative_Button',
104
  'dependency' => [
105
  'css' => [
106
  [
107
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/creative-btn.min.css',
108
- 'type' => 'self',
109
  'context' => 'view',
110
  ],
111
  ],
112
  ],
113
  ],
114
- 'count-down' => [
115
- 'class' => '\Essential_Addons_Elementor\Elements\Countdown',
116
  'dependency' => [
117
  'css' => [
118
  [
119
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/count-down.min.css',
120
- 'type' => 'self',
121
  'context' => 'view',
122
  ],
123
  ],
124
- 'js' => [
125
  [
126
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/countdown/countdown.min.js',
127
- 'type' => 'lib',
128
  'context' => 'view',
129
  ],
130
  [
131
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/count-down.min.js',
132
- 'type' => 'self',
133
  'context' => 'view',
134
  ],
135
  ],
136
  ],
137
  ],
138
- 'team-members' => [
139
- 'class' => '\Essential_Addons_Elementor\Elements\Team_Member',
140
  'dependency' => [
141
  'css' => [
142
  [
143
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/team-members.min.css',
144
- 'type' => 'self',
145
  'context' => 'view',
146
  ],
147
  ],
148
  ],
149
  ],
150
- 'testimonials' => [
151
- 'class' => '\Essential_Addons_Elementor\Elements\Testimonial',
152
  'dependency' => [
153
  'css' => [
154
  [
155
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/testimonials.min.css',
156
- 'type' => 'self',
157
  'context' => 'view',
158
  ],
159
  ],
160
  ],
161
  ],
162
- 'info-box' => [
163
- 'class' => '\Essential_Addons_Elementor\Elements\Info_Box',
164
  'dependency' => [
165
  'css' => [
166
  [
167
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/info-box.min.css',
168
- 'type' => 'self',
169
  'context' => 'view',
170
  ],
171
  ],
172
  ],
173
  ],
174
- 'flip-box' => [
175
- 'class' => '\Essential_Addons_Elementor\Elements\Flip_Box',
176
  'dependency' => [
177
  'css' => [
178
  [
179
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/flip-box.min.css',
180
- 'type' => 'self',
181
  'context' => 'view',
182
  ],
183
  ],
184
  ],
185
  ],
186
- 'call-to-action' => [
187
- 'class' => '\Essential_Addons_Elementor\Elements\Cta_Box',
188
  'dependency' => [
189
  'css' => [
190
  [
191
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/call-to-action.min.css',
192
- 'type' => 'self',
193
  'context' => 'view',
194
  ],
195
  ],
196
  ],
197
  ],
198
- 'dual-header' => [
199
- 'class' => '\Essential_Addons_Elementor\Elements\Dual_Color_Header',
200
  'dependency' => [
201
  'css' => [
202
  [
203
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/dual-header.min.css',
204
- 'type' => 'self',
205
  'context' => 'view',
206
  ],
207
  ],
208
  ],
209
  ],
210
- 'price-table' => [
211
- 'class' => '\Essential_Addons_Elementor\Elements\Pricing_Table',
212
  'dependency' => [
213
  'css' => [
214
  [
215
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/tooltipster/tooltipster.bundle.min.css',
216
- 'type' => 'lib',
217
  'context' => 'view',
218
  ],
219
  [
220
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/price-table.min.css',
221
- 'type' => 'self',
222
  'context' => 'view',
223
  ],
224
  ],
225
- 'js' => [
226
  [
227
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/tooltipster/tooltipster.bundle.min.js',
228
- 'type' => 'lib',
229
  'context' => 'view',
230
  ],
231
  [
232
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/price-table.min.js',
233
- 'type' => 'self',
234
  'context' => 'view',
235
  ],
236
  ],
237
  ],
238
  ],
239
- 'twitter-feed' => [
240
- 'class' => '\Essential_Addons_Elementor\Elements\Twitter_Feed',
241
  'dependency' => [
242
  'css' => [
243
  [
244
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/twitter-feed.min.css',
245
- 'type' => 'self',
246
  'context' => 'view',
247
  ],
248
  ],
249
- 'js' => [
250
  [
251
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
252
- 'type' => 'lib',
253
  'context' => 'view',
254
  ],
255
  [
256
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
257
- 'type' => 'lib',
258
  'context' => 'view',
259
  ],
260
  [
261
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/twitter-feed.min.js',
262
- 'type' => 'self',
263
  'context' => 'view',
264
  ],
265
  ],
266
  ],
267
  ],
268
- 'facebook-feed' => [
269
- 'class' => '\Essential_Addons_Elementor\Elements\Facebook_Feed',
270
  'dependency' => [
271
  'css' => [
272
  [
273
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
274
- 'type' => 'self',
275
  'context' => 'view',
276
  ],
277
  [
278
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/facebook-feed.min.css',
279
- 'type' => 'self',
280
  'context' => 'view',
281
  ],
282
  ],
283
- 'js' => [
284
  [
285
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
286
- 'type' => 'lib',
287
  'context' => 'view',
288
  ],
289
  [
290
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
291
- 'type' => 'lib',
292
  'context' => 'view',
293
  ],
294
  [
295
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/facebook-feed.min.js',
296
- 'type' => 'self',
297
  'context' => 'view',
298
  ],
299
  ],
300
  ],
301
  ],
302
- 'advanced-data-table' => [
303
- 'class' => '\Essential_Addons_Elementor\Elements\Advanced_Data_Table',
304
  'dependency' => [
305
  'css' => [
306
  [
307
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-edit/quill/quill.bubble.min.css',
308
- 'type' => 'lib',
309
  'context' => 'edit',
310
  ],
311
  [
312
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-data-table.min.css',
313
- 'type' => 'self',
314
  'context' => 'view',
315
  ],
316
  ],
317
- 'js' => [
318
  [
319
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-edit/quill/quill.min.js',
320
- 'type' => 'lib',
321
  'context' => 'edit',
322
  ],
323
  [
324
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-data-table.min.js',
325
- 'type' => 'self',
326
  'context' => 'view',
327
  ],
328
  [
329
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/edit/advanced-data-table.min.js',
330
- 'type' => 'self',
331
  'context' => 'edit',
332
  ],
333
  ],
334
  ],
335
  ],
336
- 'data-table' => [
337
- 'class' => '\Essential_Addons_Elementor\Elements\Data_Table',
338
  'dependency' => [
339
  'css' => [
340
  [
341
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/data-table.min.css',
342
- 'type' => 'self',
343
  'context' => 'view',
344
  ],
345
  ],
346
- 'js' => [
347
  [
348
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/data-table.min.js',
349
- 'type' => 'self',
350
  'context' => 'view',
351
  ],
352
  ],
353
  ],
354
  ],
355
- 'filter-gallery' => [
356
- 'class' => '\Essential_Addons_Elementor\Elements\Filterable_Gallery',
357
  'dependency' => [
358
  'css' => [
359
  [
360
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
361
- 'type' => 'self',
362
  'context' => 'view',
363
  ],
364
  [
365
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/magnific-popup/magnific-popup.min.css',
366
- 'type' => 'lib',
367
  'context' => 'view',
368
  ],
369
  [
370
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/filterable-gallery.min.css',
371
- 'type' => 'self',
372
  'context' => 'view',
373
  ],
374
  ],
375
- 'js' => [
376
  [
377
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
378
- 'type' => 'lib',
379
  'context' => 'view',
380
  ],
381
  [
382
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
383
- 'type' => 'lib',
384
  'context' => 'view',
385
  ],
386
  [
387
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/magnific-popup/jquery.magnific-popup.min.js',
388
- 'type' => 'lib',
389
  'context' => 'view',
390
  ],
391
  [
392
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/filterable-gallery.min.js',
393
- 'type' => 'self',
394
  'context' => 'view',
395
  ],
396
  ],
397
  ],
398
  ],
399
- 'image-accordion' => [
400
- 'class' => '\Essential_Addons_Elementor\Elements\Image_Accordion',
401
  'dependency' => [
402
  'css' => [
403
  [
404
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/image-accordion.min.css',
405
- 'type' => 'self',
406
  'context' => 'view',
407
  ],
408
  ],
409
- 'js' => [
410
  [
411
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/image-accordion.min.js',
412
- 'type' => 'self',
413
  'context' => 'view',
414
  ],
415
  ],
416
  ],
417
  ],
418
- 'content-ticker' => [
419
- 'class' => '\Essential_Addons_Elementor\Elements\Content_Ticker',
420
  'dependency' => [
421
  'css' => [
422
  [
423
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/content-ticker.min.css',
424
- 'type' => 'self',
425
  'context' => 'view',
426
  ],
427
  ],
428
- 'js' => [
429
  [
430
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/content-ticker.min.js',
431
- 'type' => 'self',
432
  'context' => 'view',
433
  ],
434
  ],
435
  ],
436
  ],
437
- 'tooltip' => [
438
- 'class' => '\Essential_Addons_Elementor\Elements\Tooltip',
439
  'dependency' => [
440
  'css' => [
441
 
442
  [
443
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/tooltip.min.css',
444
- 'type' => 'self',
445
  'context' => 'view',
446
  ],
447
  ],
448
  ],
449
  ],
450
- 'adv-accordion' => [
451
- 'class' => '\Essential_Addons_Elementor\Elements\Adv_Accordion',
452
  'dependency' => [
453
  'css' => [
454
  [
455
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-accordion.min.css',
456
- 'type' => 'self',
457
  'context' => 'view',
458
  ],
459
  ],
460
- 'js' => [
461
  [
462
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-accordion.min.js',
463
- 'type' => 'self',
464
  'context' => 'view',
465
  ],
466
  ],
467
  ],
468
  ],
469
- 'adv-tabs' => [
470
- 'class' => '\Essential_Addons_Elementor\Elements\Adv_Tabs',
471
  'dependency' => [
472
  'css' => [
473
  [
474
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-tabs.min.css',
475
- 'type' => 'self',
476
  'context' => 'view',
477
  ],
478
  ],
479
- 'js' => [
480
  [
481
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-tabs.min.js',
482
- 'type' => 'self',
483
  'context' => 'view',
484
  ],
485
  ],
486
  ],
487
  ],
488
- 'progress-bar' => [
489
- 'class' => '\Essential_Addons_Elementor\Elements\Progress_Bar',
490
  'dependency' => [
491
  'css' => [
492
  [
493
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/progress-bar.min.css',
494
- 'type' => 'self',
495
  'context' => 'view',
496
  ],
497
  ],
498
- 'js' => [
499
  [
500
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/inview/inview.min.js',
501
- 'type' => 'lib',
502
  'context' => 'view',
503
  ],
504
  [
505
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/progress-bar.min.js',
506
- 'type' => 'self',
507
  'context' => 'view',
508
  ],
509
  ],
510
  ],
511
  ],
512
- 'feature-list' => [
513
- 'class' => '\Essential_Addons_Elementor\Elements\Feature_List',
514
  'dependency' => [
515
  'css' => [
516
  [
517
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/feature-list.min.css',
518
- 'type' => 'self',
519
  'context' => 'view',
520
  ],
521
  ],
522
  ],
523
  ],
524
- 'product-grid' => [
525
- 'class' => '\Essential_Addons_Elementor\Elements\Product_Grid',
526
  'dependency' => [
527
  'css' => [
528
  [
529
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
530
- 'type' => 'self',
531
  'context' => 'view',
532
  ],
533
  [
534
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/product-grid.min.css',
535
- 'type' => 'self',
536
  'context' => 'view',
537
  ],
538
  ],
539
- 'js' => [
540
  [
541
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
542
- 'type' => 'self',
543
  'context' => 'view',
544
  ],
545
  ],
546
  ],
547
  ],
548
- 'contact-form-7' => [
549
- 'class' => '\Essential_Addons_Elementor\Elements\Contact_Form_7',
550
  'dependency' => [
551
  'css' => [
552
  [
553
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/contact-form-7.min.css',
554
- 'type' => 'self',
555
  'context' => 'view',
556
  ],
557
  ],
558
  ],
559
  ],
560
- 'weforms' => [
561
- 'class' => '\Essential_Addons_Elementor\Elements\WeForms',
562
  'dependency' => [
563
  'css' => [
564
  [
565
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/weforms.min.css',
566
- 'type' => 'self',
567
  'context' => 'view',
568
  ],
569
  ],
570
  ],
571
  ],
572
- 'ninja-form' => [
573
- 'class' => '\Essential_Addons_Elementor\Elements\NinjaForms',
574
  'dependency' => [
575
  'css' => [
576
  [
577
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/ninja-form.min.css',
578
- 'type' => 'self',
579
  'context' => 'view',
580
  ],
581
  ],
582
  ],
583
  ],
584
- 'formstack' => [
585
- 'class' => '\Essential_Addons_Elementor\Elements\Formstack',
586
  'dependency' => [
587
  'css' => [
588
  [
589
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/formstack.min.css',
590
- 'type' => 'self',
591
  'context' => 'view',
592
  ],
593
  ],
594
  ],
595
  ],
596
- 'gravity-form' => [
597
- 'class' => '\Essential_Addons_Elementor\Elements\GravityForms',
598
  'dependency' => [
599
  'css' => [
600
  [
601
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/gravity-form.min.css',
602
- 'type' => 'self',
603
  'context' => 'view',
604
  ],
605
  ],
606
  ],
607
  ],
608
- 'caldera-form' => [
609
- 'class' => '\Essential_Addons_Elementor\Elements\Caldera_Forms',
610
  'dependency' => [
611
  'css' => [
612
  [
613
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/caldera-form.min.css',
614
- 'type' => 'self',
615
  'context' => 'view',
616
  ],
617
  ],
618
  ],
619
  ],
620
- 'wpforms' => [
621
- 'class' => '\Essential_Addons_Elementor\Elements\WpForms',
622
  'dependency' => [
623
  'css' => [
624
  [
625
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/wpforms.min.css',
626
- 'type' => 'self',
627
  'context' => 'view',
628
  ],
629
  ],
630
  ],
631
  ],
632
- 'fluentform' => [
633
- 'class' => '\Essential_Addons_Elementor\Elements\FluentForm',
634
  'dependency' => [
635
  'css' => [
636
  [
637
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/fluentform.min.css',
638
- 'type' => 'self',
639
  'context' => 'view',
640
  ],
641
  ],
642
  ],
643
  ],
644
- 'typeform' => [
645
- 'class' => '\Essential_Addons_Elementor\Elements\TypeForm',
646
  'dependency' => [
647
  'css' => [
648
  [
649
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/typeform.min.css',
650
- 'type' => 'self',
651
  'context' => 'view',
652
  ],
653
  ],
654
- 'js' => [
655
  [
656
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/embed/embed.min.js',
657
- 'type' => 'lib',
658
  'context' => 'view',
659
  ],
660
  [
661
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/typeform.min.js',
662
- 'type' => 'self',
663
  'context' => 'view',
664
  ],
665
  ],
@@ -667,215 +667,242 @@ $config = [
667
  ],
668
  'betterdocs-category-grid' => [
669
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Category_Grid',
670
- 'dependency' => [
671
- 'css' => [
672
  [
673
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/betterdocs-category-grid.min.css',
674
- 'type' => 'self',
675
- 'context' => 'view'
676
- ]
677
  ],
678
- 'js' => [
679
  [
680
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
681
- 'type' => 'lib',
682
  'context' => 'view',
683
  ],
684
  [
685
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/betterdocs-category-grid.min.js',
686
- 'type' => 'self',
687
  'context' => 'view',
688
- ]
689
- ]
690
- ]
691
  ],
692
- 'betterdocs-category-box' => [
693
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Category_Box',
694
- 'dependency' => [
695
- 'css' => [
696
  [
697
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/betterdocs-category-box.min.css',
698
- 'type' => 'self',
699
- 'context' => 'view'
700
- ]
701
  ],
702
- ]
703
  ],
704
- 'betterdocs-search-form' => [
705
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Search_Form',
706
  ],
707
- 'sticky-video' => [
708
- 'class' => '\Essential_Addons_Elementor\Elements\Sticky_Video',
709
  'dependency' => [
710
  'css' => [
711
  [
712
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/plyr/plyr.min.css',
713
- 'type' => 'lib',
714
  'context' => 'view',
715
  ],
716
  [
717
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/sticky-video.min.css',
718
- 'type' => 'self',
719
  'context' => 'view',
720
  ],
721
  ],
722
- 'js' => [
723
  [
724
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/plyr/plyr.min.js',
725
- 'type' => 'lib',
726
  'context' => 'view',
727
  ],
728
  [
729
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/sticky-video.min.js',
730
- 'type' => 'self',
731
  'context' => 'view',
732
  ],
733
  ],
734
  ],
735
  ],
736
- 'event-calendar' => [
737
- 'class' => '\Essential_Addons_Elementor\Elements\Event_Calendar',
738
  'dependency' => [
739
  'css' => [
740
  [
741
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/calendar-main.min.css',
742
- 'type' => 'lib',
743
  'context' => 'view',
744
  ],
745
  [
746
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/daygrid.min.css',
747
- 'type' => 'lib',
748
  'context' => 'view',
749
  ],
750
  [
751
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/timegrid.min.css',
752
- 'type' => 'lib',
753
  'context' => 'view',
754
  ],
755
  [
756
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/listgrid.min.css',
757
- 'type' => 'lib',
758
  'context' => 'view',
759
  ],
760
  [
761
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/event-calendar.min.css',
762
- 'type' => 'self',
763
  'context' => 'view',
764
  ],
765
  ],
766
- 'js' => [
767
  [
768
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/locales-all.min.js',
769
- 'type' => 'lib',
770
  'context' => 'view',
771
  ],
772
  [
773
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/moment/moment.min.js',
774
- 'type' => 'lib',
775
  'context' => 'view',
776
  ],
777
  [
778
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/calendar-main.min.js',
779
- 'type' => 'lib',
780
  'context' => 'view',
781
  ],
782
  [
783
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/daygrid.min.js',
784
- 'type' => 'lib',
785
  'context' => 'view',
786
  ],
787
  [
788
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/timegrid.min.js',
789
- 'type' => 'lib',
790
  'context' => 'view',
791
  ],
792
  [
793
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/listgrid.min.js',
794
- 'type' => 'lib',
795
  'context' => 'view',
796
  ],
797
  [
798
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/event-calendar.min.js',
799
- 'type' => 'self',
800
  'context' => 'view',
801
  ],
802
  ],
803
  ],
804
  ],
805
- 'embedpress' => [
806
- 'class' => '\Essential_Addons_Elementor\Elements\EmbedPress',
807
  'condition' => [
808
  'class_exists',
809
  '\EmbedPress\Elementor\Embedpress_Elementor_Integration',
810
  true,
811
  ],
812
  ],
813
- 'woo-checkout' => [
814
- 'class' => '\Essential_Addons_Elementor\Elements\Woo_Checkout',
815
  'dependency' => [
816
  'css' => [
817
  [
818
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/woo-checkout.min.css',
819
- 'type' => 'self',
820
  'context' => 'view',
821
  ],
822
  ],
823
- 'js' => [
824
  [
825
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/woo-checkout.min.js',
826
- 'type' => 'self',
827
  'context' => 'view',
828
  ],
829
  ],
830
  ],
831
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
832
  ],
833
  'extensions' => [
834
- 'eael-promotion' => [
835
  'class' => '\Essential_Addons_Elementor\Extensions\Promotion',
836
  ],
837
- 'eael-custom-js' => [
838
  'class' => '\Essential_Addons_Elementor\Extensions\Custom_JS',
839
  ],
840
  'eael-reading-progress' => [
841
- 'class' => '\Essential_Addons_Elementor\Extensions\Reading_Progress',
842
  'dependency' => [
843
  'css' => [
844
  [
845
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/reading-progress.min.css',
846
- 'type' => 'self',
847
  'context' => 'view',
848
  ],
849
  ],
850
- 'js' => [
851
  [
852
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/reading-progress.min.js',
853
- 'type' => 'self',
854
  'context' => 'view',
855
  ],
856
  ],
857
  ],
858
  ],
859
  'eael-table-of-content' => [
860
- 'class' => '\Essential_Addons_Elementor\Extensions\Table_of_Content',
861
  'dependency' => [
862
  'css' => [
863
  [
864
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/table-of-content.min.css',
865
- 'type' => 'self',
866
  'context' => 'view',
867
  ],
868
  ],
869
- 'js' => [
870
  [
871
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/table-of-content.min.js',
872
- 'type' => 'self',
873
  'context' => 'view',
874
  ],
875
  ],
876
  ],
877
  ],
878
- 'eael-post-duplicator' => [
879
  'class' => '\Essential_Addons_Elementor\Extensions\Post_Duplicator',
880
  ],
881
  ],
1
  <?php
2
 
3
  $config = [
4
+ 'elements' => [
5
+ 'post-grid' => [
6
+ 'class' => '\Essential_Addons_Elementor\Elements\Post_Grid',
7
  'dependency' => [
8
  'css' => [
9
  [
10
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
11
+ 'type' => 'self',
12
  'context' => 'view',
13
  ],
14
  [
15
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/post-grid.min.css',
16
+ 'type' => 'self',
17
  'context' => 'view',
18
  ],
19
  [
20
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/product-grid.min.css',
21
+ 'type' => 'self',
22
  'context' => 'view',
23
  ],
24
  ],
25
+ 'js' => [
26
  [
27
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
28
+ 'type' => 'lib',
29
  'context' => 'view',
30
  ],
31
  [
32
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
33
+ 'type' => 'lib',
34
  'context' => 'view',
35
  ],
36
  [
37
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
38
+ 'type' => 'self',
39
  'context' => 'view',
40
  ],
41
  [
42
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/post-grid.min.js',
43
+ 'type' => 'self',
44
  'context' => 'view',
45
  ],
46
  ],
47
  ],
48
  ],
49
+ 'post-timeline' => [
50
+ 'class' => '\Essential_Addons_Elementor\Elements\Post_Timeline',
51
  'dependency' => [
52
  'css' => [
53
  [
54
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
55
+ 'type' => 'self',
56
  'context' => 'view',
57
  ],
58
  [
59
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/post-timeline.min.css',
60
+ 'type' => 'self',
61
  'context' => 'view',
62
  ],
63
  ],
64
+ 'js' => [
65
  [
66
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
67
+ 'type' => 'self',
68
  'context' => 'view',
69
  ],
70
  ],
71
  ],
72
  ],
73
+ 'fancy-text' => [
74
+ 'class' => '\Essential_Addons_Elementor\Elements\Fancy_Text',
75
  'dependency' => [
76
  'css' => [
77
  [
78
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/fancy-text.min.css',
79
+ 'type' => 'self',
80
  'context' => 'view',
81
  ],
82
  ],
83
+ 'js' => [
84
  [
85
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/morphext/morphext.min.js',
86
+ 'type' => 'lib',
87
  'context' => 'view',
88
  ],
89
  [
90
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/typed/typed.min.js',
91
+ 'type' => 'lib',
92
  'context' => 'view',
93
  ],
94
  [
95
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/fancy-text.min.js',
96
+ 'type' => 'self',
97
  'context' => 'view',
98
  ],
99
  ],
100
  ],
101
  ],
102
+ 'creative-btn' => [
103
+ 'class' => '\Essential_Addons_Elementor\Elements\Creative_Button',
104
  'dependency' => [
105
  'css' => [
106
  [
107
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/creative-btn.min.css',
108
+ 'type' => 'self',
109
  'context' => 'view',
110
  ],
111
  ],
112
  ],
113
  ],
114
+ 'count-down' => [
115
+ 'class' => '\Essential_Addons_Elementor\Elements\Countdown',
116
  'dependency' => [
117
  'css' => [
118
  [
119
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/count-down.min.css',
120
+ 'type' => 'self',
121
  'context' => 'view',
122
  ],
123
  ],
124
+ 'js' => [
125
  [
126
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/countdown/countdown.min.js',
127
+ 'type' => 'lib',
128
  'context' => 'view',
129
  ],
130
  [
131
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/count-down.min.js',
132
+ 'type' => 'self',
133
  'context' => 'view',
134
  ],
135
  ],
136
  ],
137
  ],
138
+ 'team-members' => [
139
+ 'class' => '\Essential_Addons_Elementor\Elements\Team_Member',
140
  'dependency' => [
141
  'css' => [
142
  [
143
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/team-members.min.css',
144
+ 'type' => 'self',
145
  'context' => 'view',
146
  ],
147
  ],
148
  ],
149
  ],
150
+ 'testimonials' => [
151
+ 'class' => '\Essential_Addons_Elementor\Elements\Testimonial',
152
  'dependency' => [
153
  'css' => [
154
  [
155
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/testimonials.min.css',
156
+ 'type' => 'self',
157
  'context' => 'view',
158
  ],
159
  ],
160
  ],
161
  ],
162
+ 'info-box' => [
163
+ 'class' => '\Essential_Addons_Elementor\Elements\Info_Box',
164
  'dependency' => [
165
  'css' => [
166
  [
167
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/info-box.min.css',
168
+ 'type' => 'self',
169
  'context' => 'view',
170
  ],
171
  ],
172
  ],
173
  ],
174
+ 'flip-box' => [
175
+ 'class' => '\Essential_Addons_Elementor\Elements\Flip_Box',
176
  'dependency' => [
177
  'css' => [
178
  [
179
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/flip-box.min.css',
180
+ 'type' => 'self',
181
  'context' => 'view',
182
  ],
183
  ],
184
  ],
185
  ],
186
+ 'call-to-action' => [
187
+ 'class' => '\Essential_Addons_Elementor\Elements\Cta_Box',
188
  'dependency' => [
189
  'css' => [
190
  [
191
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/call-to-action.min.css',
192
+ 'type' => 'self',
193
  'context' => 'view',
194
  ],
195
  ],
196
  ],
197
  ],
198
+ 'dual-header' => [
199
+ 'class' => '\Essential_Addons_Elementor\Elements\Dual_Color_Header',
200
  'dependency' => [
201
  'css' => [
202
  [
203
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/dual-header.min.css',
204
+ 'type' => 'self',
205
  'context' => 'view',
206
  ],
207
  ],
208
  ],
209
  ],
210
+ 'price-table' => [
211
+ 'class' => '\Essential_Addons_Elementor\Elements\Pricing_Table',
212
  'dependency' => [
213
  'css' => [
214
  [
215
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/tooltipster/tooltipster.bundle.min.css',
216
+ 'type' => 'lib',
217
  'context' => 'view',
218
  ],
219
  [
220
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/price-table.min.css',
221
+ 'type' => 'self',
222
  'context' => 'view',
223
  ],
224
  ],
225
+ 'js' => [
226
  [
227
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/tooltipster/tooltipster.bundle.min.js',
228
+ 'type' => 'lib',
229
  'context' => 'view',
230
  ],
231
  [
232
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/price-table.min.js',
233
+ 'type' => 'self',
234
  'context' => 'view',
235
  ],
236
  ],
237
  ],
238
  ],
239
+ 'twitter-feed' => [
240
+ 'class' => '\Essential_Addons_Elementor\Elements\Twitter_Feed',
241
  'dependency' => [
242
  'css' => [
243
  [
244
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/twitter-feed.min.css',
245
+ 'type' => 'self',
246
  'context' => 'view',
247
  ],
248
  ],
249
+ 'js' => [
250
  [
251
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
252
+ 'type' => 'lib',
253
  'context' => 'view',
254
  ],
255
  [
256
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
257
+ 'type' => 'lib',
258
  'context' => 'view',
259
  ],
260
  [
261
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/twitter-feed.min.js',
262
+ 'type' => 'self',
263
  'context' => 'view',
264
  ],
265
  ],
266
  ],
267
  ],
268
+ 'facebook-feed' => [
269
+ 'class' => '\Essential_Addons_Elementor\Elements\Facebook_Feed',
270
  'dependency' => [
271
  'css' => [
272
  [
273
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
274
+ 'type' => 'self',
275
  'context' => 'view',
276
  ],
277
  [
278
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/facebook-feed.min.css',
279
+ 'type' => 'self',
280
  'context' => 'view',
281
  ],
282
  ],
283
+ 'js' => [
284
  [
285
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
286
+ 'type' => 'lib',
287
  'context' => 'view',
288
  ],
289
  [
290
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
291
+ 'type' => 'lib',
292
  'context' => 'view',
293
  ],
294
  [
295
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/facebook-feed.min.js',
296
+ 'type' => 'self',
297
  'context' => 'view',
298
  ],
299
  ],
300
  ],
301
  ],
302
+ 'advanced-data-table' => [
303
+ 'class' => '\Essential_Addons_Elementor\Elements\Advanced_Data_Table',
304
  'dependency' => [
305
  'css' => [
306
  [
307
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-edit/quill/quill.bubble.min.css',
308
+ 'type' => 'lib',
309
  'context' => 'edit',
310
  ],
311
  [
312
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-data-table.min.css',
313
+ 'type' => 'self',
314
  'context' => 'view',
315
  ],
316
  ],
317
+ 'js' => [
318
  [
319
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-edit/quill/quill.min.js',
320
+ 'type' => 'lib',
321
  'context' => 'edit',
322
  ],
323
  [
324
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-data-table.min.js',
325
+ 'type' => 'self',
326
  'context' => 'view',
327
  ],
328
  [
329
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/edit/advanced-data-table.min.js',
330
+ 'type' => 'self',
331
  'context' => 'edit',
332
  ],
333
  ],
334
  ],
335
  ],
336
+ 'data-table' => [
337
+ 'class' => '\Essential_Addons_Elementor\Elements\Data_Table',
338
  'dependency' => [
339
  'css' => [
340
  [
341
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/data-table.min.css',
342
+ 'type' => 'self',
343
  'context' => 'view',
344
  ],
345
  ],
346
+ 'js' => [
347
  [
348
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/data-table.min.js',
349
+ 'type' => 'self',
350
  'context' => 'view',
351
  ],
352
  ],
353
  ],
354
  ],
355
+ 'filter-gallery' => [
356
+ 'class' => '\Essential_Addons_Elementor\Elements\Filterable_Gallery',
357
  'dependency' => [
358
  'css' => [
359
  [
360
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
361
+ 'type' => 'self',
362
  'context' => 'view',
363
  ],
364
  [
365
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/magnific-popup/magnific-popup.min.css',
366
+ 'type' => 'lib',
367
  'context' => 'view',
368
  ],
369
  [
370
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/filterable-gallery.min.css',
371
+ 'type' => 'self',
372
  'context' => 'view',
373
  ],
374
  ],
375
+ 'js' => [
376
  [
377
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/imagesloaded/imagesloaded.pkgd.min.js',
378
+ 'type' => 'lib',
379
  'context' => 'view',
380
  ],
381
  [
382
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
383
+ 'type' => 'lib',
384
  'context' => 'view',
385
  ],
386
  [
387
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/magnific-popup/jquery.magnific-popup.min.js',
388
+ 'type' => 'lib',
389
  'context' => 'view',
390
  ],
391
  [
392
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/filterable-gallery.min.js',
393
+ 'type' => 'self',
394
  'context' => 'view',
395
  ],
396
  ],
397
  ],
398
  ],
399
+ 'image-accordion' => [
400
+ 'class' => '\Essential_Addons_Elementor\Elements\Image_Accordion',
401
  'dependency' => [
402
  'css' => [
403
  [
404
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/image-accordion.min.css',
405
+ 'type' => 'self',
406
  'context' => 'view',
407
  ],
408
  ],
409
+ 'js' => [
410
  [
411
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/image-accordion.min.js',
412
+ 'type' => 'self',
413
  'context' => 'view',
414
  ],
415
  ],
416
  ],
417
  ],
418
+ 'content-ticker' => [
419
+ 'class' => '\Essential_Addons_Elementor\Elements\Content_Ticker',
420
  'dependency' => [
421
  'css' => [
422
  [
423
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/content-ticker.min.css',
424
+ 'type' => 'self',
425
  'context' => 'view',
426
  ],
427
  ],
428
+ 'js' => [
429
  [
430
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/content-ticker.min.js',
431
+ 'type' => 'self',
432
  'context' => 'view',
433
  ],
434
  ],
435
  ],
436
  ],
437
+ 'tooltip' => [
438
+ 'class' => '\Essential_Addons_Elementor\Elements\Tooltip',
439
  'dependency' => [
440
  'css' => [
441
 
442
  [
443
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/tooltip.min.css',
444
+ 'type' => 'self',
445
  'context' => 'view',
446
  ],
447
  ],
448
  ],
449
  ],
450
+ 'adv-accordion' => [
451
+ 'class' => '\Essential_Addons_Elementor\Elements\Adv_Accordion',
452
  'dependency' => [
453
  'css' => [
454
  [
455
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-accordion.min.css',
456
+ 'type' => 'self',
457
  'context' => 'view',
458
  ],
459
  ],
460
+ 'js' => [
461
  [
462
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-accordion.min.js',
463
+ 'type' => 'self',
464
  'context' => 'view',
465
  ],
466
  ],
467
  ],
468
  ],
469
+ 'adv-tabs' => [
470
+ 'class' => '\Essential_Addons_Elementor\Elements\Adv_Tabs',
471
  'dependency' => [
472
  'css' => [
473
  [
474
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/advanced-tabs.min.css',
475
+ 'type' => 'self',
476
  'context' => 'view',
477
  ],
478
  ],
479
+ 'js' => [
480
  [
481
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/advanced-tabs.min.js',
482
+ 'type' => 'self',
483
  'context' => 'view',
484
  ],
485
  ],
486
  ],
487
  ],
488
+ 'progress-bar' => [
489
+ 'class' => '\Essential_Addons_Elementor\Elements\Progress_Bar',
490
  'dependency' => [
491
  'css' => [
492
  [
493
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/progress-bar.min.css',
494
+ 'type' => 'self',
495
  'context' => 'view',
496
  ],
497
  ],
498
+ 'js' => [
499
  [
500
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/inview/inview.min.js',
501
+ 'type' => 'lib',
502
  'context' => 'view',
503
  ],
504
  [
505
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/progress-bar.min.js',
506
+ 'type' => 'self',
507
  'context' => 'view',
508
  ],
509
  ],
510
  ],
511
  ],
512
+ 'feature-list' => [
513
+ 'class' => '\Essential_Addons_Elementor\Elements\Feature_List',
514
  'dependency' => [
515
  'css' => [
516
  [
517
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/feature-list.min.css',
518
+ 'type' => 'self',
519
  'context' => 'view',
520
  ],
521
  ],
522
  ],
523
  ],
524
+ 'product-grid' => [
525
+ 'class' => '\Essential_Addons_Elementor\Elements\Product_Grid',
526
  'dependency' => [
527
  'css' => [
528
  [
529
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/load-more.min.css',
530
+ 'type' => 'self',
531
  'context' => 'view',
532
  ],
533
  [
534
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/product-grid.min.css',
535
+ 'type' => 'self',
536
  'context' => 'view',
537
  ],
538
  ],
539
+ 'js' => [
540
  [
541
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/load-more.min.js',
542
+ 'type' => 'self',
543
  'context' => 'view',
544
  ],
545
  ],
546
  ],
547
  ],
548
+ 'contact-form-7' => [
549
+ 'class' => '\Essential_Addons_Elementor\Elements\Contact_Form_7',
550
  'dependency' => [
551
  'css' => [
552
  [
553
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/contact-form-7.min.css',
554
+ 'type' => 'self',
555
  'context' => 'view',
556
  ],
557
  ],
558
  ],
559
  ],
560
+ 'weforms' => [
561
+ 'class' => '\Essential_Addons_Elementor\Elements\WeForms',
562
  'dependency' => [
563
  'css' => [
564
  [
565
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/weforms.min.css',
566
+ 'type' => 'self',
567
  'context' => 'view',
568
  ],
569
  ],
570
  ],
571
  ],
572
+ 'ninja-form' => [
573
+ 'class' => '\Essential_Addons_Elementor\Elements\NinjaForms',
574
  'dependency' => [
575
  'css' => [
576
  [
577
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/ninja-form.min.css',
578
+ 'type' => 'self',
579
  'context' => 'view',
580
  ],
581
  ],
582
  ],
583
  ],
584
+ 'formstack' => [
585
+ 'class' => '\Essential_Addons_Elementor\Elements\Formstack',
586
  'dependency' => [
587
  'css' => [
588
  [
589
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/formstack.min.css',
590
+ 'type' => 'self',
591
  'context' => 'view',
592
  ],
593
  ],
594
  ],
595
  ],
596
+ 'gravity-form' => [
597
+ 'class' => '\Essential_Addons_Elementor\Elements\GravityForms',
598
  'dependency' => [
599
  'css' => [
600
  [
601
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/gravity-form.min.css',
602
+ 'type' => 'self',
603
  'context' => 'view',
604
  ],
605
  ],
606
  ],
607
  ],
608
+ 'caldera-form' => [
609
+ 'class' => '\Essential_Addons_Elementor\Elements\Caldera_Forms',
610
  'dependency' => [
611
  'css' => [
612
  [
613
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/caldera-form.min.css',
614
+ 'type' => 'self',
615
  'context' => 'view',
616
  ],
617
  ],
618
  ],
619
  ],
620
+ 'wpforms' => [
621
+ 'class' => '\Essential_Addons_Elementor\Elements\WpForms',
622
  'dependency' => [
623
  'css' => [
624
  [
625
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/wpforms.min.css',
626
+ 'type' => 'self',
627
  'context' => 'view',
628
  ],
629
  ],
630
  ],
631
  ],
632
+ 'fluentform' => [
633
+ 'class' => '\Essential_Addons_Elementor\Elements\FluentForm',
634
  'dependency' => [
635
  'css' => [
636
  [
637
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/fluentform.min.css',
638
+ 'type' => 'self',
639
  'context' => 'view',
640
  ],
641
  ],
642
  ],
643
  ],
644
+ 'typeform' => [
645
+ 'class' => '\Essential_Addons_Elementor\Elements\TypeForm',
646
  'dependency' => [
647
  'css' => [
648
  [
649
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/typeform.min.css',
650
+ 'type' => 'self',
651
  'context' => 'view',
652
  ],
653
  ],
654
+ 'js' => [
655
  [
656
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/embed/embed.min.js',
657
+ 'type' => 'lib',
658
  'context' => 'view',
659
  ],
660
  [
661
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/typeform.min.js',
662
+ 'type' => 'self',
663
  'context' => 'view',
664
  ],
665
  ],
667
  ],
668
  'betterdocs-category-grid' => [
669
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Category_Grid',
670
+ 'dependency' => [
671
+ 'css' => [
672
  [
673
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/betterdocs-category-grid.min.css',
674
+ 'type' => 'self',
675
+ 'context' => 'view',
676
+ ],
677
  ],
678
+ 'js' => [
679
  [
680
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/isotope/isotope.pkgd.min.js',
681
+ 'type' => 'lib',
682
  'context' => 'view',
683
  ],
684
  [
685
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/betterdocs-category-grid.min.js',
686
+ 'type' => 'self',
687
  'context' => 'view',
688
+ ],
689
+ ],
690
+ ],
691
  ],
692
+ 'betterdocs-category-box' => [
693
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Category_Box',
694
+ 'dependency' => [
695
+ 'css' => [
696
  [
697
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/betterdocs-category-box.min.css',
698
+ 'type' => 'self',
699
+ 'context' => 'view',
700
+ ],
701
  ],
702
+ ],
703
  ],
704
+ 'betterdocs-search-form' => [
705
  'class' => '\Essential_Addons_Elementor\Elements\Betterdocs_Search_Form',
706
  ],
707
+ 'sticky-video' => [
708
+ 'class' => '\Essential_Addons_Elementor\Elements\Sticky_Video',
709
  'dependency' => [
710
  'css' => [
711
  [
712
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/plyr/plyr.min.css',
713
+ 'type' => 'lib',
714
  'context' => 'view',
715
  ],
716
  [
717
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/sticky-video.min.css',
718
+ 'type' => 'self',
719
  'context' => 'view',
720
  ],
721
  ],
722
+ 'js' => [
723
  [
724
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/plyr/plyr.min.js',
725
+ 'type' => 'lib',
726
  'context' => 'view',
727
  ],
728
  [
729
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/sticky-video.min.js',
730
+ 'type' => 'self',
731
  'context' => 'view',
732
  ],
733
  ],
734
  ],
735
  ],
736
+ 'event-calendar' => [
737
+ 'class' => '\Essential_Addons_Elementor\Elements\Event_Calendar',
738
  'dependency' => [
739
  'css' => [
740
  [
741
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/calendar-main.min.css',
742
+ 'type' => 'lib',
743
  'context' => 'view',
744
  ],
745
  [
746
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/daygrid.min.css',
747
+ 'type' => 'lib',
748
  'context' => 'view',
749
  ],
750
  [
751
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/timegrid.min.css',
752
+ 'type' => 'lib',
753
  'context' => 'view',
754
  ],
755
  [
756
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/lib-view/full-calendar/listgrid.min.css',
757
+ 'type' => 'lib',
758
  'context' => 'view',
759
  ],
760
  [
761
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/event-calendar.min.css',
762
+ 'type' => 'self',
763
  'context' => 'view',
764
  ],
765
  ],
766
+ 'js' => [
767
  [
768
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/locales-all.min.js',
769
+ 'type' => 'lib',
770
  'context' => 'view',
771
  ],
772
  [
773
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/moment/moment.min.js',
774
+ 'type' => 'lib',
775
  'context' => 'view',
776
  ],
777
  [
778
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/calendar-main.min.js',
779
+ 'type' => 'lib',
780
  'context' => 'view',
781
  ],
782
  [
783
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/daygrid.min.js',
784
+ 'type' => 'lib',
785
  'context' => 'view',
786
  ],
787
  [
788
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/timegrid.min.js',
789
+ 'type' => 'lib',
790
  'context' => 'view',
791
  ],
792
  [
793
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/lib-view/full-calendar/listgrid.min.js',
794
+ 'type' => 'lib',
795
  'context' => 'view',
796
  ],
797
  [
798
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/event-calendar.min.js',
799
+ 'type' => 'self',
800
  'context' => 'view',
801
  ],
802
  ],
803
  ],
804
  ],
805
+ 'embedpress' => [
806
+ 'class' => '\Essential_Addons_Elementor\Elements\EmbedPress',
807
  'condition' => [
808
  'class_exists',
809
  '\EmbedPress\Elementor\Embedpress_Elementor_Integration',
810
  true,
811
  ],
812
  ],
813
+ 'woo-checkout' => [
814
+ 'class' => '\Essential_Addons_Elementor\Elements\Woo_Checkout',
815
  'dependency' => [
816
  'css' => [
817
  [
818
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/woo-checkout.min.css',
819
+ 'type' => 'self',
820
  'context' => 'view',
821
  ],
822
  ],
823
+ 'js' => [
824
  [
825
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/woo-checkout.min.js',
826
+ 'type' => 'self',
827
  'context' => 'view',
828
  ],
829
  ],
830
  ],
831
  ],
832
+ 'login-register' => [
833
+ 'class' => '\Essential_Addons_Elementor\Elements\Login_Register',
834
+ 'dependency' => [
835
+ 'css' => [
836
+ [
837
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/login-register.min.css',
838
+ 'type' => 'self',
839
+ 'context' => 'view',
840
+ ],
841
+ ],
842
+ 'js' => [
843
+ [
844
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/login-register.min.js',
845
+ 'type' => 'self',
846
+ 'context' => 'view',
847
+ ],
848
+ ],
849
+ ],
850
+ ],
851
+ 'woocommerce-review' => [
852
+ 'class' => '\Essential_Addons_Elementor\Elements\Woocommerce_Review',
853
+ 'condition' => [
854
+ 'class_exists',
855
+ '\ReviewX\Elementor\Elements\Review',
856
+ true,
857
+ ],
858
+ ],
859
  ],
860
  'extensions' => [
861
+ 'eael-promotion' => [
862
  'class' => '\Essential_Addons_Elementor\Extensions\Promotion',
863
  ],
864
+ 'eael-custom-js' => [
865
  'class' => '\Essential_Addons_Elementor\Extensions\Custom_JS',
866
  ],
867
  'eael-reading-progress' => [
868
+ 'class' => '\Essential_Addons_Elementor\Extensions\Reading_Progress',
869
  'dependency' => [
870
  'css' => [
871
  [
872
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/reading-progress.min.css',
873
+ 'type' => 'self',
874
  'context' => 'view',
875
  ],
876
  ],
877
+ 'js' => [
878
  [
879
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/reading-progress.min.js',
880
+ 'type' => 'self',
881
  'context' => 'view',
882
  ],
883
  ],
884
  ],
885
  ],
886
  'eael-table-of-content' => [
887
+ 'class' => '\Essential_Addons_Elementor\Extensions\Table_of_Content',
888
  'dependency' => [
889
  'css' => [
890
  [
891
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/table-of-content.min.css',
892
+ 'type' => 'self',
893
  'context' => 'view',
894
  ],
895
  ],
896
+ 'js' => [
897
  [
898
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/table-of-content.min.js',
899
+ 'type' => 'self',
900
  'context' => 'view',
901
  ],
902
  ],
903
  ],
904
  ],
905
+ 'eael-post-duplicator' => [
906
  'class' => '\Essential_Addons_Elementor\Extensions\Post_Duplicator',
907
  ],
908
  ],
essential_adons_elementor.php CHANGED
@@ -4,12 +4,12 @@
4
  * Description: The Essential plugin you install after Elementor! 70+ Premium elements, including WooCommerce, Event Calender, Data Table, Post Grid, Instagram Feed.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
- * Version: 4.1.2
8
  * Author URI: https://wpdeveloper.net/
9
  * Text Domain: essential-addons-for-elementor-lite
10
  * Domain Path: /languages
11
  *
12
- * WC tested up to: 4.1.0
13
  */
14
 
15
  if (!defined('ABSPATH')) {
@@ -26,10 +26,10 @@ define('EAEL_PLUGIN_FILE', __FILE__);
26
  define('EAEL_PLUGIN_BASENAME', plugin_basename(__FILE__));
27
  define('EAEL_PLUGIN_PATH', trailingslashit(plugin_dir_path(__FILE__)));
28
  define('EAEL_PLUGIN_URL', trailingslashit(plugins_url('/', __FILE__)));
29
- define('EAEL_PLUGIN_VERSION', '4.1.2');
30
  define('EAEL_ASSET_PATH', wp_upload_dir()['basedir'] . '/essential-addons-elementor');
31
  define('EAEL_ASSET_URL', wp_upload_dir()['baseurl'] . '/essential-addons-elementor');
32
-
33
  /**
34
  * Including composer autoloader globally.
35
  *
4
  * Description: The Essential plugin you install after Elementor! 70+ Premium elements, including WooCommerce, Event Calender, Data Table, Post Grid, Instagram Feed.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
+ * Version: 4.2.0
8
  * Author URI: https://wpdeveloper.net/
9
  * Text Domain: essential-addons-for-elementor-lite
10
  * Domain Path: /languages
11
  *
12
+ * WC tested up to: 4.3.1
13
  */
14
 
15
  if (!defined('ABSPATH')) {
26
  define('EAEL_PLUGIN_BASENAME', plugin_basename(__FILE__));
27
  define('EAEL_PLUGIN_PATH', trailingslashit(plugin_dir_path(__FILE__)));
28
  define('EAEL_PLUGIN_URL', trailingslashit(plugins_url('/', __FILE__)));
29
+ define('EAEL_PLUGIN_VERSION', '4.2.0');
30
  define('EAEL_ASSET_PATH', wp_upload_dir()['basedir'] . '/essential-addons-elementor');
31
  define('EAEL_ASSET_URL', wp_upload_dir()['baseurl'] . '/essential-addons-elementor');
32
+ define('EAEL_TEXTDOMAIN', 'essential-addons-for-elementor-lite');
33
  /**
34
  * Including composer autoloader globally.
35
  *
includes/Classes/Bootstrap.php CHANGED
@@ -7,18 +7,29 @@ if (!defined('ABSPATH')) {
7
  } // Exit if accessed directly
8
 
9
  use Essential_Addons_Elementor\Classes\WPDeveloper_Dashboard_Widget;
 
 
 
 
 
 
 
 
 
 
10
 
11
  class Bootstrap
12
  {
13
- use \Essential_Addons_Elementor\Traits\Library;
14
- use \Essential_Addons_Elementor\Traits\Shared;
15
- use \Essential_Addons_Elementor\Traits\Core;
16
- use \Essential_Addons_Elementor\Traits\Helper;
17
- use \Essential_Addons_Elementor\Traits\Generator;
18
- use \Essential_Addons_Elementor\Traits\Enqueue;
19
- use \Essential_Addons_Elementor\Traits\Admin;
20
- use \Essential_Addons_Elementor\Traits\Elements;
21
- use \Essential_Addons_Elementor\Classes\WPML\Eael_WPML;
 
22
 
23
  // instance container
24
  private static $instance = null;
@@ -37,7 +48,7 @@ class Bootstrap
37
 
38
  // loaded templates in a request
39
  public $loaded_templates = [];
40
-
41
  // loaded widgets in a request
42
  public $loaded_widgets = [];
43
 
@@ -130,6 +141,9 @@ class Bootstrap
130
  add_filter('eael/event-calendar/source', [$this, 'eael_event_calendar_source']);
131
  add_action('eael/advanced-data-table/source/control', [$this, 'advanced_data_table_source_control']);
132
  add_filter('eael/advanced-data-table/table_html/integration/ninja', [$this, 'advanced_data_table_ninja_integration'], 10, 1);
 
 
 
133
 
134
  //rank math support
135
  add_filter('rank_math/researches/toc_plugins', [$this, 'eael_toc_rank_math_support']);
@@ -137,10 +151,9 @@ class Bootstrap
137
  // Admin
138
  if (is_admin()) {
139
  // Admin
140
- if (!$this->pro_enabled) {
141
- // TODO: you have to call admin_notice for pro also.
142
  }
143
- $this->admin_notice(); // this line of code
144
 
145
  // dashboard feed
146
  WPDeveloper_Dashboard_Widget::instance();
7
  } // Exit if accessed directly
8
 
9
  use Essential_Addons_Elementor\Classes\WPDeveloper_Dashboard_Widget;
10
+ use Essential_Addons_Elementor\Classes\WPML\Eael_WPML;
11
+ use Essential_Addons_Elementor\Traits\Admin;
12
+ use Essential_Addons_Elementor\Traits\Core;
13
+ use Essential_Addons_Elementor\Traits\Elements;
14
+ use Essential_Addons_Elementor\Traits\Enqueue;
15
+ use Essential_Addons_Elementor\Traits\Generator;
16
+ use Essential_Addons_Elementor\Traits\Helper;
17
+ use Essential_Addons_Elementor\Traits\Library;
18
+ use Essential_Addons_Elementor\Traits\Login_Registration;
19
+ use Essential_Addons_Elementor\Traits\Shared;
20
 
21
  class Bootstrap
22
  {
23
+ use Library;
24
+ use Shared;
25
+ use Core;
26
+ use Helper;
27
+ use Generator;
28
+ use Enqueue;
29
+ use Admin;
30
+ use Elements;
31
+ use Eael_WPML;
32
+ use Login_Registration;
33
 
34
  // instance container
35
  private static $instance = null;
48
 
49
  // loaded templates in a request
50
  public $loaded_templates = [];
51
+
52
  // loaded widgets in a request
53
  public $loaded_widgets = [];
54
 
141
  add_filter('eael/event-calendar/source', [$this, 'eael_event_calendar_source']);
142
  add_action('eael/advanced-data-table/source/control', [$this, 'advanced_data_table_source_control']);
143
  add_filter('eael/advanced-data-table/table_html/integration/ninja', [$this, 'advanced_data_table_ninja_integration'], 10, 1);
144
+ add_action( 'init', [ $this, 'login_or_register_user'] ); //@TODO; add AJAX later
145
+ add_filter( 'wp_new_user_notification_email', array( $this, 'new_user_notification_email' ), 10, 3 );
146
+ add_filter( 'wp_new_user_notification_email_admin', array( $this, 'new_user_notification_email_admin' ), 10, 3 );
147
 
148
  //rank math support
149
  add_filter('rank_math/researches/toc_plugins', [$this, 'eael_toc_rank_math_support']);
151
  // Admin
152
  if (is_admin()) {
153
  // Admin
154
+ if ( ! $this->pro_enabled ) {
155
+ $this->admin_notice();
156
  }
 
157
 
158
  // dashboard feed
159
  WPDeveloper_Dashboard_Widget::instance();
includes/Elements/Login_Register.php ADDED
@@ -0,0 +1,3569 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Essential_Addons_Elementor\Elements;
4
+
5
+ use Elementor\Controls_Manager;
6
+ use Elementor\Group_Control_Background;
7
+ use Elementor\Group_Control_Border;
8
+ use Elementor\Group_Control_Box_Shadow;
9
+ use Elementor\Group_Control_Image_Size;
10
+ use Elementor\Group_Control_Typography;
11
+ use Elementor\Plugin;
12
+ use Elementor\Repeater;
13
+ use Elementor\Utils;
14
+ use Elementor\Widget_Base;
15
+ use Essential_Addons_Elementor\Traits\Login_Registration;
16
+
17
+ if ( ! defined( 'ABSPATH' ) ) {
18
+ exit;
19
+ } // Exit if accessed directly
20
+
21
+ /**
22
+ * Class Login_Register
23
+ * @package Essential_Addons_Elementor\Elements
24
+ */
25
+ class Login_Register extends Widget_Base {
26
+
27
+ use Login_Registration;
28
+
29
+ /**
30
+ * Does the site allows new user registration?
31
+ * @var bool
32
+ */
33
+ protected $user_can_register;
34
+
35
+ /**
36
+ * Are you currently in Elementor Editor Screen?
37
+ * @var bool
38
+ */
39
+ protected $in_editor;
40
+
41
+ /**
42
+ * Should login form be printed?
43
+ * @var bool
44
+ */
45
+ protected $should_print_login_form;
46
+
47
+ /**
48
+ * Should registration form be printed?
49
+ * @var bool
50
+ */
51
+ protected $should_print_register_form;
52
+
53
+ /**
54
+ * It contains an array of settings for the display
55
+ * @var array
56
+ */
57
+ protected $ds;
58
+ /**
59
+ * @var bool|false|int
60
+ */
61
+ protected $page_id;
62
+ /**
63
+ * @var bool|string
64
+ */
65
+ protected $form_illustration_url;
66
+
67
+ /**
68
+ * @var bool|string
69
+ */
70
+ protected $form_logo;
71
+ /**
72
+ * What form to show by default on initial page load. login or register ?
73
+ * @var string
74
+ */
75
+ protected $default_form;
76
+ /**
77
+ * Form illustration position
78
+ * @var mixed|string
79
+ */
80
+ protected $form_illustration_pos;
81
+ /**
82
+ * Form logo position
83
+ * @var mixed|string
84
+ */
85
+ protected $form_logo_pos;
86
+
87
+ /**
88
+ * Login_Register constructor.
89
+ * Initializing the Login_Register widget class.
90
+ * @inheritDoc
91
+ */
92
+ public function __construct( $data = [], $args = null ) {
93
+ parent::__construct( $data, $args );
94
+ $this->user_can_register = get_option( 'users_can_register' );
95
+ $this->in_editor = Plugin::instance()->editor->is_edit_mode();
96
+ }
97
+
98
+ /**
99
+ * @inheritDoc
100
+ */
101
+ public function get_name() {
102
+ return 'eael-login-register';
103
+ }
104
+
105
+ /**
106
+ * @inheritDoc
107
+ */
108
+ public function get_title() {
109
+ return esc_html__( 'Login | Register Form', EAEL_TEXTDOMAIN );
110
+ }
111
+
112
+ /**
113
+ * @inheritDoc
114
+ */
115
+ public function get_icon() {
116
+ return 'eaicon-login'; //@TODO; use better icon later
117
+ }
118
+
119
+ /**
120
+ * @inheritDoc
121
+ */
122
+ public function get_style_depends() {
123
+ return [ 'dashicons' ];
124
+ }
125
+
126
+ /**
127
+ * @inheritDoc
128
+ */
129
+ public function get_keywords() {
130
+ return [
131
+ 'ea login register',
132
+ 'ea register login',
133
+ 'signin form',
134
+ 'signup form',
135
+ 'sign in form',
136
+ 'sign up form',
137
+ 'authentication',
138
+ 'google',
139
+ 'facebook',
140
+ 'ea',
141
+ 'essential addons',
142
+ ];
143
+ }
144
+
145
+ public function get_custom_help_url()
146
+ {
147
+ return 'https://essential-addons.com/elementor/docs/login-register-form/';
148
+ }
149
+
150
+ /**
151
+ * @inheritDoc
152
+ */
153
+ public function get_categories() {
154
+ return [ 'essential-addons-elementor' ];
155
+ }
156
+
157
+ /**
158
+ * Get an array of form field types.
159
+ * @return array
160
+ */
161
+ protected function get_form_field_types() {
162
+ return apply_filters( 'eael/registration-form-fields', [
163
+ 'user_name' => __( 'Username', EAEL_TEXTDOMAIN ),
164
+ 'email' => __( 'Email', EAEL_TEXTDOMAIN ),
165
+ 'password' => __( 'Password', EAEL_TEXTDOMAIN ),
166
+ 'confirm_pass' => __( 'Confirm Password', EAEL_TEXTDOMAIN ),
167
+ 'first_name' => __( 'First Name', EAEL_TEXTDOMAIN ),
168
+ 'last_name' => __( 'Last Name', EAEL_TEXTDOMAIN ),
169
+ 'website' => __( 'Website', EAEL_TEXTDOMAIN ),
170
+ ] );
171
+ }
172
+
173
+ /**
174
+ * @inheritDoc
175
+ */
176
+ protected function _register_controls() {
177
+ /*----Content Tab----*/
178
+ do_action( 'eael/login-register/before-content-controls', $this );
179
+ $this->init_content_general_controls();
180
+ $this->init_form_header_controls();
181
+ // Login Form Related---
182
+ $this->init_content_login_fields_controls();
183
+ $this->init_content_login_options_controls();
184
+ // Registration For Related---
185
+ $this->init_content_register_fields_controls();
186
+ $this->init_content_register_options_controls();
187
+ $this->init_content_register_user_email_controls();
188
+ $this->init_content_register_admin_email_controls();
189
+ //Terms & Conditions
190
+ $this->init_content_terms_controls();
191
+ do_action( 'eael/login-register/after-content-controls', $this );
192
+
193
+ /*----Style Tab----*/
194
+ do_action( 'eael/login-register/before-style-controls', $this );
195
+ $this->init_style_general_controls();
196
+ $this->init_style_header_content_controls( 'login' );
197
+ $this->init_style_header_content_controls( 'register' );
198
+ $this->init_style_input_fields_controls();
199
+ $this->init_style_input_labels_controls();
200
+ $this->init_style_login_button_controls();
201
+ $this->init_style_register_button_controls();
202
+ $this->init_style_login_link_controls();
203
+ $this->init_style_register_link_controls();
204
+ do_action( 'eael/login-register/after-style-controls', $this );
205
+
206
+ }
207
+
208
+ /**
209
+ * It adds controls related to Login Form Types section to the Widget Content Tab
210
+ */
211
+ protected function init_content_general_controls() {
212
+ $this->start_controls_section( 'section_content_general', [
213
+ 'label' => __( 'General', EAEL_TEXTDOMAIN ),
214
+ ] );
215
+ $this->add_control( 'default_form_type_notice', [
216
+ 'type' => Controls_Manager::RAW_HTML,
217
+ 'raw' => __( 'Choose the type of form you want to show by default. Note: you can show both forms in a single page even if you select only login or registration from below.', EAEL_TEXTDOMAIN ),
218
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
219
+ ] );
220
+ $this->add_control( 'default_form_type', [
221
+ 'label' => __( 'Default Form Type', EAEL_TEXTDOMAIN ),
222
+ 'type' => Controls_Manager::SELECT,
223
+ 'options' => [
224
+ 'login' => __( 'Login', EAEL_TEXTDOMAIN ),
225
+ 'register' => __( 'Registration', EAEL_TEXTDOMAIN ),
226
+ ],
227
+ 'default' => 'login',
228
+ ] );
229
+ if ( ! $this->user_can_register ) {
230
+ $this->add_control( 'registration_off_notice', [
231
+ 'type' => Controls_Manager::RAW_HTML,
232
+ /* translators: %1$s is settings page link open tag, %2$s is link closing tag */
233
+ 'raw' => sprintf( __( 'Registration is disabled on your site. Please enable it to use registration form. You can enable it from Dashboard » Settings » General » %1$sMembership%2$s.', EAEL_TEXTDOMAIN ), '<a href="' . esc_attr( esc_url( admin_url( 'options-general.php' ) ) ) . '" target="_blank">', '</a>' ),
234
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning',
235
+ 'condition' => [
236
+ 'default_form_type' => 'register',
237
+ ],
238
+ ] );
239
+ }
240
+ $this->add_control( 'hide_for_logged_in_user', [
241
+ 'label' => __( 'Hide all Forms from Logged-in Users', EAEL_TEXTDOMAIN ),
242
+ 'type' => Controls_Manager::SWITCHER,
243
+ 'default' => 'yes',
244
+ ] );
245
+ $this->add_control( 'gen_lgn_content_po_toggle', [
246
+ 'label' => __( 'Login Form General', EAEL_TEXTDOMAIN ),
247
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
248
+ 'label_off' => __( 'Controls', EAEL_TEXTDOMAIN ),
249
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
250
+ 'return_value' => 'yes',
251
+ 'default' => 'yes',
252
+ ] );
253
+ $this->start_popover();
254
+ $this->add_control( 'show_log_out_message', [
255
+ 'label' => __( 'Show Logout Link', EAEL_TEXTDOMAIN ),
256
+ 'type' => Controls_Manager::SWITCHER,
257
+ 'default' => 'yes',
258
+ ] );
259
+ $this->add_control( 'show_lost_password', [
260
+ 'label' => __( 'Show Lost your password?', EAEL_TEXTDOMAIN ),
261
+ 'type' => Controls_Manager::SWITCHER,
262
+ 'default' => 'yes',
263
+ ] );
264
+
265
+ $this->add_control( 'lost_password_text', [
266
+ 'label' => __( 'Lost Password Text', EAEL_TEXTDOMAIN ),
267
+ 'label_block' => true,
268
+ 'type' => Controls_Manager::TEXT,
269
+ 'dynamic' => [
270
+ 'active' => true,
271
+ ],
272
+ 'default' => __( 'Forgot password?', EAEL_TEXTDOMAIN ),
273
+ 'condition' => [
274
+ 'show_lost_password' => 'yes',
275
+ ],
276
+ ] );
277
+ $this->add_control( 'lost_password_link_type', [
278
+ 'label' => __( 'Lost Password Link to', EAEL_TEXTDOMAIN ),
279
+ 'label_block' => true,
280
+ 'type' => Controls_Manager::SELECT,
281
+ 'options' => [
282
+ 'default' => __( 'Default WordPress Page', EAEL_TEXTDOMAIN ),
283
+ 'custom' => __( 'Custom URL', EAEL_TEXTDOMAIN ),
284
+ ],
285
+ 'default' => 'default',
286
+ 'condition' => [
287
+ 'show_lost_password' => 'yes',
288
+ ],
289
+ ] );
290
+ $this->add_control( 'lost_password_url', [
291
+ 'label' => __( 'Custom Lost Password URL', EAEL_TEXTDOMAIN ),
292
+ 'label_block' => true,
293
+ 'type' => Controls_Manager::URL,
294
+ 'show_external' => false,
295
+ 'dynamic' => [
296
+ 'active' => true,
297
+ ],
298
+ 'condition' => [
299
+ 'lost_password_link_type' => 'custom',
300
+ 'show_lost_password' => 'yes',
301
+ ],
302
+ ] );
303
+
304
+ if ( $this->user_can_register ) {
305
+ $this->add_control( 'reg_hr', [
306
+ 'type' => Controls_Manager::DIVIDER,
307
+ ] );
308
+ $this->add_control( 'show_register_link', [
309
+ 'label' => __( 'Show Register Link', EAEL_TEXTDOMAIN ),
310
+ 'type' => Controls_Manager::SWITCHER,
311
+ 'default' => 'yes',
312
+ 'separator' => 'before',
313
+
314
+ ] );
315
+ $this->add_control( 'registration_link_text', [
316
+ 'label' => __( 'Register Link Text', EAEL_TEXTDOMAIN ),
317
+ 'label_block' => true,
318
+ 'description' => __( 'You can put text in two lines to make the last line linkable. Pro Tip: You can keep the first line empty and put the text only in the second line to get a link only.', EAEL_TEXTDOMAIN ),
319
+ 'type' => Controls_Manager::TEXTAREA,
320
+ 'rows' => 2,
321
+ 'dynamic' => [
322
+ 'active' => true,
323
+ ],
324
+ 'default' => __( " \nRegister Now", EAEL_TEXTDOMAIN ),
325
+ 'condition' => [
326
+ 'show_register_link' => 'yes',
327
+ ],
328
+ ] );
329
+ $this->add_control( 'registration_link_action', [
330
+ 'label' => __( 'Registration Link Action', EAEL_TEXTDOMAIN ),
331
+ 'label_block' => true,
332
+ 'type' => Controls_Manager::SELECT,
333
+ 'options' => [
334
+ 'default' => __( 'WordPress Registration Page', EAEL_TEXTDOMAIN ),
335
+ 'custom' => __( 'Custom URL', EAEL_TEXTDOMAIN ),
336
+ 'form' => __( 'Show Register Form', EAEL_TEXTDOMAIN ),
337
+ ],
338
+ 'default' => 'form',
339
+ 'condition' => [
340
+ 'show_register_link' => 'yes',
341
+ ],
342
+ ] );
343
+ $this->add_control( 'custom_register_url', [
344
+ 'label' => __( 'Custom Register URL', EAEL_TEXTDOMAIN ),
345
+ 'label_block' => true,
346
+ 'type' => Controls_Manager::URL,
347
+ 'show_external' => false,
348
+ 'dynamic' => [
349
+ 'active' => true,
350
+ ],
351
+ 'condition' => [
352
+ 'registration_link_action' => 'custom',
353
+ 'show_register_link' => 'yes',
354
+ ],
355
+ ] );
356
+ } else {
357
+ $this->add_control( 'show_register_link', [
358
+ 'label' => __( 'Show Register Link', EAEL_TEXTDOMAIN ),
359
+ 'type' => Controls_Manager::HIDDEN,
360
+ 'default' => 'no',
361
+ 'separator' => 'before',
362
+ ] );
363
+ }
364
+ $this->end_popover();
365
+
366
+
367
+ /*--show registration related control only if registration is enable on the site--*/
368
+ if ( $this->user_can_register ) {
369
+ $this->add_control( 'gen_reg_content_po_toggle', [
370
+ 'label' => __( 'Register Form General', EAEL_TEXTDOMAIN ),
371
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
372
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
373
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
374
+ 'return_value' => 'yes',
375
+ 'default' => 'yes',
376
+ ] );
377
+ $this->start_popover();
378
+ $this->add_control( 'show_login_link', [
379
+ 'label' => __( 'Show Login Link', EAEL_TEXTDOMAIN ),
380
+ 'type' => Controls_Manager::SWITCHER,
381
+ 'default' => 'yes',
382
+ ] );
383
+ $this->add_control( 'login_link_text', [
384
+ 'label' => __( 'Login Link Text', EAEL_TEXTDOMAIN ),
385
+ 'label_block' => true,
386
+ 'description' => __( 'You can put text in two lines to make the last line linkable. Pro Tip: You can keep the first line empty and put the text only in the second line to get a link only.', EAEL_TEXTDOMAIN ),
387
+ 'type' => Controls_Manager::TEXTAREA,
388
+ 'rows' => 2,
389
+ 'dynamic' => [
390
+ 'active' => true,
391
+ ],
392
+ 'default' => __( " \nSign In", EAEL_TEXTDOMAIN ),
393
+ 'condition' => [
394
+ 'show_login_link' => 'yes',
395
+ ],
396
+ ] );
397
+ $this->add_control( 'login_link_action', [
398
+ 'label' => __( 'Login Link Action', EAEL_TEXTDOMAIN ),
399
+ 'label_block' => true,
400
+ 'type' => Controls_Manager::SELECT,
401
+ 'options' => [
402
+ 'default' => __( 'Default WordPress Page', EAEL_TEXTDOMAIN ),
403
+ 'custom' => __( 'Custom URL', EAEL_TEXTDOMAIN ),
404
+ 'form' => __( 'Show Login Form', EAEL_TEXTDOMAIN ),
405
+ ],
406
+ 'default' => 'form',
407
+ 'condition' => [
408
+ 'show_login_link' => 'yes',
409
+ ],
410
+ ] );
411
+ $this->add_control( 'custom_login_url', [
412
+ 'label' => __( 'Custom Login URL', EAEL_TEXTDOMAIN ),
413
+ 'label_block' => true,
414
+ 'show_external' => false,
415
+ 'type' => Controls_Manager::URL,
416
+ 'dynamic' => [
417
+ 'active' => true,
418
+ ],
419
+ 'condition' => [
420
+ 'login_link_action' => 'custom',
421
+ 'show_login_link' => 'yes',
422
+ ],
423
+ ] );
424
+ $this->end_popover();
425
+ } else {
426
+ $this->add_control( 'show_login_link', [
427
+ 'label' => __( 'Show Login Link', EAEL_TEXTDOMAIN ),
428
+ 'type' => Controls_Manager::HIDDEN,
429
+ 'default' => 'no',
430
+ ] );
431
+ }
432
+
433
+ do_action( 'eael/login-register/after-general-controls', $this );
434
+ $this->end_controls_section();
435
+ }
436
+
437
+ /**
438
+ * It adds controls related to Login Form Fields section to the Widget Content Tab
439
+ */
440
+ protected function init_content_login_fields_controls() {
441
+ $this->start_controls_section( 'section_content_login_fields', [
442
+ 'label' => __( 'Login Form Fields', EAEL_TEXTDOMAIN ),
443
+ 'conditions' => $this->get_form_controls_display_condition( 'login' ),
444
+ ] );
445
+
446
+ $this->add_control( 'login_label_types', [
447
+ 'label' => __( 'Labels & Placeholders', EAEL_TEXTDOMAIN ),
448
+ 'type' => Controls_Manager::SELECT,
449
+ 'options' => [
450
+ 'default' => __( 'Default', EAEL_TEXTDOMAIN ),
451
+ 'custom' => __( 'Custom', EAEL_TEXTDOMAIN ),
452
+ 'none' => __( 'Hide', EAEL_TEXTDOMAIN ),
453
+ ],
454
+ 'default' => 'default',
455
+ ] );
456
+
457
+ $this->add_control( 'login_labels_heading', [
458
+ 'label' => __( 'Labels', EAEL_TEXTDOMAIN ),
459
+ 'type' => Controls_Manager::HEADING,
460
+ 'separator' => 'before',
461
+ 'condition' => [ 'login_label_types' => 'custom', ],
462
+ ] );
463
+
464
+
465
+ $this->add_control( 'login_user_label', [
466
+ 'label' => __( 'Username Label', EAEL_TEXTDOMAIN ),
467
+ 'placeholder' => __( 'Username or Email Address', EAEL_TEXTDOMAIN ),
468
+ 'default' => __( 'Username or Email Address', EAEL_TEXTDOMAIN ),
469
+ 'type' => Controls_Manager::TEXT,
470
+ 'dynamic' => [ 'active' => true, ],
471
+ 'label_block' => true,
472
+ 'condition' => [ 'login_label_types' => 'custom', ],
473
+ ] );
474
+
475
+ $this->add_control( 'login_password_label', [
476
+ 'label' => __( 'Password Label', EAEL_TEXTDOMAIN ),
477
+ 'placeholder' => __( 'Password', EAEL_TEXTDOMAIN ),
478
+ 'default' => __( 'Password', EAEL_TEXTDOMAIN ),
479
+ 'type' => Controls_Manager::TEXT,
480
+ 'dynamic' => [ 'active' => true, ],
481
+ 'label_block' => true,
482
+ 'condition' => [ 'login_label_types' => 'custom', ],
483
+ ] );
484
+
485
+ $this->add_control( 'login_placeholders_heading', [
486
+ 'label' => esc_html__( 'Placeholders', EAEL_TEXTDOMAIN ),
487
+ 'type' => Controls_Manager::HEADING,
488
+ 'condition' => [ 'login_label_types' => 'custom', ],
489
+ 'separator' => 'before',
490
+ ] );
491
+
492
+ $this->add_control( 'login_user_placeholder', [
493
+ 'label' => __( 'Username Placeholder', EAEL_TEXTDOMAIN ),
494
+ 'placeholder' => __( 'Username or Email Address', EAEL_TEXTDOMAIN ),
495
+ 'default' => __( 'Username or Email Address', EAEL_TEXTDOMAIN ),
496
+ 'type' => Controls_Manager::TEXT,
497
+ 'dynamic' => [ 'active' => true, ],
498
+ 'label_block' => true,
499
+ 'condition' => [ 'login_label_types' => 'custom', ],
500
+ ] );
501
+
502
+ $this->add_control( 'login_password_placeholder', [
503
+ 'label' => __( 'Password Placeholder', EAEL_TEXTDOMAIN ),
504
+ 'placeholder' => __( 'Password', EAEL_TEXTDOMAIN ),
505
+ 'default' => __( 'Password', EAEL_TEXTDOMAIN ),
506
+ 'type' => Controls_Manager::TEXT,
507
+ 'dynamic' => [ 'active' => true, ],
508
+ 'label_block' => true,
509
+ 'condition' => [ 'login_label_types' => 'custom', ],
510
+ ] );
511
+
512
+ $this->add_responsive_control( 'login_field_width', [
513
+ 'label' => esc_html__( 'Input Fields width', EAEL_TEXTDOMAIN ),
514
+ 'type' => Controls_Manager::SLIDER,
515
+ 'size_units' => [
516
+ 'px',
517
+ '%',
518
+ ],
519
+ 'range' => [
520
+ 'px' => [
521
+ 'min' => 0,
522
+ 'max' => 500,
523
+ 'step' => 5,
524
+ ],
525
+ '%' => [
526
+ 'min' => 0,
527
+ 'max' => 100,
528
+ ],
529
+ ],
530
+ 'default' => [
531
+ 'unit' => '%',
532
+ 'size' => 100,
533
+ ],
534
+ 'selectors' => [
535
+ '{{WRAPPER}} .eael-login-form input:not(.eael-lr-btn)' => 'width: {{SIZE}}{{UNIT}};',
536
+ ],
537
+ 'separator' => 'before',
538
+ ] );
539
+
540
+ $this->add_control( 'login_show_remember_me', [
541
+ 'label' => __( 'Remember Me Checkbox', EAEL_TEXTDOMAIN ),
542
+ 'type' => Controls_Manager::SWITCHER,
543
+ 'default' => 'yes',
544
+ 'label_off' => __( 'Hide', EAEL_TEXTDOMAIN ),
545
+ 'label_on' => __( 'Show', EAEL_TEXTDOMAIN ),
546
+ ] );
547
+
548
+ $this->add_control( 'password_toggle', [
549
+ 'label' => __( 'Password Visibility Icon', EAEL_TEXTDOMAIN ),
550
+ 'type' => Controls_Manager::SWITCHER,
551
+ 'label_off' => __( 'Hide', EAEL_TEXTDOMAIN ),
552
+ 'label_on' => __( 'Show', EAEL_TEXTDOMAIN ),
553
+ 'default' => 'yes',
554
+ ] );
555
+
556
+ /*--Login Fields Button--*/
557
+ $this->add_control( 'login_button_heading', [
558
+ 'label' => esc_html__( 'Login Button', EAEL_TEXTDOMAIN ),
559
+ 'type' => Controls_Manager::HEADING,
560
+ 'separator' => 'before',
561
+ ] );
562
+
563
+ $this->add_control( 'login_button_text', [
564
+ 'label' => __( 'Button Text', EAEL_TEXTDOMAIN ),
565
+ 'type' => Controls_Manager::TEXT,
566
+ 'dynamic' => [ 'active' => true, ],
567
+ 'default' => __( 'Log In', EAEL_TEXTDOMAIN ),
568
+ 'placeholder' => __( 'Log In', EAEL_TEXTDOMAIN ),
569
+ ] );
570
+
571
+ $this->end_controls_section();
572
+ }
573
+
574
+ protected function init_form_header_controls() {
575
+ $this->start_controls_section( 'section_content_lr_form_header', [
576
+ 'label' => __( 'Form Header Content', EAEL_TEXTDOMAIN ),
577
+ ] );
578
+
579
+ $this->add_control( 'lr_form_image', [
580
+ 'label' => __( 'Form Header Image', EAEL_TEXTDOMAIN ),
581
+ 'type' => Controls_Manager::MEDIA,
582
+ 'dynamic' => [
583
+ 'active' => true,
584
+ ],
585
+ 'default' => [
586
+ 'url' => Utils::get_placeholder_image_src(),
587
+ ],
588
+ ] );
589
+
590
+ $this->add_group_control( Group_Control_Image_Size::get_type(), [
591
+ 'name' => 'lr_form_image',
592
+ // Usage: `{name}_size` and `{name}_custom_dimension`, in this case `image_size` and `image_custom_dimension`.
593
+ 'default' => 'full',
594
+ 'separator' => 'none',
595
+ ] );
596
+
597
+ $this->add_control( "lr_form_image_position", [
598
+ 'label' => __( 'Header Image Position', EAEL_TEXTDOMAIN ),
599
+ 'type' => Controls_Manager::CHOOSE,
600
+ 'options' => [
601
+ 'left' => [
602
+ 'title' => __( 'Left', EAEL_TEXTDOMAIN ),
603
+ 'icon' => 'eicon-arrow-left',
604
+ ],
605
+ 'right' => [
606
+ 'title' => __( 'Right', EAEL_TEXTDOMAIN ),
607
+ 'icon' => 'eicon-arrow-right',
608
+ ],
609
+ ],
610
+ 'default' => 'left',
611
+ 'separator' => 'after',
612
+ ] );
613
+
614
+ $this->add_control( 'lr_form_logo', [
615
+ 'label' => __( 'Form Header Logo', EAEL_TEXTDOMAIN ),
616
+ 'type' => Controls_Manager::MEDIA,
617
+ 'dynamic' => [
618
+ 'active' => true,
619
+ ],
620
+ 'default' => [
621
+ 'url' => Utils::get_placeholder_image_src(),
622
+ ],
623
+ ] );
624
+
625
+ $this->add_group_control( Group_Control_Image_Size::get_type(), [
626
+ 'name' => 'lr_form_logo',
627
+ 'default' => 'full',
628
+ 'separator' => 'none',
629
+ ] );
630
+ $this->add_control( "lr_form_logo_position", [
631
+ 'label' => __( 'Form Logo Position', EAEL_TEXTDOMAIN ),
632
+ 'type' => Controls_Manager::CHOOSE,
633
+ 'options' => [
634
+ 'inline' => [
635
+ 'title' => __( 'Left', EAEL_TEXTDOMAIN ),
636
+ 'icon' => 'eicon-arrow-left',
637
+ ],
638
+ 'block' => [
639
+ 'title' => __( 'Top', EAEL_TEXTDOMAIN ),
640
+ 'icon' => 'eicon-arrow-up',
641
+ ],
642
+ ],
643
+ 'default' => 'left',
644
+ 'separator' => 'after',
645
+ ] );
646
+
647
+ $this->add_control( 'login_form_title', [
648
+ 'label' => __( 'Login Form Title', EAEL_TEXTDOMAIN ),
649
+ 'type' => Controls_Manager::TEXT,
650
+ 'dynamic' => [ 'active' => true, ],
651
+ 'placeholder' => __( 'Welcome Back!', EAEL_TEXTDOMAIN ),
652
+ 'separator' => 'before',
653
+ ] );
654
+ $this->add_control( 'login_form_subtitle', [
655
+ 'label' => __( 'Login Form Sub Title', EAEL_TEXTDOMAIN ),
656
+ 'type' => Controls_Manager::TEXTAREA,
657
+ 'dynamic' => [ 'active' => true, ],
658
+ 'placeholder' => __( 'Please login to your account', EAEL_TEXTDOMAIN ),
659
+ ] );
660
+
661
+ $this->add_control( 'register_form_title', [
662
+ 'label' => __( 'Register Form Title', EAEL_TEXTDOMAIN ),
663
+ 'type' => Controls_Manager::TEXT,
664
+ 'dynamic' => [ 'active' => true, ],
665
+ 'placeholder' => __( 'Create a New Account', EAEL_TEXTDOMAIN ),
666
+ 'separator' => 'before',
667
+ ] );
668
+ $this->add_control( 'register_form_subtitle', [
669
+ 'label' => __( 'Register Form Sub Title', EAEL_TEXTDOMAIN ),
670
+ 'type' => Controls_Manager::TEXTAREA,
671
+ 'dynamic' => [ 'active' => true, ],
672
+ 'placeholder' => __( 'Create an account to enjoy awesome features.', EAEL_TEXTDOMAIN ),
673
+ ] );
674
+
675
+ $this->end_controls_section();
676
+ }
677
+
678
+ protected function init_content_login_options_controls() {
679
+
680
+ $this->start_controls_section( 'section_content_login_options', [
681
+ 'label' => __( 'Login Form Options', EAEL_TEXTDOMAIN ),
682
+ 'conditions' => $this->get_form_controls_display_condition( 'login' ),
683
+ ] );
684
+
685
+ $this->add_control( 'redirect_after_login', [
686
+ 'label' => __( 'Redirect After Login', EAEL_TEXTDOMAIN ),
687
+ 'type' => Controls_Manager::SWITCHER,
688
+ ] );
689
+
690
+ $this->add_control( 'redirect_url', [
691
+ 'type' => Controls_Manager::URL,
692
+ 'show_label' => false,
693
+ 'show_external' => false,
694
+ 'placeholder' => admin_url(),
695
+ 'description' => __( 'Please note that only your current domain is allowed here to keep your site secure.', EAEL_TEXTDOMAIN ),
696
+ 'condition' => [
697
+ 'redirect_after_login' => 'yes',
698
+ ],
699
+ 'default' => [
700
+ 'url' => admin_url(),
701
+ 'is_external' => false,
702
+ 'nofollow' => true,
703
+ ],
704
+ 'separator' => 'after',
705
+ ] );
706
+ // @todo; in future
707
+ //$this->add_control( 'redirect_after_logout', [
708
+ // 'label' => __( 'Redirect After Logout', EAEL_TEXTDOMAIN ),
709
+ // 'type' => Controls_Manager::SWITCHER,
710
+ //] );
711
+ //
712
+ //$this->add_control( 'redirect_logout_url', [
713
+ // 'type' => Controls_Manager::URL,
714
+ // 'show_label' => false,
715
+ // 'show_external' => false,
716
+ // 'placeholder' => __( 'https://your-link.com', EAEL_TEXTDOMAIN ),
717
+ // 'description' => __( 'Please note that only your current domain is allowed here to keep your site secure.', EAEL_TEXTDOMAIN ),
718
+ // 'condition' => [
719
+ // 'redirect_after_logout' => 'yes',
720
+ // ],
721
+ // 'separator' => 'after',
722
+ //] );
723
+
724
+ $this->end_controls_section();
725
+ }
726
+
727
+ protected function init_content_terms_controls() {
728
+ $this->start_controls_section( 'section_content_terms_conditions', [
729
+ 'label' => __( 'Terms & Conditions', EAEL_TEXTDOMAIN ),
730
+ 'conditions' => $this->get_form_controls_display_condition( 'register' ),
731
+ ] );
732
+
733
+ $this->add_control( 'show_terms_conditions', [
734
+ 'label' => __( 'Enforce Terms & Conditions', EAEL_TEXTDOMAIN ),
735
+ 'type' => Controls_Manager::SWITCHER,
736
+ 'label_on' => __( 'Yes', EAEL_TEXTDOMAIN ),
737
+ 'label_off' => __( 'No', EAEL_TEXTDOMAIN ),
738
+ 'default' => 'no',
739
+ 'return_value' => 'yes',
740
+ ] );
741
+
742
+ $this->add_control( 'acceptance_label', [
743
+ 'label' => __( 'Acceptance Label', EAEL_TEXTDOMAIN ),
744
+ 'description' => __( 'Eg. I accept the terms & conditions. Note: First line is checkbox label & Last line will be used as link text.', EAEL_TEXTDOMAIN ),
745
+ 'type' => Controls_Manager::TEXTAREA,
746
+ 'rows' => 2,
747
+ 'label_block' => true,
748
+ 'placeholder' => __( 'I Accept the Terms and Conditions.', EAEL_TEXTDOMAIN ),
749
+ /* translators: \n means new line. So, Don't translate this*/
750
+ 'default' => __( "I Accept\n the Terms and Conditions.", EAEL_TEXTDOMAIN ),
751
+ 'condition' => [
752
+ 'show_terms_conditions' => 'yes',
753
+ ],
754
+ ] );
755
+
756
+ $this->add_control( 'acceptance_text_source', [
757
+ 'label' => __( 'Content Source', EAEL_TEXTDOMAIN ),
758
+ 'type' => Controls_Manager::SELECT,
759
+ 'options' => [
760
+ 'editor' => __( 'Editor', EAEL_TEXTDOMAIN ),
761
+ 'custom' => __( 'Custom', EAEL_TEXTDOMAIN ),
762
+ ],
763
+ 'default' => 'custom',
764
+ 'condition' => [
765
+ 'show_terms_conditions' => 'yes',
766
+ ],
767
+ ] );
768
+
769
+ $this->add_control( 'acceptance_text', [
770
+ 'label' => __( 'Terms and Conditions', EAEL_TEXTDOMAIN ),
771
+ 'type' => Controls_Manager::WYSIWYG,
772
+ 'rows' => 3,
773
+ 'default' => __( 'Please go through the following terms and conditions carefully.', EAEL_TEXTDOMAIN ),
774
+ 'condition' => [
775
+ 'show_terms_conditions' => 'yes',
776
+ 'acceptance_text_source' => 'editor',
777
+ ],
778
+ ] );
779
+
780
+
781
+ $this->add_control( 'acceptance_text_url', [
782
+ 'label' => __( 'Terms & Conditions URL', EAEL_TEXTDOMAIN ),
783
+ 'description' => __( 'Enter the link where your terms & condition or privacy policy is found.', EAEL_TEXTDOMAIN ),
784
+ 'type' => Controls_Manager::URL,
785
+ 'dynamic' => [
786
+ 'active' => true,
787
+ ],
788
+ 'default' => [
789
+ 'url' => get_the_permalink( get_option( 'wp_page_for_privacy_policy' ) ),
790
+ 'is_external' => true,
791
+ 'nofollow' => true,
792
+ ],
793
+ 'condition' => [
794
+ 'show_terms_conditions' => 'yes',
795
+ 'acceptance_text_source' => 'custom',
796
+ ],
797
+ ] );
798
+
799
+ $this->end_controls_section();
800
+ }
801
+
802
+ protected function init_content_register_fields_controls() {
803
+
804
+ $this->start_controls_section( 'section_content_register_fields', [
805
+ 'label' => __( 'Register Form Fields', EAEL_TEXTDOMAIN ),
806
+ 'conditions' => $this->get_form_controls_display_condition( 'register' ),
807
+ ] );
808
+ $this->add_control( 'register_form_field_note', [
809
+ 'type' => Controls_Manager::RAW_HTML,
810
+ 'raw' => __( 'Select the type of fields you want to show in the registration form', EAEL_TEXTDOMAIN ),
811
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
812
+ ] );
813
+ $repeater = new Repeater();
814
+
815
+ $repeater->add_control( 'field_type', [
816
+ 'label' => __( 'Type', EAEL_TEXTDOMAIN ),
817
+ 'type' => Controls_Manager::SELECT,
818
+ 'options' => $this->get_form_field_types(),
819
+ 'default' => 'first_name',
820
+ ] );
821
+
822
+ $repeater->add_control( 'field_label', [
823
+ 'label' => __( 'Label', EAEL_TEXTDOMAIN ),
824
+ 'type' => Controls_Manager::TEXT,
825
+ 'default' => '',
826
+ 'dynamic' => [
827
+ 'active' => true,
828
+ ],
829
+ ] );
830
+
831
+ $repeater->add_control( 'placeholder', [
832
+ 'label' => __( 'Placeholder', EAEL_TEXTDOMAIN ),
833
+ 'type' => Controls_Manager::TEXT,
834
+ 'default' => '',
835
+ 'dynamic' => [
836
+ 'active' => true,
837
+ ],
838
+ ] );
839
+
840
+ $repeater->add_control( 'required', [
841
+ 'label' => __( 'Required', EAEL_TEXTDOMAIN ),
842
+ 'type' => Controls_Manager::SWITCHER,
843
+ 'condition' => [
844
+ 'field_type!' => [
845
+ 'email',
846
+ 'password',
847
+ 'confirm_pass',
848
+ ],
849
+ ],
850
+ ] );
851
+
852
+ $repeater->add_control( 'required_note', [
853
+ 'type' => Controls_Manager::RAW_HTML,
854
+ 'raw' => __( 'Note: This field is required by default.', EAEL_TEXTDOMAIN ),
855
+ 'condition' => [
856
+ 'field_type' => [
857
+ 'email',
858
+ 'password',
859
+ 'confirm_pass',
860
+ ],
861
+ ],
862
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
863
+ ] );
864
+
865
+ $repeater->add_responsive_control( 'width', [
866
+ 'label' => __( 'Field Width', EAEL_TEXTDOMAIN ),
867
+ 'type' => Controls_Manager::SELECT,
868
+ 'options' => [
869
+ '' => __( 'Default', EAEL_TEXTDOMAIN ),
870
+ '100' => '100%',
871
+ '80' => '80%',
872
+ '75' => '75%',
873
+ '66' => '66%',
874
+ '60' => '60%',
875
+ '50' => '50%',
876
+ '40' => '40%',
877
+ '33' => '33%',
878
+ '25' => '25%',
879
+ '20' => '20%',
880
+ ],
881
+ 'default' => '100',
882
+ ] );
883
+
884
+ $this->add_control( 'register_fields', [
885
+ 'type' => Controls_Manager::REPEATER,
886
+ 'fields' => array_values( $repeater->get_controls() ),
887
+ 'default' => [
888
+ [
889
+ 'field_type' => 'user_name',
890
+ 'field_label' => __( 'Username', EAEL_TEXTDOMAIN ),
891
+ 'placeholder' => __( 'Username', EAEL_TEXTDOMAIN ),
892
+ 'width' => '100',
893
+ ],
894
+ [
895
+ 'field_type' => 'email',
896
+ 'field_label' => __( 'Email', EAEL_TEXTDOMAIN ),
897
+ 'placeholder' => __( 'Email', EAEL_TEXTDOMAIN ),
898
+ 'required' => 'yes',
899
+ 'width' => '100',
900
+ ],
901
+ [
902
+ 'field_type' => 'password',
903
+ 'field_label' => __( 'Password', EAEL_TEXTDOMAIN ),
904
+ 'placeholder' => __( 'Password', EAEL_TEXTDOMAIN ),
905
+ 'required' => 'yes',
906
+ 'width' => '100',
907
+ ],
908
+ ],
909
+ 'title_field' => '{{{ field_label }}}',
910
+ ] );
911
+
912
+ $this->add_control( 'show_labels', [
913
+ 'label' => __( 'Show Label', EAEL_TEXTDOMAIN ),
914
+ 'type' => Controls_Manager::SWITCHER,
915
+ 'default' => 'yes',
916
+ ] );
917
+
918
+ $this->add_control( 'mark_required', [
919
+ 'label' => __( 'Show Required Mark', EAEL_TEXTDOMAIN ),
920
+ 'type' => Controls_Manager::SWITCHER,
921
+ 'condition' => [
922
+ 'show_labels' => 'yes',
923
+ ],
924
+ ] );
925
+
926
+
927
+ /*--Register Fields Button--*/
928
+ $this->add_control( 'reg_button_heading', [
929
+ 'label' => esc_html__( 'Register Button', EAEL_TEXTDOMAIN ),
930
+ 'type' => Controls_Manager::HEADING,
931
+ 'separator' => 'before',
932
+ ] );
933
+
934
+ $this->add_control( 'reg_button_text', [
935
+ 'label' => __( 'Button Text', EAEL_TEXTDOMAIN ),
936
+ 'type' => Controls_Manager::TEXT,
937
+ 'dynamic' => [ 'active' => true, ],
938
+ 'default' => __( 'Register', EAEL_TEXTDOMAIN ),
939
+ ] );
940
+
941
+
942
+ $this->end_controls_section();
943
+ }
944
+
945
+ protected function init_content_register_options_controls() {
946
+
947
+ $this->start_controls_section( 'section_content_register_actions', [
948
+ 'label' => __( 'Register Form Options', EAEL_TEXTDOMAIN ),
949
+ 'conditions' => $this->get_form_controls_display_condition( 'register' ),
950
+ ] );
951
+
952
+ $this->add_control( 'register_action', [
953
+ 'label' => __( 'Register Actions', EAEL_TEXTDOMAIN ),
954
+ 'description' => __( 'You can select what should happen after a user registers successfully', EAEL_TEXTDOMAIN ),
955
+ 'type' => Controls_Manager::SELECT2,
956
+ 'multiple' => true,
957
+ 'label_block' => true,
958
+ 'default' => 'send_email',
959
+ 'options' => [
960
+ 'redirect' => __( 'Redirect', EAEL_TEXTDOMAIN ),
961
+ 'auto_login' => __( 'Auto Login', EAEL_TEXTDOMAIN ),
962
+ 'send_email' => __( 'Notify User By Email', EAEL_TEXTDOMAIN ),
963
+ ],
964
+ ] );
965
+
966
+ $this->add_control( 'register_redirect_url', [
967
+ 'type' => Controls_Manager::URL,
968
+ 'label' => __( 'Custom Redirect URL', EAEL_TEXTDOMAIN ),
969
+ 'show_external' => false,
970
+ 'placeholder' => __( 'eg. https://your-link.com/wp-admin/', EAEL_TEXTDOMAIN ),
971
+ 'description' => __( 'Please note that only your current domain is allowed here to keep your site secure.', EAEL_TEXTDOMAIN ),
972
+ 'default' => [
973
+ 'url' => get_admin_url(),
974
+ 'is_external' => false,
975
+ 'nofollow' => true,
976
+ ],
977
+ 'condition' => [
978
+ 'register_action' => 'redirect',
979
+ ],
980
+ ] );
981
+
982
+ $this->add_control( 'register_user_role', [
983
+ 'label' => __( 'New User Role', EAEL_TEXTDOMAIN ),
984
+ 'type' => Controls_Manager::SELECT,
985
+ 'default' => 'default',
986
+ 'options' => $this->get_user_roles(),
987
+ 'separator' => 'before',
988
+ ] );
989
+
990
+
991
+ $this->add_control( 'register_success_msg', [
992
+ 'label' => __( 'Success Message', EAEL_TEXTDOMAIN ),
993
+ 'type' => Controls_Manager::TEXTAREA,
994
+ 'default' => __( 'Registration completed successfully, Check your inbox for password if you did not provided while registering.', EAEL_TEXTDOMAIN ),
995
+ 'placeholder' => __( 'eg. Registration completed successfully', EAEL_TEXTDOMAIN ),
996
+ ] );
997
+
998
+ $this->add_control( 'register_error_msg', [
999
+ 'label' => __( 'Error Message', EAEL_TEXTDOMAIN ),
1000
+ 'type' => Controls_Manager::TEXTAREA,
1001
+ 'default' => __( 'Something went wrong, Please try again.', EAEL_TEXTDOMAIN ),
1002
+ 'placeholder' => __( 'eg. Something went wrong, Please try again.', EAEL_TEXTDOMAIN ),
1003
+ ] );
1004
+
1005
+ $this->end_controls_section();
1006
+ }
1007
+
1008
+ protected function init_content_register_user_email_controls() {
1009
+ /* translators: %s: Site Name */
1010
+ $default_subject = sprintf( __( 'Thank you for registering on "%s"!', EAEL_TEXTDOMAIN ), get_option( 'blogname' ) );
1011
+ $default_message = $default_subject . "\r\n\r\n";
1012
+ $default_message .= __( 'Username: [username]', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1013
+ $default_message .= __( 'Password: [password]', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1014
+ $default_message .= __( 'To reset your password, visit the following address:', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1015
+ $default_message .= "[password_reset_link]\r\n\r\n";
1016
+ $default_message .= __( 'Please click the following address to login to your account:', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1017
+ $default_message .= wp_login_url() . "\r\n";
1018
+
1019
+ $this->start_controls_section( 'section_content_reg_email', [
1020
+ 'label' => __( 'Register User Email Options', EAEL_TEXTDOMAIN ),
1021
+ 'conditions' => [
1022
+ 'relation' => 'or',
1023
+ 'terms' => [
1024
+ [
1025
+ 'name' => 'show_register_link',
1026
+ 'value' => 'yes',
1027
+ //@TODO; debug why multi-level condition is not working.
1028
+ //'relation' => 'and',
1029
+ //'terms' => [
1030
+ // [
1031
+ // 'name' => 'register_action',
1032
+ // 'value' => 'send_email',
1033
+ // 'operator' => '===',
1034
+ // ],
1035
+ //],
1036
+ ],
1037
+ [
1038
+ 'name' => 'default_form_type',
1039
+ 'value' => 'register',
1040
+ //'relation' => 'and',
1041
+ //'terms' => [
1042
+ // [
1043
+ // 'name' => 'register_action',
1044
+ // 'value' => 'send_email',
1045
+ // 'operator' => '===',
1046
+ // ],
1047
+ //],
1048
+ ],
1049
+ ],
1050
+ ],
1051
+ ] );
1052
+
1053
+ $this->add_control( 'reg_email_template_type', [
1054
+ 'label' => __( 'Email Template Type', EAEL_TEXTDOMAIN ),
1055
+ 'description' => __( 'Default template uses WordPress Default email template. So, please select the Custom Option to send the user proper information if you used any username field.', EAEL_TEXTDOMAIN ),
1056
+ 'type' => Controls_Manager::SELECT,
1057
+ 'default' => 'default',
1058
+ 'render_type' => 'none',
1059
+ 'options' => [
1060
+ 'default' => __( 'WordPres Default', EAEL_TEXTDOMAIN ),
1061
+ 'custom' => __( 'Custom', EAEL_TEXTDOMAIN ),
1062
+ ],
1063
+ ] );
1064
+
1065
+ $this->add_control( 'reg_email_subject', [
1066
+ 'label' => __( 'Email Subject', EAEL_TEXTDOMAIN ),
1067
+ 'type' => Controls_Manager::TEXT,
1068
+ 'placeholder' => $default_subject,
1069
+ 'default' => $default_subject,
1070
+ 'label_block' => true,
1071
+ 'render_type' => 'none',
1072
+ 'condition' => [
1073
+ 'reg_email_template_type' => 'custom',
1074
+ ],
1075
+ ] );
1076
+
1077
+ $this->add_control( 'reg_email_message', [
1078
+ 'label' => __( 'Email Message', EAEL_TEXTDOMAIN ),
1079
+ 'type' => Controls_Manager::WYSIWYG,
1080
+ 'placeholder' => __( 'Enter Your Custom Email Message..', EAEL_TEXTDOMAIN ),
1081
+ 'default' => $default_message,
1082
+ 'label_block' => true,
1083
+ 'render_type' => 'none',
1084
+ 'condition' => [
1085
+ 'reg_email_template_type' => 'custom',
1086
+ ],
1087
+ ] );
1088
+
1089
+ $this->add_control( 'reg_email_content_note', [
1090
+ 'type' => Controls_Manager::RAW_HTML,
1091
+ 'raw' => __( '<strong>Note:</strong> You can use dynamic content in the email body like [fieldname]. For example [username] will be replaced by user-typed username. Available tags are: [password], [username], [email], [firstname],[lastname], [website], [loginurl], [password_reset_link] and [sitetitle] ', EAEL_TEXTDOMAIN ),
1092
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
1093
+ 'condition' => [
1094
+ 'reg_email_template_type' => 'custom',
1095
+ ],
1096
+ 'render_type' => 'none',
1097
+ ] );
1098
+
1099
+ $this->add_control( 'reg_email_content_type', [
1100
+ 'label' => __( 'Email Content Type', EAEL_TEXTDOMAIN ),
1101
+ 'type' => Controls_Manager::SELECT,
1102
+ 'default' => 'html',
1103
+ 'render_type' => 'none',
1104
+ 'options' => [
1105
+ 'html' => __( 'HTML', EAEL_TEXTDOMAIN ),
1106
+ 'plain' => __( 'Plain', EAEL_TEXTDOMAIN ),
1107
+ ],
1108
+ 'condition' => [
1109
+ 'reg_email_template_type' => 'custom',
1110
+ ],
1111
+ ] );
1112
+
1113
+ $this->end_controls_section();
1114
+ }
1115
+
1116
+ protected function init_content_register_admin_email_controls() {
1117
+ /* translators: %s: Site Name */
1118
+ $default_subject = sprintf( __( '["%s"] New User Registration', EAEL_TEXTDOMAIN ), get_option( 'blogname' ) );
1119
+ /* translators: %s: Site Name */
1120
+ $default_message = sprintf( __( "New user registration on your site %s", EAEL_TEXTDOMAIN ), get_option( 'blogname' ) ) . "\r\n\r\n";
1121
+ $default_message .= __( 'Username: [username]', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1122
+ $default_message .= __( 'Email: [email]', EAEL_TEXTDOMAIN ) . "\r\n\r\n";
1123
+
1124
+
1125
+ $this->start_controls_section( 'section_content_reg_admin_email', [
1126
+ 'label' => __( 'Register Admin Email Options', EAEL_TEXTDOMAIN ),
1127
+ 'conditions' => [
1128
+ 'relation' => 'or',
1129
+ 'terms' => [
1130
+ [
1131
+ 'name' => 'show_register_link',
1132
+ 'value' => 'yes',
1133
+ //@TODO; debug why multi-level condition is not working.
1134
+ //'relation' => 'and',
1135
+ //'terms' => [
1136
+ // [
1137
+ // 'name' => 'register_action',
1138
+ // 'value' => 'send_email',
1139
+ // 'operator' => '===',
1140
+ // ],
1141
+ //],
1142
+ ],
1143
+ [
1144
+ 'name' => 'default_form_type',
1145
+ 'value' => 'register',
1146
+ //'relation' => 'and',
1147
+ //'terms' => [
1148
+ // [
1149
+ // 'name' => 'register_action',
1150
+ // 'value' => 'send_email',
1151
+ // 'operator' => '===',
1152
+ // ],
1153
+ //],
1154
+ ],
1155
+ ],
1156
+ ],
1157
+ ] );
1158
+
1159
+ $this->add_control( 'reg_admin_email_template_type', [
1160
+ 'label' => __( 'Email Template Type', EAEL_TEXTDOMAIN ),
1161
+ 'description' => __( 'Default template uses WordPress Default Admin email template. You can customize it by choosing the custom option.', EAEL_TEXTDOMAIN ),
1162
+ 'type' => Controls_Manager::SELECT,
1163
+ 'default' => 'default',
1164
+ 'render_type' => 'none',
1165
+ 'options' => [
1166
+ 'default' => __( 'WordPres Default', EAEL_TEXTDOMAIN ),
1167
+ 'custom' => __( 'Custom', EAEL_TEXTDOMAIN ),
1168
+ ],
1169
+ ] );
1170
+
1171
+ $this->add_control( 'reg_admin_email_subject', [
1172
+ 'label' => __( 'Email Subject', EAEL_TEXTDOMAIN ),
1173
+ 'type' => Controls_Manager::TEXT,
1174
+ 'placeholder' => $default_subject,
1175
+ 'default' => $default_subject,
1176
+ 'label_block' => true,
1177
+ 'render_type' => 'none',
1178
+ 'condition' => [
1179
+ 'reg_admin_email_template_type' => 'custom',
1180
+ ],
1181
+ ] );
1182
+
1183
+ $this->add_control( 'reg_admin_email_message', [
1184
+ 'label' => __( 'Email Message', EAEL_TEXTDOMAIN ),
1185
+ 'type' => Controls_Manager::WYSIWYG,
1186
+ 'placeholder' => __( 'Enter Your Custom Email Message..', EAEL_TEXTDOMAIN ),
1187
+ 'default' => $default_message,
1188
+ 'label_block' => true,
1189
+ 'render_type' => 'none',
1190
+ 'condition' => [
1191
+ 'reg_admin_email_template_type' => 'custom',
1192
+ ],
1193
+ ] );
1194
+
1195
+ $this->add_control( 'reg_admin_email_content_note', [
1196
+ 'type' => Controls_Manager::RAW_HTML,
1197
+ 'raw' => __( '<strong>Note:</strong> You can use dynamic content in the email body like [fieldname]. For example [username] will be replaced by user-typed username. Available tags are: [username], [email], [firstname],[lastname], [website], [loginurl] and [sitetitle] ', EAEL_TEXTDOMAIN ),
1198
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
1199
+ 'condition' => [
1200
+ 'reg_admin_email_template_type' => 'custom',
1201
+ ],
1202
+ 'render_type' => 'none',
1203
+ ] );
1204
+
1205
+ $this->add_control( 'reg_admin_email_content_type', [
1206
+ 'label' => __( 'Email Content Type', EAEL_TEXTDOMAIN ),
1207
+ 'type' => Controls_Manager::SELECT,
1208
+ 'default' => 'html',
1209
+ 'render_type' => 'none',
1210
+ 'options' => [
1211
+ 'html' => __( 'HTML', EAEL_TEXTDOMAIN ),
1212
+ 'plain' => __( 'Plain', EAEL_TEXTDOMAIN ),
1213
+ ],
1214
+ 'condition' => [
1215
+ 'reg_admin_email_template_type' => 'custom',
1216
+ ],
1217
+ ] );
1218
+
1219
+ $this->end_controls_section();
1220
+ }
1221
+
1222
+ /**
1223
+ * It prints controls for managing general style of both login and registration form
1224
+ */
1225
+ protected function init_style_general_controls() {
1226
+ $this->start_controls_section( 'section_style_general', [
1227
+ 'label' => __( 'General', EAEL_TEXTDOMAIN ),
1228
+ 'tab' => Controls_Manager::TAB_STYLE,
1229
+ ] );
1230
+ //---Form Container or Box
1231
+ $this->add_control( 'form_form_wrap_po_toggle', [
1232
+ 'label' => __( 'Container Box', EAEL_TEXTDOMAIN ),
1233
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1234
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1235
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1236
+ 'return_value' => 'yes',
1237
+ ] );
1238
+ $this->start_popover();
1239
+ $this->add_responsive_control( "eael_form_wrap_width", [
1240
+ 'label' => esc_html__( 'width', EAEL_TEXTDOMAIN ),
1241
+ 'type' => Controls_Manager::SLIDER,
1242
+ 'size_units' => [
1243
+ 'px',
1244
+ 'rem',
1245
+ '%',
1246
+ ],
1247
+ 'range' => [
1248
+ 'px' => [
1249
+ 'min' => 0,
1250
+ 'max' => 1000,
1251
+ 'step' => 5,
1252
+ ],
1253
+ 'rem' => [
1254
+ 'min' => 0,
1255
+ 'max' => 10,
1256
+ 'step' => .5,
1257
+ ],
1258
+ '%' => [
1259
+ 'min' => 0,
1260
+ 'max' => 100,
1261
+ ],
1262
+ ],
1263
+ 'desktop_default' => [
1264
+ 'unit' => '%',
1265
+ 'size' => 65,
1266
+ ],
1267
+ 'tablet_default' => [
1268
+ 'unit' => '%',
1269
+ 'size' => 75,
1270
+ ],
1271
+ 'mobile_default' => [
1272
+ 'unit' => '%',
1273
+ 'size' => 100,
1274
+ ],
1275
+ 'selectors' => [
1276
+ "{{WRAPPER}} .eael-lr-form-wrapper" => 'width: {{SIZE}}{{UNIT}};',
1277
+ ],
1278
+ 'condition' => [
1279
+ 'form_form_wrap_po_toggle' => 'yes',
1280
+ ],
1281
+ ] );
1282
+
1283
+ $this->add_control( "eael_form_wrap_margin", [
1284
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1285
+ 'type' => Controls_Manager::DIMENSIONS,
1286
+ 'size_units' => [
1287
+ 'px',
1288
+ 'em',
1289
+ '%',
1290
+ ],
1291
+ 'selectors' => [
1292
+ "{{WRAPPER}} .eael-lr-form-wrapper" => $this->apply_dim( 'margin' ),
1293
+ ],
1294
+ 'condition' => [
1295
+ 'form_form_wrap_po_toggle' => 'yes',
1296
+ ],
1297
+ ] );
1298
+ $this->add_control( "eael_form_wrap_padding", [
1299
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1300
+ 'type' => Controls_Manager::DIMENSIONS,
1301
+ 'size_units' => [
1302
+ 'px',
1303
+ 'em',
1304
+ '%',
1305
+ ],
1306
+ 'selectors' => [
1307
+ "{{WRAPPER}} .eael-lr-form-wrapper" => $this->apply_dim( 'padding' ),
1308
+ ],
1309
+ 'condition' => [
1310
+ 'form_form_wrap_po_toggle' => 'yes',
1311
+ ],
1312
+ ] );
1313
+ $this->add_group_control( Group_Control_Border::get_type(), [
1314
+ 'name' => "eael_form_wrap_border",
1315
+ 'selector' => "{{WRAPPER}} .eael-lr-form-wrapper",
1316
+ 'condition' => [
1317
+ 'form_form_wrap_po_toggle' => 'yes',
1318
+ ],
1319
+ ] );
1320
+ $this->add_control( "eael_form_wrap_border_radius", [
1321
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1322
+ 'type' => Controls_Manager::DIMENSIONS,
1323
+ 'size_units' => [
1324
+ 'px',
1325
+ '%',
1326
+ ],
1327
+ 'selectors' => [
1328
+ "{{WRAPPER}} .eael-lr-form-wrapper" => $this->apply_dim( 'border-radius' ),
1329
+ ],
1330
+ 'condition' => [
1331
+ 'form_form_wrap_po_toggle' => 'yes',
1332
+ ],
1333
+ ] );
1334
+ $this->add_group_control( Group_Control_Background::get_type(), [
1335
+ 'name' => "eael_form_wrap_bg_color",
1336
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1337
+ 'types' => [
1338
+ 'classic',
1339
+ 'gradient',
1340
+ ],
1341
+ 'selector' => "{{WRAPPER}} .eael-lr-form-wrapper",
1342
+ ] );
1343
+ $this->end_popover();
1344
+ $this->add_group_control( Group_Control_Box_Shadow::get_type(), [
1345
+ 'label' => __( 'Container Box Shadow', EAEL_TEXTDOMAIN ),
1346
+ 'name' => 'eael_form_wrap_shadow',
1347
+ 'selector' => "{{WRAPPER}} .eael-lr-form-wrapper",
1348
+ 'exclude' => [
1349
+ 'box_shadow_position',
1350
+ ],
1351
+ ] );
1352
+
1353
+ //----Form-----
1354
+ $this->add_control( 'form_form_po_toggle', [
1355
+ 'label' => __( 'Form', EAEL_TEXTDOMAIN ),
1356
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1357
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1358
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1359
+ 'return_value' => 'yes',
1360
+ 'separator' => 'before',
1361
+ ] );
1362
+ $this->start_popover();
1363
+ $this->add_responsive_control( "eael_form_width", [
1364
+ 'label' => esc_html__( 'width', EAEL_TEXTDOMAIN ),
1365
+ 'type' => Controls_Manager::SLIDER,
1366
+ 'size_units' => [
1367
+ 'px',
1368
+ 'rem',
1369
+ '%',
1370
+ ],
1371
+ 'range' => [
1372
+ 'px' => [
1373
+ 'min' => 0,
1374
+ 'max' => 1000,
1375
+ 'step' => 5,
1376
+ ],
1377
+ 'rem' => [
1378
+ 'min' => 0,
1379
+ 'max' => 10,
1380
+ 'step' => .5,
1381
+ ],
1382
+ '%' => [
1383
+ 'min' => 0,
1384
+ 'max' => 100,
1385
+ ],
1386
+ ],
1387
+ 'desktop_default' => [
1388
+ 'unit' => '%',
1389
+ 'size' => 50,
1390
+ ],
1391
+ 'tablet_default' => [
1392
+ 'unit' => '%',
1393
+ 'size' => 75,
1394
+ ],
1395
+ 'mobile_default' => [
1396
+ 'unit' => '%',
1397
+ 'size' => 100,
1398
+ ],
1399
+ 'selectors' => [
1400
+ "{{WRAPPER}} .lr-form-wrapper" => 'width: {{SIZE}}{{UNIT}};',
1401
+ ],
1402
+ 'condition' => [
1403
+ 'form_form_po_toggle' => 'yes',
1404
+ ],
1405
+ ] );
1406
+
1407
+ $this->add_control( "eael_form_margin", [
1408
+ 'label' => __( 'Form Margin', EAEL_TEXTDOMAIN ),
1409
+ 'type' => Controls_Manager::DIMENSIONS,
1410
+ 'size_units' => [
1411
+ 'px',
1412
+ 'em',
1413
+ '%',
1414
+ ],
1415
+ 'selectors' => [
1416
+ "{{WRAPPER}} .lr-form-wrapper" => $this->apply_dim( 'margin' ),
1417
+ ],
1418
+ 'condition' => [
1419
+ 'form_form_po_toggle' => 'yes',
1420
+ ],
1421
+ ] );
1422
+ $this->add_control( "eael_form_padding", [
1423
+ 'label' => __( 'Form Padding', EAEL_TEXTDOMAIN ),
1424
+ 'type' => Controls_Manager::DIMENSIONS,
1425
+ 'size_units' => [
1426
+ 'px',
1427
+ 'em',
1428
+ '%',
1429
+ ],
1430
+ 'selectors' => [
1431
+ "{{WRAPPER}} .lr-form-wrapper" => $this->apply_dim( 'padding' ),
1432
+ ],
1433
+ 'condition' => [
1434
+ 'form_form_po_toggle' => 'yes',
1435
+ ],
1436
+ ] );
1437
+ $this->add_group_control( Group_Control_Border::get_type(), [
1438
+ 'name' => "eael_form_border",
1439
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper",
1440
+ 'condition' => [
1441
+ 'form_form_po_toggle' => 'yes',
1442
+ ],
1443
+ ] );
1444
+ $this->add_control( "eael_form_border_radius", [
1445
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1446
+ 'type' => Controls_Manager::DIMENSIONS,
1447
+ 'size_units' => [
1448
+ 'px',
1449
+ '%',
1450
+ ],
1451
+ 'selectors' => [
1452
+ "{{WRAPPER}} .lr-form-wrapper" => $this->apply_dim( 'border-radius' ),
1453
+ ],
1454
+ 'condition' => [
1455
+ 'form_form_po_toggle' => 'yes',
1456
+ ],
1457
+ ] );
1458
+ $this->add_group_control( Group_Control_Background::get_type(), [
1459
+ 'name' => "eael_form_bg_color",
1460
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1461
+ 'types' => [
1462
+ 'classic',
1463
+ 'gradient',
1464
+ ],
1465
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper",
1466
+ ] );
1467
+ $this->end_popover();
1468
+ $this->add_group_control( Group_Control_Box_Shadow::get_type(), [
1469
+ 'label' => __( 'Form Shadow', EAEL_TEXTDOMAIN ),
1470
+ 'name' => 'eael_form_shadow',
1471
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper",
1472
+ 'exclude' => [
1473
+ 'box_shadow_position',
1474
+ ],
1475
+ ] );
1476
+ $this->end_controls_section();
1477
+ }
1478
+
1479
+ protected function init_style_header_content_controls( $form_type = 'login' ) {
1480
+ $this->start_controls_section( "section_style_{$form_type}_header_content", [
1481
+ 'label' => sprintf( __( '%s Form Header', EAEL_TEXTDOMAIN ), ucfirst( $form_type ) ),
1482
+ 'tab' => Controls_Manager::TAB_STYLE,
1483
+ 'conditions' => $this->get_form_controls_display_condition( $form_type ),
1484
+ ] );
1485
+ //Define all css selectors ahead for better management
1486
+ $illustration_selector = "{{WRAPPER}} .eael-{$form_type}-form-wrapper .lr-form-illustration";
1487
+ $header_selector = "{{WRAPPER}} .eael-{$form_type}-form-wrapper .lr-form-header";
1488
+ $logo_selector = "{{WRAPPER}} .eael-{$form_type}-form-wrapper .lr-form-header img";
1489
+ $title_selector = "{{WRAPPER}} .eael-{$form_type}-form-wrapper .lr-form-header .form-dsc h4";
1490
+ $subtitle_selector = "{{WRAPPER}} .eael-{$form_type}-form-wrapper .lr-form-header .form-dsc p";
1491
+
1492
+ $this->add_control( "{$form_type}_form_img_po_toggle", [
1493
+ 'label' => __( 'Form Illustration', EAEL_TEXTDOMAIN ),
1494
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1495
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1496
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1497
+ 'return_value' => 'yes',
1498
+ ] );
1499
+ $this->start_popover();
1500
+ $this->add_responsive_control( "{$form_type}_form_img_width", [
1501
+ 'label' => esc_html__( 'Width', EAEL_TEXTDOMAIN ),
1502
+ 'type' => Controls_Manager::SLIDER,
1503
+ 'size_units' => [
1504
+ 'px',
1505
+ 'rem',
1506
+ '%',
1507
+ ],
1508
+ 'range' => [
1509
+ 'px' => [
1510
+ 'min' => 0,
1511
+ 'max' => 1000,
1512
+ 'step' => 5,
1513
+ ],
1514
+ 'rem' => [
1515
+ 'min' => 0,
1516
+ 'max' => 10,
1517
+ 'step' => .5,
1518
+ ],
1519
+ '%' => [
1520
+ 'min' => 0,
1521
+ 'max' => 100,
1522
+ ],
1523
+ ],
1524
+ 'desktop_default' => [
1525
+ 'unit' => '%',
1526
+ 'size' => 50,
1527
+ ],
1528
+ 'tablet_default' => [
1529
+ 'unit' => '%',
1530
+ 'size' => 100,
1531
+ ],
1532
+ 'mobile_default' => [
1533
+ 'unit' => '%',
1534
+ 'size' => 100,
1535
+ ],
1536
+ 'selectors' => [
1537
+ $illustration_selector => 'width: {{SIZE}}{{UNIT}};',
1538
+ ],
1539
+ 'condition' => [
1540
+ "{$form_type}_form_img_po_toggle" => 'yes',
1541
+ ],
1542
+ ] );
1543
+ $this->add_responsive_control( "{$form_type}_form_img_height", [
1544
+ 'label' => esc_html__( 'Height', EAEL_TEXTDOMAIN ),
1545
+ 'type' => Controls_Manager::SLIDER,
1546
+ 'size_units' => [
1547
+ 'px',
1548
+ 'rem',
1549
+ ],
1550
+ 'range' => [
1551
+ 'px' => [
1552
+ 'min' => 0,
1553
+ 'max' => 1000,
1554
+ 'step' => 5,
1555
+ ],
1556
+ 'rem' => [
1557
+ 'min' => 0,
1558
+ 'max' => 10,
1559
+ 'step' => .5,
1560
+ ],
1561
+ ],
1562
+ 'desktop_default' => [
1563
+ 'unit' => 'px',
1564
+ 'size' => 375,
1565
+ ],
1566
+ 'tablet_default' => [
1567
+ 'unit' => 'px',
1568
+ 'size' => 375,
1569
+ ],
1570
+ 'mobile_default' => [
1571
+ 'unit' => 'px',
1572
+ 'size' => 375,
1573
+ ],
1574
+ 'selectors' => [
1575
+ $illustration_selector => 'height: {{SIZE}}{{UNIT}};',
1576
+ ],
1577
+ 'condition' => [
1578
+ "{$form_type}_form_img_po_toggle" => 'yes',
1579
+ ],
1580
+ ] );
1581
+ $this->add_control( "{$form_type}_form_img_margin", [
1582
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1583
+ 'type' => Controls_Manager::DIMENSIONS,
1584
+ 'size_units' => [
1585
+ 'px',
1586
+ 'em',
1587
+ '%',
1588
+ ],
1589
+ 'selectors' => [
1590
+ $illustration_selector => $this->apply_dim( 'margin' ),
1591
+ ],
1592
+ 'condition' => [
1593
+ "{$form_type}_form_img_po_toggle" => 'yes',
1594
+ ],
1595
+ ] );
1596
+ $this->add_control( "{$form_type}_form_img_padding", [
1597
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1598
+ 'type' => Controls_Manager::DIMENSIONS,
1599
+ 'size_units' => [
1600
+ 'px',
1601
+ 'em',
1602
+ '%',
1603
+ ],
1604
+ 'selectors' => [
1605
+ $illustration_selector => $this->apply_dim( 'padding' ),
1606
+ ],
1607
+ 'condition' => [
1608
+ "{$form_type}_form_img_po_toggle" => 'yes',
1609
+ ],
1610
+ ] );
1611
+ $this->add_group_control( Group_Control_Border::get_type(), [
1612
+ 'name' => "{$form_type}_form_img_border",
1613
+ 'selector' => $illustration_selector,
1614
+ 'condition' => [
1615
+ "{$form_type}_form_img_po_toggle" => 'yes',
1616
+ ],
1617
+ ] );
1618
+ $this->add_control( "{$form_type}_form_img_border_radius", [
1619
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1620
+ 'type' => Controls_Manager::DIMENSIONS,
1621
+ 'size_units' => [
1622
+ 'px',
1623
+ '%',
1624
+ ],
1625
+ 'selectors' => [
1626
+ $illustration_selector => $this->apply_dim( 'border-radius' ),
1627
+ ],
1628
+ 'condition' => [
1629
+ "{$form_type}_form_img_po_toggle" => 'yes',
1630
+ ],
1631
+ ] );
1632
+ $this->end_popover();
1633
+ $this->add_group_control( Group_Control_Box_Shadow::get_type(), [
1634
+ 'label' => __( 'Illustration Shadow', EAEL_TEXTDOMAIN ),
1635
+ 'name' => "{$form_type}_form_img_shadow",
1636
+ 'selector' => $illustration_selector,
1637
+ 'exclude' => [
1638
+ 'box_shadow_position',
1639
+ ],
1640
+ ] );
1641
+ $this->add_control( "{$form_type}_form_logo_po_toggle", [
1642
+ 'label' => __( 'Form Logo', EAEL_TEXTDOMAIN ),
1643
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1644
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1645
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1646
+ 'return_value' => 'yes',
1647
+ 'separator' => 'before',
1648
+ ] );
1649
+ $this->start_popover();
1650
+ $this->add_control( "{$form_type}_form_logo_margin", [
1651
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1652
+ 'type' => Controls_Manager::DIMENSIONS,
1653
+ 'size_units' => [
1654
+ 'px',
1655
+ 'em',
1656
+ '%',
1657
+ ],
1658
+ 'selectors' => [
1659
+ $logo_selector => $this->apply_dim( 'margin' ),
1660
+ ],
1661
+ 'condition' => [
1662
+ "{$form_type}_form_logo_po_toggle" => 'yes',
1663
+ ],
1664
+ ] );
1665
+ $this->add_control( "{$form_type}_form_logo_padding", [
1666
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1667
+ 'type' => Controls_Manager::DIMENSIONS,
1668
+ 'size_units' => [
1669
+ 'px',
1670
+ 'em',
1671
+ '%',
1672
+ ],
1673
+ 'selectors' => [
1674
+ $logo_selector => $this->apply_dim( 'padding' ),
1675
+ ],
1676
+ 'condition' => [
1677
+ "{$form_type}_form_logo_po_toggle" => 'yes',
1678
+ ],
1679
+ ] );
1680
+ $this->add_group_control( Group_Control_Border::get_type(), [
1681
+ 'name' => "{$form_type}_form_logo_border",
1682
+ 'selector' => $logo_selector,
1683
+ 'condition' => [
1684
+ "{$form_type}_form_logo_po_toggle" => 'yes',
1685
+ ],
1686
+ ] );
1687
+ $this->add_control( "{$form_type}_form_logo_border_radius", [
1688
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1689
+ 'type' => Controls_Manager::DIMENSIONS,
1690
+ 'size_units' => [
1691
+ 'px',
1692
+ '%',
1693
+ ],
1694
+ 'selectors' => [
1695
+ $logo_selector => $this->apply_dim( 'border-radius' ),
1696
+ ],
1697
+ 'condition' => [
1698
+ "{$form_type}_form_logo_po_toggle" => 'yes',
1699
+ ],
1700
+ ] );
1701
+ $this->end_popover();
1702
+ $this->add_group_control( Group_Control_Box_Shadow::get_type(), [
1703
+ 'label' => __( 'Logo Shadow', EAEL_TEXTDOMAIN ),
1704
+ 'name' => "{$form_type}_form_logo_shadow",
1705
+ 'selector' => $logo_selector,
1706
+ 'exclude' => [
1707
+ 'box_shadow_position',
1708
+ ],
1709
+ ] );
1710
+
1711
+ $this->add_group_control( Group_Control_Background::get_type(), [
1712
+ 'name' => "{$form_type}_form_header_bg",
1713
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1714
+ 'types' => [
1715
+ 'classic',
1716
+ 'gradient',
1717
+ ],
1718
+ 'selector' => $header_selector,
1719
+ ] );
1720
+
1721
+
1722
+ /*-- Title Typography --*/
1723
+ $this->add_control( "{$form_type}_form_title_po_toggle", [
1724
+ 'label' => __( 'Title', EAEL_TEXTDOMAIN ),
1725
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1726
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1727
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1728
+ 'return_value' => 'yes',
1729
+ 'separator' => 'before',
1730
+ ] );
1731
+ $this->start_popover();
1732
+ $this->add_control( "{$form_type}_form_title_margin", [
1733
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1734
+ 'type' => Controls_Manager::DIMENSIONS,
1735
+ 'size_units' => [
1736
+ 'px',
1737
+ 'em',
1738
+ '%',
1739
+ ],
1740
+ 'selectors' => [
1741
+ $title_selector => $this->apply_dim( 'margin' ),
1742
+ ],
1743
+ 'condition' => [
1744
+ "{$form_type}_form_title_po_toggle" => 'yes',
1745
+ ],
1746
+ ] );
1747
+ $this->add_control( "{$form_type}_form_title_padding", [
1748
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1749
+ 'type' => Controls_Manager::DIMENSIONS,
1750
+ 'size_units' => [
1751
+ 'px',
1752
+ 'em',
1753
+ '%',
1754
+ ],
1755
+ 'selectors' => [
1756
+ $title_selector => $this->apply_dim( 'padding' ),
1757
+ ],
1758
+ 'condition' => [
1759
+ "{$form_type}_form_title_po_toggle" => 'yes',
1760
+ ],
1761
+ ] );
1762
+ $this->add_control( "{$form_type}_form_title_color", [
1763
+ 'label' => __( 'Color', EAEL_TEXTDOMAIN ),
1764
+ 'type' => Controls_Manager::COLOR,
1765
+ 'selectors' => [
1766
+ $title_selector => 'color: {{VALUE}};',
1767
+ ],
1768
+ 'condition' => [
1769
+ "{$form_type}_form_title_po_toggle" => 'yes',
1770
+ ],
1771
+ ] );
1772
+ $this->add_control( "{$form_type}_form_title_bg_color", [
1773
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1774
+ 'type' => Controls_Manager::COLOR,
1775
+ 'selectors' => [
1776
+ $title_selector => 'background: {{VALUE}};',
1777
+ ],
1778
+ 'condition' => [
1779
+ "{$form_type}_form_title_po_toggle" => 'yes',
1780
+ ],
1781
+ ] );
1782
+
1783
+
1784
+ $this->add_group_control( Group_Control_Border::get_type(), [
1785
+ 'name' => "{$form_type}_form_title_border",
1786
+ 'selector' => $title_selector,
1787
+ 'condition' => [
1788
+ "{$form_type}_form_title_po_toggle" => 'yes',
1789
+ ],
1790
+ ] );
1791
+ $this->add_control( "{$form_type}_form_title_border_radius", [
1792
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1793
+ 'type' => Controls_Manager::DIMENSIONS,
1794
+ 'size_units' => [
1795
+ 'px',
1796
+ '%',
1797
+ ],
1798
+ 'selectors' => [
1799
+ $title_selector => $this->apply_dim( 'border-radius' ),
1800
+ ],
1801
+ 'condition' => [
1802
+ "{$form_type}_form_title_po_toggle" => 'yes',
1803
+ ],
1804
+ ] );
1805
+
1806
+ $this->end_popover();
1807
+ $this->add_group_control( Group_Control_Typography::get_type(), [
1808
+ 'name' => "{$form_type}_form_title_typo",
1809
+ 'label' => __( 'Title Typography', EAEL_TEXTDOMAIN ),
1810
+ 'selector' => $title_selector,
1811
+ ] );
1812
+
1813
+ /*Subtitle----*/
1814
+ $this->add_control( "{$form_type}_form_subtitle_po_toggle", [
1815
+ 'label' => __( 'Subtitle', EAEL_TEXTDOMAIN ),
1816
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1817
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1818
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1819
+ 'return_value' => 'yes',
1820
+ 'separator' => 'before',
1821
+ ] );
1822
+ $this->start_popover();
1823
+ $this->add_control( "{$form_type}_form_subtitle_margin", [
1824
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1825
+ 'type' => Controls_Manager::DIMENSIONS,
1826
+ 'size_units' => [
1827
+ 'px',
1828
+ 'em',
1829
+ '%',
1830
+ ],
1831
+ 'selectors' => [
1832
+ $subtitle_selector => $this->apply_dim( 'margin' ),
1833
+ ],
1834
+ 'condition' => [
1835
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1836
+ ],
1837
+ ] );
1838
+ $this->add_control( "{$form_type}_form_subtitle_padding", [
1839
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1840
+ 'type' => Controls_Manager::DIMENSIONS,
1841
+ 'size_units' => [
1842
+ 'px',
1843
+ 'em',
1844
+ '%',
1845
+ ],
1846
+ 'selectors' => [
1847
+ $subtitle_selector => $this->apply_dim( 'padding' ),
1848
+ ],
1849
+ 'condition' => [
1850
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1851
+ ],
1852
+ ] );
1853
+ $this->add_control( "{$form_type}_form_subtitle_color", [
1854
+ 'label' => __( 'Color', EAEL_TEXTDOMAIN ),
1855
+ 'type' => Controls_Manager::COLOR,
1856
+ 'selectors' => [
1857
+ $subtitle_selector => 'color: {{VALUE}};',
1858
+ ],
1859
+ 'condition' => [
1860
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1861
+ ],
1862
+ ] );
1863
+ $this->add_control( "{$form_type}_form_subtitle_bg_color", [
1864
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1865
+ 'type' => Controls_Manager::COLOR,
1866
+ 'selectors' => [
1867
+ $subtitle_selector => 'background: {{VALUE}};',
1868
+ ],
1869
+ 'condition' => [
1870
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1871
+ ],
1872
+ ] );
1873
+
1874
+
1875
+ $this->add_group_control( Group_Control_Border::get_type(), [
1876
+ 'name' => "{$form_type}_form_subtitle_border",
1877
+ 'selector' => $subtitle_selector,
1878
+ 'condition' => [
1879
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1880
+ ],
1881
+ ] );
1882
+ $this->add_control( "{$form_type}_form_subtitle_border_radius", [
1883
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1884
+ 'type' => Controls_Manager::DIMENSIONS,
1885
+ 'size_units' => [
1886
+ 'px',
1887
+ '%',
1888
+ ],
1889
+ 'selectors' => [
1890
+ $subtitle_selector => $this->apply_dim( 'border-radius' ),
1891
+ ],
1892
+ 'condition' => [
1893
+ "{$form_type}_form_subtitle_po_toggle" => 'yes',
1894
+ ],
1895
+ ] );
1896
+
1897
+ $this->end_popover();
1898
+ $this->add_group_control( Group_Control_Typography::get_type(), [
1899
+ 'name' => "{$form_type}_form_subtitle_typo",
1900
+ 'label' => __( 'Subtitle Typography', EAEL_TEXTDOMAIN ),
1901
+ 'selector' => $subtitle_selector,
1902
+ ] );
1903
+
1904
+ $this->end_controls_section();
1905
+ }
1906
+
1907
+ protected function init_style_input_fields_controls() {
1908
+ $this->start_controls_section( 'section_style_form_fields', [
1909
+ 'label' => __( 'Form Fields', EAEL_TEXTDOMAIN ),
1910
+ 'tab' => Controls_Manager::TAB_STYLE,
1911
+ ] );
1912
+ $this->add_control( 'eael_form_field_po_toggle', [
1913
+ 'label' => __( 'Spacing', EAEL_TEXTDOMAIN ),
1914
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
1915
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
1916
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
1917
+ 'return_value' => 'yes',
1918
+ ] );
1919
+
1920
+ $this->start_popover();
1921
+ $this->add_control( "eael_form_field_margin", [
1922
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
1923
+ 'type' => Controls_Manager::DIMENSIONS,
1924
+ 'size_units' => [
1925
+ 'px',
1926
+ 'em',
1927
+ '%',
1928
+ ],
1929
+ 'selectors' => [
1930
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control" => $this->apply_dim( 'margin' ),
1931
+ ],
1932
+ 'condition' => [
1933
+ 'eael_form_field_po_toggle' => 'yes',
1934
+ ],
1935
+ ] );
1936
+
1937
+ $this->add_control( "eael_form_field_padding", [
1938
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
1939
+ 'type' => Controls_Manager::DIMENSIONS,
1940
+ 'size_units' => [
1941
+ 'px',
1942
+ 'em',
1943
+ '%',
1944
+ ],
1945
+ 'selectors' => [
1946
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control" => $this->apply_dim( 'padding' ),
1947
+ ],
1948
+ 'condition' => [
1949
+ 'eael_form_field_po_toggle' => 'yes',
1950
+ ],
1951
+ ] );
1952
+ $this->end_popover();
1953
+ $this->add_group_control( Group_Control_Typography::get_type(), [
1954
+ 'name' => "eael_fields_typography",
1955
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control",
1956
+ ] );
1957
+ $this->add_control( 'eael_form_label_colors_heading', [
1958
+ 'type' => Controls_Manager::HEADING,
1959
+ 'label' => __( 'Colors & Border', EAEL_TEXTDOMAIN ),
1960
+ 'separator' => 'before',
1961
+ ] );
1962
+ $this->start_controls_tabs( "tabs_form_fields_style" );
1963
+
1964
+ /*-----Form Input Fields NORMAL state------ */
1965
+ $this->start_controls_tab( "tab_form_field_style_normal", [
1966
+ 'label' => __( 'Normal', EAEL_TEXTDOMAIN ),
1967
+ ] );
1968
+ $this->add_control( 'eael_field_color', [
1969
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
1970
+ 'type' => Controls_Manager::COLOR,
1971
+ 'selectors' => [
1972
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control" => 'color: {{VALUE}};',
1973
+ ],
1974
+ ] );
1975
+ $this->add_control( 'eael_field_placeholder_color', [
1976
+ 'label' => __( 'Placeholder Color', EAEL_TEXTDOMAIN ),
1977
+ 'type' => Controls_Manager::COLOR,
1978
+ 'selectors' => [
1979
+ "{{WRAPPER}} .lr-form-wrapper input.eael-lr-form-control::placeholder" => 'color: {{VALUE}};',
1980
+ ],
1981
+ ] );
1982
+ $this->add_control( 'eael_field_bg_color', [
1983
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
1984
+ 'type' => Controls_Manager::COLOR,
1985
+ 'default' => '#ffffff',
1986
+ 'selectors' => [
1987
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control" => 'background-color: {{VALUE}};',
1988
+ ],
1989
+ ] );
1990
+
1991
+ $this->add_group_control( Group_Control_Border::get_type(), [
1992
+ 'name' => "eael_field_border",
1993
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control",
1994
+ ] );
1995
+ $this->add_control( "eael_field_border_radius", [
1996
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
1997
+ 'type' => Controls_Manager::DIMENSIONS,
1998
+ 'size_units' => [
1999
+ 'px',
2000
+ '%',
2001
+ ],
2002
+ 'selectors' => [
2003
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control" => $this->apply_dim( 'border-radius' ),
2004
+ ],
2005
+ ] );
2006
+
2007
+ $this->end_controls_tab();
2008
+
2009
+ $this->start_controls_tab( "tab_form_field_style_active", [
2010
+ 'label' => __( 'Focus', EAEL_TEXTDOMAIN ),
2011
+ ] );
2012
+
2013
+ $this->add_control( 'eael_field_placeholder_color_active', [
2014
+ 'label' => __( 'Placeholder Color', EAEL_TEXTDOMAIN ),
2015
+ 'type' => Controls_Manager::COLOR,
2016
+ 'selectors' => [
2017
+ "{{WRAPPER}} .lr-form-wrapper input.eael-lr-form-control:focus::placeholder" => 'color: {{VALUE}};',
2018
+ ],
2019
+ ] );
2020
+ $this->add_control( 'eael_field_bg_color_active', [
2021
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2022
+ 'type' => Controls_Manager::COLOR,
2023
+ 'default' => '#ffffff',
2024
+ 'selectors' => [
2025
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control:focus" => 'background-color: {{VALUE}};',
2026
+ ],
2027
+ ] );
2028
+ $this->add_group_control( Group_Control_Border::get_type(), [
2029
+ 'name' => "eael_field_border_focus",
2030
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control:focus",
2031
+ ] );
2032
+ $this->add_control( "eael_field_border_radius_focus", [
2033
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2034
+ 'type' => Controls_Manager::DIMENSIONS,
2035
+ 'size_units' => [
2036
+ 'px',
2037
+ '%',
2038
+ ],
2039
+ 'selectors' => [
2040
+ "{{WRAPPER}} .lr-form-wrapper .eael-lr-form-control:focus" => $this->apply_dim( 'border-radius' ),
2041
+ ],
2042
+ ] );
2043
+ $this->end_controls_tab();
2044
+ $this->end_controls_tabs();
2045
+ $this->end_controls_section();
2046
+ }
2047
+
2048
+ protected function init_style_input_labels_controls() {
2049
+ $this->start_controls_section( 'section_style_form_labels', [
2050
+ 'label' => __( 'Form Labels', EAEL_TEXTDOMAIN ),
2051
+ 'tab' => Controls_Manager::TAB_STYLE,
2052
+ ] );
2053
+ $this->add_control( 'eael_form_label_po_toggle', [
2054
+ 'label' => __( 'Spacing', EAEL_TEXTDOMAIN ),
2055
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2056
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
2057
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
2058
+ 'return_value' => 'yes',
2059
+ ] );
2060
+
2061
+ $this->start_popover();
2062
+ $this->add_control( "eael_form_label_margin", [
2063
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
2064
+ 'type' => Controls_Manager::DIMENSIONS,
2065
+ 'size_units' => [
2066
+ 'px',
2067
+ 'em',
2068
+ '%',
2069
+ ],
2070
+ 'selectors' => [
2071
+ "{{WRAPPER}} .lr-form-wrapper .eael-field-label" => $this->apply_dim( 'margin' ),
2072
+ ],
2073
+ 'condition' => [
2074
+ 'eael_form_label_po_toggle' => 'yes',
2075
+ ],
2076
+ ] );
2077
+ $this->add_control( "eael_form_label_padding", [
2078
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
2079
+ 'type' => Controls_Manager::DIMENSIONS,
2080
+ 'size_units' => [
2081
+ 'px',
2082
+ 'em',
2083
+ '%',
2084
+ ],
2085
+ 'selectors' => [
2086
+ "{{WRAPPER}} .lr-form-wrapper .eael-field-label" => $this->apply_dim( 'padding' ),
2087
+ ],
2088
+ 'condition' => [
2089
+ 'eael_form_label_po_toggle' => 'yes',
2090
+ ],
2091
+ ] );
2092
+ $this->end_popover();
2093
+ $this->add_group_control( Group_Control_Typography::get_type(), [
2094
+ 'name' => "eael_label_typography",
2095
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper .eael-field-label",
2096
+ ] );
2097
+
2098
+ $this->add_control( 'eael_form_label_c_po_toggle', [
2099
+ 'label' => __( 'Colors', EAEL_TEXTDOMAIN ),
2100
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2101
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
2102
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
2103
+ 'return_value' => 'yes',
2104
+ ] );
2105
+
2106
+ $this->start_popover();
2107
+ $this->add_control( 'eael_label_color', [
2108
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
2109
+ 'type' => Controls_Manager::COLOR,
2110
+ 'selectors' => [
2111
+ "{{WRAPPER}} .lr-form-wrapper .eael-field-label" => 'color: {{VALUE}};',
2112
+ ],
2113
+ 'condition' => [
2114
+ 'eael_form_label_c_po_toggle' => 'yes',
2115
+ ],
2116
+ ] );
2117
+ $this->add_control( 'eael_label_bg_color', [
2118
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2119
+ 'type' => Controls_Manager::COLOR,
2120
+ 'default' => '#ffffff',
2121
+ 'selectors' => [
2122
+ "{{WRAPPER}} .lr-form-wrapper .eael-field-label" => 'background-color: {{VALUE}};',
2123
+ ],
2124
+ 'condition' => [
2125
+ 'eael_form_label_c_po_toggle' => 'yes',
2126
+ ],
2127
+ ] );
2128
+ $this->end_popover();
2129
+
2130
+ $this->add_control( 'eael_form_label_b_po_toggle', [
2131
+ 'label' => __( 'Border', EAEL_TEXTDOMAIN ),
2132
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2133
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
2134
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
2135
+ 'return_value' => 'yes',
2136
+ ] );
2137
+
2138
+ $this->start_popover();
2139
+ $this->add_group_control( Group_Control_Border::get_type(), [
2140
+ 'name' => "eael_label_border",
2141
+ 'selector' => "{{WRAPPER}} .lr-form-wrapper .eael-field-label",
2142
+ 'condition' => [
2143
+ 'eael_form_label_b_po_toggle' => 'yes',
2144
+ ],
2145
+ ] );
2146
+ $this->add_control( "eael_label_border_radius", [
2147
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2148
+ 'type' => Controls_Manager::DIMENSIONS,
2149
+ 'size_units' => [
2150
+ 'px',
2151
+ '%',
2152
+ ],
2153
+ 'selectors' => [
2154
+ "{{WRAPPER}} .lr-form-wrapper .eael-field-label" => $this->apply_dim( 'border-radius' ),
2155
+ ],
2156
+ 'condition' => [
2157
+ 'eael_form_label_b_po_toggle' => 'yes',
2158
+ ],
2159
+ ] );
2160
+ $this->end_popover();
2161
+
2162
+ $this->add_control( 'rmark_po_toggle', [
2163
+ 'label' => __( 'Required Mark Style', EAEL_TEXTDOMAIN ),
2164
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2165
+ 'condition' => [
2166
+ 'show_labels' => 'yes',
2167
+ 'mark_required' => 'yes',
2168
+ ],
2169
+ ] );
2170
+
2171
+ $this->start_popover();
2172
+ $this->add_control( 'rmark_sign', [
2173
+ 'label' => __( 'Mark Sign', EAEL_TEXTDOMAIN ),
2174
+ 'type' => Controls_Manager::TEXT,
2175
+ 'default' => '*',
2176
+ 'placeholder' => 'Enter * or (required) etc.',
2177
+ 'selectors' => [
2178
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group label.mark-required:after" => 'content: "{{VALUE}}";',
2179
+ ],
2180
+ 'condition' => [
2181
+ 'rmark_po_toggle' => 'yes',
2182
+ ],
2183
+ ] );
2184
+ $this->add_control( "rmark_size", [
2185
+ 'label' => esc_html__( 'Size', EAEL_TEXTDOMAIN ),
2186
+ 'type' => Controls_Manager::SLIDER,
2187
+ 'size_units' => [
2188
+ 'px',
2189
+ 'rem',
2190
+ '%',
2191
+ ],
2192
+ 'range' => [
2193
+ 'px' => [
2194
+ 'min' => 0,
2195
+ 'max' => 50,
2196
+ 'step' => 1,
2197
+ ],
2198
+ ],
2199
+ 'selectors' => [
2200
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group label.mark-required:after" => 'font-size: {{SIZE}}{{UNIT}};',
2201
+ ],
2202
+ 'condition' => [
2203
+ 'rmark_po_toggle' => 'yes',
2204
+ ],
2205
+ ] );
2206
+ $this->add_control( "rmakr_color", [
2207
+ 'label' => __( 'Color', EAEL_TEXTDOMAIN ),
2208
+ 'type' => Controls_Manager::COLOR,
2209
+ 'selectors' => [
2210
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group label.mark-required:after" => 'color: {{VALUE}};',
2211
+ ],
2212
+ 'condition' => [
2213
+ 'rmark_po_toggle' => 'yes',
2214
+ ],
2215
+ ] );
2216
+
2217
+ $this->add_control( "rmark_valign", [
2218
+ 'label' => esc_html__( 'Vertical Alignment', EAEL_TEXTDOMAIN ),
2219
+ 'type' => Controls_Manager::SLIDER,
2220
+ 'range' => [
2221
+ 'px' => [
2222
+ 'min' => - 50,
2223
+ 'max' => 50,
2224
+ 'step' => 0,
2225
+ ],
2226
+ ],
2227
+ 'default' => [
2228
+ 'unit' => 'px',
2229
+ 'size' => 17,
2230
+ ],
2231
+ 'selectors' => [
2232
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group label.mark-required:after" => 'top: {{SIZE}}px;',
2233
+ ],
2234
+ 'condition' => [
2235
+ 'rmark_po_toggle' => 'yes',
2236
+ ],
2237
+ ] );
2238
+ $this->add_control( "rmark_halign", [
2239
+ 'label' => esc_html__( 'Horizontal Alignment', EAEL_TEXTDOMAIN ),
2240
+ 'type' => Controls_Manager::SLIDER,
2241
+ 'range' => [
2242
+ 'px' => [
2243
+ 'min' => - 50,
2244
+ 'max' => 50,
2245
+ 'step' => 0,
2246
+ ],
2247
+ ],
2248
+ 'default' => [
2249
+ 'unit' => 'px',
2250
+ 'size' => - 10,
2251
+ ],
2252
+ 'selectors' => [
2253
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group label.mark-required:after" => 'right: {{SIZE}}px;',
2254
+ ],
2255
+ 'condition' => [
2256
+ 'rmark_po_toggle' => 'yes',
2257
+ ],
2258
+ ] );
2259
+
2260
+ $this->end_popover();
2261
+ $this->add_control( 'lpv_po_toggle', [
2262
+ 'label' => __( 'Password Visibility Style', EAEL_TEXTDOMAIN ),
2263
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2264
+ 'condition' => [
2265
+ 'password_toggle' => 'yes',
2266
+ ],
2267
+ ] );
2268
+ $this->start_popover();
2269
+
2270
+ $this->add_control( "lpv_size", [
2271
+ 'label' => esc_html__( 'Icon Size', EAEL_TEXTDOMAIN ),
2272
+ 'type' => Controls_Manager::SLIDER,
2273
+ 'size_units' => [
2274
+ 'px',
2275
+ 'rem',
2276
+ '%',
2277
+ ],
2278
+ 'range' => [
2279
+ 'px' => [
2280
+ 'min' => 0,
2281
+ 'max' => 50,
2282
+ 'step' => 1,
2283
+ ],
2284
+ ],
2285
+ 'selectors' => [
2286
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group .dashicons" => 'font-size: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}}',
2287
+ ],
2288
+ 'condition' => [
2289
+ 'lpv_po_toggle' => 'yes',
2290
+ ],
2291
+ ] );
2292
+ $this->add_control( "lvp_open_color", [
2293
+ 'label' => __( 'Open Eye Color', EAEL_TEXTDOMAIN ),
2294
+ 'type' => Controls_Manager::COLOR,
2295
+ 'selectors' => [
2296
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group .dashicons-visibility" => 'color: {{VALUE}};',
2297
+ ],
2298
+ 'condition' => [
2299
+ 'lpv_po_toggle' => 'yes',
2300
+ ],
2301
+ ] );
2302
+ $this->add_control( "lvp_close_color", [
2303
+ 'label' => __( 'Close Eye Color', EAEL_TEXTDOMAIN ),
2304
+ 'type' => Controls_Manager::COLOR,
2305
+ 'selectors' => [
2306
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group .dashicons-hidden" => 'color: {{VALUE}};',
2307
+ ],
2308
+ 'condition' => [
2309
+ 'lpv_po_toggle' => 'yes',
2310
+ ],
2311
+ ] );
2312
+
2313
+ $this->add_control( "lpv_valign", [
2314
+ 'label' => esc_html__( 'Vertical Alignment', EAEL_TEXTDOMAIN ),
2315
+ 'type' => Controls_Manager::SLIDER,
2316
+ 'range' => [
2317
+ 'px' => [
2318
+ 'min' => - 50,
2319
+ 'max' => 50,
2320
+ 'step' => 1,
2321
+ ],
2322
+ ],
2323
+ 'default' => [
2324
+ 'unit' => 'px',
2325
+ 'size' => 0.73,
2326
+ ],
2327
+ 'selectors' => [
2328
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group .wp-hide-pw" => 'top: {{SIZE}}px;',
2329
+ ],
2330
+ 'condition' => [
2331
+ 'lpv_po_toggle' => 'yes',
2332
+ ],
2333
+ ] );
2334
+ $this->add_control( "lpv_halign", [
2335
+ 'label' => esc_html__( 'Horizontal Alignment', EAEL_TEXTDOMAIN ),
2336
+ 'type' => Controls_Manager::SLIDER,
2337
+ 'range' => [
2338
+ 'px' => [
2339
+ 'min' => - 50,
2340
+ 'max' => 50,
2341
+ 'step' => 1,
2342
+ ],
2343
+ ],
2344
+ 'default' => [
2345
+ 'unit' => 'px',
2346
+ 'size' => - 27,
2347
+ ],
2348
+ 'selectors' => [
2349
+ "{{WRAPPER}} .eael-lr-form-wrapper .eael-lr-form-group .wp-hide-pw" => 'right: {{SIZE}}px;',
2350
+ ],
2351
+ 'condition' => [
2352
+ 'lpv_po_toggle' => 'yes',
2353
+ ],
2354
+ ] );
2355
+
2356
+ $this->end_popover();
2357
+
2358
+ $this->end_controls_section();
2359
+ }
2360
+
2361
+ protected function init_style_login_button_controls() {
2362
+ $this->_init_button_style( 'login' );
2363
+ }
2364
+
2365
+ protected function init_style_register_button_controls() {
2366
+ $this->_init_button_style( 'register' );
2367
+ }
2368
+
2369
+ protected function init_style_login_link_controls() {
2370
+ $this->_init_link_style( 'login' );
2371
+ }
2372
+
2373
+ protected function init_style_register_link_controls() {
2374
+ $this->_init_link_style( 'register' );
2375
+ }
2376
+
2377
+ /**
2378
+ * Print style controls for a specific type of button.
2379
+ *
2380
+ * @param string $button_type the type of the button. accepts login or register.
2381
+ */
2382
+ protected function _init_button_style( $button_type = 'login' ) {
2383
+ $this->start_controls_section( "section_style_{$button_type}_btn", [
2384
+ 'label' => sprintf( __( '%s Button', EAEL_TEXTDOMAIN ), ucfirst( $button_type ) ),
2385
+ 'tab' => Controls_Manager::TAB_STYLE,
2386
+ 'conditions' => $this->get_form_controls_display_condition( $button_type ),
2387
+ ] );
2388
+ $this->add_control( "{$button_type}_btn_pot", [
2389
+ 'label' => __( 'Spacing', EAEL_TEXTDOMAIN ),
2390
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2391
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
2392
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
2393
+ 'return_value' => 'yes',
2394
+ ] );
2395
+ $this->start_popover();
2396
+ $this->add_control( "{$button_type}_btn_margin", [
2397
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
2398
+ 'type' => Controls_Manager::DIMENSIONS,
2399
+ 'size_units' => [
2400
+ 'px',
2401
+ 'em',
2402
+ '%',
2403
+ ],
2404
+ 'selectors' => [
2405
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => $this->apply_dim( 'margin' ),
2406
+ ],
2407
+ 'condition' => [
2408
+ "{$button_type}_btn_pot" => 'yes',
2409
+ ],
2410
+ ] );
2411
+ $this->add_control( "{$button_type}_btn_padding", [
2412
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
2413
+ 'type' => Controls_Manager::DIMENSIONS,
2414
+ 'size_units' => [
2415
+ 'px',
2416
+ 'em',
2417
+ '%',
2418
+ ],
2419
+ 'selectors' => [
2420
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => $this->apply_dim( 'padding' ),
2421
+ ],
2422
+ 'condition' => [
2423
+ "{$button_type}_btn_pot" => 'yes',
2424
+ ],
2425
+ ] );
2426
+ $this->end_popover();
2427
+ $this->add_group_control( Group_Control_Typography::get_type(), [
2428
+ 'name' => "{$button_type}_btn_typography",
2429
+ 'selector' => "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn",
2430
+ ] );
2431
+ $this->add_control( "{$button_type}_btn_d_type", [
2432
+ 'label' => __( 'Display as', EAEL_TEXTDOMAIN ),
2433
+ 'type' => Controls_Manager::SELECT,
2434
+ 'options' => [
2435
+ 'row' => __( 'Inline', EAEL_TEXTDOMAIN ),
2436
+ 'column' => __( 'Block', EAEL_TEXTDOMAIN ),
2437
+ ],
2438
+ 'default' => 'row',
2439
+ 'selectors' => [
2440
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-footer" => 'flex-direction: {{VALUE}};',
2441
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-sign-wrapper" => 'padding-top: 0;',
2442
+ ],
2443
+ ] );
2444
+
2445
+
2446
+ $this->add_responsive_control( "{$button_type}_btn_jc", [
2447
+ 'label' => __( 'Justify Content', EAEL_TEXTDOMAIN ),
2448
+ 'type' => Controls_Manager::SELECT,
2449
+ 'options' => [
2450
+ 'flex-start' => __( 'Start', EAEL_TEXTDOMAIN ),
2451
+ 'flex-end' => __( 'End', EAEL_TEXTDOMAIN ),
2452
+ 'center' => __( 'Center', EAEL_TEXTDOMAIN ),
2453
+ 'space-between' => __( 'Space Between', EAEL_TEXTDOMAIN ),
2454
+ 'space-around' => __( 'Space Around', EAEL_TEXTDOMAIN ),
2455
+ 'space-evenly' => __( 'Space Evenly', EAEL_TEXTDOMAIN ),
2456
+ ],
2457
+ 'default' => 'space-between',
2458
+ 'condition' => [
2459
+ "{$button_type}_btn_d_type" => 'row',
2460
+ ],
2461
+ 'selectors' => [
2462
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-footer" => 'justify-content: {{VALUE}};',
2463
+ ],
2464
+ ] );
2465
+ $this->add_control( "{$button_type}_btn_align", [
2466
+ 'label' => __( 'Alignment', EAEL_TEXTDOMAIN ),
2467
+ 'type' => Controls_Manager::CHOOSE,
2468
+ 'options' => [
2469
+ 'mr-auto' => [
2470
+ 'title' => __( 'Left', EAEL_TEXTDOMAIN ),
2471
+ 'icon' => 'eicon-h-align-left',
2472
+ ],
2473
+ 'ml-auto mr-auto' => [
2474
+ 'title' => __( 'Center', EAEL_TEXTDOMAIN ),
2475
+ 'icon' => 'eicon-h-align-center',
2476
+ ],
2477
+ 'ml-auto' => [
2478
+ 'title' => __( 'Right', EAEL_TEXTDOMAIN ),
2479
+ 'icon' => 'eicon-h-align-right',
2480
+ ],
2481
+ ],
2482
+ 'default' => '',
2483
+ 'condition' => [
2484
+ "{$button_type}_btn_d_type" => 'column',
2485
+ ],
2486
+ ] );
2487
+ $this->add_control( "tabs_{$button_type}_btn_colors_heading", [
2488
+ 'type' => Controls_Manager::HEADING,
2489
+ 'label' => __( 'Colors & Border', EAEL_TEXTDOMAIN ),
2490
+ 'separator' => 'before',
2491
+ ] );
2492
+
2493
+ $this->start_controls_tabs( "tabs_{$button_type}_btn_style" );
2494
+ /*-----Login Button NORMAL state------ */
2495
+ $this->start_controls_tab( "tab_{$button_type}_btn_normal", [
2496
+ 'label' => __( 'Normal', EAEL_TEXTDOMAIN ),
2497
+ ] );
2498
+ $this->add_control( "{$button_type}_btn_color", [
2499
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
2500
+ 'type' => Controls_Manager::COLOR,
2501
+ 'selectors' => [
2502
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => 'color: {{VALUE}};',
2503
+ ],
2504
+ ] );
2505
+ $this->add_group_control( Group_Control_Background::get_type(), [
2506
+ 'name' => "{$button_type}_btn_bg_color",
2507
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2508
+ 'types' => [
2509
+ 'classic',
2510
+ 'gradient',
2511
+ ],
2512
+ 'selector' => "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn",
2513
+ ] );
2514
+ $this->add_group_control( Group_Control_Border::get_type(), [
2515
+ 'name' => "{$button_type}_btn_border",
2516
+ 'selector' => "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn",
2517
+ ] );
2518
+ $this->add_control( "{$button_type}_btn_border_radius", [
2519
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2520
+ 'type' => Controls_Manager::DIMENSIONS,
2521
+ 'size_units' => [
2522
+ 'px',
2523
+ '%',
2524
+ ],
2525
+ 'selectors' => [
2526
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => $this->apply_dim( 'border-radius' ),
2527
+ ],
2528
+ ] );
2529
+ $this->end_controls_tab();
2530
+
2531
+ /*-----Login Button HOVER state------ */
2532
+ $this->start_controls_tab( "tab_{$button_type}_button_hover", [
2533
+ 'label' => __( 'Hover', EAEL_TEXTDOMAIN ),
2534
+ ] );
2535
+ $this->add_control( "{$button_type}_button_color_hover", [
2536
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
2537
+ 'type' => Controls_Manager::COLOR,
2538
+ 'selectors' => [
2539
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn:hover" => 'color: {{VALUE}};',
2540
+ ],
2541
+ ] );
2542
+ $this->add_group_control( Group_Control_Background::get_type(), [
2543
+ 'name' => "{$button_type}_btn_bg_color_hover",
2544
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2545
+ 'types' => [
2546
+ 'classic',
2547
+ 'gradient',
2548
+ ],
2549
+ 'selector' => "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn:hover",
2550
+ ] );
2551
+ $this->add_group_control( Group_Control_Border::get_type(), [
2552
+ 'name' => "{$button_type}_btn_border_hover",
2553
+ 'selector' => "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn:hover",
2554
+ ] );
2555
+ $this->add_control( "{$button_type}_btn_border_radius_hover", [
2556
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2557
+ 'type' => Controls_Manager::DIMENSIONS,
2558
+ 'size_units' => [
2559
+ 'px',
2560
+ '%',
2561
+ ],
2562
+ 'selectors' => [
2563
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn:hover" => $this->apply_dim( 'border-radius' ),
2564
+ ],
2565
+ ] );
2566
+ $this->end_controls_tab();
2567
+ $this->end_controls_tabs();
2568
+ /*-----ends Button tabs--------*/
2569
+
2570
+ $this->add_responsive_control( "{$button_type}_btn_width", [
2571
+ 'label' => esc_html__( 'Button width', EAEL_TEXTDOMAIN ),
2572
+ 'type' => Controls_Manager::SLIDER,
2573
+ 'size_units' => [
2574
+ 'px',
2575
+ '%',
2576
+ ],
2577
+ 'range' => [
2578
+ 'px' => [
2579
+ 'min' => 0,
2580
+ 'max' => 500,
2581
+ 'step' => 5,
2582
+ ],
2583
+ '%' => [
2584
+ 'min' => 0,
2585
+ 'max' => 100,
2586
+ ],
2587
+ ],
2588
+ 'selectors' => [
2589
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => 'width: {{SIZE}}{{UNIT}};',
2590
+ ],
2591
+ 'separator' => 'before',
2592
+ ] );
2593
+ $this->add_responsive_control( "{$button_type}_btn_height", [
2594
+ 'label' => esc_html__( 'Button Height', EAEL_TEXTDOMAIN ),
2595
+ 'type' => Controls_Manager::SLIDER,
2596
+ 'size_units' => [
2597
+ 'px',
2598
+ '%',
2599
+ ],
2600
+ 'range' => [
2601
+ 'px' => [
2602
+ 'min' => 0,
2603
+ 'max' => 500,
2604
+ 'step' => 5,
2605
+ ],
2606
+ '%' => [
2607
+ 'min' => 0,
2608
+ 'max' => 100,
2609
+ ],
2610
+ ],
2611
+ 'selectors' => [
2612
+ "{{WRAPPER}} .eael-{$button_type}-form .eael-lr-btn" => 'height: {{SIZE}}{{UNIT}};',
2613
+ ],
2614
+ ] );
2615
+ $this->end_controls_section();
2616
+ }
2617
+
2618
+ /**
2619
+ * Print style controls for a specific type of link on register or login form.
2620
+ *
2621
+ * @param string $form_type the type of form where the link is being shown. accepts login or register.
2622
+ */
2623
+ protected function _init_link_style( $form_type = 'login' ) {
2624
+ $form_name = 'login' === $form_type ? __( 'Register', EAEL_TEXTDOMAIN ) : __( 'Login', EAEL_TEXTDOMAIN );
2625
+ $this->start_controls_section( "section_style_{$form_type}_link", [
2626
+ 'label' => sprintf( __( '%s Link', EAEL_TEXTDOMAIN ), ucfirst( $form_name ) ),
2627
+ 'tab' => Controls_Manager::TAB_STYLE,
2628
+ 'condition' => [
2629
+ "show_{$form_type}_link" => 'yes',
2630
+ ],
2631
+ ] );
2632
+ $this->add_control( "{$form_type}_link_style_notice", [
2633
+ 'type' => Controls_Manager::RAW_HTML,
2634
+ 'raw' => sprintf( __( 'Here you can style the %s link displayed on the %s Form', EAEL_TEXTDOMAIN ), $form_name, ucfirst( $form_type ) ),
2635
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
2636
+ ] );
2637
+ $this->add_control( "{$form_type}_link_pot", [
2638
+ 'label' => __( 'Spacing', EAEL_TEXTDOMAIN ),
2639
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
2640
+ 'label_off' => __( 'Default', EAEL_TEXTDOMAIN ),
2641
+ 'label_on' => __( 'Custom', EAEL_TEXTDOMAIN ),
2642
+ 'return_value' => 'yes',
2643
+ ] );
2644
+ $this->start_popover();
2645
+ $this->add_control( "{$form_type}_link_margin", [
2646
+ 'label' => __( 'Margin', EAEL_TEXTDOMAIN ),
2647
+ 'type' => Controls_Manager::DIMENSIONS,
2648
+ 'size_units' => [
2649
+ 'px',
2650
+ 'em',
2651
+ '%',
2652
+ ],
2653
+ 'selectors' => [
2654
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => $this->apply_dim( 'margin' ),
2655
+ ],
2656
+ 'condition' => [
2657
+ "{$form_type}_link_pot" => 'yes',
2658
+ ],
2659
+ ] );
2660
+ $this->add_control( "{$form_type}_link_padding", [
2661
+ 'label' => __( 'Padding', EAEL_TEXTDOMAIN ),
2662
+ 'type' => Controls_Manager::DIMENSIONS,
2663
+ 'size_units' => [
2664
+ 'px',
2665
+ 'em',
2666
+ '%',
2667
+ ],
2668
+ 'selectors' => [
2669
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => $this->apply_dim( 'padding' ),
2670
+ ],
2671
+ 'condition' => [
2672
+ "{$form_type}_link_pot" => 'yes',
2673
+ ],
2674
+ ] );
2675
+ $this->end_popover();
2676
+ $this->add_group_control( Group_Control_Typography::get_type(), [
2677
+ 'name' => "{$form_type}_link_typography",
2678
+ 'selector' => "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link",
2679
+ ] );
2680
+
2681
+ $this->add_control( "{$form_type}_link_d_type", [
2682
+ 'label' => __( 'Display as', EAEL_TEXTDOMAIN ),
2683
+ 'type' => Controls_Manager::SELECT,
2684
+ 'options' => [
2685
+ 'row' => __( 'Inline', EAEL_TEXTDOMAIN ),
2686
+ 'column' => __( 'Block', EAEL_TEXTDOMAIN ),
2687
+ ],
2688
+ 'default' => 'row',
2689
+ 'selectors' => [
2690
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-sign-wrapper" => 'display:flex; flex-direction: {{VALUE}};',
2691
+ ],
2692
+ ] );
2693
+
2694
+
2695
+ $this->add_responsive_control( "{$form_type}_link_jc", [
2696
+ 'label' => __( 'Justify Content', EAEL_TEXTDOMAIN ),
2697
+ 'type' => Controls_Manager::SELECT,
2698
+ 'options' => [
2699
+ 'flex-start' => __( 'Start', EAEL_TEXTDOMAIN ),
2700
+ 'flex-end' => __( 'End', EAEL_TEXTDOMAIN ),
2701
+ 'center' => __( 'Center', EAEL_TEXTDOMAIN ),
2702
+ 'space-between' => __( 'Space Between', EAEL_TEXTDOMAIN ),
2703
+ 'space-around' => __( 'Space Around', EAEL_TEXTDOMAIN ),
2704
+ 'space-evenly' => __( 'Space Evenly', EAEL_TEXTDOMAIN ),
2705
+ ],
2706
+ 'default' => 'center',
2707
+ 'condition' => [
2708
+ "{$form_type}_link_d_type" => 'row',
2709
+ ],
2710
+ 'selectors' => [
2711
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-sign-wrapper" => 'justify-content: {{VALUE}};',
2712
+ ],
2713
+ ] );
2714
+
2715
+ $this->add_responsive_control( "{$form_type}_link_ai", [
2716
+ 'label' => __( 'Align Items', EAEL_TEXTDOMAIN ),
2717
+ 'type' => Controls_Manager::SELECT,
2718
+ 'options' => [
2719
+ 'flex-start' => __( 'Start', EAEL_TEXTDOMAIN ),
2720
+ 'flex-end' => __( 'End', EAEL_TEXTDOMAIN ),
2721
+ 'center' => __( 'Center', EAEL_TEXTDOMAIN ),
2722
+ 'stretch' => __( 'Stretch', EAEL_TEXTDOMAIN ),
2723
+ 'baseline' => __( 'Baseline', EAEL_TEXTDOMAIN ),
2724
+ 'space-evenly' => __( 'Space Evenly', EAEL_TEXTDOMAIN ),
2725
+ ],
2726
+ 'default' => 'center',
2727
+ 'condition' => [
2728
+ "{$form_type}_link_d_type" => 'column',
2729
+ ],
2730
+ 'selectors' => [
2731
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-sign-wrapper" => 'align-items: {{VALUE}};',
2732
+ ],
2733
+ ] );
2734
+
2735
+ $this->add_control( "{$form_type}_link_align", [
2736
+ 'label' => __( 'Alignment', EAEL_TEXTDOMAIN ),
2737
+ 'type' => Controls_Manager::CHOOSE,
2738
+ 'options' => [
2739
+ 'mr-auto' => [
2740
+ 'title' => __( 'Left', EAEL_TEXTDOMAIN ),
2741
+ 'icon' => 'eicon-h-align-left',
2742
+ ],
2743
+ 'ml-auto mr-auto' => [
2744
+ 'title' => __( 'Center', EAEL_TEXTDOMAIN ),
2745
+ 'icon' => 'eicon-h-align-center',
2746
+ ],
2747
+ 'ml-auto' => [
2748
+ 'title' => __( 'Right', EAEL_TEXTDOMAIN ),
2749
+ 'icon' => 'eicon-h-align-right',
2750
+ ],
2751
+ ],
2752
+ 'default' => '',
2753
+ 'condition' => [
2754
+ "{$form_type}_link_d_type" => 'column',
2755
+ ],
2756
+ ] );
2757
+
2758
+ $this->add_control( "tabs_{$form_type}_link_colors_heading", [
2759
+ 'type' => Controls_Manager::HEADING,
2760
+ 'label' => __( 'Colors & Border', EAEL_TEXTDOMAIN ),
2761
+ 'separator' => 'before',
2762
+ ] );
2763
+
2764
+ $this->start_controls_tabs( "tabs_{$form_type}_link_style" );
2765
+ /*----- Link NORMAL state------ */
2766
+ $this->start_controls_tab( "tab_{$form_type}_link_normal", [
2767
+ 'label' => __( 'Normal', EAEL_TEXTDOMAIN ),
2768
+ ] );
2769
+ $this->add_control( "{$form_type}_link_color", [
2770
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
2771
+ 'type' => Controls_Manager::COLOR,
2772
+ 'selectors' => [
2773
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => 'color: {{VALUE}};',
2774
+ ],
2775
+ ] );
2776
+ $this->add_group_control( Group_Control_Background::get_type(), [
2777
+ 'name' => "{$form_type}_link_bg_color",
2778
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2779
+ 'types' => [
2780
+ 'classic',
2781
+ 'gradient',
2782
+ ],
2783
+ 'selector' => "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link",
2784
+ ] );
2785
+ $this->add_group_control( Group_Control_Border::get_type(), [
2786
+ 'name' => "{$form_type}_link_border",
2787
+ 'selector' => "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link",
2788
+ ] );
2789
+ $this->add_control( "{$form_type}_link_border_radius", [
2790
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2791
+ 'type' => Controls_Manager::DIMENSIONS,
2792
+ 'size_units' => [
2793
+ 'px',
2794
+ '%',
2795
+ ],
2796
+ 'selectors' => [
2797
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => $this->apply_dim( 'border-radius' ),
2798
+ ],
2799
+ ] );
2800
+ $this->end_controls_tab();
2801
+
2802
+ /*-----Link HOVER state------ */
2803
+ $this->start_controls_tab( "tab_{$form_type}_link_hover", [
2804
+ 'label' => __( 'Hover', EAEL_TEXTDOMAIN ),
2805
+ ] );
2806
+ $this->add_control( "{$form_type}_link_color_hover", [
2807
+ 'label' => __( 'Text Color', EAEL_TEXTDOMAIN ),
2808
+ 'type' => Controls_Manager::COLOR,
2809
+ 'selectors' => [
2810
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link:hover" => 'color: {{VALUE}};',
2811
+ ],
2812
+ ] );
2813
+ $this->add_group_control( Group_Control_Background::get_type(), [
2814
+ 'name' => "{$form_type}_link_bg_color_hover",
2815
+ 'label' => __( 'Background Color', EAEL_TEXTDOMAIN ),
2816
+ 'types' => [
2817
+ 'classic',
2818
+ 'gradient',
2819
+ ],
2820
+ 'selector' => "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link:hover",
2821
+ ] );
2822
+ $this->add_group_control( Group_Control_Border::get_type(), [
2823
+ 'name' => "{$form_type}_link_border_hover",
2824
+ 'selector' => "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link:hover",
2825
+ ] );
2826
+ $this->add_control( "{$form_type}_link_border_radius_hover", [
2827
+ 'label' => __( 'Border Radius', EAEL_TEXTDOMAIN ),
2828
+ 'type' => Controls_Manager::DIMENSIONS,
2829
+ 'size_units' => [
2830
+ 'px',
2831
+ '%',
2832
+ ],
2833
+ 'selectors' => [
2834
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link:hover" => $this->apply_dim( 'border-radius' ),
2835
+ ],
2836
+ ] );
2837
+ $this->end_controls_tab();
2838
+ $this->end_controls_tabs();
2839
+ /*-----ends Link tabs--------*/
2840
+ $this->add_responsive_control( "{$form_type}_link_wrap_width", [
2841
+ 'label' => esc_html__( 'Link Container width', EAEL_TEXTDOMAIN ),
2842
+ 'type' => Controls_Manager::SLIDER,
2843
+ 'size_units' => [
2844
+ 'px',
2845
+ '%',
2846
+ ],
2847
+ 'range' => [
2848
+ 'px' => [
2849
+ 'min' => 0,
2850
+ 'max' => 500,
2851
+ 'step' => 5,
2852
+ ],
2853
+ '%' => [
2854
+ 'min' => 0,
2855
+ 'max' => 100,
2856
+ ],
2857
+ ],
2858
+ 'selectors' => [
2859
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-sign-wrapper" => 'width: {{SIZE}}{{UNIT}};',
2860
+ ],
2861
+ 'separator' => 'before',
2862
+ ] );
2863
+ $this->add_responsive_control( "{$form_type}_link_width", [
2864
+ 'label' => esc_html__( 'Link width', EAEL_TEXTDOMAIN ),
2865
+ 'type' => Controls_Manager::SLIDER,
2866
+ 'size_units' => [
2867
+ 'px',
2868
+ '%',
2869
+ ],
2870
+ 'range' => [
2871
+ 'px' => [
2872
+ 'min' => 0,
2873
+ 'max' => 500,
2874
+ 'step' => 5,
2875
+ ],
2876
+ '%' => [
2877
+ 'min' => 0,
2878
+ 'max' => 100,
2879
+ ],
2880
+ ],
2881
+ 'selectors' => [
2882
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => 'width: {{SIZE}}{{UNIT}};',
2883
+ ],
2884
+ ] );
2885
+
2886
+ $this->add_responsive_control( "{$form_type}_link_height", [
2887
+ 'label' => esc_html__( 'Link Height', EAEL_TEXTDOMAIN ),
2888
+ 'type' => Controls_Manager::SLIDER,
2889
+ 'size_units' => [
2890
+ 'px',
2891
+ '%',
2892
+ ],
2893
+ 'range' => [
2894
+ 'px' => [
2895
+ 'min' => 0,
2896
+ 'max' => 500,
2897
+ 'step' => 5,
2898
+ ],
2899
+ '%' => [
2900
+ 'min' => 0,
2901
+ 'max' => 100,
2902
+ ],
2903
+ ],
2904
+ 'selectors' => [
2905
+ "{{WRAPPER}} .eael-{$form_type}-form .eael-lr-link" => 'height: {{SIZE}}{{UNIT}};',
2906
+ ],
2907
+ ] );
2908
+
2909
+ $this->end_controls_section();
2910
+ }
2911
+
2912
+ /**
2913
+ * Get conditions for displaying login form and registration
2914
+ *
2915
+ * @param string $type
2916
+ *
2917
+ * @return array
2918
+ */
2919
+ protected function get_form_controls_display_condition( $type = 'login' ) {
2920
+ $form_type = in_array( $type, [
2921
+ 'login',
2922
+ 'register',
2923
+ ] ) ? $type : 'login';
2924
+
2925
+ return [
2926
+ 'relation' => 'or',
2927
+ 'terms' => [
2928
+ [
2929
+ 'name' => "show_{$form_type}_link",
2930
+ 'value' => 'yes',
2931
+ ],
2932
+ [
2933
+ 'name' => 'default_form_type',
2934
+ 'value' => $form_type,
2935
+ ],
2936
+ ],
2937
+ ];
2938
+ }
2939
+
2940
+
2941
+ protected function render() {
2942
+ //Note. forms are handled in Login_Registration Trait used in the Bootstrap class.
2943
+ if ( ! $this->in_editor && 'yes' === $this->get_settings_for_display( 'hide_for_logged_in_user' ) && is_user_logged_in() ) {
2944
+ return; // do not show any form for already logged in user. but let edit on editor
2945
+ }
2946
+
2947
+ $this->ds = $this->get_settings_for_display();
2948
+ $this->default_form = $this->get_settings_for_display( 'default_form_type' );
2949
+ $this->should_print_login_form = ( 'login' === $this->default_form || 'yes' === $this->get_settings_for_display( 'show_login_link' ) );
2950
+
2951
+ $this->should_print_register_form = ( $this->user_can_register && ( 'register' === $this->get_settings_for_display( 'default_form_type' ) || 'yes' === $this->get_settings_for_display( 'show_register_link' ) ) );
2952
+ if ( Plugin::$instance->documents->get_current() ) {
2953
+ $this->page_id = Plugin::$instance->documents->get_current()->get_main_id();
2954
+ }
2955
+
2956
+
2957
+ //handle form illustration
2958
+ $form_image_id = ! empty( $this->ds['lr_form_image']['id'] ) ? $this->ds['lr_form_image']['id'] : '';
2959
+ $this->form_illustration_pos = ! empty( $this->ds['lr_form_image_position'] ) ? $this->ds['lr_form_image_position'] : 'left';
2960
+ $this->form_illustration_url = Group_Control_Image_Size::get_attachment_image_src( $form_image_id, 'lr_form_image', $this->ds );
2961
+
2962
+ $form_logo_id = ! empty( $this->ds['lr_form_logo']['id'] ) ? $this->ds['lr_form_logo']['id'] : '';
2963
+ $this->form_logo = Group_Control_Image_Size::get_attachment_image_src( $form_logo_id, 'lr_form_logo', $this->ds );
2964
+ $this->form_logo_pos = ! empty( $this->ds['lr_form_logo_position'] ) ? $this->ds['lr_form_logo_position'] : 'inline';
2965
+ ?>
2966
+ <div class="eael-login-registration-wrapper" data-is-ajax="<?php echo esc_attr($this->get_settings_for_display('enable_ajax')); ?>" >
2967
+ <?php
2968
+ $this->print_login_form();
2969
+ $this->print_register_form();
2970
+ ?>
2971
+ </div>
2972
+ <?php
2973
+ }
2974
+
2975
+ protected function print_login_form() {
2976
+ if ( $this->should_print_login_form ) {
2977
+ // prepare all login form related vars
2978
+ $default_hide_class = 'register' === $this->default_form ? 'd-none' : '';
2979
+ //Reg link related
2980
+ $reg_link_action = ! empty( $this->ds['registration_link_action'] ) ? $this->ds['registration_link_action'] : 'form';
2981
+ $show_reg_link = ( $this->user_can_register && 'yes' === $this->get_settings( 'show_register_link' ) );
2982
+ $reg_link_text = ! empty( $this->get_settings( 'registration_link_text' ) ) ? $this->get_settings( 'registration_link_text' ) : __( 'Register', EAEL_TEXTDOMAIN );
2983
+ $parts = explode( "\n", $reg_link_text );
2984
+ $reg_link_text = array_pop( $parts );
2985
+ $reg_message = array_shift( $parts );
2986
+
2987
+ $reg_link_placeholder = '<span class="d-ib">%1$s</span> <a href="%2$s" id="eael-lr-reg-toggle" class="eael-lr-link" data-action="%3$s" %5$s>%4$s</a>';
2988
+ $reg_atts = $reg_url = '';
2989
+ switch ( $reg_link_action ) {
2990
+ case 'custom':
2991
+ $reg_url = ! empty( $this->ds['custom_register_url']['url'] ) ? $this->ds['custom_register_url']['url'] : '';
2992
+ $reg_atts = ! empty( $this->ds['custom_register_url']['is_external'] ) ? ' target="_blank"' : '';
2993
+ $reg_atts .= ! empty( $this->ds['custom_register_url']['nofollow'] ) ? ' rel="nofollow"' : '';
2994
+ break;
2995
+ case 'default':
2996
+ $reg_url = wp_registration_url();
2997
+ break;
2998
+ }
2999
+
3000
+ $reg_link = sprintf( $reg_link_placeholder, $reg_message, esc_attr( $reg_url ), esc_attr( $reg_link_action ), $reg_link_text, $reg_atts );
3001
+
3002
+
3003
+ // login form fields related
3004
+ $label_type = ! empty( $this->ds['login_label_types'] ) ? $this->ds['login_label_types'] : 'default';
3005
+ $is_custom_label = ( 'custom' === $label_type );
3006
+ $display_label = ( 'none' !== $label_type );
3007
+
3008
+ //Default label n placeholder
3009
+ $u_label = $u_ph = __( 'Username or Email Address', EAEL_TEXTDOMAIN );
3010
+ $p_label = $p_ph = __( 'Password', EAEL_TEXTDOMAIN );
3011
+ // custom label n placeholder
3012
+ if ( $is_custom_label ) {
3013
+ $u_label = isset( $this->ds['login_user_label'] ) ? $this->ds['login_user_label'] : '';
3014
+ $p_label = isset( $this->ds['login_password_label'] ) ? $this->ds['login_password_label'] : '';
3015
+ $u_ph = isset( $this->ds['login_user_placeholder'] ) ? $this->ds['login_user_placeholder'] : '';
3016
+ $p_ph = isset( $this->ds['login_password_placeholder'] ) ? $this->ds['login_password_placeholder'] : '';
3017
+ }
3018
+
3019
+
3020
+ $btn_text = ! empty( $this->ds['login_button_text'] ) ? $this->ds['login_button_text'] : '';
3021
+ $show_logout_link = ( ! empty( $this->ds['show_log_out_message'] ) && 'yes' === $this->ds['show_log_out_message'] );
3022
+ $show_rememberme = ( ! empty( $this->ds['login_show_remember_me'] ) && 'yes' === $this->ds['login_show_remember_me'] );
3023
+ $show_pv_icon = ( ! empty( $this->ds['password_toggle'] ) && 'yes' === $this->ds['password_toggle'] );
3024
+
3025
+ //Loss password
3026
+ $show_lp = ( ! empty( $this->ds['show_lost_password'] ) && 'yes' === $this->ds['show_lost_password'] );
3027
+ $lp_text = ! empty( $this->ds['lost_password_text'] ) ? $this->ds['lost_password_text'] : __( 'Forgot password?', EAEL_TEXTDOMAIN );
3028
+ $lp_link = sprintf( '<a href="%s">%s</a>', esc_attr( wp_lostpassword_url() ), $lp_text );
3029
+ if ( ! empty( $this->ds['lost_password_link_type'] ) && 'custom' === $this->ds['lost_password_link_type'] ) {
3030
+ $lp_url = ! empty( $this->ds['lost_password_url']['url'] ) ? $this->ds['lost_password_url']['url'] : wp_lostpassword_url();
3031
+ $lp_atts = ! empty( $this->ds['lost_password_url']['is_external'] ) ? ' target="_blank"' : '';
3032
+ $lp_atts .= ! empty( $this->ds['lost_password_url']['nofollow'] ) ? ' rel="nofollow"' : '';
3033
+ $lp_link = sprintf( '<a href="%s" %s >%s</a>', esc_attr( $lp_url ), $lp_atts, $lp_text );
3034
+ }
3035
+
3036
+ // btn alignment
3037
+ $btn_align = isset( $this->ds['login_btn_align'] ) ? $this->ds['login_btn_align'] : '';
3038
+ // btn alignment
3039
+ $link_align = isset( $this->ds['login_link_align'] ) ? $this->ds['login_link_align'] : '';
3040
+ ?>
3041
+ <section id="eael-login-form-wrapper" class="<?php echo esc_attr( $default_hide_class ); ?>">
3042
+ <div class="eael-login-form-wrapper eael-lr-form-wrapper style-2">
3043
+ <?php
3044
+ if ( $show_logout_link && is_user_logged_in() && ! $this->in_editor ) {
3045
+ /* translators: %s user display name */
3046
+ $logged_in_msg = sprintf( __( 'You are already logged in as %s. ', EAEL_TEXTDOMAIN ), wp_get_current_user()->display_name );
3047
+ printf( '%1$s (<a href="%2$s">%3$s</a>)', $logged_in_msg, esc_url( wp_logout_url() ), __( 'Logout', EAEL_TEXTDOMAIN ) );
3048
+ } else {
3049
+ if ( 'left' === $this->form_illustration_pos ) {
3050
+ $this->print_form_illustration();
3051
+ }
3052
+ ?>
3053
+ <div class="lr-form-wrapper">
3054
+ <?php $this->print_form_header( 'login' ); ?>
3055
+ <?php do_action( 'eael/login-register/before-login-form', $this ); ?>
3056
+ <form class="eael-login-form eael-lr-form" id="eael-login-form" method="post">
3057
+ <?php do_action( 'eael/login-register/after-login-form-open', $this ); ?>
3058
+ <div class="eael-lr-form-group">
3059
+ <?php if ( $display_label && $u_label ) {
3060
+ printf( '<label for="eael-user-login" class="eael-field-label">%s</label>', $u_label );
3061
+ } ?>
3062
+ <input type="text" name="eael-user-login" id="eael-user-login" class="eael-lr-form-control"
3063
+ aria-describedby="emailHelp" placeholder="<?php if ( $display_label && $u_ph ) {
3064
+ echo esc_attr( $u_ph );
3065
+ } ?>" required>
3066
+ </div>
3067
+ <div class="eael-lr-form-group">
3068
+ <?php if ( $display_label && $p_label ) {
3069
+ printf( '<label for="eael-user-password" class="eael-field-label">%s</label>', $p_label );
3070
+ } ?>
3071
+ <div class="eael-lr-password-wrapper">
3072
+ <input type="password" name="eael-user-password" class="eael-lr-form-control" id="eael-user-password"
3073
+ placeholder="<?php if ( $display_label && $p_ph ) {
3074
+ echo esc_attr( $p_ph );
3075
+ } ?>" required>
3076
+ <?php if ( $show_pv_icon ) { ?>
3077
+ <button type="button" id="wp-hide-pw" class="wp-hide-pw hide-if-no-js" aria-label="Show password">
3078
+ <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
3079
+ </button>
3080
+ <?php } ?>
3081
+ </div>
3082
+ </div>
3083
+ <div class="eael-forever-forget eael-lr-form-group">
3084
+ <?php if ( $show_rememberme ) { ?>
3085
+ <p class="forget-menot">
3086
+ <input name="eael-rememberme" type="checkbox" id="rememberme" value="forever">
3087
+ <label for="rememberme" class="eael-checkbox-label check-rememberme"><?php esc_html_e( 'Remember Me', EAEL_TEXTDOMAIN ); ?></label>
3088
+ </p>
3089
+ <?php }
3090
+ if ( $show_lp ) {
3091
+ echo '<p class="forget-pass">' . $lp_link . '</p>';//XSS ok. already escaped
3092
+ } ?>
3093
+
3094
+ </div>
3095
+ <div class="eael-lr-footer">
3096
+ <input type="submit" name="eael-login-submit" id="eael-login-submit" class="eael-lr-btn eael-lr-btn-block <?php echo esc_attr( $btn_align ); ?>" value="<?php echo esc_attr( $btn_text ); ?>"/>
3097
+ <?php if ( $show_reg_link ) { ?>
3098
+ <div class="eael-sign-wrapper <?php echo esc_attr( $link_align ); ?>">
3099
+ <?php echo $reg_link; // XSS ok. already escaped ?>
3100
+ </div>
3101
+ <?php } ?>
3102
+
3103
+ </div>
3104
+ <div class="eael-form-validation-container">
3105
+ <?php $this->print_login_validation_errors(); ?>
3106
+ </div>
3107
+ <?php
3108
+ $this->print_necessary_hidden_fields( 'login' );
3109
+
3110
+ $this->print_login_validation_errors();
3111
+
3112
+ do_action( 'eael/login-register/before-login-form-close', $this );
3113
+ ?>
3114
+ </form>
3115
+ <?php do_action( 'eael/login-register/after-login-form', $this ); ?>
3116
+ </div>
3117
+ <?php
3118
+ if ( 'right' === $this->form_illustration_pos ) {
3119
+ $this->print_form_illustration();
3120
+ }
3121
+ }
3122
+ ?>
3123
+ </div>
3124
+ </section>
3125
+ <?php
3126
+ }
3127
+ }
3128
+
3129
+ protected function print_register_form() {
3130
+ if ( $this->should_print_register_form ) {
3131
+ $default_hide_class = 'login' === $this->default_form ? 'd-none' : '';
3132
+ $is_pass_valid = false; // Does the form has a password field?
3133
+ $is_pass_confirmed = false;
3134
+ // placeholders to flag if user use one type of field more than once.
3135
+ $email_exists = 0;
3136
+ $user_name_exists = 0;
3137
+ $password_exists = 0;
3138
+ $confirm_pass_exists = 0;
3139
+ $first_name_exists = 0;
3140
+ $last_name_exists = 0;
3141
+ $website_exists = 0;
3142
+ $f_labels = [
3143
+ 'email' => __( 'Email', EAEL_TEXTDOMAIN ),
3144
+ 'password' => __( 'Password', EAEL_TEXTDOMAIN ),
3145
+ 'confirm_password' => __( 'Confirm Password', EAEL_TEXTDOMAIN ),
3146
+ 'user_name' => __( 'Username', EAEL_TEXTDOMAIN ),
3147
+ 'first_name' => __( 'First Name', EAEL_TEXTDOMAIN ),
3148
+ 'last_name' => __( 'Last Name', EAEL_TEXTDOMAIN ),
3149
+ 'website' => __( 'Website', EAEL_TEXTDOMAIN ),
3150
+ ];
3151
+ $repeated_f_labels = [];
3152
+
3153
+
3154
+ //Login link related
3155
+ $lgn_link_action = ! empty( $this->ds['login_link_action'] ) ? $this->ds['login_link_action'] : 'form';
3156
+ $show_lgn_link = 'yes' === $this->get_settings( 'show_login_link' );
3157
+ $lgn_link_text = ! empty( $this->get_settings( 'login_link_text' ) ) ? $this->get_settings( 'login_link_text' ) : __( 'Login', EAEL_TEXTDOMAIN );
3158
+ $btn_text = ! empty( $this->ds['reg_button_text'] ) ? $this->ds['reg_button_text'] : '';
3159
+
3160
+ $parts = explode( "\n", $lgn_link_text );
3161
+ $lgn_link_text = array_pop( $parts );
3162
+ $lgn_message = array_shift( $parts );
3163
+ $lgn_link_placeholder = '<span class="d-ib">%1$s</span> <a href="%2$s" id="eael-lr-login-toggle" class="eael-lr-link" data-action="%3$s" %5$s>%4$s</a>';
3164
+ $lgn_url = $lgn_atts = '';
3165
+
3166
+ switch ( $lgn_link_action ) {
3167
+ case 'custom':
3168
+ $lgn_url = ! empty( $this->ds['custom_login_url']['url'] ) ? $this->ds['custom_login_url']['url'] : '';
3169
+ $lgn_atts = ! empty( $this->ds['custom_login_url']['is_external'] ) ? ' target="_blank"' : '';
3170
+ $lgn_atts .= ! empty( $this->ds['custom_login_url']['nofollow'] ) ? ' rel="nofollow"' : '';
3171
+ break;
3172
+ case 'default':
3173
+ $lgn_url = wp_login_url();
3174
+ break;
3175
+ }
3176
+ $lgn_link = sprintf( $lgn_link_placeholder, $lgn_message, esc_attr( $lgn_url ), esc_attr( $lgn_link_action ), $lgn_link_text, $lgn_atts );
3177
+
3178
+ // btn alignment
3179
+ $btn_align = isset( $this->ds['register_btn_align'] ) ? $this->ds['register_btn_align'] : '';
3180
+ $link_align = isset( $this->ds['register_link_align'] ) ? $this->ds['register_link_align'] : '';
3181
+ ob_start();
3182
+ ?>
3183
+ <section id="eael-register-form-wrapper" class="<?php echo esc_attr( $default_hide_class ); ?>">
3184
+ <div class="eael-register-form-wrapper eael-lr-form-wrapper style-2">
3185
+ <?php if ( 'left' === $this->form_illustration_pos ) {
3186
+ $this->print_form_illustration();
3187
+ } ?>
3188
+ <div class="lr-form-wrapper">
3189
+ <?php
3190
+ $this->print_form_header( 'register' );
3191
+ do_action( 'eael/login-register/before-register-form', $this );
3192
+ ?>
3193
+ <form class="eael-register-form eael-lr-form" id="eael-register-form" method="post">
3194
+ <?php do_action( 'eael/login-register/after-register-form-open', $this); ?>
3195
+ <?php // Print all dynamic fields
3196
+ foreach ( $this->ds['register_fields'] as $f_index => $field ) :
3197
+ $field_type = $field['field_type'];
3198
+ $dynamic_field_name = "{$field_type}_exists";
3199
+ $$dynamic_field_name ++; //NOTE, double $$ intentional. Dynamically update the var check eg. $username_exists++ to prevent user from using the same field twice
3200
+ // is same field repeated?
3201
+ if ( $$dynamic_field_name > 1 ) {
3202
+ $repeated_f_labels[] = $f_labels[ $field_type ];
3203
+ }
3204
+ if ( 'password' === $field_type ) {
3205
+ $is_pass_valid = true;
3206
+ }
3207
+
3208
+ $current_field_required = ( ! empty( $field['required'] ) || in_array( $field_type, [
3209
+ 'password',
3210
+ 'confirm_pass',
3211
+ 'email',
3212
+ ] ) );
3213
+
3214
+ //keys for attribute binding
3215
+ $input_key = "input{$f_index}";
3216
+ $label_key = "label{$f_index}";
3217
+ $field_group_key = "field-group{$f_index}";
3218
+
3219
+ // determine proper input tag type
3220
+ switch ( $field_type ) {
3221
+ case 'user_name':
3222
+ case 'first_name':
3223
+ case 'last_name':
3224
+ $field_input_type = 'text';
3225
+ break;
3226
+ case 'confirm_pass':
3227
+ $field_input_type = 'password';
3228
+ break;
3229
+ case 'website':
3230
+ $field_input_type = 'url';
3231
+ break;
3232
+ default:
3233
+ $field_input_type = $field_type;
3234
+ }
3235
+
3236
+ $this->add_render_attribute( [
3237
+ $input_key => [
3238
+ 'name' => $field_type,
3239
+ 'type' => $field_input_type,
3240
+ 'placeholder' => $field['placeholder'],
3241
+ 'class' => [
3242
+ 'eael-lr-form-control',
3243
+ 'form-field-' . $field_type,
3244
+ ],
3245
+ 'id' => 'form-field-' . $field_type,
3246
+ ],
3247
+ $label_key => [
3248
+ 'for' => 'form-field-' . $field_type,
3249
+ 'class' => 'eael-field-label',
3250
+ ],
3251
+ ] );
3252
+
3253
+ // print require field attributes
3254
+ if ( $current_field_required ) {
3255
+ $this->add_render_attribute( $input_key, [
3256
+ 'required' => 'required',
3257
+ 'aria-required' => 'true',
3258
+ ] );
3259
+ if ( 'yes' === $this->ds['mark_required'] ) {
3260
+ $this->add_render_attribute( $label_key, [
3261
+ 'class' => 'mark-required',
3262
+ ] );
3263
+ }
3264
+
3265
+ }
3266
+
3267
+
3268
+ // add css classes to the main input field wrapper.
3269
+ $this->add_render_attribute( [
3270
+ $field_group_key => [
3271
+ 'class' => [
3272
+ 'eael-lr-form-group',
3273
+ 'eael-field-type-' . $field_type,
3274
+ 'eael-w-' . $field['width'],
3275
+ ],
3276
+ ],
3277
+ ] );
3278
+
3279
+ if ( ! empty( $field['width_tablet'] ) ) {
3280
+ $this->add_render_attribute( $field_group_key, 'class', 'elementor-md-' . $field['width_tablet'] );
3281
+ }
3282
+
3283
+ if ( ! empty( $field['width_mobile'] ) ) {
3284
+ $this->add_render_attribute( $field_group_key, 'class', 'elementor-sm-' . $field['width_mobile'] );
3285
+ }
3286
+
3287
+ ?>
3288
+ <div <?php $this->print_render_attribute_string( $field_group_key ) ?>>
3289
+ <?php
3290
+ if ( 'yes' === $this->ds['show_labels'] && ! empty( $field['field_label'] ) ) {
3291
+ echo '<label ' . $this->get_render_attribute_string( $label_key ) . '>' . esc_attr( $field['field_label'] ) . '</label>';
3292
+ }
3293
+ echo '<input ' . $this->get_render_attribute_string( $input_key ) . '>';
3294
+ ?>
3295
+ </div>
3296
+ <?php
3297
+ endforeach;
3298
+ $this->print_necessary_hidden_fields( 'register' );
3299
+ $this->print_terms_condition_notice();
3300
+ ?>
3301
+ <div class="eael-lr-footer">
3302
+ <input type="submit" name="eael-register-submit" id="eael-register-submit" class="eael-lr-btn eael-lr-btn-block<?php echo esc_attr( $btn_align ); ?>" value="<?php echo esc_attr( $btn_text ); ?>"/>
3303
+ <?php if ( $show_lgn_link ) { ?>
3304
+ <div class="eael-sign-wrapper <?php echo esc_attr( $link_align ); ?>">
3305
+ <?php echo $lgn_link; ?>
3306
+ </div>
3307
+ <?php } ?>
3308
+ </div>
3309
+
3310
+ <div class="eael-form-validation-container">
3311
+ <?php $this->print_validation_message(); ?>
3312
+ </div>
3313
+ <?php
3314
+
3315
+ do_action( 'eael/login-register/before-register-form-close', $this);
3316
+ ?>
3317
+ </form>
3318
+ <?php do_action( 'eael/login-register/after-register-form', $this); ?>
3319
+ </div>
3320
+ <?php if ( 'right' === $this->form_illustration_pos ) {
3321
+ $this->print_form_illustration();
3322
+ } ?>
3323
+ </div>
3324
+ </section>
3325
+ <?php
3326
+ $form_markup = apply_filters('eael/login-register/register-form-markup', ob_get_clean());
3327
+ // if we are in the editor then show error related to different input field.
3328
+ if ( $this->in_editor ) {
3329
+ $repeated = $this->print_error_for_repeated_fields( $repeated_f_labels );
3330
+ $email_field_missing = $this->print_error_for_missing_email_field( $email_exists );
3331
+ $pass_missing = $this->print_error_for_missing_password_field( $password_exists, $confirm_pass_exists );
3332
+ if ( $repeated || $email_field_missing || $pass_missing ) {
3333
+ return false; // error found, exit, dont show form.
3334
+ }
3335
+ echo $form_markup; //XSS OK, data sanitized already.
3336
+ } else {
3337
+ echo $form_markup; //XSS OK, data sanitized already.
3338
+ }
3339
+ }
3340
+ }
3341
+
3342
+ protected function print_form_illustration() {
3343
+ if ( ! empty( $this->form_illustration_url ) ) { ?>
3344
+ <div class="lr-form-illustration lr-img-pos-<?php echo esc_attr( $this->form_illustration_pos ); ?>" style="background-image: url('<?php echo esc_attr( esc_url( $this->form_illustration_url ) ); ?>');"></div>
3345
+ <?php }
3346
+ }
3347
+
3348
+ /**
3349
+ * @param string $form_type the type of form. Available values: login and register
3350
+ */
3351
+ protected function print_form_header( $form_type = 'login' ) {
3352
+ $title = ! empty( $this->ds["{$form_type}_form_title"] ) ? esc_html( $this->ds["{$form_type}_form_title"] ) : '';
3353
+ $subtitle = ! empty( $this->ds["{$form_type}_form_subtitle"] ) ? esc_html( $this->ds["{$form_type}_form_subtitle"] ) : '';
3354
+ if ( empty( $this->form_logo ) && empty( $title ) && empty( $subtitle ) ) {
3355
+ return;
3356
+ }
3357
+
3358
+ ?>
3359
+ <div class="lr-form-header header-<?php echo esc_attr( $this->form_logo_pos ); ?>">
3360
+ <?php if ( ! empty( $this->form_logo ) ) { ?>
3361
+ <div class="form-logo">
3362
+ <img src="<?php echo esc_attr( esc_url( $this->form_logo ) ); ?>" alt="<?php esc_attr_e( 'Form Logo Image', EAEL_TEXTDOMAIN ); ?>">
3363
+ </div>
3364
+ <?php } ?>
3365
+
3366
+ <?php if ( ! empty( $title ) || ! empty( $subtitle ) ) { ?>
3367
+ <div class="form-dsc">
3368
+ <?php
3369
+ if ( ! empty( $title ) ) {
3370
+ echo "<h4>{$title}</h4>"; // data escaped already.
3371
+ }
3372
+
3373
+ if ( ! empty( $subtitle ) ) {
3374
+ echo "<p>{$subtitle}</p>"; // data escaped already.
3375
+ } ?>
3376
+ </div>
3377
+ <?php } ?>
3378
+ </div>
3379
+ <?php
3380
+ }
3381
+
3382
+ protected function print_necessary_hidden_fields( $form_type = 'login' ) {
3383
+ if ( 'login' === $form_type ) {
3384
+ if ( ! empty( $this->ds['redirect_after_login'] ) && 'yes' === $this->ds['redirect_after_login'] ) {
3385
+ $login_redirect_url = ! empty( $this->ds['redirect_url']['url'] ) ? esc_url( $this->ds['redirect_url']['url'] ) : '';
3386
+ ?>
3387
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $login_redirect_url ); ?>">
3388
+ <?php }
3389
+ }
3390
+ // add login security nonce
3391
+ wp_nonce_field( "eael-{$form_type}-action", "eael-{$form_type}-nonce" );
3392
+ ?>
3393
+ <input type="hidden" name="page_id" value="<?php echo esc_attr( $this->page_id ); ?>">
3394
+ <input type="hidden" name="widget_id" value="<?php echo esc_attr( $this->get_id() ); ?>">
3395
+ <?php
3396
+ }
3397
+
3398
+ protected function print_terms_condition_notice() {
3399
+ if ( empty( $this->ds['show_terms_conditions'] ) || 'yes' !== $this->ds['show_terms_conditions'] ) {
3400
+ return;
3401
+ }
3402
+ $l = isset( $this->ds['acceptance_label'] ) ? $this->ds['acceptance_label'] : '';
3403
+ $parts = explode( "\n", $l );
3404
+ $label = array_shift( $parts );
3405
+ $link_text = array_pop( $parts );
3406
+ $source = isset( $this->ds['acceptance_text_source'] ) ? $this->ds['acceptance_text_source'] : 'editor';
3407
+ $tc_text = isset( $this->ds['acceptance_text'] ) ? $this->ds['acceptance_text'] : '';
3408
+ $tc_link = '<a href="#" id="eael-lr-tnc-link" class="eael-lr-tnc-link">' . esc_html( $link_text ) . '</a>';
3409
+ if ( 'custom' === $source ) {
3410
+ $tc_url = ! empty( $this->ds['acceptance_text_url']['url'] ) ? esc_url( $this->ds['acceptance_text_url']['url'] ) : esc_url( get_the_permalink( get_option( 'wp_page_for_privacy_policy' ) ) );
3411
+ $tc_atts = ! empty( $this->ds['acceptance_text_url']['is_external'] ) ? ' target="_blank"' : '';
3412
+ $tc_atts .= ! empty( $this->ds['acceptance_text_url']['nofollow'] ) ? ' rel="nofollow"' : '';
3413
+ $tc_link = sprintf( '<a href="%1$s" id="eael-lr-tnc-link" class="eael-lr-tnc-link" %2$s>%3$s</a>', esc_attr( $tc_url ), $tc_atts, $link_text );
3414
+ }
3415
+
3416
+ ?>
3417
+ <div class="eael_accept_tnc_wrap">
3418
+ <input type="hidden" name="eael_tnc_active" value="1">
3419
+ <input type="checkbox" name="eael_accept_tnc" value="1" id="eael_accept_tnc">
3420
+ <label for="eael_accept_tnc" class="eael-checkbox-label check-accept">
3421
+ <?php
3422
+ echo esc_html( $label );
3423
+ ?>
3424
+ </label>
3425
+ <?php
3426
+ echo $tc_link; // XSS ok. already sanitized.
3427
+ ?>
3428
+ </div>
3429
+
3430
+ <?php
3431
+ $tc = '<div class="eael-lr-tnc-wrap">';
3432
+ $tc .= $this->parse_text_editor( $tc_text );
3433
+ $tc .= '</div>';
3434
+ echo $tc;
3435
+
3436
+
3437
+ }
3438
+
3439
+ protected function print_login_validation_errors() {
3440
+ $error_key = 'eael_login_error_' . $this->get_id();
3441
+ if ( $login_error = apply_filters( 'eael/login-register/login-error-message', get_transient( $error_key ) ) ) {
3442
+ do_action( 'eael/login-register/before-showing-login-error', $login_error, $this );
3443
+ ?>
3444
+ <p class="eael-form-msg invalid">
3445
+ <?php echo esc_html( $login_error ); ?>
3446
+ </p>
3447
+ <?php
3448
+ do_action( 'eael/login-register/after-showing-login-error', $login_error, $this );
3449
+
3450
+ delete_transient( $error_key );
3451
+ }
3452
+ }
3453
+
3454
+ protected function print_error_for_repeated_fields( $repeated_fields ) {
3455
+ if ( ! empty( $repeated_fields ) ) {
3456
+ $error_fields = '<strong>' . implode( "</strong>, <strong>", $repeated_fields ) . '</strong>';
3457
+ ?>
3458
+ <p class='eael-register-form-error elementor-alert elementor-alert-warning'>
3459
+ <?php
3460
+ /* translators: %s: Error fields */
3461
+ printf( __( 'Error! you seem to have added %s field in the form more than once.', EAEL_TEXTDOMAIN ), $error_fields );
3462
+ ?>
3463
+ </p>
3464
+ <?php
3465
+ return true;
3466
+ }
3467
+
3468
+ return false;
3469
+ }
3470
+
3471
+ protected function print_error_for_missing_email_field( $email_exist ) {
3472
+ if ( empty( $email_exist ) ) {
3473
+ ?>
3474
+ <p class='eael-register-form-error elementor-alert elementor-alert-warning'>
3475
+ <?php
3476
+ /* translators: %s: Error String */
3477
+ printf( __( 'Error! It is required to use %s field.', EAEL_TEXTDOMAIN ), '<strong>Email</strong>' );
3478
+ ?>
3479
+ </p>
3480
+ <?php
3481
+ return true;
3482
+ }
3483
+
3484
+ return false;
3485
+ }
3486
+
3487
+ /**
3488
+ * It shows error if Confirm Password Field is used without using Password Field.
3489
+ *
3490
+ * @param $password_exist
3491
+ * @param $confirm_pass_exist
3492
+ *
3493
+ * @return bool
3494
+ */
3495
+ protected function print_error_for_missing_password_field( $password_exist, $confirm_pass_exist ) {
3496
+ if ( empty( $password_exist ) && ! empty( $confirm_pass_exist ) ) {
3497
+ ?>
3498
+ <p class='eael-register-form-error elementor-alert elementor-alert-warning'>
3499
+ <?php
3500
+ /* translators: %s: Error String */
3501
+ printf( __( 'Error! It is required to use %s field with %s Field.', EAEL_TEXTDOMAIN ), '<strong>Password</strong>', '<strong>Password Confirmation</strong>' );
3502
+ ?>
3503
+ </p>
3504
+ <?php
3505
+ return true;
3506
+ }
3507
+
3508
+ return false;
3509
+ }
3510
+
3511
+ protected function print_validation_message() {
3512
+ $errors = get_transient( 'eael_register_errors_' . $this->get_id() );
3513
+ $success = get_transient( 'eael_register_success_' . $this->get_id() );
3514
+ if ( empty( $errors ) && empty( $success ) ) {
3515
+ return;
3516
+ }
3517
+ if ( ! empty( $errors ) && is_array( $errors ) ) {
3518
+ $this->print_registration_errors_message( $errors );
3519
+ } else {
3520
+ $this->print_registration_success_message( $success );
3521
+ }
3522
+ }
3523
+
3524
+ protected function print_registration_errors_message( $errors ) {
3525
+ ?>
3526
+ <div class="eael-form-msg invalid">
3527
+ <?php
3528
+ if ( ! empty( $this->ds['register_error_msg'] ) ) {
3529
+ printf( '<p>%s</p>', esc_html( $this->ds['register_error_msg'] ) );
3530
+ }
3531
+ ?>
3532
+ <ol>
3533
+ <?php
3534
+ foreach ( $errors as $register_error ) {
3535
+ printf( '<li>%s</li>', esc_html( $register_error ) );
3536
+ }
3537
+ ?>
3538
+ </ol>
3539
+ </div>
3540
+ <?php
3541
+ delete_transient( 'eael_register_errors_' . $this->get_id() );
3542
+ }
3543
+
3544
+ protected function print_registration_success_message( $success ) {
3545
+
3546
+ if ( $success ) {
3547
+ $message = '<p class="eael-form-msg valid">' . esc_html( $this->get_settings_for_display( 'register_success_msg' ) ) . '</p>';
3548
+ echo apply_filters( 'eael/login-register/registration-success-msg', $message, $success );
3549
+
3550
+ delete_transient( 'eael_register_success_' . $this->get_id() );
3551
+
3552
+ return true; // it will help in case we wanna know if error is printed.
3553
+ }
3554
+
3555
+ return false;
3556
+ }
3557
+
3558
+ /**
3559
+ * It will apply value like Elementor's dimension control to a property and return it.
3560
+ *
3561
+ * @param string $css_property CSS property name
3562
+ *
3563
+ * @return string
3564
+ */
3565
+ protected function apply_dim( $css_property ) {
3566
+ return "{$css_property}: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};";
3567
+ }
3568
+
3569
+ }
includes/Elements/Woocommerce_Review.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Essential_Addons_Elementor\Elements;
3
+
4
+ // If this file is called directly, abort.
5
+ if (!defined('ABSPATH')) {
6
+ exit;
7
+ }
8
+
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Widget_Base;
11
+ class Woocommerce_Review extends Widget_Base {
12
+
13
+ public function get_name() {
14
+ return 'eael-woocommerce-review';
15
+ }
16
+
17
+ public function get_title() {
18
+ return esc_html__( 'WooCommerce Review', 'essential-addons-for-elementor-lite');
19
+ }
20
+
21
+ public function get_icon() {
22
+ return 'eaicon-reviewx';
23
+ }
24
+
25
+ public function get_categories() {
26
+ return [ 'essential-addons-elementor' ];
27
+ }
28
+
29
+ public function get_keywords() {
30
+ return [
31
+ 'reviewx',
32
+ 'woo review',
33
+ 'woo',
34
+ 'woocommerce',
35
+ 'comment',
36
+ 'review',
37
+ 'addons',
38
+ 'ea',
39
+ 'essential addons',
40
+ 'woocommerce review'
41
+ ];
42
+ }
43
+
44
+ public function get_custom_help_url() {
45
+ return 'https://reviewx.io/docs';
46
+ }
47
+
48
+ protected function _register_controls() {
49
+ $this->start_controls_section(
50
+ 'eael_global_warning',
51
+ [
52
+ 'label' => __('Warning!', 'essential-addons-for-elementor-lite'),
53
+ ]
54
+ );
55
+
56
+ $this->add_control(
57
+ 'eael_global_warning_text',
58
+ [
59
+ 'type' => Controls_Manager::RAW_HTML,
60
+ 'raw' => __('<strong>ReviewX</strong> is not installed/activated on your site. Please install and activate <a href="plugin-install.php?s=reviewx&tab=search&type=term" target="_blank">ReviewX</a> first.',
61
+ 'essential-addons-for-elementor-lite'),
62
+ 'content_classes' => 'eael-warning',
63
+ ]
64
+ );
65
+
66
+ $this->end_controls_section();
67
+ }
68
+
69
+
70
+ protected function render() {
71
+ return;
72
+ }
73
+ }
includes/Traits/Admin.php CHANGED
@@ -81,7 +81,7 @@ trait Admin
81
  <div class="templately-right">
82
  <div class="templately-admin-install">
83
  <p><?php echo __( 'Install Templately by Essential Addons to get access to the templates library and cloud.', 'essential-addons-for-elementor-lite' ); ?></p>
84
- <button class="eae-activate-templately"><?php echo $button_text; ?></button>
85
  </div>
86
  </div>
87
  </div>
@@ -306,9 +306,9 @@ include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/
306
  * classes for wrapper,
307
  * Message message for showing.
308
  */
309
- $notice->classes('upsale', 'notice is-dismissible ');
310
- $notice->message('upsale', '<p>' . __('5,000+ People using <a href="https://betterdocs.co/wordpress-plugin" target="_blank">BetterDocs</a> to create better Documentation & Knowledge Base!', 'essential-addons-for-elementor-lite') . '</p>');
311
- $notice->thumbnail('upsale', plugins_url('assets/admin/images/icon-documentation.svg', EAEL_PLUGIN_BASENAME));
312
 
313
  // Update Notice For PRO Version
314
  if ($this->pro_enabled && \version_compare(EAEL_PRO_PLUGIN_VERSION, '4.0.0', '<')) {
@@ -317,36 +317,25 @@ include_once EAEL_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'includes/templates/admin/
317
  $notice->thumbnail('update', plugins_url('assets/admin/images/icon-ea-logo.svg', EAEL_PLUGIN_BASENAME));
318
  }
319
 
320
- // if( ! $this->pro_enabled ) {
321
- // $notice->classes( 'update_400k', 'notice is-dismissible ' );
322
- // $notice->message( 'update_400k', '<p>'. __( 'Time to celebrate! EA for Elementor 400K+ happy users 🎉 Spin The Wheel & Try Your Luck <a href="https://wpdeveloper.net/ea-400k-giveaway" target="_blank">WIN PRO License</a>', 'essential-addons-for-elementor-lite' ) .'</p>' );
323
- // $notice->thumbnail( 'update_400k', plugins_url( 'assets/admin/images/icon-ea-logo.svg', EAEL_PLUGIN_BASENAME ) );
324
- // }
325
-
326
- $notice->upsale_args = array(
327
- 'slug' => 'betterdocs',
328
- 'page_slug' => 'betterdocs-setup',
329
- 'file' => 'betterdocs.php',
330
- 'btn_text' => __('Install Free', 'essential-addons-for-elementor-lite'),
331
- 'condition' => [
332
- 'by' => 'class',
333
- 'class' => 'BetterDocs',
334
- ],
335
- );
336
-
337
  $notice->options_args = array(
338
  'notice_will_show' => [
339
  'opt_in' => $notice->timestamp,
340
- 'upsale' => $notice->makeTime($notice->timestamp, '14 Day'),
341
  'review' => $notice->makeTime($notice->timestamp, '7 Day'), // after 3 days
342
  ],
343
  );
344
  if ($this->pro_enabled && \version_compare(EAEL_PRO_PLUGIN_VERSION, '4.0.0', '<')) {
345
  $notice->options_args['notice_will_show']['update'] = $notice->timestamp;
346
  }
347
- // if( ! $this->pro_enabled ) {
348
- // $notice->options_args['notice_will_show']['update_400k'] = $notice->makeTime($notice->timestamp, '1 Hour');
349
- // }
350
 
351
  $notice->init();
352
  }
81
  <div class="templately-right">
82
  <div class="templately-admin-install">
83
  <p><?php echo __( 'Install Templately by Essential Addons to get access to the templates library and cloud.', 'essential-addons-for-elementor-lite' ); ?></p>
84
+ <button class="eae-activate-templately"><?php echo $button_text; ?></button>
85
  </div>
86
  </div>
87
  </div>
306
  * classes for wrapper,
307
  * Message message for showing.
308
  */
309
+ // $notice->classes('upsale', 'notice is-dismissible ');
310
+ // $notice->message('upsale', '<p>' . __('5,000+ People using <a href="https://betterdocs.co/wordpress-plugin" target="_blank">BetterDocs</a> to create better Documentation & Knowledge Base!', 'essential-addons-for-elementor-lite') . '</p>');
311
+ // $notice->thumbnail('upsale', plugins_url('assets/admin/images/icon-documentation.svg', EAEL_PLUGIN_BASENAME));
312
 
313
  // Update Notice For PRO Version
314
  if ($this->pro_enabled && \version_compare(EAEL_PRO_PLUGIN_VERSION, '4.0.0', '<')) {
317
  $notice->thumbnail('update', plugins_url('assets/admin/images/icon-ea-logo.svg', EAEL_PLUGIN_BASENAME));
318
  }
319
 
320
+ // $notice->upsale_args = array(
321
+ // 'slug' => 'betterdocs',
322
+ // 'page_slug' => 'betterdocs-setup',
323
+ // 'file' => 'betterdocs.php',
324
+ // 'btn_text' => __('Install Free', 'essential-addons-for-elementor-lite'),
325
+ // 'condition' => [
326
+ // 'by' => 'class',
327
+ // 'class' => 'BetterDocs',
328
+ // ],
329
+ // );
 
 
 
 
 
 
 
330
  $notice->options_args = array(
331
  'notice_will_show' => [
332
  'opt_in' => $notice->timestamp,
 
333
  'review' => $notice->makeTime($notice->timestamp, '7 Day'), // after 3 days
334
  ],
335
  );
336
  if ($this->pro_enabled && \version_compare(EAEL_PRO_PLUGIN_VERSION, '4.0.0', '<')) {
337
  $notice->options_args['notice_will_show']['update'] = $notice->timestamp;
338
  }
 
 
 
339
 
340
  $notice->init();
341
  }
includes/Traits/Core.php CHANGED
@@ -45,11 +45,11 @@ trait Core
45
  public function insert_plugin_links($links)
46
  {
47
  // settings
48
- $links[] = sprintf('<a href="admin.php?page=eael-settings">' . __('Settings') . '</a>');
49
 
50
  // go pro
51
  if (!$this->pro_enabled) {
52
- $links[] = sprintf('<a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank" style="color: #39b54a; font-weight: bold;">' . __('Go Pro') . '</a>');
53
  }
54
 
55
  return $links;
@@ -64,10 +64,10 @@ trait Core
64
  {
65
  if (EAEL_PLUGIN_BASENAME == $file) {
66
  // docs & faq
67
- $links[] = sprintf('<a href="https://essential-addons.com/elementor/docs/?utm_medium=admin&utm_source=wp.org&utm_term=ea" target="_blank">' . __('Docs & FAQs') . '</a>');
68
 
69
  // video tutorials
70
- $links[] = sprintf('<a href="https://www.youtube.com/channel/UCOjzLEdsnpnFVkm1JKFurPA?utm_medium=admin&utm_source=wp.org&utm_term=ea" target="_blank">' . __('Video Tutorials') . '</a>');
71
  }
72
 
73
  return $links;
@@ -104,11 +104,14 @@ trait Core
104
 
105
  if ($this->is_plugin_installed($elementor)) {
106
  $activation_url = wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $elementor . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $elementor);
107
- $message = __('<strong>Essential Addons for Elementor</strong> requires <strong>Elementor</strong> plugin to be active. Please activate Elementor to continue.', 'essential-addons-for-elementor-lite');
 
 
108
  $button_text = __('Activate Elementor', 'essential-addons-for-elementor-lite');
109
  } else {
110
  $activation_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=elementor'), 'install-plugin_elementor');
111
- $message = sprintf(__('<strong>Essential Addons for Elementor</strong> requires <strong>Elementor</strong> plugin to be installed and activated. Please install Elementor to continue.', 'essential-addons-for-elementor-lite'), '<strong>', '</strong>');
 
112
  $button_text = __('Install Elementor', 'essential-addons-for-elementor-lite');
113
  }
114
 
@@ -160,7 +163,7 @@ trait Core
160
  if ($document->get_settings('eael_ext_reading_progress_global') == 'yes') {
161
  $global_settings['reading_progress'] = [
162
  'post_id' => $post_id,
163
- 'enabled' => ($document->get_settings('eael_ext_reading_progress_global') == 'yes' ? true : false),
164
  'display_condition' => $document->get_settings('eael_ext_reading_progress_global_display_condition'),
165
  'position' => $document->get_settings('eael_ext_reading_progress_position'),
166
  'height' => $document->get_settings('eael_ext_reading_progress_height'),
45
  public function insert_plugin_links($links)
46
  {
47
  // settings
48
+ $links[] = sprintf('<a href="admin.php?page=eael-settings">' . __('Settings', 'essential-addons-for-elementor-lite') . '</a>');
49
 
50
  // go pro
51
  if (!$this->pro_enabled) {
52
+ $links[] = sprintf('<a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank" style="color: #39b54a; font-weight: bold;">' . __('Go Pro', 'essential-addons-for-elementor-lite') . '</a>');
53
  }
54
 
55
  return $links;
64
  {
65
  if (EAEL_PLUGIN_BASENAME == $file) {
66
  // docs & faq
67
+ $links[] = sprintf('<a href="https://essential-addons.com/elementor/docs/?utm_medium=admin&utm_source=wp.org&utm_term=ea" target="_blank">' . __('Docs & FAQs', 'essential-addons-for-elementor-lite') . '</a>');
68
 
69
  // video tutorials
70
+ $links[] = sprintf('<a href="https://www.youtube.com/channel/UCOjzLEdsnpnFVkm1JKFurPA?utm_medium=admin&utm_source=wp.org&utm_term=ea" target="_blank">' . __('Video Tutorials','essential-addons-for-elementor-lite') . '</a>');
71
  }
72
 
73
  return $links;
104
 
105
  if ($this->is_plugin_installed($elementor)) {
106
  $activation_url = wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $elementor . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $elementor);
107
+
108
+ $message = sprintf( __('%1$sEssential Addons for Elementor%2$s requires %1$sElementor%2$s plugin to be active. Please activate Elementor to continue.', 'essential-addons-for-elementor-lite'), "<strong>", "</strong>");
109
+
110
  $button_text = __('Activate Elementor', 'essential-addons-for-elementor-lite');
111
  } else {
112
  $activation_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=elementor'), 'install-plugin_elementor');
113
+
114
+ $message = sprintf(__('%1$sEssential Addons for Elementor%2$s requires %1$sElementor%2$s plugin to be installed and activated. Please install Elementor to continue.', 'essential-addons-for-elementor-lite'), '<strong>', '</strong>');
115
  $button_text = __('Install Elementor', 'essential-addons-for-elementor-lite');
116
  }
117
 
163
  if ($document->get_settings('eael_ext_reading_progress_global') == 'yes') {
164
  $global_settings['reading_progress'] = [
165
  'post_id' => $post_id,
166
+ 'enabled' => $document->get_settings('eael_ext_reading_progress_global') === 'yes',
167
  'display_condition' => $document->get_settings('eael_ext_reading_progress_global_display_condition'),
168
  'position' => $document->get_settings('eael_ext_reading_progress_position'),
169
  'height' => $document->get_settings('eael_ext_reading_progress_height'),
includes/Traits/Login_Registration.php ADDED
@@ -0,0 +1,612 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Essential_Addons_Elementor\Traits;
4
+
5
+ use Elementor\Plugin;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit;
9
+ }
10
+
11
+ /**
12
+ * Trait Login_Registration is responsible for login or registering user using custom login | register widget.
13
+ * @package Essential_Addons_Elementor\Traits
14
+ */
15
+ trait Login_Registration {
16
+ /**
17
+ * @var bool
18
+ */
19
+ public static $send_custom_email = false;
20
+ public static $send_custom_email_admin = false;
21
+ /**
22
+ * It will contain all email related options like email subject, content, email content type etc.
23
+ * @var array $email_options {
24
+ * Used to build wp_mail().
25
+ * @type string $template_type The type of the email template; custom | default.
26
+ * @type string $subject The subject of the email.
27
+ * @type string $message The body of the email.
28
+ * @type string $content_type The type of the email body; plain | html
29
+ * }
30
+ */
31
+ public static $email_options = [];
32
+
33
+ public function login_or_register_user() {
34
+
35
+ // login or register form?
36
+ if ( isset( $_POST['eael-login-submit'] ) ) {
37
+ $this->log_user_in();
38
+ } elseif ( isset( $_POST['eael-register-submit'] ) ) {
39
+ $this->register_user();
40
+ }
41
+ }
42
+
43
+ /**
44
+ * It logs the user in when the login form is submitted normally without AJAX.
45
+ */
46
+ public function log_user_in() {
47
+ $ajax = wp_doing_ajax();
48
+ // before even thinking about login, check security and exit early if something is not right.
49
+ if ( empty( $_POST['eael-login-nonce'] ) ) {
50
+ if ( $ajax ) {
51
+ wp_send_json_error( __( 'Insecure form submitted without security token', EAEL_TEXTDOMAIN ) );
52
+ }
53
+ return false;
54
+ }
55
+ if ( ! wp_verify_nonce( $_POST['eael-login-nonce'], 'eael-login-action' ) ) {
56
+ if ( $ajax ) {
57
+ wp_send_json_error( __( 'Security token did not match', EAEL_TEXTDOMAIN ) );
58
+ }
59
+ return false;
60
+ }
61
+ if ( is_user_logged_in() ) {
62
+ if ( $ajax ) {
63
+ wp_send_json_error( __( 'You are already logged in', EAEL_TEXTDOMAIN ) );
64
+ }
65
+ return false;
66
+ }
67
+
68
+ do_action( 'eael/login-register/before-login' );
69
+
70
+ $widget_id = ! empty( $_POST['widget_id'] ) ? sanitize_text_field( $_POST['widget_id'] ) : '';
71
+
72
+ $user_login = ! empty( $_POST['eael-user-login'] ) ? sanitize_text_field( $_POST['eael-user-login'] ) : '';
73
+ if ( is_email( $user_login ) ) {
74
+ $user_login = sanitize_email( $user_login );
75
+ }
76
+
77
+ $password = ! empty( $_POST['eael-user-password'] ) ? sanitize_text_field( $_POST['eael-user-password'] ) : '';
78
+ $rememberme = ! empty( $_POST['eael-rememberme'] ) ? sanitize_text_field( $_POST['eael-rememberme'] ) : '';
79
+
80
+ $credentials = [
81
+ 'user_login' => $user_login,
82
+ 'user_password' => $password,
83
+ 'remember' => ( 'forever' === $rememberme ),
84
+ ];
85
+ $user_data = wp_signon( $credentials );
86
+
87
+ if ( is_wp_error( $user_data ) ) {
88
+ $err_msg = '';
89
+ if ( isset( $user_data->errors['invalid_email'][0] ) ) {
90
+ $err_msg = __( 'Invalid Email. Please check your email or try again with your username.', EAEL_TEXTDOMAIN );
91
+ } elseif ( isset( $user_data->errors['invalid_username'][0] ) ) {
92
+ $err_msg = __( 'Invalid Username. Please check your username or try again with your email.', EAEL_TEXTDOMAIN );
93
+
94
+ } elseif ( isset( $user_data->errors['incorrect_password'][0] ) ) {
95
+
96
+ $err_msg = __( 'Invalid Password. Please check your password and try again', EAEL_TEXTDOMAIN );
97
+
98
+ } elseif ( isset( $user_data->errors['empty_password'][0] ) ) {
99
+
100
+ $err_msg = __( 'Empty Password. Please check your password and try again', EAEL_TEXTDOMAIN );
101
+ }
102
+
103
+ if ( $ajax ) {
104
+ wp_send_json_error( $err_msg );
105
+ }
106
+
107
+ $this->set_transient( 'eael_login_error_' . $widget_id, $err_msg );
108
+ } else {
109
+ wp_set_current_user( $user_data->ID, $user_login );
110
+ do_action( 'wp_login', $user_data->user_login, $user_data );
111
+ do_action( 'eael/login-register/after-login', $user_data->user_login, $user_data );
112
+ if ( $ajax ) {
113
+ $data = [
114
+ 'message' => __('You are logged in successfully', EAEL_TEXTDOMAIN)
115
+ ];
116
+ if ( ! empty( $_POST['redirect_to'] ) ) {
117
+ $data['redirect_to'] = esc_url( $_POST['redirect_to'] );
118
+ }
119
+ wp_send_json_success($data);
120
+ }
121
+
122
+ if ( ! empty( $_POST['redirect_to'] ) ) {
123
+ wp_safe_redirect( esc_url( $_POST['redirect_to'] ) );
124
+ exit();
125
+ }
126
+ }
127
+ }
128
+
129
+ /**
130
+ * It register the user in when the registration form is submitted normally without AJAX.
131
+ */
132
+ public function register_user() {
133
+ $ajax = wp_doing_ajax();
134
+
135
+ // validate & sanitize the request data
136
+ if ( empty( $_POST['eael-register-nonce'] ) ) {
137
+ if ( $ajax ) {
138
+ wp_send_json_error( __( 'Insecure form submitted without security token', EAEL_TEXTDOMAIN ) );
139
+ }
140
+ return false;
141
+ }
142
+ if ( ! wp_verify_nonce( $_POST['eael-register-nonce'], 'eael-register-action' ) ) {
143
+ if ( $ajax ) {
144
+ wp_send_json_error( __( 'Security token did not match', EAEL_TEXTDOMAIN ) );
145
+ }
146
+ return false;
147
+ }
148
+
149
+ if ( is_user_logged_in() ) {
150
+ if ( $ajax ) {
151
+ wp_send_json_error( __( 'You are already logged in. Logged out to register a new account', EAEL_TEXTDOMAIN ) );
152
+ }
153
+ return false;
154
+ }
155
+
156
+ do_action( 'eael/login-register/before-register' );
157
+
158
+ // prepare the data
159
+ $errors = [];
160
+ $registration_allowed = get_option( 'users_can_register' );
161
+ $protocol = is_ssl() ? "https://" : "http://";
162
+ $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
163
+
164
+ // vail early if reg is closed.
165
+ if ( ! $registration_allowed ) {
166
+ $errors['registration'] = __( 'Registration is closed on this site', EAEL_TEXTDOMAIN );
167
+ if ( $ajax ) {
168
+ wp_send_json_error( $errors['registration'] );
169
+ }
170
+
171
+ $this->set_transient( 'eael_register_errors', $errors );
172
+ wp_safe_redirect( site_url( 'wp-login.php?registration=disabled' ) );
173
+ exit();
174
+ }
175
+ // prepare vars and flag errors
176
+ if ( ! empty( $_POST['page_id'] ) ) {
177
+ $page_id = intval( $_POST['page_id'], 10 );
178
+ } else {
179
+ $errors['page_id'] = __( 'Page ID is missing', EAEL_TEXTDOMAIN );
180
+ }
181
+ $widget_id = '';
182
+ if ( ! empty( $_POST['widget_id'] ) ) {
183
+ $widget_id = sanitize_text_field( $_POST['widget_id'] );
184
+ } else {
185
+ $errors['widget_id'] = __( 'Widget ID is missing', EAEL_TEXTDOMAIN );
186
+ }
187
+
188
+ if ( isset( $_POST['eael_tnc_active'] ) && empty( $_POST['eael_accept_tnc'] ) ) {
189
+ $errors['terms_conditions'] = __( 'You did not accept the Terms and Conditions. Please accept it and try again.', EAEL_TEXTDOMAIN );
190
+ }
191
+
192
+ if ( ! empty( $_POST['email'] ) && is_email( $_POST['email'] ) ) {
193
+ $email = sanitize_email( $_POST['email'] );
194
+ if ( email_exists( $email ) ) {
195
+ $errors['email'] = __( 'The provided email is already registered with other account. Please login or reset password or use another email.', EAEL_TEXTDOMAIN );
196
+ }
197
+ } else {
198
+ $errors['email'] = __( 'Email is missing or Invalid', EAEL_TEXTDOMAIN );
199
+ //@todo; maybe it is good to abort here?? as email is most important. or continue to collect all other errors.
200
+ }
201
+
202
+ // if user provided user name, validate & sanitize it
203
+ if ( isset( $_POST['user_name'] ) ) {
204
+ $username = $_POST['user_name'];
205
+ if ( ! validate_username( $username ) || mb_strlen( $username ) > 60 || username_exists( $username ) ) {
206
+ $errors['user_name'] = __( 'Invalid username provided or the username already registered.', EAEL_TEXTDOMAIN );
207
+ }
208
+ //@TODO; Maybe it is good to add a check for filtering out blacklisted usernames later here.
209
+ } else {
210
+ // user has not provided username, so generate one from the provided email.
211
+ if ( empty( $errors['email'] ) && isset( $email ) ) {
212
+ $username = $this->generate_username_from_email( $email );
213
+ }
214
+ }
215
+
216
+ // Dynamic Password Generation
217
+ $is_pass_auto_generated = false; // emailing is must for autogen pass
218
+ if ( ! empty( $_POST['password'] ) ) {
219
+ $password = wp_unslash( sanitize_text_field( $_POST['password'] ) );
220
+ } else {
221
+ $password = wp_generate_password();
222
+ $is_pass_auto_generated = true;
223
+ }
224
+ if ( isset( $_POST['confirm_pass'] ) ) {
225
+ $confirm_pass = wp_unslash( sanitize_text_field( $_POST['confirm_pass'] ) );
226
+ if ( $confirm_pass !== $password ) {
227
+ $errors['confirm_pass'] = __( 'The confirm password did not match.', EAEL_TEXTDOMAIN );
228
+ }
229
+ }
230
+
231
+ // if any error found, abort
232
+ if ( ! empty( $errors ) ) {
233
+ if ( $ajax ) {
234
+ $err_msg = '<ol>';
235
+ foreach ( $errors as $error ) {
236
+ $err_msg .="<li>{$error}</li>";
237
+ }
238
+ $err_msg .='</ol>';
239
+ wp_send_json_error( $err_msg );
240
+ }
241
+ $this->set_transient( 'eael_register_errors_' . $widget_id, $errors );
242
+ wp_safe_redirect( esc_url( $url ) );
243
+ exit();
244
+ }
245
+
246
+ /*------General Mail Related Stuff------*/
247
+ self::$email_options['username'] = $username;
248
+ self::$email_options['password'] = $password;
249
+ self::$email_options['email'] = $email;
250
+ self::$email_options['firstname'] = '';
251
+ self::$email_options['lastname'] = '';
252
+ self::$email_options['website'] = '';
253
+ self::$email_options['password_reset_link'] = '';
254
+
255
+ // handle registration...
256
+ $user_data = [
257
+ 'user_login' => $username,
258
+ 'user_pass' => $password,
259
+ 'user_email' => $email,
260
+ ];
261
+
262
+ if ( ! empty( $_POST['first_name'] ) ) {
263
+ $user_data['first_name'] = self::$email_options['firstname'] = sanitize_text_field( $_POST['first_name'] );
264
+ }
265
+ if ( ! empty( $_POST['last_name'] ) ) {
266
+ $user_data['last_name'] = self::$email_options['lastname'] = sanitize_text_field( $_POST['last_name'] );
267
+ }
268
+ if ( ! empty( $_POST['website'] ) ) {
269
+ $user_data['user_url'] = self::$email_options['website'] = esc_url_raw( $_POST['website'] );
270
+ }
271
+ $document = Plugin::$instance->documents->get( $page_id );
272
+ $register_actions = [];
273
+ $custom_redirect_url = '';
274
+ if ( $document ) {
275
+ $elements = Plugin::instance()->documents->get( $page_id )->get_elements_data();
276
+ $widget_data = $this->find_element_recursive( $elements, $widget_id );
277
+ $widget = Plugin::instance()->elements_manager->create_element_instance( $widget_data );
278
+ $settings = $widget->get_settings_for_display();
279
+ $register_actions = ! empty( $settings['register_action'] ) ? (array) $settings['register_action'] : [];
280
+ $custom_redirect_url = ! empty( $settings['register_redirect_url']['url'] ) ? $settings['register_redirect_url']['url'] : '/';
281
+ if ( ! empty( $settings['register_user_role'] ) ) {
282
+ $user_data['role'] = sanitize_text_field( $settings['register_user_role'] );
283
+ }
284
+
285
+
286
+ // set email related stuff
287
+ /*------User Mail Related Stuff------*/
288
+ if ( $is_pass_auto_generated || ( in_array( 'send_email', $register_actions ) && 'custom' === $settings['reg_email_template_type'] ) ) {
289
+ self::$send_custom_email = true;
290
+ }
291
+ if ( isset( $settings['reg_email_subject'] ) ) {
292
+ self::$email_options['subject'] = $settings['reg_email_subject'];
293
+ }
294
+ if ( isset( $settings['reg_email_message'] ) ) {
295
+ self::$email_options['message'] = $settings['reg_email_message'];
296
+ }
297
+ if ( isset( $settings['reg_email_content_type'] ) ) {
298
+ self::$email_options['headers'] = 'Content-Type: text/' . $settings['reg_email_content_type'] . '; charset=UTF-8' . "\r\n";
299
+ }
300
+
301
+
302
+ /*------Admin Mail Related Stuff------*/
303
+ self::$send_custom_email_admin = ( ! empty( $settings['reg_admin_email_template_type'] ) && 'custom' === $settings['reg_admin_email_template_type'] );
304
+ if ( isset( $settings['reg_admin_email_subject'] ) ) {
305
+ self::$email_options['admin_subject'] = $settings['reg_admin_email_subject'];
306
+ }
307
+ if ( isset( $settings['reg_admin_email_message'] ) ) {
308
+ self::$email_options['admin_message'] = $settings['reg_admin_email_message'];
309
+ }
310
+ if ( isset( $settings['reg_admin_email_content_type'] ) ) {
311
+ self::$email_options['admin_headers'] = 'Content-Type: text/' . $settings['reg_admin_email_content_type'] . '; charset=UTF-8' . "\r\n";
312
+ }
313
+ }
314
+
315
+
316
+ $user_data = apply_filters( 'eael/login-register/new-user-data', $user_data );
317
+
318
+ do_action( 'eael/login-register/before-insert-user', $user_data );
319
+ $user_id = wp_insert_user( $user_data );
320
+ do_action( 'eael/login-register/after-insert-user', $user_id, $user_data );
321
+
322
+ if ( is_wp_error( $user_id ) ) {
323
+ // error happened during user creation
324
+ $errors['user_create'] = __( 'Sorry, something went wrong. User could not be registered.', EAEL_TEXTDOMAIN );
325
+ if ( $ajax ) {
326
+ wp_send_json_error( $errors['user_create'] );
327
+ }
328
+ $this->set_transient( 'eael_register_errors_' . $widget_id, $errors );
329
+ wp_safe_redirect( esc_url( $url ) );
330
+ exit();
331
+ }
332
+
333
+
334
+ // generate password reset link for autogenerated password
335
+ if ( $is_pass_auto_generated ) {
336
+ update_user_option( $user_id, 'default_password_nag', true, true ); // Set up the password change nag.
337
+ $user = get_user_by( 'id', $user_id );
338
+ $key = get_password_reset_key( $user );
339
+ if ( ! is_wp_error( $key ) ) {
340
+ self::$email_options['password_reset_link'] = network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user->user_login ), 'login' ) . "\r\n\r\n";
341
+ }
342
+ }
343
+
344
+ $admin_or_both = $is_pass_auto_generated || in_array( 'send_email', $register_actions ) ? 'both' : 'admin';
345
+
346
+
347
+ /**
348
+ * Fires after a new user registration has been recorded.
349
+ *
350
+ * @param int $user_id ID of the newly registered user.
351
+ *
352
+ * @since 4.4.0
353
+ */
354
+ remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
355
+ do_action( 'register_new_user', $user_id );
356
+
357
+ wp_new_user_notification( $user_id, null, $admin_or_both );
358
+
359
+ // success & handle after registration action as defined by user in the widget
360
+ if (!$ajax){
361
+ $this->set_transient( 'eael_register_success_' . $widget_id, 1 );
362
+ }
363
+
364
+
365
+ // Handle after registration action
366
+
367
+ // should user be auto logged in?
368
+ if ( in_array( 'auto_login', $register_actions ) && ! is_user_logged_in() ) {
369
+ wp_signon( [
370
+ 'user_login' => $username,
371
+ 'user_password' => $password,
372
+ 'remember' => true,
373
+ ] );
374
+
375
+
376
+ if ( $ajax ) {
377
+ $data = [
378
+ 'message' => __('Your registration completed successfully.', EAEL_TEXTDOMAIN)
379
+ ];
380
+
381
+ if ( in_array( 'redirect', $register_actions ) ) {
382
+ $data['redirect_to'] = $custom_redirect_url;
383
+ }
384
+ wp_send_json_success($data);
385
+ }
386
+
387
+ // if custom redirect not available then refresh the current page to show admin bar
388
+ if ( ! in_array( 'redirect', $register_actions ) ) {
389
+ wp_safe_redirect( esc_url( $url ) );
390
+ exit();
391
+ }
392
+ }
393
+
394
+ // custom redirect?
395
+ if ( $ajax ) {
396
+ $data = [
397
+ 'message' => __('Your registration completed successfully.', EAEL_TEXTDOMAIN)
398
+ ];
399
+
400
+ if ( in_array( 'redirect', $register_actions ) ) {
401
+ $data['redirect_to'] = $custom_redirect_url;
402
+ }
403
+ wp_send_json_success($data);
404
+ }
405
+
406
+ if ( in_array( 'redirect', $register_actions ) ) {
407
+ wp_safe_redirect( $custom_redirect_url );
408
+ exit();
409
+ }
410
+
411
+ }
412
+
413
+ public function generate_username_from_email( $email, $suffix = '' ) {
414
+
415
+ $username_parts = [];
416
+ if ( empty( $username_parts ) ) {
417
+ $email_parts = explode( '@', $email );
418
+ $email_username = $email_parts[0];
419
+
420
+ // Exclude common prefixes.
421
+ if ( in_array( $email_username, [
422
+ 'sales',
423
+ 'hello',
424
+ 'mail',
425
+ 'contact',
426
+ 'info',
427
+ ], true ) ) {
428
+ // Get the domain part.
429
+ $email_username = $email_parts[1];
430
+ }
431
+
432
+ $username_parts[] = sanitize_user( $email_username, true );
433
+ }
434
+ $username = strtolower( implode( '', $username_parts ) );
435
+
436
+ if ( $suffix ) {
437
+ $username .= $suffix;
438
+ }
439
+
440
+ $username = sanitize_user( $username, true );
441
+ if ( username_exists( $username ) ) {
442
+ // Generate something unique to append to the username in case of a conflict with another user.
443
+ $suffix = '-' . zeroise( wp_rand( 0, 9999 ), 4 );
444
+
445
+ return $this->generate_username_from_email( $email, $suffix );
446
+ }
447
+
448
+ return $username;
449
+ }
450
+
451
+ /**
452
+ * Get Widget data.
453
+ *
454
+ * @param array $elements Element array.
455
+ * @param string $form_id Element ID.
456
+ *
457
+ * @return bool|array
458
+ */
459
+ public function find_element_recursive( $elements, $form_id ) {
460
+
461
+ foreach ( $elements as $element ) {
462
+ if ( $form_id === $element['id'] ) {
463
+ return $element;
464
+ }
465
+
466
+ if ( ! empty( $element['elements'] ) ) {
467
+ $element = $this->find_element_recursive( $element['elements'], $form_id );
468
+
469
+ if ( $element ) {
470
+ return $element;
471
+ }
472
+ }
473
+ }
474
+
475
+ return false;
476
+ }
477
+
478
+ public function get_user_roles() {
479
+ $user_roles['default'] = __( 'Default', EAEL_TEXTDOMAIN );
480
+ if ( function_exists( 'get_editable_roles' ) ) {
481
+ $wp_roles = get_editable_roles();
482
+ $roles = $wp_roles ? $wp_roles : [];
483
+ if ( ! empty( $roles ) && is_array( $roles ) ) {
484
+ foreach ( $wp_roles as $role_key => $role ) {
485
+ $user_roles[ $role_key ] = $role['name'];
486
+ }
487
+ }
488
+ }
489
+
490
+ return apply_filters( 'eael/login-register/new-user-roles', $user_roles );
491
+ }
492
+
493
+ /**
494
+ * It store data temporarily
495
+ *
496
+ * @param $name
497
+ * @param $data
498
+ * @param int $time time in seconds. Default is 300s = 5 minutes
499
+ *
500
+ * @return bool it returns true if the data saved, otherwise, false returned.
501
+ */
502
+ public function set_transient( $name, $data, $time = 300 ) {
503
+ $time = empty( $time ) ? (int) $time : ( 5 * MINUTE_IN_SECONDS );
504
+
505
+ return set_transient( $name, $data, time() + $time );
506
+ }
507
+
508
+ /**
509
+ * Filters the contents of the new user notification email sent to the new user.
510
+ *
511
+ * @param array $email_data It contains, to, subject, message, headers etc.
512
+ * @param \WP_User $user User object for new user.
513
+ * @param string $blogname The site title.
514
+ *
515
+ * @return array
516
+ * @since 4.9.0
517
+ */
518
+ public function new_user_notification_email( $email_data, $user, $blogname ) {
519
+ if ( ! self::$send_custom_email ) {
520
+ return $email_data;
521
+ }
522
+
523
+ if ( ! empty( self::$email_options['subject'] ) ) {
524
+ $email_data['subject'] = self::$email_options['subject'];
525
+ }
526
+
527
+ if ( ! empty( self::$email_options['message'] ) ) {
528
+ $email_data['message'] = $this->replace_placeholders( self::$email_options['message'], 'user' );
529
+ }
530
+
531
+ if ( ! empty( self::$email_options['headers'] ) ) {
532
+ $email_data['headers'] = self::$email_options['headers'];
533
+ }
534
+
535
+ return apply_filters( 'eael/login-register/new-user-email-data', $email_data, $user, $blogname );
536
+
537
+ }
538
+
539
+ /**
540
+ * Filters the contents of the new user notification email sent to the site admin.
541
+ *
542
+ * @param array $email_data It contains, to, subject, message, headers etc.
543
+ * @param \WP_User $user User object for new user.
544
+ * @param string $blogname The site title.
545
+ *
546
+ * @return array
547
+ * @since 4.9.0
548
+ */
549
+ public function new_user_notification_email_admin( $email_data, $user, $blogname ) {
550
+
551
+ if ( ! self::$send_custom_email_admin ) {
552
+ return $email_data;
553
+ }
554
+
555
+ if ( ! empty( self::$email_options['admin_subject'] ) ) {
556
+ $email_data['subject'] = self::$email_options['admin_subject'];
557
+ }
558
+
559
+ if ( ! empty( self::$email_options['admin_message'] ) ) {
560
+ $email_data['message'] = $this->replace_placeholders( self::$email_options['admin_message'], 'admin' );
561
+ }
562
+
563
+ if ( ! empty( self::$email_options['admin_headers'] ) ) {
564
+ $email_data['headers'] = self::$email_options['admin_headers'];
565
+ }
566
+
567
+ return apply_filters( 'eael/login-register/new-user-admin-email-data', $email_data, $user, $blogname );
568
+ }
569
+
570
+ /**
571
+ * It replaces placeholders with dynamic value and returns it.
572
+ *
573
+ * @param $message
574
+ * @param string $receiver
575
+ *
576
+ * @return null|string|string[]
577
+ */
578
+ public function replace_placeholders( $message, $receiver = 'user' ) {
579
+ $placeholders = [
580
+ '/\[password\]/',
581
+ '/\[password_reset_link\]/',
582
+ '/\[username\]/',
583
+ '/\[email\]/',
584
+ '/\[firstname\]/',
585
+ '/\[lastname\]/',
586
+ '/\[website\]/',
587
+ '/\[loginurl\]/',
588
+ '/\[sitetitle\]/',
589
+ ];
590
+ $replacement = [
591
+ self::$email_options['password'],
592
+ self::$email_options['password_reset_link'],
593
+ self::$email_options['username'],
594
+ self::$email_options['email'],
595
+ self::$email_options['firstname'],
596
+ self::$email_options['lastname'],
597
+ self::$email_options['website'],
598
+ wp_login_url(),
599
+ get_option( 'blogname' ),
600
+ ];
601
+
602
+ if ( 'user' !== $receiver ) {
603
+ // remove password from admin mail, because admin should not see user's plain password
604
+ unset( $placeholders[0] );
605
+ unset( $placeholders[1] );
606
+ unset( $replacement[0] );
607
+ unset( $replacement[1] );
608
+ }
609
+
610
+ return preg_replace( $placeholders, $replacement, $message );
611
+ }
612
+ }
includes/Traits/Shared.php CHANGED
@@ -17,7 +17,8 @@ trait Shared
17
  {
18
  if (is_ssl()) {
19
  $url = wp_parse_url($url);
20
- if(!empty($parsed_url['host'])){
 
21
  $url['scheme'] = 'https';
22
  }
23
 
@@ -59,6 +60,7 @@ trait Shared
59
  'section',
60
  'popup',
61
  ];
 
62
  return in_array($template_name, $template_list);
63
  }
64
 
17
  {
18
  if (is_ssl()) {
19
  $url = wp_parse_url($url);
20
+
21
+ if (!empty($url['host'])) {
22
  $url['scheme'] = 'https';
23
  }
24
 
60
  'section',
61
  'popup',
62
  ];
63
+
64
  return in_array($template_name, $template_list);
65
  }
66
 
includes/templates/admin/elements.php CHANGED
@@ -403,7 +403,13 @@ $elements = [
403
  'demo_link' => 'https://essential-addons.com/elementor/mailchimp/',
404
  'doc_link' => 'https://essential-addons.com/elementor/docs/mailchimp/',
405
  'is_pro' => true
406
- ]
 
 
 
 
 
 
407
  ]
408
  ],
409
  'social-feed-elements' => [
@@ -548,24 +554,32 @@ $elements = apply_filters( 'add_eael_elementor_addons', $elements );
548
 
549
  ?>
550
  </p>
551
- <a class="eael-element-info-link" href="<?php echo ($item['demo_link']);?>" target="_blank">
 
552
  <span class="ea-view-demo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M 5 4 C 3.895 4 3 4.895 3 6 L 3 20 C 3 21.105 3.895 22 5 22 L 12.75 22 L 12.25 24 L 11 24 A 1.0001 1.0001 0 1 0 11 26 L 19 26 A 1.0001 1.0001 0 1 0 19 24 L 17.75 24 L 17.25 22 L 25 22 C 26.105 22 27 21.105 27 20 L 27 6 C 27 4.895 26.105 4 25 4 L 5 4 z M 5 6 L 25 6 L 25 18 L 5 18 L 5 6 z M 15 19 C 15.552 19 16 19.448 16 20 C 16 20.552 15.552 21 15 21 C 14.448 21 14 20.552 14 20 C 14 19.448 14.448 19 15 19 z"></path></svg></span>
553
- <span class="eael-info-tooltip"><?php _e('Demo', 'essential-addons-elementor'); ?></span>
554
  </a>
555
- <a class="eael-element-info-link" href="<?php echo ($item['doc_link']);?>" target="_blank">
 
 
556
  <span class="ea-get-help"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M 12 2 C 6.4889971 2 2 6.4889971 2 12 C 2 17.511003 6.4889971 22 12 22 C 17.511003 22 22 17.511003 22 12 C 22 6.4889971 17.511003 2 12 2 z M 12 4 C 16.430123 4 20 7.5698774 20 12 C 20 16.430123 16.430123 20 12 20 C 7.5698774 20 4 16.430123 4 12 C 4 7.5698774 7.5698774 4 12 4 z M 12 6 C 9.79 6 8 7.79 8 10 L 10 10 C 10 8.9 10.9 8 12 8 C 13.1 8 14 8.9 14 10 C 14 12 11 12.367 11 15 L 13 15 C 13 13.349 16 12.5 16 10 C 16 7.79 14.21 6 12 6 z M 11 16 L 11 18 L 13 18 L 13 16 L 11 16 z"></path></svg></span>
557
- <span class="eael-info-tooltip"><?php _e('Documentation', 'essential-addons-elementor'); ?></span>
558
  </a>
 
559
  </div>
560
- <input type="checkbox" id="<?php echo esc_attr($item['key']); ?>" name="<?php echo esc_attr($item['key']); ?>" <?php echo $status; ?>>
561
- <label for="<?php echo esc_attr($item['key']); ?>" class="<?php echo $label_class; ?>"></label>
562
  </div>
563
  <?php } ?>
564
  </div>
565
  <?php endforeach; ?>
566
 
 
 
 
 
567
  <div class="eael-save-btn-wrap">
568
- <button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-for-elementor-lite'); ?></button>
569
  </div>
570
  </div>
571
  </div>
403
  'demo_link' => 'https://essential-addons.com/elementor/mailchimp/',
404
  'doc_link' => 'https://essential-addons.com/elementor/docs/mailchimp/',
405
  'is_pro' => true
406
+ ],
407
+ [
408
+ 'key' => 'login-register',
409
+ 'title' => __( 'Login Register Form', 'essential-addons-elementor' ),
410
+ 'demo_link' => 'https://essential-addons.com/elementor/login-register-form',
411
+ 'doc_link' => 'https://essential-addons.com/elementor/docs/login-register-form/',
412
+ ],
413
  ]
414
  ],
415
  'social-feed-elements' => [
554
 
555
  ?>
556
  </p>
557
+ <?php if (!empty( $item['demo_link'])) { ?>
558
+ <a class="eael-element-info-link" href="<?php echo esc_attr( esc_url( $item['demo_link'] ) );?>" target="_blank">
559
  <span class="ea-view-demo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M 5 4 C 3.895 4 3 4.895 3 6 L 3 20 C 3 21.105 3.895 22 5 22 L 12.75 22 L 12.25 24 L 11 24 A 1.0001 1.0001 0 1 0 11 26 L 19 26 A 1.0001 1.0001 0 1 0 19 24 L 17.75 24 L 17.25 22 L 25 22 C 26.105 22 27 21.105 27 20 L 27 6 C 27 4.895 26.105 4 25 4 L 5 4 z M 5 6 L 25 6 L 25 18 L 5 18 L 5 6 z M 15 19 C 15.552 19 16 19.448 16 20 C 16 20.552 15.552 21 15 21 C 14.448 21 14 20.552 14 20 C 14 19.448 14.448 19 15 19 z"></path></svg></span>
560
+ <span class="eael-info-tooltip"><?php esc_html_e('Demo', 'essential-addons-elementor'); ?></span>
561
  </a>
562
+ <?php } ?>
563
+ <?php if (!empty( $item['doc_link'])) { ?>
564
+ <a class="eael-element-info-link" href="<?php echo esc_attr( esc_url( $item['doc_link'] ) );?>" target="_blank">
565
  <span class="ea-get-help"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M 12 2 C 6.4889971 2 2 6.4889971 2 12 C 2 17.511003 6.4889971 22 12 22 C 17.511003 22 22 17.511003 22 12 C 22 6.4889971 17.511003 2 12 2 z M 12 4 C 16.430123 4 20 7.5698774 20 12 C 20 16.430123 16.430123 20 12 20 C 7.5698774 20 4 16.430123 4 12 C 4 7.5698774 7.5698774 4 12 4 z M 12 6 C 9.79 6 8 7.79 8 10 L 10 10 C 10 8.9 10.9 8 12 8 C 13.1 8 14 8.9 14 10 C 14 12 11 12.367 11 15 L 13 15 C 13 13.349 16 12.5 16 10 C 16 7.79 14.21 6 12 6 z M 11 16 L 11 18 L 13 18 L 13 16 L 11 16 z"></path></svg></span>
566
+ <span class="eael-info-tooltip"><?php esc_html_e('Documentation', 'essential-addons-elementor'); ?></span>
567
  </a>
568
+ <?php } ?>
569
  </div>
570
+ <input type="checkbox" id="<?php echo esc_attr($item['key']); ?>" name="<?php echo esc_attr($item['key']); ?>" <?php echo esc_html( $status ); ?>>
571
+ <label for="<?php echo esc_attr($item['key']); ?>" class="<?php echo esc_attr( $label_class ); ?>"></label>
572
  </div>
573
  <?php } ?>
574
  </div>
575
  <?php endforeach; ?>
576
 
577
+ <!-- hidden input -->
578
+ <input type="hidden" name="embedpress" value="on">
579
+ <input type="hidden" name="woocommerce-review" value="on">
580
+
581
  <div class="eael-save-btn-wrap">
582
+ <button type="submit" class="button eael-btn js-eael-settings-save"><?php esc_html_e('Save settings', 'essential-addons-for-elementor-lite'); ?></button>
583
  </div>
584
  </div>
585
  </div>
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, priyomukul, mahfuz01, nazsabuz, manzurahammed
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, elementor form, woocommerce elementor, page builder, builder, visual editor, wordpress page builder
4
  Requires at least: 4.0
5
- Tested up to: 5.4
6
  Requires PHP: 5.4
7
- Stable tag: 4.1.2
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
@@ -224,6 +224,13 @@ Your existing elements/content will work with premium version. So you won't lose
224
 
225
  == Changelog ==
226
 
 
 
 
 
 
 
 
227
  = 4.1.2 - 30/07/2020 =
228
  - Fixed: EA Twitter Feed | Content length issue
229
  - Fixed: EA Woo Checkout Coupons showing despite disabling from Woo Settings
2
  Contributors: wpdevteam, Codetic, re_enter_rupok, Asif2BD, priyomukul, mahfuz01, nazsabuz, manzurahammed
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, elementor form, woocommerce elementor, page builder, builder, visual editor, wordpress page builder
4
  Requires at least: 4.0
5
+ Tested up to: 5.5
6
  Requires PHP: 5.4
7
+ Stable tag: 4.2.0
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
224
 
225
  == Changelog ==
226
 
227
+ = 4.2.0 - 06/08/2020 =
228
+ - Added: EA Login | Register Widget
229
+ - Removed: Upsell Notices
230
+ - Added: Compatibility with WooCommerce 4.3.1
231
+ - Fixed: SSL Issue
232
+ - Few minor bugfix and improvements
233
+
234
  = 4.1.2 - 30/07/2020 =
235
  - Fixed: EA Twitter Feed | Content length issue
236
  - Fixed: EA Woo Checkout Coupons showing despite disabling from Woo Settings