Header Footer Elementor - Version 1.3.0

Version Description

  • New: Added 'Site Logo' widget.
  • New: Added 'Site Title' widget.
  • New: Added 'Site Tagline' widget.
  • New: Added 'Navigation Menu' widget.
  • New: Added 'Page Title' widget.
  • Improvement: Elementor v2.9 compatibility.
Download this release

Release Info

Developer Nikschavan
Plugin Icon Header Footer Elementor
Version 1.3.0
Comparing to
See all releases

Code changes from version 1.2.2 to 1.3.0

admin/class-hfe-admin.php CHANGED
@@ -33,9 +33,40 @@ class HFE_Admin {
33
  self::$_instance = new self();
34
  }
35
 
 
 
36
  return self::$_instance;
37
  }
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  /**
40
  * Constructor
41
  */
33
  self::$_instance = new self();
34
  }
35
 
36
+ add_action( 'elementor/init', __CLASS__ . '::load_admin', 0 );
37
+
38
  return self::$_instance;
39
  }
40
 
41
+ /**
42
+ * Load the icons style in editor.
43
+ *
44
+ * @since 1.3.0
45
+ */
46
+ public static function load_admin() {
47
+ add_action( 'elementor/editor/after_enqueue_styles', __CLASS__ . '::hfe_admin_enqueue_scripts' );
48
+ }
49
+
50
+ /**
51
+ * Enqueue admin scripts
52
+ *
53
+ * @since 1.3.0
54
+ * @param string $hook Current page hook.
55
+ * @access public
56
+ */
57
+ public static function hfe_admin_enqueue_scripts( $hook ) {
58
+
59
+ // Register the icons styles.
60
+ wp_register_style(
61
+ 'hfe-style',
62
+ HFE_URL . 'assets/css/style.css',
63
+ [],
64
+ HFE_VER
65
+ );
66
+
67
+ wp_enqueue_style( 'hfe-style' );
68
+ }
69
+
70
  /**
71
  * Constructor
72
  */
assets/css/header-footer-elementor.css CHANGED
@@ -30,5 +30,4 @@
30
  .ehf-header #masthead {
31
  z-index: 200;
32
  position: relative;
33
- }
34
-
30
  .ehf-header #masthead {
31
  z-index: 200;
32
  position: relative;
33
+ }
 
assets/css/style.css ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'hfe';
3
+ src: url('../fonts/hfe.eot?ejqak3');
4
+ src: url('../fonts/hfe.eot?ejqak3#iefix') format('embedded-opentype'),
5
+ url('../fonts/hfe.ttf?ejqak3') format('truetype'),
6
+ url('../fonts/hfe.woff?ejqak3') format('woff'),
7
+ url('../fonts/hfe.svg?ejqak3#hfe') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+
12
+ [class^="hfe-icon-"], [class*=" hfe-icon-"] {
13
+ /* use !important to prevent issues with browser extensions that change fonts */
14
+ font-family: 'hfe' !important;
15
+ speak: none;
16
+ font-style: normal;
17
+ font-weight: normal;
18
+ font-variant: normal;
19
+ text-transform: none;
20
+ line-height: 1;
21
+
22
+ /* Better Font Rendering =========== */
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ }
26
+
27
+ .elementor-element [class*="hfe-icon-"]:after {
28
+ content: "HFE";
29
+ position: absolute;
30
+ top: 0;
31
+ right: 0;
32
+ z-index: 1;
33
+ color: #a4afb7;
34
+ background: transparent;
35
+ font-size: 10px;
36
+ font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
37
+ padding: 0.2em 0.5em;
38
+ border-width: 0 0 1px 1px;
39
+ border-color: #e0e0e0;
40
+ border-style: solid;
41
+ }
42
+
43
+ .hfe-icon-copyright-widget:before {
44
+ content: "\e905";
45
+ }
46
+ .hfe-icon-retina-image:before {
47
+ content: "\e906";
48
+ }
49
+
50
+ .hfe-icon-page-title:before {
51
+ content: "\e900";
52
+ }
53
+ .hfe-icon-site-logo:before {
54
+ content: "\e901";
55
+ }
56
+ .hfe-icon-site-tagline:before {
57
+ content: "\e902";
58
+ }
59
+ .hfe-icon-site-title:before {
60
+ content: "\e903";
61
+ }
62
+ .hfe-icon-navigation-menu-4:before {
63
+ content: "\e904";
64
+ color: #556068;
65
+ }
assets/fonts/hfe.eot ADDED
Binary file
assets/fonts/hfe.svg ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="page-title" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM300.571 417.609c7.633 0 13.879 6.242 13.879 13.879v16.795h61.069v-144.352h-25.953c-7.637 0-13.881-6.248-13.881-13.883 0-7.631 6.244-13.879 13.881-13.879h79.806c7.639 0 13.881 6.248 13.881 13.879 0 7.635-6.242 13.883-13.881 13.883h-26.093v144.348h61.075v-16.795c0-7.633 6.242-13.879 13.879-13.879 7.633 0 13.879 6.246 13.879 13.879v31.093c0 7.637-6.523 13.462-14.156 13.462h-177.11c-7.633 0-14.156-5.825-14.156-13.462v-31.093c-0.002-7.633 6.246-13.875 13.879-13.875z" />
11
+ <glyph unicode="&#xe901;" glyph-name="site-logo" d="M619.652 354.789l-53.825-61.702-112.904 160.165c-4.644 6.978-12.637 10.976-21.005 10.504-8.217-0.193-15.919-4.046-21.005-10.504l-173.292-233.682c-5.975-8.956-6.968-20.341-2.626-30.194 4.219-9.539 13.25-16.062 23.631-17.067h480.492c10.38 1.005 19.414 7.528 23.631 17.067 4.372 9.4 3.37 20.424-2.626 28.882l-99.774 133.908c-4.402 6.752-11.662 11.109-19.693 11.815-8.079 0.525-15.909-2.902-21.005-9.192zM526.441 224.821h-215.304l120.779 162.791 114.215-162.791h-19.69zM686.606 224.821h-76.144l-13.127 21.005 40.698 45.949 48.573-66.954zM573.702 426.995c44.228 0 80.081 35.853 80.081 80.081s-35.853 80.081-80.081 80.081-80.081-35.853-80.081-80.081v0c0-44.228 35.853-80.081 80.081-80.081zM546.134 507.076c0 15.225 12.343 27.568 27.568 27.568s27.568-12.343 27.568-27.568c0-15.225-12.343-27.568-27.568-27.568s-27.568 12.343-27.568 27.568c0 0 0 0 0 0zM911.099 675.119l-278.32 277.003c-4.847 4.948-11.453 7.777-18.379 7.878h-378.092c-72.505 0-131.282-58.777-131.282-131.282v-761.435c0-72.505 58.777-131.282 131.282-131.282h551.386c72.505 0 131.282 58.777 131.282 131.282v589.458c-0.101 6.923-2.932 13.529-7.878 18.379zM643.282 697.435v170.668l185.107-183.795h-171.98c-6.481-0.771-12.358 3.857-13.127 10.338-0.111 0.925-0.111 1.862 0 2.789zM866.461 67.282c0-43.502-35.267-78.769-78.769-78.769h-551.383c-43.502 0-78.769 35.265-78.769 78.769v761.435c0 43.502 35.265 78.769 78.769 78.769h354.461v-210.052c0-36.252 29.387-65.64 65.64-65.64h210.052v-564.513z" />
12
+ <glyph unicode="&#xe902;" glyph-name="site-tagline" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM535.324 446.395h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 352.211h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 262.65h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM178.859 677.192c8.016 0 14.576 6.555 14.576 14.574v17.636h64.131v-151.588h-27.255c-8.020 0-14.576-6.561-14.576-14.576s6.557-14.574 14.576-14.574h83.806c8.020 0 14.576 6.561 14.576 14.574 0 8.016-6.555 14.576-14.576 14.576h-27.402v151.584h64.135v-17.636c0-8.016 6.555-14.574 14.574-14.574 8.016 0 14.576 6.559 14.576 14.574v32.65c0 8.020-6.851 14.14-14.867 14.14h-185.985c-8.016 0-14.865-6.118-14.865-14.14v-32.65c-0.002-8.016 6.559-14.57 14.574-14.57z" />
13
+ <glyph unicode="&#xe903;" glyph-name="site-title" d="M659.821 954.086c-4.695 4.945-11.133 7.914-17.805 7.914h-399.462c-73.711 0-134.555-60.602-134.555-134.305v-755.384c0-73.711 60.844-134.313 134.555-134.313h542.173c73.711 0 134.555 60.602 134.555 134.313v599.806c0 6.43-2.969 12.609-7.172 17.313zM666.992 874.687l168.938-177.344h-109.821c-32.648 0-59.117 26.219-59.117 58.867zM784.727-12.533h-542.173c-46.25 0-85.086 38.336-85.086 84.844v755.384c0 46.25 38.586 84.836 85.086 84.836h374.969v-156.321c0-60.102 48.484-108.336 108.586-108.336h143.703v-575.564c0-46.508-38.586-84.844-85.086-84.844zM717.204 158.131h-407.126c-13.602 0-24.734-11.125-24.734-24.734 0-13.602 11.133-24.734 24.734-24.734h407.376c13.602 0 24.734 11.133 24.734 24.734 0 13.609-11.133 24.734-24.984 24.734zM355.343 504.171c13.602 0 24.734 11.125 24.734 24.734v29.93h108.828v-257.243h-46.25c-13.609 0-24.734-11.133-24.734-24.734s11.125-24.734 24.734-24.734h142.219c13.609 0 24.734 11.133 24.734 24.734s-11.125 24.734-24.734 24.734h-46.5v257.235h108.836v-29.93c0-13.602 11.125-24.734 24.734-24.734 13.602 0 24.734 11.133 24.734 24.734v55.406c0 13.609-11.625 23.992-25.227 23.992h-315.618c-13.602 0-25.227-10.383-25.227-23.992v-55.406c0-13.602 11.133-24.727 24.734-24.727z" />
14
+ <glyph unicode="&#xe904;" glyph-name="navigation-menu-4" d="M921.6 467.626c0 10.834-8.794 19.628-19.626 19.628h-779.948c-10.832 0-19.626-8.794-19.626-19.628v-39.252c0-10.834 8.794-19.628 19.626-19.628h779.948c10.832 0 19.626 8.794 19.626 19.628v39.252zM921.6 254.294c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254zM921.6 680.96c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254z" />
15
+ <glyph unicode="&#xe905;" glyph-name="copyright-widget" d="M512-64c-282.312 0-512 229.688-512 512s229.688 512 512 512 512-229.688 512-512-229.688-512-512-512zM512 896c-247.032 0-448-200.968-448-448s200.968-448 448-448 448 200.968 448 448-200.968 448-448 448zM512 191.999c-141.156 0-256.001 114.843-256.001 256.001s114.843 256.001 256.001 256.001c69.406 0 134.344-27.313 182.906-76.906l-45.749-44.749c-36.405 37.188-85.093 57.657-137.157 57.657-105.876 0-192.001-86.125-192.001-192.001s86.125-192.001 192.001-192.001c52.032 0 100.72 20.469 137.157 57.657l45.687-44.814c-48.533-49.563-113.468-76.844-182.844-76.846z" />
16
+ <glyph unicode="&#xe906;" glyph-name="retina-image" d="M512 277.333c-94.123 0-170.667 76.544-170.667 170.667s76.544 170.667 170.667 170.667 170.667-76.544 170.667-170.667-76.544-170.667-170.667-170.667zM512 554.667c-58.795 0-106.667-47.872-106.667-106.667s47.872-106.667 106.667-106.667 106.667 47.872 106.667 106.667-47.872 106.667-106.667 106.667zM512 106.667c-202.88 0-392.747 121.728-507.861 325.589-5.504 9.771-5.504 21.675 0 31.445 115.115 203.904 304.981 325.632 507.861 325.632s392.747-121.728 507.861-325.589c5.504-9.771 5.504-21.675 0-31.445-115.115-203.904-304.981-325.632-507.861-325.632zM69.035 448c104.235-174.037 268.672-277.333 442.965-277.333s338.731 103.296 442.965 277.333c-104.235 174.037-268.672 277.333-442.965 277.333s-338.731-103.296-442.965-277.333zM992 603.819c-17.664 0-32 14.336-32 32v206.848c0 29.397-23.936 53.333-53.333 53.333h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c64.683 0 117.333-52.651 117.333-117.333v-206.848c0-17.664-14.336-32-32-32zM32 603.819c-17.664 0-32 14.336-32 32v206.848c0 64.683 52.651 117.333 117.333 117.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32h-206.848c-29.397 0-53.333-23.936-53.333-53.333v-206.848c0-17.664-14.336-32-32-32zM906.667-64h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c29.397 0 53.333 23.936 53.333 53.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-64.683-52.651-117.333-117.333-117.333zM324.181-64h-206.848c-64.683 0-117.333 52.651-117.333 117.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-29.397 23.936-53.333 53.333-53.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32z" />
17
+ </font></defs></svg>
assets/fonts/hfe.ttf ADDED
Binary file
assets/fonts/hfe.woff ADDED
Binary file
header-footer-elementor.php CHANGED
@@ -7,12 +7,12 @@
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
- * Version: 1.2.2
11
  *
12
  * @package header-footer-elementor
13
  */
14
 
15
- define( 'HFE_VER', '1.2.2' );
16
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
17
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
18
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
+ * Version: 1.3.0
11
  *
12
  * @package header-footer-elementor
13
  */
14
 
15
+ define( 'HFE_VER', '1.3.0' );
16
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
17
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
18
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
inc/js/hfe-nav-menu.js ADDED
@@ -0,0 +1,507 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+
3
+ /**
4
+ * Nav Menu handler Function.
5
+ *
6
+ */
7
+ var WidgethfeNavMenuHandler = function( $scope, $ ) {
8
+
9
+ if ( 'undefined' == typeof $scope )
10
+ return;
11
+
12
+ var id = $scope.data( 'id' );
13
+ var wrapper = $scope.find('.elementor-widget-hfe-nav-menu ');
14
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
15
+ var flyout_data = $( '.hfe-flyout-wrapper' ).data( 'flyout-class' );
16
+
17
+ $( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
18
+
19
+ _toggleClick( id );
20
+
21
+ if( 'horizontal' !== layout ){
22
+
23
+ _eventClick( id );
24
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches ) {
25
+
26
+ _eventClick( id );
27
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
28
+
29
+ _eventClick( id );
30
+ }
31
+
32
+ _borderClass( id );
33
+
34
+ $( '.elementor-element-' + id + ' .hfe-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function() {
35
+
36
+ _openMenu( id );
37
+ } );
38
+
39
+ $( '.elementor-element-' + id + ' .hfe-flyout-close' ).off( 'click keyup' ).on( 'click keyup', function() {
40
+
41
+ _closeMenu( id );
42
+ } );
43
+
44
+ $( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).off( 'click' ).on( 'click', function() {
45
+
46
+ _closeMenu( id );
47
+ } );
48
+
49
+
50
+ $scope.find( '.sub-menu' ).each( function() {
51
+
52
+ var parent = $( this ).closest( '.menu-item' );
53
+
54
+ $scope.find( parent ).addClass( 'parent-has-child' );
55
+ $scope.find( parent ).removeClass( 'parent-has-no-child' );
56
+ });
57
+
58
+ $( window ).resize( function(){
59
+
60
+ if( 'horizontal' !== layout ) {
61
+
62
+ _eventClick( id );
63
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches ) {
64
+
65
+ _eventClick( id );
66
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
67
+
68
+ _eventClick( id );
69
+ }
70
+
71
+ if( 'horizontal' == layout && window.matchMedia( "( min-width: 977px )" ).matches){
72
+
73
+ $( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).next().css( 'position', 'absolute');
74
+ }
75
+
76
+ if( 'expandible' == layout || 'flyout' == layout ){
77
+
78
+ _toggleClick( id );
79
+ }else if ( 'vertical' == layout || 'horizontal' == layout ) {
80
+ if( window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))){
81
+
82
+ _toggleClick( id );
83
+ }else if ( window.matchMedia( "( max-width: 1023px )" ).matches && $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
84
+
85
+ _toggleClick( id );
86
+ }
87
+ }
88
+
89
+ _borderClass( id );
90
+
91
+ });
92
+
93
+ // Acessibility functions
94
+
95
+ $scope.find( '.parent-has-child .hfe-has-submenu-container a').attr( 'aria-haspopup', 'true' );
96
+ $scope.find( '.parent-has-child .hfe-has-submenu-container a').attr( 'aria-expanded', 'false' );
97
+
98
+ $scope.find( '.hfe-nav-menu__toggle').attr( 'aria-haspopup', 'true' );
99
+ $scope.find( '.hfe-nav-menu__toggle').attr( 'aria-expanded', 'false' );
100
+
101
+ // End of accessibility functions
102
+
103
+ $( document ).trigger( 'hfe_nav_menu_init', id );
104
+
105
+ $( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).on( 'keyup', function(e){
106
+
107
+ var $this = $( this );
108
+
109
+ if( $this.parent().hasClass( 'menu-active' ) ) {
110
+
111
+ $this.parent().removeClass( 'menu-active' );
112
+
113
+ $this.parent().next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
114
+ $this.parent().prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
115
+
116
+ $this.parent().next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
117
+ $this.parent().prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
118
+ }else {
119
+
120
+ $this.parent().next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
121
+ $this.parent().prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
122
+
123
+ $this.parent().next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
124
+ $this.parent().prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
125
+
126
+ $this.parent().siblings().find( '.hfe-has-submenu-container a' ).attr( 'aria-expanded', 'false' );
127
+
128
+ $this.parent().next().removeClass( 'menu-active' );
129
+ $this.parent().prev().removeClass( 'menu-active' );
130
+
131
+ event.preventDefault();
132
+
133
+ $this.parent().addClass( 'menu-active' );
134
+
135
+ if( 'horizontal' !== layout ){
136
+ $this.addClass( 'sub-menu-active' );
137
+ }
138
+
139
+ $this.find( 'a' ).attr( 'aria-expanded', 'true' );
140
+
141
+ $this.next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
142
+
143
+ if ( 'horizontal' !== layout ) {
144
+
145
+ $this.next().css( 'position', 'relative');
146
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
147
+
148
+ $this.next().css( 'position', 'relative');
149
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
150
+
151
+ if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
152
+
153
+ $this.next().css( 'position', 'relative');
154
+ } else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
155
+
156
+ $this.next().css( 'position', 'absolute');
157
+ }
158
+ }
159
+ }
160
+ });
161
+
162
+ $( '.elementor-element-' + id + ' li.menu-item' ).on( 'keyup', function(e){
163
+ var $this = $( this );
164
+
165
+ $this.next().find( 'a' ).attr( 'aria-expanded', 'false' );
166
+ $this.prev().find( 'a' ).attr( 'aria-expanded', 'false' );
167
+
168
+ $this.next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
169
+ $this.prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
170
+
171
+ $this.siblings().removeClass( 'menu-active' );
172
+ $this.next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
173
+ $this.prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
174
+
175
+ });
176
+ };
177
+
178
+ function _openMenu( id ) {
179
+
180
+ var layout = $( '#hfe-flyout-content-id-' + id ).data( 'layout' );
181
+ var layout_type = $( '#hfe-flyout-content-id-' + id ).data( 'flyout-type' );
182
+ var wrap_width = $( '#hfe-flyout-content-id-' + id ).data( 'width' ) + 'px';
183
+ var container = $( '.elementor-element-' + id + ' .hfe-flyout-container .hfe-side.hfe-flyout-' + layout );
184
+
185
+ $( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).fadeIn( 100 );
186
+
187
+ if( 'left' == layout ) {
188
+
189
+ $( 'body' ).css( 'margin-left' , '0' );
190
+ container.css( 'left', '0' );
191
+
192
+ if( 'push' == layout_type ) {
193
+
194
+ $( 'body' ).addClass( 'hfe-flyout-animating' ).css({
195
+ position: 'absolute',
196
+ width: '100%',
197
+ 'margin-left' : wrap_width,
198
+ 'margin-right' : 'auto'
199
+ });
200
+ }
201
+ } else {
202
+
203
+ $( 'body' ).css( 'margin-right', '0' );
204
+ container.css( 'right', '0' );
205
+
206
+ if( 'push' == layout_type ) {
207
+
208
+ $( 'body' ).addClass( 'hfe-flyout-animating' ).css({
209
+ position: 'absolute',
210
+ width: '100%',
211
+ 'margin-left' : '-' + wrap_width,
212
+ 'margin-right' : 'auto',
213
+ });
214
+ }
215
+ }
216
+ }
217
+
218
+ function _closeMenu( id ) {
219
+
220
+ var layout = $( '#hfe-flyout-content-id-' + id ).data( 'layout' );
221
+ var wrap_width = $( '#hfe-flyout-content-id-' + id ).data( 'width' ) + 'px';
222
+ var layout_type = $( '#hfe-flyout-content-id-' + id ).data( 'flyout-type' );
223
+ var container = $( '.elementor-element-' + id + ' .hfe-flyout-container .hfe-side.hfe-flyout-' + layout );
224
+
225
+ $( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).fadeOut( 100 );
226
+
227
+ if( 'left' == layout ) {
228
+
229
+ container.css( 'left', '-' + wrap_width );
230
+
231
+ if( 'push' == layout_type ) {
232
+
233
+ $( 'body' ).css({
234
+ position: '',
235
+ 'margin-left' : '',
236
+ 'margin-right' : '',
237
+ });
238
+
239
+ setTimeout( function() {
240
+ $( 'body' ).removeClass( 'hfe-flyout-animating' ).css({
241
+ width: '',
242
+ });
243
+ });
244
+ }
245
+ } else {
246
+ container.css( 'right', '-' + wrap_width );
247
+
248
+ if( 'push' == layout_type ) {
249
+
250
+ $( 'body' ).css({
251
+ position: '',
252
+ 'margin-right' : '',
253
+ 'margin-left' : '',
254
+ });
255
+
256
+ setTimeout( function() {
257
+ $( 'body' ).removeClass( 'hfe-flyout-animating' ).css({
258
+ width: '',
259
+ });
260
+ });
261
+ }
262
+ }
263
+ }
264
+
265
+ function _eventClick( id ){
266
+
267
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
268
+
269
+ $( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).off( 'click' ).on( 'click', function( event ) {
270
+
271
+ var $this = $( this );
272
+
273
+ if( $this.hasClass( 'sub-menu-active' ) ) {
274
+
275
+ if( ! $this.next().hasClass( 'sub-menu-open' ) ) {
276
+
277
+ $this.find( 'a' ).attr( 'aria-expanded', 'false' );
278
+
279
+ if( 'horizontal' !== layout ){
280
+
281
+ event.preventDefault();
282
+
283
+ $this.next().css( 'position', 'relative' );
284
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
285
+
286
+ event.preventDefault();
287
+
288
+ $this.next().css( 'position', 'relative' );
289
+ }else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
290
+
291
+ event.preventDefault();
292
+
293
+ $this.next().css( 'position', 'relative' );
294
+ }
295
+
296
+ $this.removeClass( 'sub-menu-active' );
297
+ $this.next().removeClass( 'sub-menu-open' );
298
+ $this.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
299
+ $this.next().css( { 'transition': 'none'} );
300
+ }else{
301
+
302
+ $this.find( 'a' ).attr( 'aria-expanded', 'false' );
303
+
304
+ $this.removeClass( 'sub-menu-active' );
305
+ $this.next().removeClass( 'sub-menu-open' );
306
+ $this.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
307
+ $this.next().css( { 'transition': 'none'} );
308
+
309
+ if ( 'horizontal' !== layout ){
310
+
311
+ $this.next().css( 'position', 'relative' );
312
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
313
+
314
+ $this.next().css( 'position', 'relative' );
315
+
316
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
317
+
318
+ $this.next().css( 'position', 'absolute' );
319
+ }
320
+ }
321
+ }else {
322
+
323
+ $this.find( 'a' ).attr( 'aria-expanded', 'true' );
324
+ if ( 'horizontal' !== layout ) {
325
+
326
+ event.preventDefault();
327
+ $this.next().css( 'position', 'relative');
328
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
329
+
330
+ event.preventDefault();
331
+ $this.next().css( 'position', 'relative');
332
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
333
+ event.preventDefault();
334
+
335
+ if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
336
+
337
+ $this.next().css( 'position', 'relative');
338
+ } else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
339
+
340
+ $this.next().css( 'position', 'absolute');
341
+ }
342
+ }
343
+
344
+ $this.addClass( 'sub-menu-active' );
345
+ $this.next().addClass( 'sub-menu-open' );
346
+ $this.next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
347
+ $this.next().css( { 'transition': '0.3s ease'} );
348
+ }
349
+ });
350
+
351
+ $( '.elementor-element-' + id + ' .hfe-menu-toggle' ).off( 'click keyup' ).on( 'click keyup',function( event ) {
352
+
353
+ var $this = $( this );
354
+
355
+ if( $this.parent().parent().hasClass( 'menu-active' ) ) {
356
+
357
+ event.preventDefault();
358
+
359
+ $this.parent().parent().removeClass( 'menu-active' );
360
+ $this.parent().parent().next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
361
+
362
+ if ( 'horizontal' !== layout ) {
363
+
364
+ $this.parent().parent().next().css( 'position', 'relative');
365
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
366
+
367
+ $this.parent().parent().next().css( 'position', 'relative');
368
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
369
+
370
+ if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
371
+
372
+ $this.parent().parent().next().css( 'position', 'relative');
373
+ } else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
374
+
375
+ $this.parent().parent().next().css( 'position', 'absolute');
376
+ }
377
+ }
378
+ }else {
379
+
380
+ event.preventDefault();
381
+
382
+ $this.parent().parent().addClass( 'menu-active' );
383
+
384
+ $this.parent().parent().next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
385
+
386
+ if ( 'horizontal' !== layout ) {
387
+
388
+ $this.parent().parent().next().css( 'position', 'relative');
389
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
390
+
391
+ $this.parent().parent().next().css( 'position', 'relative');
392
+ } else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1023px )" ).matches ) {
393
+
394
+ if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
395
+
396
+ $this.parent().parent().next().css( 'position', 'relative');
397
+ } else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
398
+
399
+ $this.parent().parent().next().css( 'position', 'absolute');
400
+ }
401
+ }
402
+ }
403
+ });
404
+ }
405
+
406
+ function _borderClass( id ){
407
+
408
+ $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
409
+
410
+ if ( window.matchMedia( "( max-width: 767px )" ).matches ) {
411
+
412
+ if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet')){
413
+
414
+ $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
415
+ }else{
416
+
417
+ $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
418
+ }
419
+ }else if ( window.matchMedia( "( max-width: 1023px )" ).matches ) {
420
+
421
+ if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
422
+
423
+ $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
424
+ }else{
425
+
426
+ $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
427
+ }
428
+ }
429
+ }
430
+
431
+ function _toggleClick( id ){
432
+
433
+ if ( $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle i' ).parent().parent().hasClass( 'hfe-active-menu-full-width' ) ){
434
+
435
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle i' ).parent().parent().next().css( 'left', '0' );
436
+
437
+ var width = $( '.elementor-element-' + id ).closest('.elementor-section').outerWidth();
438
+ var sec_pos = $( '.elementor-element-' + id ).closest('.elementor-section').offset().left - $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle i' ).parent().parent().next().offset().left;
439
+
440
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle i' ).parent().parent().next().css( 'width', width + 'px' );
441
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle i' ).parent().parent().next().css( 'left', sec_pos + 'px' );
442
+ }
443
+
444
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle .hfe-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function( event ) {
445
+
446
+ var $this = $( this ).find( 'i' );
447
+
448
+ if ( $this.parent().parent().hasClass( 'hfe-active-menu' ) ) {
449
+
450
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
451
+ var full_width = $this.parent().parent().next().data( 'full-width' );
452
+ var toggle_icon = $( '.elementor-element-' + id + ' nav' ).data( 'toggle-icon' );
453
+
454
+ $( '.elementor-element-' + id).find( '.hfe-nav-menu-icon i' ).attr( 'class', toggle_icon );
455
+
456
+ $this.parent().parent().removeClass( 'hfe-active-menu' );
457
+ $this.parent().parent().attr( 'aria-expanded', 'false' );
458
+
459
+ if ( 'yes' == full_width ){
460
+
461
+ $this.parent().parent().removeClass( 'hfe-active-menu-full-width' );
462
+
463
+ $this.parent().parent().next().css( 'width', 'auto' );
464
+ $this.parent().parent().next().css( 'left', '0' );
465
+ $this.parent().parent().next().css( 'z-index', '0' );
466
+ }
467
+ } else {
468
+
469
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
470
+ var full_width = $this.parent().parent().next().data( 'full-width' );
471
+ var close_icon = $( '.elementor-element-' + id + ' nav' ).data( 'close-icon' );
472
+
473
+ $( '.elementor-element-' + id).find( '.hfe-nav-menu-icon i' ).attr( 'class', close_icon );
474
+
475
+ $this.parent().parent().addClass( 'hfe-active-menu' );
476
+ $this.parent().parent().attr( 'aria-expanded', 'true' );
477
+
478
+ if ( 'yes' == full_width ){
479
+
480
+ $this.parent().parent().addClass( 'hfe-active-menu-full-width' );
481
+
482
+ var width = $( '.elementor-element-' + id ).closest('.elementor-section').outerWidth();
483
+ var sec_pos = $( '.elementor-element-' + id ).closest('.elementor-section').offset().left - $this.parent().parent().next().offset().left;
484
+
485
+ $this.parent().parent().next().css( 'width', width + 'px' );
486
+ $this.parent().parent().next().css( 'left', sec_pos + 'px' );
487
+ $this.parent().parent().next().css( 'z-index', '9999' );
488
+ }
489
+ }
490
+
491
+ if( $( '.elementor-element-' + id + ' nav' ).hasClass( 'menu-is-active' ) ) {
492
+
493
+ $( '.elementor-element-' + id + ' nav' ).removeClass( 'menu-is-active' );
494
+ }else {
495
+
496
+ $( '.elementor-element-' + id + ' nav' ).addClass( 'menu-is-active' );
497
+ }
498
+ } );
499
+ }
500
+
501
+ $( window ).on( 'elementor/frontend/init', function () {
502
+
503
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/navigation-menu.default', WidgethfeNavMenuHandler );
504
+
505
+ });
506
+
507
+ } )( jQuery );
inc/widgets-css/frontend.css ADDED
@@ -0,0 +1,1559 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Navigation Menu CSS */
2
+
3
+ ul.hfe-nav-menu,
4
+ .hfe-nav-menu li,
5
+ .hfe-nav-menu ul {
6
+ list-style: none !important;
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+ .hfe-nav-menu li.menu-item {
12
+ position: relative;
13
+ }
14
+
15
+ .hfe-flyout-container .hfe-nav-menu li.menu-item {
16
+ position: relative;
17
+ background: unset;
18
+ }
19
+
20
+ .hfe-nav-menu .sub-menu li.menu-item {
21
+ position: relative;
22
+ background: inherit;
23
+ }
24
+
25
+ div.hfe-nav-menu,
26
+ .elementor-widget-hfe-nav-menu .elementor-widget-container {
27
+ -js-display: flex;
28
+ display: -webkit-box;
29
+ display: -webkit-flex;
30
+ display: -moz-box;
31
+ display: -ms-flexbox;
32
+ display: flex;
33
+ -webkit-box-orient: vertical;
34
+ -webkit-box-direction: normal;
35
+ -webkit-flex-direction: column;
36
+ -moz-box-orient: vertical;
37
+ -moz-box-direction: normal;
38
+ -ms-flex-direction: column;
39
+ flex-direction: column;
40
+ }
41
+
42
+ .hfe-nav-menu__layout-horizontal,
43
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
44
+ -js-display: flex;
45
+ display: -webkit-box;
46
+ display: -webkit-flex;
47
+ display: -moz-box;
48
+ display: -ms-flexbox;
49
+ display: flex;
50
+ }
51
+
52
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
53
+ -webkit-flex-wrap: wrap;
54
+ -ms-flex-wrap: wrap;
55
+ flex-wrap: wrap;
56
+ }
57
+
58
+ .hfe-nav-menu .parent-has-no-child .hfe-menu-toggle {
59
+ display: none;
60
+ }
61
+
62
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu,
63
+ .hfe-submenu-action-hover .hfe-layout-vertical .hfe-nav-menu .sub-menu {
64
+ position: absolute;
65
+ top: 100%;
66
+ left: 0;
67
+ z-index: 16;
68
+ visibility: hidden;
69
+ opacity: 0;
70
+ text-align: left;
71
+ -webkit-transition: all 300ms ease-in;
72
+ transition: all 300ms ease-in;
73
+ }
74
+
75
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
76
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:focus > .sub-menu {
77
+ visibility: visible;
78
+ opacity: 1;
79
+ }
80
+
81
+ .hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
82
+ .hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:focus > .sub-menu {
83
+ visibility: hidden;
84
+ opacity: 0;
85
+ }
86
+
87
+ .hfe-nav-menu .menu-item-has-children .sub-menu {
88
+ position: absolute;
89
+ top: 100%;
90
+ left: 0;
91
+ z-index: 9999;
92
+ visibility: hidden;
93
+ opacity: 0;
94
+ }
95
+
96
+ .hfe-flyout-container .hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu {
97
+ top: 0;
98
+ left: 0;
99
+ }
100
+
101
+ .hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu {
102
+ top: 0;
103
+ left: 100%;
104
+ }
105
+
106
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
107
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children.focus > .sub-menu {
108
+ visibility: visible;
109
+ opacity: 1;
110
+ -webkit-transition: all 300ms ease-out;
111
+ transition: all 300ms ease-out;
112
+ }
113
+
114
+ .hfe-nav-menu:before,
115
+ .hfe-nav-menu:after {
116
+ content: '';
117
+ display: table;
118
+ clear: both;
119
+ }
120
+
121
+
122
+ /* Alignemnt CSS */
123
+ .hfe-nav-menu__align-right .hfe-nav-menu {
124
+ margin-left: auto;
125
+ -webkit-box-pack: end;
126
+ -ms-flex-pack: end;
127
+ -webkit-justify-content: flex-end;
128
+ -moz-box-pack: end;
129
+ justify-content: flex-end; }
130
+
131
+ .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
132
+ .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
133
+ -webkit-box-pack: end;
134
+ -ms-flex-pack: end;
135
+ -webkit-justify-content: flex-end;
136
+ -moz-box-pack: end;
137
+ justify-content: flex-end; }
138
+
139
+ .hfe-nav-menu__align-left .hfe-nav-menu {
140
+ margin-right: auto;
141
+ -webkit-box-pack: start;
142
+ -ms-flex-pack: start;
143
+ -webkit-justify-content: flex-start;
144
+ -moz-box-pack: start;
145
+ justify-content: flex-start; }
146
+
147
+ .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
148
+ .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
149
+ -webkit-box-pack: start;
150
+ -ms-flex-pack: start;
151
+ -webkit-justify-content: flex-start;
152
+ -moz-box-pack: start;
153
+ justify-content: flex-start; }
154
+
155
+ .hfe-nav-menu__align-center .hfe-nav-menu {
156
+ margin-left: auto;
157
+ margin-right: auto;
158
+ -webkit-box-pack: center;
159
+ -ms-flex-pack: center;
160
+ -webkit-justify-content: center;
161
+ -moz-box-pack: center;
162
+ justify-content: center; }
163
+
164
+ .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
165
+ .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item{
166
+ -webkit-box-pack: center;
167
+ -ms-flex-pack: center;
168
+ -webkit-justify-content: center;
169
+ -moz-box-pack: center;
170
+ justify-content: center; }
171
+
172
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu{
173
+ -js-display: flex;
174
+ display: -webkit-box;
175
+ display: -webkit-flex;
176
+ display: -moz-box;
177
+ display: -ms-flexbox;
178
+ display: flex;
179
+ -webkit-flex-wrap: wrap;
180
+ -ms-flex-wrap: wrap;
181
+ flex-wrap: wrap;
182
+ }
183
+ .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
184
+ width: 100%;
185
+ }
186
+ .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.menu-item {
187
+ -webkit-box-flex: 1;
188
+ -ms-flex-positive: 1;
189
+ -webkit-flex-grow: 1;
190
+ -moz-box-flex: 1;
191
+ flex-grow: 1; }
192
+ .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item {
193
+ -webkit-box-pack: center;
194
+ -ms-flex-pack: center;
195
+ -webkit-justify-content: center;
196
+ -moz-box-pack: center;
197
+ justify-content: center; }
198
+
199
+ /* Alignment CSS ends */
200
+
201
+ .hfe-active-menu + nav li:not(:last-child) a.hfe-menu-item,
202
+ .hfe-active-menu + nav li:not(:last-child) a.hfe-sub-menu-item {
203
+ border-bottom-width: 0;
204
+ }
205
+
206
+ /* Horizontal Menu */
207
+
208
+ .hfe-nav-menu a.hfe-menu-item,
209
+ .hfe-nav-menu a.hfe-sub-menu-item {
210
+ line-height: 1;
211
+ text-decoration: none;
212
+ -js-display: flex;
213
+ display: -webkit-box;
214
+ display: -webkit-flex;
215
+ display: -moz-box;
216
+ display: -ms-flexbox;
217
+ display: flex;
218
+ -webkit-box-pack: justify;
219
+ -moz-box-pack: justify;
220
+ -ms-flex-pack: justify;
221
+ -webkit-box-shadow: none;
222
+ box-shadow: none;
223
+ -webkit-box-align: center;
224
+ -webkit-align-items: center;
225
+ -moz-box-align: center;
226
+ -ms-flex-align: center;
227
+ align-items: center;
228
+ -webkit-justify-content: space-between;
229
+ justify-content: space-between;
230
+ }
231
+
232
+ .hfe-nav-menu a.hfe-menu-item:hover,
233
+ .hfe-nav-menu a.hfe-sub-menu-item:hover {
234
+ text-decoration: none;
235
+ }
236
+
237
+ .hfe-nav-menu .sub-menu {
238
+ min-width: 220px;
239
+ margin: 0;
240
+ z-index: 9999;
241
+ }
242
+
243
+ .hfe-nav-menu__layout-horizontal {
244
+ font-size: 0;
245
+ }
246
+
247
+ .hfe-nav-menu__layout-horizontal li.menu-item,
248
+ .hfe-nav-menu__layout-horizontal > li.menu-item {
249
+ font-size: medium;
250
+ }
251
+
252
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu{
253
+ -webkit-box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1);
254
+ box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1);
255
+ }
256
+
257
+ /* Icons CSS */
258
+ .hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-arrow i:before {
259
+ content: '';
260
+ }
261
+ .hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-arrow i:before {
262
+ content: '';
263
+ }
264
+ .hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-arrow i:before {
265
+ content: '+';
266
+ }
267
+ .hfe-submenu-icon-none .hfe-nav-menu .parent-has-child .sub-arrow {
268
+ display: none;
269
+ }
270
+
271
+ .hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before {
272
+ content: '';
273
+ }
274
+ .hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before {
275
+ content: '-';
276
+ }
277
+ .hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before {
278
+ content: '';
279
+ }
280
+
281
+ .rtl .hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
282
+ content: '';
283
+ }
284
+
285
+ .rtl .hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
286
+ content: '';
287
+ }
288
+
289
+ .hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
290
+ content: '';
291
+ }
292
+
293
+ .hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before {
294
+ content: '';
295
+ }
296
+ /* Icon CSS ends */
297
+
298
+ .hfe-nav-menu-icon {
299
+ padding: 0.35em;
300
+ border: 0 solid;
301
+ }
302
+
303
+ .hfe-nav-menu-icon i:focus {
304
+ outline: 0;
305
+ }
306
+
307
+ .hfe-has-submenu-container a.hfe-menu-item:focus,
308
+ .hfe-has-submenu-container a.hfe-sub-menu-item:focus {
309
+ outline: 0;
310
+ }
311
+ /* Submenus */
312
+
313
+ .hfe-nav-menu .menu-item-has-children:focus,
314
+ .hfe-nav-menu .menu-item-has-children .sub-menu:focus,
315
+ .hfe-nav-menu .menu-item-has-children-container:focus {
316
+ outline: 0;
317
+ }
318
+ .hfe-nav-menu .menu-item-has-children-container {
319
+ position: relative;
320
+ }
321
+
322
+ .hfe-nav-menu__layout-expandible .sub-menu,
323
+ .hfe-nav-menu__layout-vertical .sub-menu,
324
+ .hfe-flyout-wrapper .sub-menu {
325
+ position: relative;
326
+ height: 0;
327
+ }
328
+
329
+ .hfe-nav-menu__submenu-arrow .hfe-menu-toggle:before,
330
+ .hfe-nav-menu__submenu-plus .hfe-menu-toggle:before,
331
+ .hfe-nav-menu__submenu-classic .hfe-menu-toggle:before {
332
+ font-family: 'Font Awesome 5 Free';
333
+ z-index: 1;
334
+ font-size: inherit;
335
+ font-weight: inherit;
336
+ line-height: 0;
337
+ }
338
+
339
+ .hfe-menu-item-center .hfe-nav-menu li a.hfe-menu-item,
340
+ .hfe-menu-item-center .hfe-nav-menu li a.hfe-sub-menu-item {
341
+ margin-right: 0px;
342
+ }
343
+
344
+ .hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-menu-item,
345
+ .hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-sub-menu-item {
346
+ margin-right: 0px;
347
+ }
348
+
349
+ .hfe-nav-menu__toggle-icon:before {
350
+ content: '\f0c9';
351
+ font-family: 'fontAwesome';
352
+ z-index: 1;
353
+ font-size: 24px;
354
+ font-weight: inherit;
355
+ font-style: normal;
356
+ line-height: 0;
357
+ }
358
+
359
+ .hfe-active-menu .hfe-nav-menu__toggle-icon:before {
360
+ content: '\f00d';
361
+ }
362
+
363
+ .hfe-nav-menu__layout-expandible {
364
+ -webkit-transition-property: display;
365
+ transition-property: display;
366
+ -webkit-transition-duration: .5s;
367
+ transition-duration: .5s;
368
+ -webkit-transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 );
369
+ transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 );
370
+ }
371
+
372
+ .hfe-nav-menu__layout-expandible {
373
+ visibility: hidden;
374
+ opacity: 0;
375
+ }
376
+
377
+ .hfe-nav-menu__layout-expandible .sub-menu {
378
+ visibility: hidden;
379
+ opacity: 0;
380
+ }
381
+
382
+ .hfe-active-menu + .hfe-nav-menu__layout-expandible {
383
+ visibility: visible;
384
+ opacity: 1;
385
+ height: auto;
386
+ }
387
+
388
+ .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-expandible,
389
+ .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
390
+ .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
391
+ position: absolute;
392
+ top: 100%;
393
+ }
394
+
395
+ .hfe-nav-menu__layout-expandible .menu-item-has-children .menu-item-has-children .sub-menu,
396
+ .hfe-nav-menu__layout-vertical .menu-item-has-children .menu-item-has-children .sub-menu {
397
+ top: 0;
398
+ left: 0;
399
+ }
400
+
401
+ .hfe-layout-expandible nav {
402
+ height: 0;
403
+ }
404
+
405
+ .hfe-nav-sub-menu-icon, .hfe-nav-menu__icon {
406
+ display: inline-block;
407
+ line-height: 1;
408
+ }
409
+
410
+ .hfe-nav-menu__toggle {
411
+ -js-display: flex;
412
+ display: -webkit-box;
413
+ display: -webkit-flex;
414
+ display: -moz-box;
415
+ display: -ms-flexbox;
416
+ display: flex;
417
+ font-size: 22px;
418
+ cursor: pointer;
419
+ border: 0 solid;
420
+ -webkit-border-radius: 3px;
421
+ border-radius: 3px;
422
+ color: #494c4f;
423
+ position: relative;
424
+ line-height: 1;
425
+ }
426
+
427
+ .hfe-nav-menu__toggle-icon {
428
+ display: inline-block;
429
+ font-size: inherit;
430
+ font-weight: normal;
431
+ font-style: normal;
432
+ font-variant: normal;
433
+ line-height: 1;
434
+ text-rendering: auto;
435
+ -webkit-font-smoothing: antialiased;
436
+ -moz-osx-font-smoothing: grayscale;
437
+ }
438
+
439
+ .hfe-nav-menu .sub-arrow {
440
+ font-size: 14px;
441
+ line-height: 1;
442
+ -js-display: flex;
443
+ display: -webkit-box;
444
+ display: -webkit-flex;
445
+ display: -moz-box;
446
+ display: -ms-flexbox;
447
+ display: flex;
448
+ cursor: pointer;
449
+ margin-top: -10px;
450
+ margin-bottom: -10px;
451
+ }
452
+
453
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
454
+ margin-left: 10px;
455
+ }
456
+
457
+ .hfe-nav-menu__layout-vertical .hfe-nav-menu .sub-arrow,
458
+ .hfe-layout-expandible .sub-arrow,
459
+ .hfe-flyout-wrapper .sub-arrow
460
+ {
461
+ padding: 10px;
462
+ }
463
+
464
+ .hfe-nav-menu .child-item,
465
+ .hfe-nav-menu__layout-vertical .hfe-nav-menu .child-item {
466
+ font-size: 14px;
467
+ line-height: 1;
468
+ padding: 10px 0 10px 10px;
469
+ margin-top: -10px;
470
+ margin-bottom: -10px;
471
+ position: absolute;
472
+ right: 0;
473
+ margin-right: 20px;
474
+ }
475
+
476
+ .hfe-layout-horizontal .hfe-nav-menu__toggle,
477
+ .hfe-layout-vertical .hfe-nav-menu__toggle {
478
+ visibility: hidden;
479
+ opacity: 0;
480
+ display: none;
481
+ }
482
+
483
+ .hfe-nav-menu-icon {
484
+ display: inline-block;
485
+ line-height: 1;
486
+ text-align: center;
487
+ }
488
+
489
+ .hfe-nav-menu__layout-expandible .saved-content,
490
+ .hfe-nav-menu__layout-expandible .sub-menu,
491
+ .hfe-nav-menu__layout-expandible .child,
492
+ .hfe-nav-menu__layout-vertical .saved-content,
493
+ .hfe-nav-menu__layout-vertical .sub-menu,
494
+ .hfe-nav-menu__layout-vertical .child,
495
+ .hfe-flyout-container .saved-content,
496
+ .hfe-flyout-container .sub-menu,
497
+ .hfe-flyout-container .child {
498
+ left: 0 !important;
499
+ width: 100% !important;
500
+ }
501
+
502
+ .hfe-flyout-container .hfe-nav-menu .sub-menu {
503
+ background: unset;
504
+ }
505
+
506
+ .hfe-nav-menu__layout-vertical .hfe-menu-toggle:hover,
507
+ .hfe-nav-menu__layout-expandible .hfe-menu-toggle:hover,
508
+ .hfe-flyout-wrapper .hfe-menu-toggle:hover {
509
+ border:1px dotted;
510
+ }
511
+
512
+ .hfe-nav-menu__layout-vertical .hfe-menu-toggle,
513
+ .hfe-nav-menu__layout-expandible .hfe-menu-toggle,
514
+ .hfe-flyout-wrapper .hfe-menu-toggle {
515
+ border:1px dotted transparent;
516
+ }
517
+
518
+ /* Common Animation CSS */
519
+
520
+ .hfe-nav-menu .menu-item a:before,
521
+ .hfe-nav-menu .menu-item a:after {
522
+ display: block;
523
+ position: absolute;
524
+ -webkit-transition: 0.3s;
525
+ transition: 0.3s;
526
+ -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
527
+ transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }
528
+
529
+ .hfe-nav-menu .menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-nav-menu .menu-item a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
530
+ opacity: 0; }
531
+
532
+ .hfe-nav-menu .menu-item a.hfe-menu-item:hover:before,
533
+ .hfe-nav-menu .menu-item a.hfe-menu-item:hover:after,
534
+ .hfe-nav-menu .menu-item a.hfe-menu-item:focus:before,
535
+ .hfe-nav-menu .menu-item a.hfe-menu-item:focus:after,
536
+ .hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:before,
537
+ .hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:after,
538
+ .hfe-nav-menu .current-menu-item:before,
539
+ .hfe-nav-menu .current-menu-item:after {
540
+ -webkit-transform: scale(1);
541
+ -ms-transform: scale(1);
542
+ transform: scale(1);
543
+ }
544
+
545
+ /* Double Line / Underline / Overline Style */
546
+
547
+ .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:after {
548
+ height: 3px;
549
+ width: 100%;
550
+ left: 0;
551
+ background-color: #55595c;
552
+ z-index: 2;
553
+ }
554
+
555
+ .hfe-pointer__double-line.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__double-line.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
556
+ height: 0;
557
+ width: 0;
558
+ left: 50%;
559
+ }
560
+
561
+ .hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
562
+ top: 10px;
563
+ }
564
+
565
+ .hfe-pointer__double-line.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-out .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
566
+ bottom: 10px;
567
+ }
568
+
569
+ .hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
570
+ top: -10px;
571
+ }
572
+
573
+ .hfe-pointer__double-line.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__overline.hfe-animation__drop-in .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
574
+ bottom: -10px;
575
+ }
576
+
577
+ .hfe-pointer__double-line.hfe-animation__none, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item, .hfe-pointer__underline.hfe-animation__none, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item, .hfe-pointer__overline.hfe-animation__none, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item {
578
+ -webkit-transition-duration: 0s;
579
+ transition-duration: 0s;
580
+ }
581
+
582
+ .hfe-pointer__double-line.hfe-animation__none:before, .hfe-pointer__double-line.hfe-animation__none:after, .hfe-pointer__double-line.hfe-animation__none:hover, .hfe-pointer__double-line.hfe-animation__none:focus, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__double-line.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__underline.hfe-animation__none:before, .hfe-pointer__underline.hfe-animation__none:after, .hfe-pointer__underline.hfe-animation__none:hover, .hfe-pointer__underline.hfe-animation__none:focus, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__underline.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__overline.hfe-animation__none:before, .hfe-pointer__overline.hfe-animation__none:after, .hfe-pointer__overline.hfe-animation__none:hover, .hfe-pointer__overline.hfe-animation__none:focus, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__overline.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
583
+ -webkit-transition-duration: 0s;
584
+ transition-duration: 0s;
585
+ }
586
+
587
+ .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:before {
588
+ content: '';
589
+ top: 0;
590
+ }
591
+
592
+ .hfe-pointer__double-line.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before, .hfe-pointer__overline.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
593
+ width: 10px;
594
+ left: -20px;
595
+ }
596
+
597
+ .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:after {
598
+ content: '';
599
+ bottom: 0;
600
+ }
601
+
602
+ .hfe-pointer__double-line.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after, .hfe-pointer__underline.hfe-animation__slide .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):after {
603
+ width: 10px;
604
+ left: -webkit-calc( 100% + 20px);
605
+ left: calc( 100% + 20px);
606
+ }
607
+
608
+
609
+ /* Framed Style */
610
+
611
+ .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:after {
612
+ background: transparent;
613
+ left: 0;
614
+ top: 0;
615
+ bottom: 0;
616
+ right: 0;
617
+ border: 3px solid #55595c;
618
+ }
619
+
620
+ .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before {
621
+ content: '';
622
+ }
623
+
624
+ .hfe-pointer__framed.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
625
+ -webkit-transform: scale(0.75);
626
+ -ms-transform: scale(0.75);
627
+ transform: scale(0.75);
628
+ }
629
+
630
+ .hfe-pointer__framed.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
631
+ -webkit-transform: scale(1.25);
632
+ -ms-transform: scale(1.25);
633
+ transform: scale(1.25);
634
+ }
635
+
636
+ .hfe-pointer__framed.hfe-animation__grow .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:before {
637
+ -webkit-transition: opacity 0.2s, -webkit-transform 0.4s;
638
+ transition: opacity 0.2s, -webkit-transform 0.4s;
639
+ transition: opacity 0.2s, transform 0.4s;
640
+ transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s;
641
+ }
642
+
643
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:after {
644
+ width: 3px;
645
+ height: 3px;
646
+ }
647
+
648
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:before {
649
+ border-width: 0 0 3px 3px;
650
+ -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
651
+ transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
652
+ }
653
+
654
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:after {
655
+ content: '';
656
+ top: initial;
657
+ bottom: 0;
658
+ left: initial;
659
+ right: 0;
660
+ border-width: 3px 3px 0 0;
661
+ -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
662
+ transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
663
+ }
664
+
665
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:before, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:after {
666
+ width: 100%;
667
+ height: 100%;
668
+ }
669
+
670
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:before {
671
+ -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
672
+ transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
673
+ }
674
+
675
+ .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__draw .current-menu-item:after {
676
+ -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
677
+ transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
678
+ }
679
+
680
+ .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:after {
681
+ width: 3px;
682
+ height: 3px;
683
+ }
684
+
685
+ .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:before {
686
+ border-width: 3px 0 0 3px;
687
+ }
688
+
689
+ .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:after {
690
+ content: '';
691
+ top: initial;
692
+ bottom: 0;
693
+ left: initial;
694
+ right: 0;
695
+ border-width: 0 3px 3px 0;
696
+ }
697
+
698
+ .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__framed.hfe-animation__corners .current-menu-item:before, .hfe-pointer__framed.hfe-animation__corners .current-menu-item:after {
699
+ width: 100%;
700
+ height: 100%;
701
+ -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s;
702
+ transition: opacity 0.002s, width 0.4s, height 0.4s;
703
+ }
704
+
705
+ .hfe-pointer__framed.hfe-animation__none, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item {
706
+ -webkit-transition-duration: 0s;
707
+ transition-duration: 0s;
708
+ }
709
+
710
+ .hfe-pointer__framed.hfe-animation__none:before, .hfe-pointer__framed.hfe-animation__none:after, .hfe-pointer__framed.hfe-animation__none:hover, .hfe-pointer__framed.hfe-animation__none:focus, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
711
+ -webkit-transition-duration: 0s;
712
+ transition-duration: 0s;
713
+ }
714
+
715
+ /* Background Style */
716
+
717
+ .hfe-pointer__background .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__background .menu-item.parent a.hfe-menu-item:after {
718
+ content: '';
719
+ -webkit-transition: 0.3s;
720
+ transition: 0.3s;
721
+ }
722
+
723
+ .hfe-pointer__background .menu-item.parent a.hfe-menu-item:before {
724
+ top: 0;
725
+ left: 0;
726
+ right: 0;
727
+ bottom: 0;
728
+ background: #55595c;
729
+ z-index: -1;
730
+ }
731
+
732
+ .hfe-pointer__background .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__background .menu-item.parent a.hfe-menu-item:focus, .hfe-pointer__background .menu-item.parent a.hfe-menu-item.highlighted, .hfe-pointer__background .current-menu-item {
733
+ color: #fff;
734
+ }
735
+
736
+ .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:before {
737
+ -webkit-transform: scale(0.5);
738
+ -ms-transform: scale(0.5);
739
+ transform: scale(0.5);
740
+ }
741
+
742
+ .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__grow .current-menu-item:before {
743
+ -webkit-transform: scale(1);
744
+ -ms-transform: scale(1);
745
+ transform: scale(1);
746
+ opacity: 1;
747
+ }
748
+
749
+ .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
750
+ -webkit-transform: scale(1.2);
751
+ -ms-transform: scale(1.2);
752
+ transform: scale(1.2);
753
+ -webkit-transition: 0.3s;
754
+ transition: 0.3s;
755
+ }
756
+
757
+ .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shrink .current-menu-item:before {
758
+ -webkit-transition: opacity 0.15s, -webkit-transform 0.4s;
759
+ transition: opacity 0.15s, -webkit-transform 0.4s;
760
+ transition: opacity 0.15s, transform 0.4s;
761
+ transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s;
762
+ }
763
+
764
+ .hfe-pointer__background.hfe-animation__sweep-left .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
765
+ left: 100%;
766
+ }
767
+
768
+ .hfe-pointer__background.hfe-animation__sweep-right .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
769
+ right: 100%;
770
+ }
771
+
772
+ .hfe-pointer__background.hfe-animation__sweep-up .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
773
+ top: 100%;
774
+ }
775
+
776
+ .hfe-pointer__background.hfe-animation__sweep-down .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
777
+ bottom: 100%;
778
+ }
779
+
780
+ .hfe-pointer__background.hfe-animation__shutter-out-vertical .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
781
+ bottom: 50%;
782
+ top: 50%;
783
+ }
784
+
785
+ .hfe-pointer__background.hfe-animation__shutter-out-horizontal .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before {
786
+ right: 50%;
787
+ left: 50%;
788
+ }
789
+
790
+ .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:after {
791
+ top: 0;
792
+ left: 0;
793
+ right: 0;
794
+ bottom: 0;
795
+ background: #55595c;
796
+ z-index: -1;
797
+ }
798
+
799
+ .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:before {
800
+ top: 0;
801
+ bottom: 100%;
802
+ }
803
+
804
+ .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:after {
805
+ top: 100%;
806
+ bottom: 0;
807
+ }
808
+
809
+ .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shutter-in-vertical .current-menu-item:before {
810
+ bottom: 50%;
811
+ }
812
+
813
+ .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__background.hfe-animation__shutter-in-vertical .current-menu-item:after {
814
+ top: 50%;
815
+ }
816
+
817
+ .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:before {
818
+ right: 0;
819
+ left: 100%;
820
+ }
821
+
822
+ .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:after {
823
+ right: 100%;
824
+ left: 0;
825
+ }
826
+
827
+ .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:hover:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:focus:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item.highlighted:before, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .current-menu-item:before {
828
+ left: 50%;
829
+ }
830
+
831
+ .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:hover:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:focus:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item.highlighted:after, .hfe-pointer__background.hfe-animation__shutter-in-horizontal .current-menu-item:after {
832
+ right: 50%;
833
+ }
834
+
835
+ .hfe-pointer__background.hfe-animation__none, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item {
836
+ -webkit-transition-duration: 0s;
837
+ transition-duration: 0s;
838
+ }
839
+
840
+ .hfe-pointer__background.hfe-animation__none:before, .hfe-pointer__background.hfe-animation__none:after, .hfe-pointer__background.hfe-animation__none:hover, .hfe-pointer__background.hfe-animation__none:focus, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
841
+ -webkit-transition-duration: 0s;
842
+ transition-duration: 0s;
843
+ }
844
+
845
+ /* Text Style */
846
+
847
+ .hfe-pointer__text.hfe-animation__skew .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__skew .menu-item.parent a.hfe-menu-item:focus {
848
+ -webkit-transform: skew(-8deg);
849
+ -ms-transform: skew(-8deg);
850
+ transform: skew(-8deg);
851
+ }
852
+
853
+ .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item:focus {
854
+ -webkit-transform: scale(1.2);
855
+ -ms-transform: scale(1.2);
856
+ transform: scale(1.2);
857
+ }
858
+
859
+ .hfe-pointer__text.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:focus {
860
+ -webkit-transform: scale(0.8);
861
+ -ms-transform: scale(0.8);
862
+ transform: scale(0.8);
863
+ }
864
+
865
+ .hfe-pointer__text.hfe-animation__float .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__float .menu-item.parent a.hfe-menu-item:focus {
866
+ -webkit-transform: translateY(-8px);
867
+ -ms-transform: translateY(-8px);
868
+ transform: translateY(-8px);
869
+ }
870
+
871
+ .hfe-pointer__text.hfe-animation__sink .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__sink .menu-item.parent a.hfe-menu-item:focus {
872
+ -webkit-transform: translateY(8px);
873
+ -ms-transform: translateY(8px);
874
+ transform: translateY(8px);
875
+ }
876
+
877
+ .hfe-pointer__text.hfe-animation__rotate .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__rotate .menu-item.parent a.hfe-menu-item:focus {
878
+ -webkit-transform: rotate(6deg);
879
+ -ms-transform: rotate(6deg);
880
+ transform: rotate(6deg);
881
+ }
882
+
883
+ .hfe-pointer__text.hfe-animation__none, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item {
884
+ -webkit-transition-duration: 0s;
885
+ transition-duration: 0s;
886
+ }
887
+
888
+ .hfe-pointer__text.hfe-animation__none:before, .hfe-pointer__text.hfe-animation__none:after, .hfe-pointer__text.hfe-animation__none:hover, .hfe-pointer__text.hfe-animation__none:focus, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item:focus {
889
+ -webkit-transition-duration: 0s;
890
+ transition-duration: 0s;
891
+ }
892
+
893
+ .hfe-flyout-overlay {
894
+ display: none;
895
+ position: fixed;
896
+ top: 0;
897
+ bottom: 0;
898
+ left: 0;
899
+ right: 0;
900
+ z-index: 999998;
901
+ background: url(../images/shade.png) repeat;
902
+ background: rgba(0,0,0,.6);
903
+ cursor: pointer;
904
+ -webkit-backface-visibility: hidden;
905
+ }
906
+
907
+ .hfe-flyout-animating,
908
+ .hfe-side,
909
+ .hfe-flyout-overlay {
910
+ -webkit-transition: all 0.3s;
911
+ transition: all 0.3s;
912
+ }
913
+
914
+ .hfe-flyout-close {
915
+ position: absolute;
916
+ top: 0;
917
+ right: 0;
918
+ margin: 5px;
919
+ width: 23px;
920
+ height: 23px;
921
+ line-height: 23px;
922
+ font-size: 23px;
923
+ display: block;
924
+ cursor: pointer;
925
+ }
926
+
927
+ .hfe-flyout-wrapper .hfe-side.hfe-flyout-left {
928
+ top: 0;
929
+ bottom: 0;
930
+ left: -100%;
931
+ right: auto;
932
+ height: 100%;
933
+ /*height: 100vh;*/
934
+ width: 300px;
935
+ max-width: 100%;
936
+ max-width: 100vw;
937
+ }
938
+
939
+ .hfe-flyout-wrapper .hfe-side {
940
+ display: block;
941
+ position: fixed;
942
+ z-index: 999999;
943
+ padding: 0;
944
+ margin: 0;
945
+ -webkit-overflow-scrolling: touch;
946
+ -webkit-backface-visibility: hidden;
947
+ }
948
+
949
+ .hfe-flyout-content.push {
950
+ color: #ffffff;
951
+ }
952
+
953
+ .hfe-flyout-content ul li {
954
+ color: #ffffff;
955
+ }
956
+
957
+ /* ===========================================================
958
+ * Flyout Location
959
+ * ======================================================== */
960
+
961
+ .hfe-flyout-wrapper .hfe-side {
962
+ /* Allows iframes and google maps to display correctly while still being "hidden" */
963
+ display: block;
964
+ position: fixed;
965
+ z-index: 999999;
966
+ padding: 0;
967
+ margin: 0;
968
+ -webkit-overflow-scrolling: touch;
969
+ -webkit-backface-visibility: hidden;
970
+ }
971
+
972
+ .hfe-flyout-wrapper .hfe-side.hfe-flyout-right {
973
+ top: 0;
974
+ bottom: 0;
975
+ left: auto;
976
+ right: -100%; /* default */
977
+ height: 100%;
978
+ /*height: 100vh;*/
979
+ width: 300px; /* default */
980
+ max-width: 100%;
981
+ }
982
+
983
+ .hfe-flyout-wrapper .hfe-side.hfe-flyout-left {
984
+ top: 0;
985
+ bottom: 0;
986
+ left: -100%; /* default */
987
+ right: auto;
988
+ height: 100%;
989
+ /*height: 100vh;*/
990
+ width: 300px; /* default */
991
+ max-width: 100%;
992
+ max-width: 100vw;
993
+ }
994
+
995
+ .hfe-flyout-wrapper .hfe-side.top {
996
+ top: -100%; /* default */
997
+ bottom: auto;
998
+ left: 0;
999
+ right: 0;
1000
+ width: 100%;
1001
+ width: 100vw;
1002
+ height: 300px; /* default */
1003
+ max-height: 100%;
1004
+ }
1005
+
1006
+ .hfe-flyout-wrapper .hfe-side.bottom {
1007
+ top: auto;
1008
+ bottom: -100%; /* default */
1009
+ left: 0;
1010
+ right: 0;
1011
+ width: 100%;
1012
+ width: 100vw;
1013
+ height: 300px; /* default */
1014
+ max-height: 100%;
1015
+ }
1016
+
1017
+ /* ===========================================================
1018
+ * Flyout Container
1019
+ * ======================================================== */
1020
+
1021
+ .hfe-flyout-content {
1022
+ height: 100%;
1023
+ overflow-x: hidden;
1024
+ overflow-y: auto;
1025
+ line-height: 1.4em;
1026
+ color: #fff;
1027
+ }
1028
+ /* iOS fix */
1029
+ @media (max-width:1024px) {
1030
+ .hfe-flyout-content {
1031
+ -webkit-transform: translateZ(0);
1032
+ transform: translateZ(0);
1033
+ }
1034
+ }
1035
+
1036
+ .hfe-flyout-content::-webkit-scrollbar {
1037
+ display: none;
1038
+ }
1039
+
1040
+ .admin-bar .hfe-side {
1041
+ margin-top: 32px;
1042
+ }
1043
+
1044
+ /* Dropdown animation CSS */
1045
+
1046
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu {
1047
+ -webkit-transform: translateY(20%);
1048
+ -ms-transform: translateY(20%);
1049
+ transform: translateY(20%);
1050
+ opacity: 0;
1051
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
1052
+ -webkit-transition: all 0.1s;
1053
+ transition: all 0.1s;
1054
+ }
1055
+
1056
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu {
1057
+ -webkit-transform: translateY(0);
1058
+ -ms-transform: translateY(0);
1059
+ transform: translateY(0);
1060
+ opacity: 1;
1061
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1062
+ }
1063
+
1064
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu {
1065
+ -webkit-transform: translateY(-20%);
1066
+ -ms-transform: translateY(-20%);
1067
+ transform: translateY(-20%);
1068
+ opacity: 0;
1069
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
1070
+ -webkit-transition: all 0.1s;
1071
+ transition: all 0.1s;
1072
+ }
1073
+
1074
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu {
1075
+ -webkit-transform: translateY(0);
1076
+ -ms-transform: translateY(0);
1077
+ transform: translateY(0);
1078
+ opacity: 1;
1079
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1080
+ }
1081
+
1082
+ /* Tablet */
1083
+ @media only screen and ( max-width: 1023px ) {
1084
+
1085
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal li,
1086
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu{
1087
+ width: 100%;
1088
+ margin-right:0px;
1089
+ }
1090
+
1091
+ .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
1092
+ .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle {
1093
+ display: block;
1094
+ }
1095
+
1096
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1097
+ visibility: hidden;
1098
+ opacity: 0;
1099
+ }
1100
+
1101
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1102
+ visibility: visible;
1103
+ opacity: 1;
1104
+ }
1105
+
1106
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal,
1107
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
1108
+ visibility: hidden;
1109
+ opacity: 0;
1110
+ height: 0;
1111
+ }
1112
+
1113
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal,
1114
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-vertical {
1115
+ visibility: visible;
1116
+ opacity: 1;
1117
+ height: auto;
1118
+ }
1119
+
1120
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1121
+ position: relative;
1122
+ }
1123
+
1124
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
1125
+ .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
1126
+ position: absolute;
1127
+ }
1128
+
1129
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
1130
+ visibility: hidden;
1131
+ opacity: 0;
1132
+ }
1133
+
1134
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu {
1135
+ top: 0;
1136
+ left: 0;
1137
+ }
1138
+
1139
+ .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
1140
+ .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle
1141
+ {
1142
+ visibility: visible;
1143
+ opacity: 1;
1144
+ display: block;
1145
+ }
1146
+
1147
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
1148
+ float: none;
1149
+ }
1150
+
1151
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
1152
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
1153
+ .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu {
1154
+ visibility: hidden;
1155
+ opacity: 0;
1156
+ -webkit-transition: none;
1157
+ transition: none;
1158
+ }
1159
+
1160
+ .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle:hover {
1161
+ border:1px dotted;
1162
+ }
1163
+
1164
+ .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle {
1165
+ border:1px dotted transparent;
1166
+ }
1167
+
1168
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
1169
+ position: relative;
1170
+ height: 0;
1171
+ }
1172
+
1173
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
1174
+ position: relative;
1175
+ height: 0;
1176
+ top: 0;
1177
+ }
1178
+
1179
+ .hfe-nav-menu__breakpoint-tablet .saved-content,
1180
+ .hfe-nav-menu__breakpoint-tablet .sub-menu,
1181
+ .hfe-nav-menu__breakpoint-tablet .child {
1182
+ left: 0 !important;
1183
+ width:auto !important;
1184
+ }
1185
+
1186
+ .hfe-nav-menu .sub-menu {
1187
+ min-width: auto;
1188
+ margin: 0;
1189
+ }
1190
+
1191
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
1192
+ padding: 10px;
1193
+ }
1194
+
1195
+ .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
1196
+ content: '';
1197
+ }
1198
+
1199
+ .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
1200
+ content: '';
1201
+ }
1202
+
1203
+ .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1204
+ content: '';
1205
+ }
1206
+
1207
+ .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1208
+ content: '';
1209
+ }
1210
+
1211
+ .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-plus .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1212
+ content: '-';
1213
+ }
1214
+
1215
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu .sub-menu{
1216
+ -webkit-box-shadow: none;
1217
+ box-shadow: none;
1218
+ }
1219
+
1220
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
1221
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1222
+ content: '';
1223
+ }
1224
+
1225
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
1226
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1227
+ content: ''
1228
+ }
1229
+
1230
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
1231
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
1232
+ content: '';
1233
+ }
1234
+
1235
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
1236
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
1237
+ content: ''
1238
+ }
1239
+
1240
+ /* Effect 1: Fade in and scale up */
1241
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
1242
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu,
1243
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
1244
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu {
1245
+ -webkit-transform: none;
1246
+ -ms-transform: none;
1247
+ transform: none;
1248
+ }
1249
+
1250
+ /*.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu ul.sub-menu ul.sub-menu li a{
1251
+ border-left: 16px solid transparent;
1252
+ }*/
1253
+
1254
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
1255
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before {
1256
+ background-color: unset!important;
1257
+ }
1258
+
1259
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{
1260
+ border: 0px!important;
1261
+ }
1262
+
1263
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text .menu-item.parent a.hfe-menu-item:focus{
1264
+ -webkit-transform: none!important;
1265
+ -ms-transform: none!important;
1266
+ transform: none!important;
1267
+ }
1268
+
1269
+ .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1270
+ .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item {
1271
+ -webkit-box-pack: justify;
1272
+ -webkit-justify-content: space-between;
1273
+ -moz-box-pack: justify;
1274
+ -ms-flex-pack: justify;
1275
+ justify-content: space-between;
1276
+ }
1277
+ }
1278
+
1279
+ /* Mobile */
1280
+ @media only screen and ( max-width: 767px ) {
1281
+
1282
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1283
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item {
1284
+ -webkit-box-pack: justify;
1285
+ -webkit-justify-content: space-between;
1286
+ -moz-box-pack: justify;
1287
+ -ms-flex-pack: justify;
1288
+ justify-content: space-between;
1289
+ }
1290
+
1291
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-horizontal .hfe-nav-menu__toggle,
1292
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1293
+ visibility: visible;
1294
+ opacity: 1;
1295
+ display: block;
1296
+ }
1297
+
1298
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal li.menu-item,
1299
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu {
1300
+ width: 100%
1301
+ }
1302
+
1303
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle {
1304
+ display: inline-block;
1305
+ }
1306
+
1307
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu {
1308
+ position: relative;
1309
+ height: 0;
1310
+ top: 0;
1311
+ }
1312
+
1313
+ .hfe-nav-menu .sub-menu {
1314
+ min-width: auto;
1315
+ margin: 0;
1316
+ }
1317
+
1318
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
1319
+ .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu {
1320
+ visibility: hidden;
1321
+ opacity: 0;
1322
+ -webkit-transition: none;
1323
+ transition: none;
1324
+ }
1325
+
1326
+ .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
1327
+ float: none;
1328
+ }
1329
+
1330
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle.hfe-active-menu {
1331
+ display: block;
1332
+ }
1333
+
1334
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal,
1335
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-vertical {
1336
+ visibility: hidden;
1337
+ opacity: 0;
1338
+ height: 0;
1339
+ }
1340
+
1341
+ .hfe-nav-menu__breakpoint-mobile .hfe-layout-horizontal .hfe-nav-menu__toggle,
1342
+ .hfe-nav-menu__breakpoint-mobile .hfe-layout-vertical .hfe-nav-menu__toggle
1343
+ {
1344
+ visibility: visible;
1345
+ opacity: 1;
1346
+ display: block;
1347
+ }
1348
+
1349
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal {
1350
+ visibility: hidden;
1351
+ opacity: 0;
1352
+ height: 0;
1353
+ }
1354
+
1355
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical {
1356
+ float: none;
1357
+ }
1358
+
1359
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu {
1360
+ visibility: hidden;
1361
+ opacity: 0;
1362
+ }
1363
+
1364
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1365
+ visibility: hidden;
1366
+ opacity: 0;
1367
+ }
1368
+
1369
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1370
+ visibility: visible;
1371
+ opacity: 1;
1372
+ }
1373
+
1374
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal,
1375
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical {
1376
+ visibility: hidden;
1377
+ opacity: 0;
1378
+ height: 0;
1379
+ }
1380
+
1381
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal,
1382
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-vertical {
1383
+ visibility: visible;
1384
+ opacity: 1;
1385
+ height: auto;
1386
+ }
1387
+
1388
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
1389
+ position: relative;
1390
+ }
1391
+
1392
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
1393
+ .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
1394
+ position: absolute;
1395
+ }
1396
+
1397
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu {
1398
+ top: 0;
1399
+ left: 0;
1400
+ }
1401
+
1402
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
1403
+ content: '';
1404
+ }
1405
+
1406
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
1407
+ content: '';
1408
+ }
1409
+
1410
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1411
+ content: '';
1412
+ }
1413
+
1414
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1415
+ content: '';
1416
+ }
1417
+
1418
+ .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-plus .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1419
+ content: '-';
1420
+ }
1421
+
1422
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1423
+ content: '';
1424
+ }
1425
+
1426
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
1427
+ content: ''
1428
+ }
1429
+
1430
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
1431
+ content: '';
1432
+ }
1433
+
1434
+ .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
1435
+ content: ''
1436
+ }
1437
+
1438
+ .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle:hover{
1439
+ border:1px dotted;
1440
+ }
1441
+
1442
+ .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle{
1443
+ border:1px dotted transparent;
1444
+ }
1445
+
1446
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu .sub-menu{
1447
+ -webkit-box-shadow: none;
1448
+ box-shadow: none;
1449
+ }
1450
+
1451
+ /* Effect 1: Fade in and scale up */
1452
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-1 .hfe-nav-menu {
1453
+ -webkit-transform: scale(0.7);
1454
+ -ms-transform: scale(0.7);
1455
+ transform: scale(0.7);
1456
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
1457
+ -webkit-transition: all 0.3s;
1458
+ transition: all 0.3s;
1459
+ }
1460
+
1461
+ .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
1462
+ padding: 10px;
1463
+ }
1464
+
1465
+ .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-1 .hfe-nav-menu {
1466
+ -webkit-transform: scale(1);
1467
+ -ms-transform: scale(1);
1468
+ transform: scale(1);
1469
+ opacity: 1;
1470
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1471
+ }
1472
+
1473
+ /* Effect 2: Slide from the right */
1474
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-2 .hfe-nav-menu {
1475
+ -webkit-transform: translateX(20%);
1476
+ -ms-transform: translateX(20%);
1477
+ transform: translateX(20%);
1478
+ opacity: 0;
1479
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
1480
+ -webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
1481
+ transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
1482
+ }
1483
+
1484
+ .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-2 .hfe-nav-menu {
1485
+ -webkit-transform: translateX(0);
1486
+ -ms-transform: translateX(0);
1487
+ transform: translateX(0);
1488
+ opacity: 1;
1489
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1490
+ }
1491
+
1492
+ /* Effect 3: Slide from the bottom */
1493
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-3 .hfe-nav-menu {
1494
+ -webkit-transform: translateY(20%);
1495
+ -ms-transform: translateY(20%);
1496
+ transform: translateY(20%);
1497
+ opacity: 0;
1498
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
1499
+ -webkit-transition: all 0.3s;
1500
+ transition: all 0.3s;
1501
+ }
1502
+
1503
+ .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-3 .hfe-nav-menu {
1504
+ -webkit-transform: translateY(0);
1505
+ -ms-transform: translateY(0);
1506
+ transform: translateY(0);
1507
+ opacity: 1;
1508
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1509
+ }
1510
+
1511
+ .hfe-nav-menu__breakpoint-mobile .saved-content,
1512
+ .hfe-nav-menu__breakpoint-mobile .sub-menu,
1513
+ .hfe-nav-menu__breakpoint-mobile .child,
1514
+ .hfe-nav-menu__breakpoint-tablet .saved-content,
1515
+ .hfe-nav-menu__breakpoint-tablet .sub-menu,
1516
+ .hfe-nav-menu__breakpoint-tablet .child{
1517
+ left: 0 !important;
1518
+ width: auto !important;
1519
+ }
1520
+
1521
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
1522
+ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu,
1523
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
1524
+ .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu {
1525
+ -webkit-transform: none;
1526
+ -ms-transform: none;
1527
+ transform: none;
1528
+ }
1529
+
1530
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
1531
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
1532
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before,
1533
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before {
1534
+ background-color: unset!important;
1535
+ }
1536
+
1537
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before,
1538
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{
1539
+ border: 0px!important;
1540
+ }
1541
+
1542
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text .menu-item.parent a.hfe-menu-item:focus,
1543
+ .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text .menu-item.parent a.hfe-menu-item:focus {
1544
+ -webkit-transform: none!important;
1545
+ -ms-transform: none!important;
1546
+ transform: none!important;
1547
+ }
1548
+ }
1549
+
1550
+ .hfe-toggle-no .hfe-layout-expandible .hfe-nav-menu__toggle {
1551
+ display: none;
1552
+ }
1553
+
1554
+ /* Icon common CSS */
1555
+
1556
+ .hfe-icon {
1557
+ display: inline-block;
1558
+ }
1559
+
inc/widgets-manager/class-widgets-loader.php CHANGED
@@ -48,7 +48,6 @@ class Widgets_Loader {
48
  * @since 1.2.0
49
  */
50
  private function __construct() {
51
-
52
  // Register category.
53
  add_action( 'elementor/elements/categories_registered', [ $this, 'register_widget_category' ] );
54
 
@@ -59,6 +58,45 @@ class Widgets_Loader {
59
  add_filter( 'upload_mimes', [ $this, 'hfe_svg_mime_types' ] );
60
  }
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
63
  /**
64
  * Include Widgets files
@@ -69,9 +107,25 @@ class Widgets_Loader {
69
  * @access public
70
  */
71
  public function include_widgets_files() {
72
- require_once HFE_DIR . '/inc/widgets-manager/widgets/class-retina.php';
73
- require_once HFE_DIR . '/inc/widgets-manager/widgets/class-copyright.php';
74
- require_once HFE_DIR . '/inc/widgets-manager/widgets/class-copyright-shortcode.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
76
 
77
  /**
@@ -83,7 +137,6 @@ class Widgets_Loader {
83
  * @return $mimes.
84
  */
85
  public function hfe_svg_mime_types( $mimes ) {
86
-
87
  // New allowed mime types.
88
  $mimes['svg'] = 'image/svg+xml';
89
  return $mimes;
@@ -118,14 +171,17 @@ class Widgets_Loader {
118
  * @access public
119
  */
120
  public function register_widgets() {
121
-
122
  // Its is now safe to include Widgets files.
123
  $this->include_widgets_files();
124
  // Register Widgets.
125
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Retina() );
126
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Copyright() );
 
 
 
 
 
127
  }
128
-
129
  }
130
 
131
  /**
48
  * @since 1.2.0
49
  */
50
  private function __construct() {
 
51
  // Register category.
52
  add_action( 'elementor/elements/categories_registered', [ $this, 'register_widget_category' ] );
53
 
58
  add_filter( 'upload_mimes', [ $this, 'hfe_svg_mime_types' ] );
59
  }
60
 
61
+ /**
62
+ * Returns Script array.
63
+ *
64
+ * @return array()
65
+ * @since 1.3.0
66
+ */
67
+ public static function get_widget_script() {
68
+ $js_files = [
69
+ 'hfe-nav-menu' => [
70
+ 'path' => 'inc/js/hfe-nav-menu.js',
71
+ 'dep' => [ 'jquery' ],
72
+ 'in_footer' => true,
73
+ ],
74
+ ];
75
+
76
+ return $js_files;
77
+ }
78
+
79
+ /**
80
+ * Returns Script array.
81
+ *
82
+ * @return array()
83
+ * @since 1.3.0
84
+ */
85
+ public static function get_widget_list() {
86
+ $widget_list = [
87
+ 'retina',
88
+ 'copyright',
89
+ 'copyright-shortcode',
90
+ 'navigation-menu',
91
+ 'menu-walker',
92
+ 'site-title',
93
+ 'page-title',
94
+ 'site-tagline',
95
+ 'site-logo',
96
+ ];
97
+
98
+ return $widget_list;
99
+ }
100
 
101
  /**
102
  * Include Widgets files
107
  * @access public
108
  */
109
  public function include_widgets_files() {
110
+
111
+ $js_files = $this->get_widget_script();
112
+ $widget_list = $this->get_widget_list();
113
+
114
+ if ( ! empty( $widget_list ) ) {
115
+ foreach ( $widget_list as $handle => $data ) {
116
+ require_once HFE_DIR . '/inc/widgets-manager/widgets/class-' . $data . '.php';
117
+ }
118
+ }
119
+
120
+ if ( ! empty( $js_files ) ) {
121
+ foreach ( $js_files as $handle => $data ) {
122
+
123
+ wp_register_script( $handle, HFE_URL . $data['path'], $data['dep'], HFE_VER, $data['in_footer'] );
124
+ }
125
+ }
126
+
127
+ // Emqueue the widgets style.
128
+ wp_enqueue_style( 'hfe-widgets-style', HFE_URL . 'inc/widgets-css/frontend.css', [], HFE_VER );
129
  }
130
 
131
  /**
137
  * @return $mimes.
138
  */
139
  public function hfe_svg_mime_types( $mimes ) {
 
140
  // New allowed mime types.
141
  $mimes['svg'] = 'image/svg+xml';
142
  return $mimes;
171
  * @access public
172
  */
173
  public function register_widgets() {
 
174
  // Its is now safe to include Widgets files.
175
  $this->include_widgets_files();
176
  // Register Widgets.
177
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Retina() );
178
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Copyright() );
179
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Navigation_Menu() );
180
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Page_Title() );
181
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Title() );
182
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Tagline() );
183
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Logo() );
184
  }
 
185
  }
186
 
187
  /**
inc/widgets-manager/widgets/class-copyright.php CHANGED
@@ -62,7 +62,7 @@ class Copyright extends Widget_Base {
62
  * @return string Widget icon.
63
  */
64
  public function get_icon() {
65
- return 'fa fa-copyright';
66
  }
67
  /**
68
  * Retrieve the list of categories the widget belongs to.
@@ -220,8 +220,22 @@ class Copyright extends Widget_Base {
220
  *
221
  * Written as a Backbone JavaScript template and used to generate the live preview.
222
  *
 
 
 
 
 
 
 
 
 
 
 
 
223
  * @since 1.2.0
224
  * @access protected
225
  */
226
- protected function _content_template() {} //phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
 
 
227
  }
62
  * @return string Widget icon.
63
  */
64
  public function get_icon() {
65
+ return 'hfe-icon-copyright-widget';
66
  }
67
  /**
68
  * Retrieve the list of categories the widget belongs to.
220
  *
221
  * Written as a Backbone JavaScript template and used to generate the live preview.
222
  *
223
+ * @since 1.3.0
224
+ * @access protected
225
+ */
226
+ protected function content_template() {}
227
+
228
+ /**
229
+ * Render shortcode output in the editor.
230
+ *
231
+ * Written as a Backbone JavaScript template and used to generate the live preview.
232
+ *
233
+ * Remove this after Elementor v3.3.0
234
+ *
235
  * @since 1.2.0
236
  * @access protected
237
  */
238
+ protected function _content_template() {
239
+ $this->content_template();
240
+ }
241
  }
inc/widgets-manager/widgets/class-menu-walker.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * HFE Menu Walker
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ exit; // Exit if accessed directly.
12
+ }
13
+
14
+ /**
15
+ * Class Menu_Walker.
16
+ */
17
+ class Menu_Walker extends \Walker_Nav_Menu {
18
+
19
+ /**
20
+ * Start element
21
+ *
22
+ * @since 1.3.0
23
+ * @param string $output Output HTML.
24
+ * @param object $item Individual Menu item.
25
+ * @param int $depth Depth.
26
+ * @param array $args Arguments array.
27
+ * @param int $id Menu ID.
28
+ * @access public
29
+ */
30
+ public function start_el( &$output, $item, $depth = 0, $args = [], $id = 0 ) {
31
+
32
+ $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
33
+ $args = (object) $args;
34
+
35
+ $class_names = '';
36
+ $value = '';
37
+ $rel_xfn = '';
38
+ $rel_blank = '';
39
+
40
+ $classes = empty( $item->classes ) ? [] : (array) $item->classes;
41
+ $submenu = $args->has_children ? ' hfe-has-submenu' : '';
42
+
43
+ if ( 0 === $depth ) {
44
+ array_push( $classes, 'parent' );
45
+ }
46
+ $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
47
+ $class_names = ' class="' . esc_attr( $class_names ) . $submenu . ' hfe-creative-menu"';
48
+
49
+ $output .= $indent . '<li id="menu-item-' . $item->ID . '"' . $value . $class_names . '>';
50
+
51
+ if ( isset( $item->target ) && '_blank' === $item->target && isset( $item->xfn ) && false === strpos( $item->xfn, 'noopener' ) ) {
52
+ $rel_xfn = ' noopener';
53
+ }
54
+ if ( isset( $item->target ) && '_blank' === $item->target && isset( $item->xfn ) && empty( $item->xfn ) ) {
55
+ $rel_blank = 'rel="noopener"';
56
+ }
57
+
58
+ $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) . '"' : '';
59
+ $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) . '"' : '';
60
+ $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) . $rel_xfn . '"' : '' . $rel_blank;
61
+ $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) . '"' : '';
62
+
63
+ $item_output = $args->has_children ? '<div class="hfe-has-submenu-container">' : '';
64
+ $item_output .= $args->before;
65
+ $item_output .= '<a' . $attributes;
66
+ if ( 0 === $depth ) {
67
+ $item_output .= ' class = "hfe-menu-item"';
68
+ } else {
69
+ $item_output .= ' class = "hfe-sub-menu-item"';
70
+ }
71
+ $item_output .= '>';
72
+ $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
73
+ if ( $args->has_children ) {
74
+ $item_output .= "<span class='hfe-menu-toggle sub-arrow hfe-menu-child-";
75
+ $item_output .= $depth;
76
+ $item_output .= "'><i class='fa'></i></span>";
77
+ }
78
+ $item_output .= '</a>';
79
+
80
+ $item_output .= $args->after;
81
+ $item_output .= $args->has_children ? '</div>' : '';
82
+
83
+ $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
84
+ }
85
+
86
+ /**
87
+ * Display element
88
+ *
89
+ * @since 1.3.0
90
+ * @param object $element Individual Menu element.
91
+ * @param object $children_elements Child Elements.
92
+ * @param int $max_depth Maximum Depth.
93
+ * @param int $depth Depth.
94
+ * @param array $args Arguments array.
95
+ * @param string $output Output HTML.
96
+ * @access public
97
+ */
98
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
99
+
100
+ $id_field = $this->db_fields['id'];
101
+
102
+ if ( is_object( $args[0] ) ) {
103
+ $args[0]->has_children = ! empty( $children_elements[ $element->$id_field ] );
104
+ }
105
+ return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
106
+ }
107
+ }
108
+
inc/widgets-manager/widgets/class-navigation-menu.php ADDED
@@ -0,0 +1,1657 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ // Elementor Classes.
11
+ use Elementor\Controls_Manager;
12
+ use Elementor\Utils;
13
+ use Elementor\Group_Control_Typography;
14
+ use Elementor\Scheme_Typography;
15
+ use Elementor\Scheme_Color;
16
+ use Elementor\Group_Control_Border;
17
+ use Elementor\Group_Control_Box_Shadow;
18
+ use Elementor\Widget_Base;
19
+ use Elementor\Plugin;
20
+
21
+ if ( ! defined( 'ABSPATH' ) ) {
22
+ exit; // Exit if accessed directly.
23
+ }
24
+
25
+ /**
26
+ * Class Nav Menu.
27
+ */
28
+ class Navigation_Menu extends Widget_Base {
29
+
30
+
31
+ /**
32
+ * Menu index.
33
+ *
34
+ * @access protected
35
+ * @var $nav_menu_index
36
+ */
37
+ protected $nav_menu_index = 1;
38
+
39
+ /**
40
+ * Retrieve the widget name.
41
+ *
42
+ * @since 1.3.0
43
+ *
44
+ * @access public
45
+ *
46
+ * @return string Widget name.
47
+ */
48
+ public function get_name() {
49
+ return 'navigation-menu';
50
+ }
51
+
52
+ /**
53
+ * Retrieve the widget title.
54
+ *
55
+ * @since 1.3.0
56
+ *
57
+ * @access public
58
+ *
59
+ * @return string Widget title.
60
+ */
61
+ public function get_title() {
62
+ return __( 'Navigation Menu', 'header-footer-elementor' );
63
+ }
64
+
65
+ /**
66
+ * Retrieve the widget icon.
67
+ *
68
+ * @since 1.3.0
69
+ *
70
+ * @access public
71
+ *
72
+ * @return string Widget icon.
73
+ */
74
+ public function get_icon() {
75
+ return 'hfe-icon-navigation-menu-4';
76
+ }
77
+
78
+ /**
79
+ * Retrieve the list of categories the widget belongs to.
80
+ *
81
+ * Used to determine where to display the widget in the editor.
82
+ *
83
+ * Note that currently Elementor supports only one category.
84
+ * When multiple categories passed, Elementor uses the first one.
85
+ *
86
+ * @since 1.3.0
87
+ *
88
+ * @access public
89
+ *
90
+ * @return array Widget categories.
91
+ */
92
+ public function get_categories() {
93
+ return [ 'hfe-widgets' ];
94
+ }
95
+
96
+ /**
97
+ * Retrieve the list of scripts the navigation menu depended on.
98
+ *
99
+ * Used to set scripts dependencies required to run the widget.
100
+ *
101
+ * @since 1.3.0
102
+ * @access public
103
+ *
104
+ * @return array Widget scripts dependencies.
105
+ */
106
+ public function get_script_depends() {
107
+ return [ 'hfe-nav-menu' ];
108
+ }
109
+
110
+ /**
111
+ * Retrieve the menu index.
112
+ *
113
+ * Used to get index of nav menu.
114
+ *
115
+ * @since 1.3.0
116
+ * @access protected
117
+ *
118
+ * @return string nav index.
119
+ */
120
+ protected function get_nav_menu_index() {
121
+ return $this->nav_menu_index++;
122
+ }
123
+
124
+ /**
125
+ * Retrieve the list of available menus.
126
+ *
127
+ * Used to get the list of available menus.
128
+ *
129
+ * @since 1.3.0
130
+ * @access private
131
+ *
132
+ * @return array get WordPress menus list.
133
+ */
134
+ private function get_available_menus() {
135
+
136
+ $menus = wp_get_nav_menus();
137
+
138
+ $options = [];
139
+
140
+ foreach ( $menus as $menu ) {
141
+ $options[ $menu->slug ] = $menu->name;
142
+ }
143
+
144
+ return $options;
145
+ }
146
+
147
+ /**
148
+ * Check if the Elementor is updated.
149
+ *
150
+ * @since 1.3.0
151
+ *
152
+ * @return boolean if Elementor updated.
153
+ */
154
+ public static function is_elementor_updated() {
155
+ if ( class_exists( 'Elementor\Icons_Manager' ) ) {
156
+ return true;
157
+ } else {
158
+ return false;
159
+ }
160
+ }
161
+
162
+
163
+ /**
164
+ * Register Nav Menu controls.
165
+ *
166
+ * @since 1.3.0
167
+ * @access protected
168
+ */
169
+ protected function _register_controls() {
170
+
171
+ $this->register_general_content_controls();
172
+ $this->register_style_content_controls();
173
+ $this->register_dropdown_content_controls();
174
+ }
175
+
176
+ /**
177
+ * Register Nav Menu General Controls.
178
+ *
179
+ * @since 1.3.0
180
+ * @access protected
181
+ */
182
+ protected function register_general_content_controls() {
183
+
184
+ $this->start_controls_section(
185
+ 'section_menu',
186
+ [
187
+ 'label' => __( 'Menu', 'header-footer-elementor' ),
188
+ ]
189
+ );
190
+
191
+ $menus = $this->get_available_menus();
192
+
193
+ if ( ! empty( $menus ) ) {
194
+ $this->add_control(
195
+ 'menu',
196
+ [
197
+ 'label' => __( 'Menu', 'header-footer-elementor' ),
198
+ 'type' => Controls_Manager::SELECT,
199
+ 'options' => $menus,
200
+ 'default' => array_keys( $menus )[0],
201
+ 'save_default' => true,
202
+ 'separator' => 'after',
203
+ /* translators: %s Nav menu URL */
204
+ 'description' => sprintf( __( 'Go to the <a href="%s" target="_blank">Menus screen</a> to manage your menus.', 'header-footer-elementor' ), admin_url( 'nav-menus.php' ) ),
205
+ ]
206
+ );
207
+ } else {
208
+ $this->add_control(
209
+ 'menu',
210
+ [
211
+ 'type' => Controls_Manager::RAW_HTML,
212
+ /* translators: %s Nav menu URL */
213
+ 'raw' => sprintf( __( '<strong>There are no menus in your site.</strong><br>Go to the <a href="%s" target="_blank">Menus screen</a> to create one.', 'header-footer-elementor' ), admin_url( 'nav-menus.php?action=edit&menu=0' ) ),
214
+ 'separator' => 'after',
215
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
216
+ ]
217
+ );
218
+ }
219
+
220
+ $this->end_controls_section();
221
+
222
+ $this->start_controls_section(
223
+ 'section_layout',
224
+ [
225
+ 'label' => __( 'Layout', 'header-footer-elementor' ),
226
+ ]
227
+ );
228
+
229
+ $this->add_control(
230
+ 'layout',
231
+ [
232
+ 'label' => __( 'Layout', 'header-footer-elementor' ),
233
+ 'type' => Controls_Manager::SELECT,
234
+ 'default' => 'horizontal',
235
+ 'options' => [
236
+ 'horizontal' => __( 'Horizontal', 'header-footer-elementor' ),
237
+ 'vertical' => __( 'Vertical', 'header-footer-elementor' ),
238
+ 'expandible' => __( 'Expanded', 'header-footer-elementor' ),
239
+ 'flyout' => __( 'Flyout', 'header-footer-elementor' ),
240
+ ],
241
+ ]
242
+ );
243
+
244
+ $this->add_control(
245
+ 'navmenu_align',
246
+ [
247
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
248
+ 'type' => Controls_Manager::CHOOSE,
249
+ 'options' => [
250
+ 'left' => [
251
+ 'title' => __( 'Left', 'header-footer-elementor' ),
252
+ 'icon' => 'eicon-h-align-left',
253
+ ],
254
+ 'center' => [
255
+ 'title' => __( 'Center', 'header-footer-elementor' ),
256
+ 'icon' => 'eicon-h-align-center',
257
+ ],
258
+ 'right' => [
259
+ 'title' => __( 'Right', 'header-footer-elementor' ),
260
+ 'icon' => 'eicon-h-align-right',
261
+ ],
262
+ 'justify' => [
263
+ 'title' => __( 'Justify', 'header-footer-elementor' ),
264
+ 'icon' => 'eicon-h-align-stretch',
265
+ ],
266
+ ],
267
+ 'default' => 'left',
268
+ 'condition' => [
269
+ 'layout' => [ 'horizontal', 'vertical' ],
270
+ ],
271
+ 'prefix_class' => 'hfe-nav-menu__align-',
272
+ ]
273
+ );
274
+
275
+ $this->add_control(
276
+ 'flyout_layout',
277
+ [
278
+ 'label' => __( 'Flyout Orientation', 'header-footer-elementor' ),
279
+ 'type' => Controls_Manager::SELECT,
280
+ 'default' => 'left',
281
+ 'options' => [
282
+ 'left' => __( 'Left', 'header-footer-elementor' ),
283
+ 'right' => __( 'Right', 'header-footer-elementor' ),
284
+ ],
285
+ 'condition' => [
286
+ 'layout' => 'flyout',
287
+ ],
288
+ ]
289
+ );
290
+
291
+ $this->add_control(
292
+ 'flyout_type',
293
+ [
294
+ 'label' => __( 'Appear Effect', 'header-footer-elementor' ),
295
+ 'type' => Controls_Manager::SELECT,
296
+ 'default' => 'normal',
297
+ 'label_block' => false,
298
+ 'options' => [
299
+ 'normal' => __( 'Slide', 'header-footer-elementor' ),
300
+ 'push' => __( 'Push', 'header-footer-elementor' ),
301
+ ],
302
+ 'render_type' => 'template',
303
+ 'condition' => [
304
+ 'layout' => 'flyout',
305
+ ],
306
+ ]
307
+ );
308
+
309
+ $this->add_responsive_control(
310
+ 'hamburger_align',
311
+ [
312
+ 'label' => __( 'Hamburger Align', 'header-footer-elementor' ),
313
+ 'type' => Controls_Manager::CHOOSE,
314
+ 'default' => 'center',
315
+ 'options' => [
316
+ 'left' => [
317
+ 'title' => __( 'Left', 'header-footer-elementor' ),
318
+ 'icon' => 'eicon-h-align-left',
319
+ ],
320
+ 'center' => [
321
+ 'title' => __( 'Center', 'header-footer-elementor' ),
322
+ 'icon' => 'eicon-h-align-center',
323
+ ],
324
+ 'right' => [
325
+ 'title' => __( 'Right', 'header-footer-elementor' ),
326
+ 'icon' => 'eicon-h-align-right',
327
+ ],
328
+ ],
329
+ 'selectors_dictionary' => [
330
+ 'left' => 'margin-right: auto',
331
+ 'center' => 'margin: 0 auto',
332
+ 'right' => 'margin-left: auto',
333
+ ],
334
+ 'selectors' => [
335
+ '{{WRAPPER}} .hfe-nav-menu__toggle,
336
+ {{WRAPPER}} .hfe-nav-menu-icon' => '{{VALUE}}',
337
+ ],
338
+ 'default' => 'center',
339
+ 'condition' => [
340
+ 'layout' => [ 'expandible', 'flyout' ],
341
+ ],
342
+ 'label_block' => false,
343
+ ]
344
+ );
345
+
346
+ $this->add_responsive_control(
347
+ 'hamburger_menu_align',
348
+ [
349
+ 'label' => __( 'Menu Items Align', 'header-footer-elementor' ),
350
+ 'type' => Controls_Manager::CHOOSE,
351
+ 'options' => [
352
+ 'flex-start' => [
353
+ 'title' => __( 'Left', 'header-footer-elementor' ),
354
+ 'icon' => 'eicon-h-align-left',
355
+ ],
356
+ 'center' => [
357
+ 'title' => __( 'Center', 'header-footer-elementor' ),
358
+ 'icon' => 'eicon-h-align-center',
359
+ ],
360
+ 'flex-end' => [
361
+ 'title' => __( 'Right', 'header-footer-elementor' ),
362
+ 'icon' => 'eicon-h-align-right',
363
+ ],
364
+ 'space-between' => [
365
+ 'title' => __( 'Justify', 'header-footer-elementor' ),
366
+ 'icon' => 'eicon-h-align-stretch',
367
+ ],
368
+ ],
369
+ 'default' => 'space-between',
370
+ 'condition' => [
371
+ 'layout' => [ 'expandible', 'flyout' ],
372
+ ],
373
+ 'selectors' => [
374
+ '{{WRAPPER}} li.menu-item a' => 'justify-content: {{VALUE}};',
375
+ ],
376
+ 'prefix_class' => 'hfe-menu-item-',
377
+ ]
378
+ );
379
+
380
+ $this->add_control(
381
+ 'submenu_icon',
382
+ [
383
+ 'label' => __( 'Submenu Icon', 'header-footer-elementor' ),
384
+ 'type' => Controls_Manager::SELECT,
385
+ 'default' => 'arrow',
386
+ 'options' => [
387
+ 'arrow' => __( 'Arrows', 'header-footer-elementor' ),
388
+ 'plus' => __( 'Plus Sign', 'header-footer-elementor' ),
389
+ 'classic' => __( 'Classic', 'header-footer-elementor' ),
390
+ ],
391
+ 'prefix_class' => 'hfe-submenu-icon-',
392
+ ]
393
+ );
394
+
395
+ $this->add_control(
396
+ 'submenu_animation',
397
+ [
398
+ 'label' => __( 'Submenu Animation', 'header-footer-elementor' ),
399
+ 'type' => Controls_Manager::SELECT,
400
+ 'default' => 'none',
401
+ 'options' => [
402
+ 'none' => __( 'Default', 'header-footer-elementor' ),
403
+ 'slide_up' => __( 'Slide Up', 'header-footer-elementor' ),
404
+ ],
405
+ 'prefix_class' => 'hfe-submenu-animation-',
406
+ 'condition' => [
407
+ 'layout' => 'horizontal',
408
+ ],
409
+ ]
410
+ );
411
+
412
+ $this->add_control(
413
+ 'heading_responsive',
414
+ [
415
+ 'type' => Controls_Manager::HEADING,
416
+ 'label' => __( 'Responsive', 'header-footer-elementor' ),
417
+ 'separator' => 'before',
418
+ 'condition' => [
419
+ 'layout' => [ 'horizontal', 'vertical' ],
420
+ ],
421
+ ]
422
+ );
423
+
424
+ $this->add_control(
425
+ 'dropdown',
426
+ [
427
+ 'label' => __( 'Breakpoint', 'header-footer-elementor' ),
428
+ 'type' => Controls_Manager::SELECT,
429
+ 'default' => 'tablet',
430
+ 'options' => [
431
+ 'mobile' => __( 'Mobile (767px >)', 'header-footer-elementor' ),
432
+ 'tablet' => __( 'Tablet (1023px >)', 'header-footer-elementor' ),
433
+ 'none' => __( 'None', 'header-footer-elementor' ),
434
+ ],
435
+ 'prefix_class' => 'hfe-nav-menu__breakpoint-',
436
+ 'condition' => [
437
+ 'layout' => [ 'horizontal', 'vertical' ],
438
+ ],
439
+ 'render_type' => 'template',
440
+ ]
441
+ );
442
+
443
+ $this->add_responsive_control(
444
+ 'resp_align',
445
+ [
446
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
447
+ 'type' => Controls_Manager::CHOOSE,
448
+ 'options' => [
449
+ 'left' => [
450
+ 'title' => __( 'Left', 'header-footer-elementor' ),
451
+ 'icon' => 'eicon-h-align-left',
452
+ ],
453
+ 'center' => [
454
+ 'title' => __( 'Center', 'header-footer-elementor' ),
455
+ 'icon' => 'eicon-h-align-center',
456
+ ],
457
+ 'right' => [
458
+ 'title' => __( 'Right', 'header-footer-elementor' ),
459
+ 'icon' => 'eicon-h-align-right',
460
+ ],
461
+ ],
462
+ 'default' => 'center',
463
+ 'description' => __( 'This is the alignement of menu icon on selected responsive breakpoints.', 'header-footer-elementor' ),
464
+ 'condition' => [
465
+ 'layout' => [ 'horizontal', 'vertical' ],
466
+ 'dropdown!' => 'none',
467
+ ],
468
+ 'selectors_dictionary' => [
469
+ 'left' => 'margin-right: auto',
470
+ 'center' => 'margin: 0 auto',
471
+ 'right' => 'margin-left: auto',
472
+ ],
473
+ 'selectors' => [
474
+ '{{WRAPPER}} .hfe-nav-menu__toggle' => '{{VALUE}}',
475
+ ],
476
+ ]
477
+ );
478
+
479
+ $this->add_control(
480
+ 'full_width_dropdown',
481
+ [
482
+ 'label' => __( 'Full Width', 'header-footer-elementor' ),
483
+ 'description' => __( 'Enable this option to stretch the Sub Menu to Full Width.', 'header-footer-elementor' ),
484
+ 'type' => Controls_Manager::SWITCHER,
485
+ 'label_on' => __( 'Yes', 'header-footer-elementor' ),
486
+ 'label_off' => __( 'No', 'header-footer-elementor' ),
487
+ 'return_value' => 'yes',
488
+ 'default' => 'yes',
489
+ 'condition' => [
490
+ 'dropdown!' => 'none',
491
+ 'layout!' => 'flyout',
492
+ ],
493
+ 'render_type' => 'template',
494
+ ]
495
+ );
496
+
497
+ if ( $this->is_elementor_updated() ) {
498
+ $this->add_control(
499
+ 'dropdown_icon',
500
+ [
501
+ 'label' => __( 'Menu Icon', 'header-footer-elementor' ),
502
+ 'type' => Controls_Manager::ICONS,
503
+ 'label_block' => 'true',
504
+ 'default' => [
505
+ 'value' => 'fas fa-align-justify',
506
+ 'library' => 'fa-solid',
507
+ ],
508
+ 'condition' => [
509
+ 'dropdown!' => 'none',
510
+ ],
511
+ ]
512
+ );
513
+ } else {
514
+ $this->add_control(
515
+ 'dropdown_icon',
516
+ [
517
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
518
+ 'type' => Controls_Manager::ICON,
519
+ 'label_block' => 'true',
520
+ 'default' => 'fa fa-align-justify',
521
+ 'condition' => [
522
+ 'dropdown!' => 'none',
523
+ ],
524
+ ]
525
+ );
526
+ }
527
+
528
+ if ( $this->is_elementor_updated() ) {
529
+ $this->add_control(
530
+ 'dropdown_close_icon',
531
+ [
532
+ 'label' => __( 'Close Icon', 'header-footer-elementor' ),
533
+ 'type' => Controls_Manager::ICONS,
534
+ 'label_block' => 'true',
535
+ 'default' => [
536
+ 'value' => 'far fa-window-close',
537
+ 'library' => 'fa-regular',
538
+ ],
539
+ 'condition' => [
540
+ 'dropdown!' => 'none',
541
+ ],
542
+ ]
543
+ );
544
+ } else {
545
+ $this->add_control(
546
+ 'dropdown_close_icon',
547
+ [
548
+ 'label' => __( 'Close Icon', 'header-footer-elementor' ),
549
+ 'type' => Controls_Manager::ICON,
550
+ 'label_block' => 'true',
551
+ 'default' => 'fa fa-close',
552
+ 'condition' => [
553
+ 'dropdown!' => 'none',
554
+ ],
555
+ ]
556
+ );
557
+ }
558
+
559
+ $this->end_controls_section();
560
+ }
561
+
562
+ /**
563
+ * Register Nav Menu General Controls.
564
+ *
565
+ * @since 1.3.0
566
+ * @access protected
567
+ */
568
+ protected function register_style_content_controls() {
569
+
570
+ $this->start_controls_section(
571
+ 'section_style_main-menu',
572
+ [
573
+ 'label' => __( 'Main Menu', 'header-footer-elementor' ),
574
+ 'tab' => Controls_Manager::TAB_STYLE,
575
+ 'condition' => [
576
+ 'layout!' => 'expandible',
577
+ ],
578
+ ]
579
+ );
580
+
581
+ $this->add_responsive_control(
582
+ 'width_flyout_menu_item',
583
+ [
584
+ 'label' => __( 'Flyout Box Width', 'header-footer-elementor' ),
585
+ 'type' => Controls_Manager::SLIDER,
586
+ 'range' => [
587
+ 'px' => [
588
+ 'max' => 500,
589
+ 'min' => 100,
590
+ ],
591
+ ],
592
+ 'default' => [
593
+ 'size' => 300,
594
+ 'unit' => 'px',
595
+ ],
596
+ 'selectors' => [
597
+ '{{WRAPPER}} .hfe-flyout-wrapper .hfe-side' => 'width: {{SIZE}}{{UNIT}}',
598
+ '{{WRAPPER}} .hfe-flyout-open.left' => 'left: -{{SIZE}}{{UNIT}}',
599
+ '{{WRAPPER}} .hfe-flyout-open.right' => 'right: -{{SIZE}}{{UNIT}}',
600
+ ],
601
+ 'condition' => [
602
+ 'layout' => 'flyout',
603
+ ],
604
+ 'render_type' => 'template',
605
+ ]
606
+ );
607
+
608
+ $this->add_responsive_control(
609
+ 'padding_flyout_menu_item',
610
+ [
611
+ 'label' => __( 'Flyout Box Padding', 'header-footer-elementor' ),
612
+ 'type' => Controls_Manager::SLIDER,
613
+ 'range' => [
614
+ 'px' => [
615
+ 'max' => 50,
616
+ ],
617
+ ],
618
+ 'default' => [
619
+ 'size' => 30,
620
+ 'unit' => 'px',
621
+ ],
622
+ 'selectors' => [
623
+ '{{WRAPPER}} .hfe-flyout-content' => 'padding: {{SIZE}}{{UNIT}}',
624
+ ],
625
+ 'condition' => [
626
+ 'layout' => 'flyout',
627
+ ],
628
+ ]
629
+ );
630
+
631
+ $this->add_responsive_control(
632
+ 'padding_horizontal_menu_item',
633
+ [
634
+ 'label' => __( 'Horizontal Padding', 'header-footer-elementor' ),
635
+ 'type' => Controls_Manager::SLIDER,
636
+ 'size_units' => [ 'px' ],
637
+ 'range' => [
638
+ 'px' => [
639
+ 'max' => 50,
640
+ ],
641
+ ],
642
+ 'default' => [
643
+ 'size' => 15,
644
+ 'unit' => 'px',
645
+ ],
646
+ 'selectors' => [
647
+ '{{WRAPPER}} .menu-item a.hfe-menu-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}}',
648
+ '{{WRAPPER}} .menu-item a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 20px );padding-right: {{SIZE}}{{UNIT}};',
649
+ '{{WRAPPER}} .hfe-nav-menu__layout-vertical .menu-item ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 40px );padding-right: {{SIZE}}{{UNIT}};',
650
+ '{{WRAPPER}} .hfe-nav-menu__layout-vertical .menu-item ul ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 60px );padding-right: {{SIZE}}{{UNIT}};',
651
+ '{{WRAPPER}} .hfe-nav-menu__layout-vertical .menu-item ul ul ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 80px );padding-right: {{SIZE}}{{UNIT}};',
652
+ ],
653
+ ]
654
+ );
655
+
656
+ $this->add_responsive_control(
657
+ 'padding_vertical_menu_item',
658
+ [
659
+ 'label' => __( 'Vertical Padding', 'header-footer-elementor' ),
660
+ 'type' => Controls_Manager::SLIDER,
661
+ 'size_units' => [ 'px' ],
662
+ 'range' => [
663
+ 'px' => [
664
+ 'max' => 50,
665
+ ],
666
+ ],
667
+ 'default' => [
668
+ 'size' => 15,
669
+ 'unit' => 'px',
670
+ ],
671
+ 'selectors' => [
672
+ '{{WRAPPER}} .menu-item a.hfe-menu-item, {{WRAPPER}} .menu-item a.hfe-sub-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}};',
673
+ ],
674
+ ]
675
+ );
676
+
677
+ $this->add_responsive_control(
678
+ 'menu_space_between',
679
+ [
680
+ 'label' => __( 'Space Between', 'header-footer-elementor' ),
681
+ 'type' => Controls_Manager::SLIDER,
682
+ 'size_units' => [ 'px' ],
683
+ 'range' => [
684
+ 'px' => [
685
+ 'max' => 100,
686
+ ],
687
+ ],
688
+ 'selectors' => [
689
+ 'body:not(.rtl) {{WRAPPER}} .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: {{SIZE}}{{UNIT}}',
690
+ 'body.rtl {{WRAPPER}} .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-left: {{SIZE}}{{UNIT}}',
691
+ '{{WRAPPER}} nav:not(.hfe-nav-menu__layout-horizontal) .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-bottom: 0',
692
+ '(tablet)body:not(.rtl) {{WRAPPER}}.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: 0px',
693
+ '(mobile)body:not(.rtl) {{WRAPPER}}.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: 0px',
694
+ ],
695
+ 'condition' => [
696
+ 'layout' => 'horizontal',
697
+ ],
698
+ ]
699
+ );
700
+
701
+ $this->add_responsive_control(
702
+ 'menu_row_space',
703
+ [
704
+ 'label' => __( 'Row Spacing', 'header-footer-elementor' ),
705
+ 'type' => Controls_Manager::SLIDER,
706
+ 'size_units' => [ 'px' ],
707
+ 'range' => [
708
+ 'px' => [
709
+ 'max' => 100,
710
+ ],
711
+ ],
712
+ 'selectors' => [
713
+ 'body:not(.rtl) {{WRAPPER}} .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item' => 'margin-bottom: {{SIZE}}{{UNIT}}',
714
+ ],
715
+ 'condition' => [
716
+ 'layout' => 'horizontal',
717
+ ],
718
+ ]
719
+ );
720
+
721
+ $this->add_responsive_control(
722
+ 'menu_top_space',
723
+ [
724
+ 'label' => __( 'Menu Item Top Spacing', 'header-footer-elementor' ),
725
+ 'type' => Controls_Manager::SLIDER,
726
+ 'size_units' => [ 'px', '%' ],
727
+ 'range' => [
728
+ 'px' => [
729
+ 'max' => 100,
730
+ ],
731
+ ],
732
+ 'selectors' => [
733
+ '{{WRAPPER}} .hfe-flyout-wrapper .hfe-nav-menu > li.menu-item:first-child' => 'margin-top: {{SIZE}}{{UNIT}}',
734
+ ],
735
+ 'condition' => [
736
+ 'layout' => 'flyout',
737
+ ],
738
+ ]
739
+ );
740
+
741
+ $this->add_control(
742
+ 'bg_color_flyout',
743
+ [
744
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
745
+ 'type' => Controls_Manager::COLOR,
746
+ 'default' => '#FFFFFF',
747
+ 'selectors' => [
748
+ '{{WRAPPER}} .menu-item a.hfe-menu-item' => 'background-color: {{VALUE}}',
749
+ '{{WRAPPER}} .hfe-flyout-content' => 'background-color: {{VALUE}}',
750
+ ],
751
+ 'condition' => [
752
+ 'layout' => 'flyout',
753
+ ],
754
+ ]
755
+ );
756
+
757
+ $this->add_control(
758
+ 'pointer',
759
+ [
760
+ 'label' => __( 'Link Hover Effect', 'header-footer-elementor' ),
761
+ 'type' => Controls_Manager::SELECT,
762
+ 'default' => 'none',
763
+ 'options' => [
764
+ 'none' => __( 'None', 'header-footer-elementor' ),
765
+ 'underline' => __( 'Underline', 'header-footer-elementor' ),
766
+ 'overline' => __( 'Overline', 'header-footer-elementor' ),
767
+ 'double-line' => __( 'Double Line', 'header-footer-elementor' ),
768
+ 'framed' => __( 'Framed', 'header-footer-elementor' ),
769
+ 'text' => __( 'Text', 'header-footer-elementor' ),
770
+ ],
771
+ 'condition' => [
772
+ 'layout' => [ 'horizontal' ],
773
+ ],
774
+ ]
775
+ );
776
+
777
+ $this->add_control(
778
+ 'animation_line',
779
+ [
780
+ 'label' => __( 'Animation', 'header-footer-elementor' ),
781
+ 'type' => Controls_Manager::SELECT,
782
+ 'default' => 'fade',
783
+ 'options' => [
784
+ 'fade' => 'Fade',
785
+ 'slide' => 'Slide',
786
+ 'grow' => 'Grow',
787
+ 'drop-in' => 'Drop In',
788
+ 'drop-out' => 'Drop Out',
789
+ 'none' => 'None',
790
+ ],
791
+ 'condition' => [
792
+ 'layout' => [ 'horizontal' ],
793
+ 'pointer' => [ 'underline', 'overline', 'double-line' ],
794
+ ],
795
+ ]
796
+ );
797
+
798
+ $this->add_control(
799
+ 'animation_framed',
800
+ [
801
+ 'label' => __( 'Frame Animation', 'header-footer-elementor' ),
802
+ 'type' => Controls_Manager::SELECT,
803
+ 'default' => 'fade',
804
+ 'options' => [
805
+ 'fade' => 'Fade',
806
+ 'grow' => 'Grow',
807
+ 'shrink' => 'Shrink',
808
+ 'draw' => 'Draw',
809
+ 'corners' => 'Corners',
810
+ 'none' => 'None',
811
+ ],
812
+ 'condition' => [
813
+ 'layout' => [ 'horizontal' ],
814
+ 'pointer' => 'framed',
815
+ ],
816
+ ]
817
+ );
818
+
819
+ $this->add_control(
820
+ 'animation_text',
821
+ [
822
+ 'label' => __( 'Animation', 'header-footer-elementor' ),
823
+ 'type' => Controls_Manager::SELECT,
824
+ 'default' => 'grow',
825
+ 'options' => [
826
+ 'grow' => 'Grow',
827
+ 'shrink' => 'Shrink',
828
+ 'sink' => 'Sink',
829
+ 'float' => 'Float',
830
+ 'skew' => 'Skew',
831
+ 'rotate' => 'Rotate',
832
+ 'none' => 'None',
833
+ ],
834
+ 'condition' => [
835
+ 'layout' => [ 'horizontal' ],
836
+ 'pointer' => 'text',
837
+ ],
838
+ ]
839
+ );
840
+
841
+ $this->add_control(
842
+ 'style_divider',
843
+ [
844
+ 'type' => Controls_Manager::DIVIDER,
845
+ ]
846
+ );
847
+
848
+ $this->add_group_control(
849
+ Group_Control_Typography::get_type(),
850
+ [
851
+ 'name' => 'menu_typography',
852
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
853
+ 'separator' => 'before',
854
+ 'selector' => '{{WRAPPER}} a.hfe-menu-item, {{WRAPPER}} a.hfe-sub-menu-item',
855
+ ]
856
+ );
857
+
858
+ $this->start_controls_tabs( 'tabs_menu_item_style' );
859
+
860
+ $this->start_controls_tab(
861
+ 'tab_menu_item_normal',
862
+ [
863
+ 'label' => __( 'Normal', 'header-footer-elementor' ),
864
+ ]
865
+ );
866
+
867
+ $this->add_control(
868
+ 'color_menu_item',
869
+ [
870
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
871
+ 'type' => Controls_Manager::COLOR,
872
+ 'scheme' => [
873
+ 'type' => Scheme_Color::get_type(),
874
+ 'value' => Scheme_Color::COLOR_3,
875
+ ],
876
+ 'default' => '',
877
+ 'selectors' => [
878
+ '{{WRAPPER}} .menu-item a.hfe-menu-item, {{WRAPPER}} .sub-menu a.hfe-sub-menu-item' => 'color: {{VALUE}}',
879
+ ],
880
+ ]
881
+ );
882
+
883
+ $this->add_control(
884
+ 'bg_color_menu_item',
885
+ [
886
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
887
+ 'type' => Controls_Manager::COLOR,
888
+ 'default' => '',
889
+ 'selectors' => [
890
+ '{{WRAPPER}} .menu-item a.hfe-menu-item, {{WRAPPER}} .sub-menu, {{WRAPPER}} nav.hfe-dropdown, {{WRAPPER}} .hfe-dropdown-expandible' => 'background-color: {{VALUE}}',
891
+ ],
892
+ 'condition' => [
893
+ 'layout!' => 'flyout',
894
+ ],
895
+ ]
896
+ );
897
+
898
+ $this->end_controls_tab();
899
+
900
+ $this->start_controls_tab(
901
+ 'tab_menu_item_hover',
902
+ [
903
+ 'label' => __( 'Hover', 'header-footer-elementor' ),
904
+ ]
905
+ );
906
+
907
+ $this->add_control(
908
+ 'color_menu_item_hover',
909
+ [
910
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
911
+ 'type' => Controls_Manager::COLOR,
912
+ 'scheme' => [
913
+ 'type' => Scheme_Color::get_type(),
914
+ 'value' => Scheme_Color::COLOR_4,
915
+ ],
916
+ 'selectors' => [
917
+ '{{WRAPPER}} .menu-item a.hfe-menu-item:hover,
918
+ {{WRAPPER}} .sub-menu a.hfe-sub-menu-item:hover,
919
+ {{WRAPPER}} .menu-item.current-menu-item a.hfe-menu-item,
920
+ {{WRAPPER}} .menu-item a.hfe-menu-item.highlighted,
921
+ {{WRAPPER}} .menu-item a.hfe-menu-item:focus' => 'color: {{VALUE}}',
922
+ ],
923
+ ]
924
+ );
925
+
926
+ $this->add_control(
927
+ 'bg_color_menu_item_hover',
928
+ [
929
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
930
+ 'type' => Controls_Manager::COLOR,
931
+ 'selectors' => [
932
+ '{{WRAPPER}} .menu-item a.hfe-menu-item:hover,
933
+ {{WRAPPER}} .sub-menu a.hfe-sub-menu-item:hover,
934
+ {{WRAPPER}} .menu-item.current-menu-item a.hfe-menu-item,
935
+ {{WRAPPER}} .menu-item a.hfe-menu-item.highlighted,
936
+ {{WRAPPER}} .menu-item a.hfe-menu-item:focus' => 'background-color: {{VALUE}}',
937
+ ],
938
+ 'condition' => [
939
+ 'layout!' => 'flyout',
940
+ ],
941
+ ]
942
+ );
943
+
944
+ $this->add_control(
945
+ 'pointer_color_menu_item_hover',
946
+ [
947
+ 'label' => __( 'Link Hover Effect Color', 'header-footer-elementor' ),
948
+ 'type' => Controls_Manager::COLOR,
949
+ 'scheme' => [
950
+ 'type' => Scheme_Color::get_type(),
951
+ 'value' => Scheme_Color::COLOR_4,
952
+ ],
953
+ 'default' => '',
954
+ 'selectors' => [
955
+ '{{WRAPPER}} .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before,
956
+ {{WRAPPER}} .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after' => 'background-color: {{VALUE}}',
957
+ '{{WRAPPER}} .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent .sub-menu .hfe-has-submenu-container a:after' => 'background-color: unset',
958
+ '{{WRAPPER}} .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before,
959
+ {{WRAPPER}} .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:after' => 'border-color: {{VALUE}}',
960
+ ],
961
+ 'condition' => [
962
+ 'pointer!' => [ 'none', 'text' ],
963
+ 'layout!' => 'flyout',
964
+ ],
965
+ ]
966
+ );
967
+
968
+ $this->end_controls_tab();
969
+
970
+ $this->start_controls_tab(
971
+ 'tab_menu_item_active',
972
+ [
973
+ 'label' => __( 'Active', 'header-footer-elementor' ),
974
+ ]
975
+ );
976
+
977
+ $this->add_control(
978
+ 'color_menu_item_active',
979
+ [
980
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
981
+ 'type' => Controls_Manager::COLOR,
982
+ 'default' => '',
983
+ 'selectors' => [
984
+ '{{WRAPPER}} .menu-item.current-menu-item a.hfe-menu-item' => 'color: {{VALUE}}',
985
+ ],
986
+ ]
987
+ );
988
+
989
+ $this->add_control(
990
+ 'bg_color_menu_item_active',
991
+ [
992
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
993
+ 'type' => Controls_Manager::COLOR,
994
+ 'default' => '',
995
+ 'selectors' => [
996
+ '{{WRAPPER}} .menu-item.current-menu-item a.hfe-menu-item' => 'background-color: {{VALUE}}',
997
+ ],
998
+ 'condition' => [
999
+ 'layout!' => 'flyout',
1000
+ ],
1001
+ ]
1002
+ );
1003
+
1004
+ $this->add_control(
1005
+ 'pointer_color_menu_item_active',
1006
+ [
1007
+ 'label' => __( 'Link Hover Effect Color', 'header-footer-elementor' ),
1008
+ 'type' => Controls_Manager::COLOR,
1009
+ 'default' => '',
1010
+ 'selectors' => [
1011
+ '{{WRAPPER}} .hfe-nav-menu:not(.hfe-pointer__framed) .menu-item.parent.current-menu-item a.hfe-menu-item:before,
1012
+ {{WRAPPER}} .hfe-nav-menu:not(.hfe-pointer__framed) .menu-item.parent.current-menu-item a.hfe-menu-item:after' => 'background-color: {{VALUE}}',
1013
+ '{{WRAPPER}} .hfe-nav-menu:not(.hfe-pointer__framed) .menu-item.parent .sub-menu .hfe-has-submenu-container a.current-menu-item:after' => 'background-color: unset',
1014
+ '{{WRAPPER}} .hfe-pointer__framed .menu-item.parent.current-menu-item a.hfe-menu-item:before,
1015
+ {{WRAPPER}} .hfe-pointer__framed .menu-item.parent.current-menu-item a.hfe-menu-item:after' => 'border-color: {{VALUE}}',
1016
+ ],
1017
+ 'condition' => [
1018
+ 'pointer!' => [ 'none', 'text' ],
1019
+ 'layout!' => 'flyout',
1020
+ ],
1021
+ ]
1022
+ );
1023
+
1024
+ $this->end_controls_tab();
1025
+
1026
+ $this->end_controls_tabs();
1027
+
1028
+ $this->end_controls_section();
1029
+ }
1030
+
1031
+ /**
1032
+ * Register Nav Menu General Controls.
1033
+ *
1034
+ * @since 1.3.0
1035
+ * @access protected
1036
+ */
1037
+ protected function register_dropdown_content_controls() {
1038
+
1039
+ $this->start_controls_section(
1040
+ 'section_style_dropdown',
1041
+ [
1042
+ 'label' => __( 'Dropdown', 'header-footer-elementor' ),
1043
+ 'tab' => Controls_Manager::TAB_STYLE,
1044
+ ]
1045
+ );
1046
+
1047
+ $this->add_control(
1048
+ 'dropdown_description',
1049
+ [
1050
+ 'raw' => __( '<b>Note:</b> On desktop, below style options will apply to the submenu. On mobile, this will apply to the entire menu.', 'header-footer-elementor' ),
1051
+ 'type' => Controls_Manager::RAW_HTML,
1052
+ 'content_classes' => 'elementor-descriptor',
1053
+ 'condition' => [
1054
+ 'layout!' => [
1055
+ 'expandible',
1056
+ 'flyout',
1057
+ ],
1058
+ ],
1059
+ ]
1060
+ );
1061
+
1062
+ $this->start_controls_tabs( 'tabs_dropdown_item_style' );
1063
+
1064
+ $this->start_controls_tab(
1065
+ 'tab_dropdown_item_normal',
1066
+ [
1067
+ 'label' => __( 'Normal', 'header-footer-elementor' ),
1068
+ ]
1069
+ );
1070
+
1071
+ $this->add_control(
1072
+ 'color_dropdown_item',
1073
+ [
1074
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
1075
+ 'type' => Controls_Manager::COLOR,
1076
+ 'default' => '',
1077
+ 'selectors' => [
1078
+ '{{WRAPPER}} .sub-menu a.hfe-sub-menu-item,
1079
+ {{WRAPPER}} .elementor-menu-toggle,
1080
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item,
1081
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item,
1082
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item,
1083
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-sub-menu-item' => 'color: {{VALUE}}',
1084
+ ],
1085
+ ]
1086
+ );
1087
+
1088
+ $this->add_control(
1089
+ 'background_color_dropdown_item',
1090
+ [
1091
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
1092
+ 'type' => Controls_Manager::COLOR,
1093
+ 'default' => '#fff',
1094
+ 'selectors' => [
1095
+ '{{WRAPPER}} .sub-menu,
1096
+ {{WRAPPER}} nav.hfe-dropdown,
1097
+ {{WRAPPER}} nav.hfe-dropdown-expandible,
1098
+ {{WRAPPER}} nav.hfe-dropdown .menu-item a.hfe-menu-item,
1099
+ {{WRAPPER}} nav.hfe-dropdown .menu-item a.hfe-sub-menu-item' => 'background-color: {{VALUE}}',
1100
+ ],
1101
+ 'separator' => 'none',
1102
+ ]
1103
+ );
1104
+
1105
+ $this->end_controls_tab();
1106
+
1107
+ $this->start_controls_tab(
1108
+ 'tab_dropdown_item_hover',
1109
+ [
1110
+ 'label' => __( 'Hover', 'header-footer-elementor' ),
1111
+ ]
1112
+ );
1113
+
1114
+ $this->add_control(
1115
+ 'color_dropdown_item_hover',
1116
+ [
1117
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
1118
+ 'type' => Controls_Manager::COLOR,
1119
+ 'default' => '',
1120
+ 'selectors' => [
1121
+ '{{WRAPPER}} .sub-menu a.hfe-sub-menu-item:hover,
1122
+ {{WRAPPER}} .elementor-menu-toggle:hover,
1123
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item:hover,
1124
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item:hover,
1125
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item:hover,
1126
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-sub-menu-item:hover' => 'color: {{VALUE}}',
1127
+ ],
1128
+ ]
1129
+ );
1130
+
1131
+ $this->add_control(
1132
+ 'background_color_dropdown_item_hover',
1133
+ [
1134
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
1135
+ 'type' => Controls_Manager::COLOR,
1136
+ 'default' => '',
1137
+ 'selectors' => [
1138
+ '{{WRAPPER}} .sub-menu a.hfe-sub-menu-item:hover,
1139
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item:hover,
1140
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item:hover,
1141
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item:hover,
1142
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-sub-menu-item:hover' => 'background-color: {{VALUE}}',
1143
+ ],
1144
+ 'separator' => 'none',
1145
+ ]
1146
+ );
1147
+
1148
+ $this->end_controls_tab();
1149
+
1150
+ $this->end_controls_tabs();
1151
+
1152
+ $this->add_group_control(
1153
+ Group_Control_Typography::get_type(),
1154
+ [
1155
+ 'name' => 'dropdown_typography',
1156
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
1157
+ 'separator' => 'before',
1158
+ 'selector' => '
1159
+ {{WRAPPER}} .sub-menu li a.hfe-sub-menu-item,
1160
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item,
1161
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item,
1162
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item,
1163
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-sub-menu-item',
1164
+ ]
1165
+ );
1166
+
1167
+ $this->add_group_control(
1168
+ Group_Control_Border::get_type(),
1169
+ [
1170
+ 'name' => 'dropdown_border',
1171
+ 'selector' => '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal .sub-menu,
1172
+ {{WRAPPER}} nav:not(.hfe-nav-menu__layout-horizontal) .sub-menu.sub-menu-open,
1173
+ {{WRAPPER}} nav.hfe-dropdown,
1174
+ {{WRAPPER}} nav.hfe-dropdown-expandible',
1175
+ ]
1176
+ );
1177
+
1178
+ $this->add_responsive_control(
1179
+ 'dropdown_border_radius',
1180
+ [
1181
+ 'label' => __( 'Border Radius', 'header-footer-elementor' ),
1182
+ 'type' => Controls_Manager::DIMENSIONS,
1183
+ 'size_units' => [ 'px', '%' ],
1184
+ 'selectors' => [
1185
+ '{{WRAPPER}} .sub-menu' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1186
+ '{{WRAPPER}} .sub-menu li.menu-item:first-child' => 'border-top-left-radius: {{TOP}}{{UNIT}}; border-top-right-radius: {{RIGHT}}{{UNIT}};overflow:hidden;',
1187
+ '{{WRAPPER}} .sub-menu li.menu-item:last-child' => 'border-bottom-right-radius: {{BOTTOM}}{{UNIT}}; border-bottom-left-radius: {{LEFT}}{{UNIT}};overflow:hidden',
1188
+ '{{WRAPPER}} nav.hfe-dropdown' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1189
+ '{{WRAPPER}} nav.hfe-dropdown li.menu-item:first-child' => 'border-top-left-radius: {{TOP}}{{UNIT}}; border-top-right-radius: {{RIGHT}}{{UNIT}};overflow:hidden',
1190
+ '{{WRAPPER}} nav.hfe-dropdown li.menu-item:last-child' => 'border-bottom-right-radius: {{BOTTOM}}{{UNIT}}; border-bottom-left-radius: {{LEFT}}{{UNIT}};overflow:hidden',
1191
+ '{{WRAPPER}} nav.hfe-dropdown-expandible' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1192
+ '{{WRAPPER}} nav.hfe-dropdown-expandible li.menu-item:first-child' => 'border-top-left-radius: {{TOP}}{{UNIT}}; border-top-right-radius: {{RIGHT}}{{UNIT}};overflow:hidden',
1193
+ '{{WRAPPER}} nav.hfe-dropdown-expandible li.menu-item:last-child' => 'border-bottom-right-radius: {{BOTTOM}}{{UNIT}}; border-bottom-left-radius: {{LEFT}}{{UNIT}};overflow:hidden',
1194
+ ],
1195
+ ]
1196
+ );
1197
+
1198
+ $this->add_group_control(
1199
+ Group_Control_Box_Shadow::get_type(),
1200
+ [
1201
+ 'name' => 'dropdown_box_shadow',
1202
+ 'exclude' => [
1203
+ 'box_shadow_position',
1204
+ ],
1205
+ 'selector' => '{{WRAPPER}} .hfe-nav-menu .sub-menu,
1206
+ {{WRAPPER}} nav.hfe-dropdown,
1207
+ {{WRAPPER}} nav.hfe-dropdown-expandible',
1208
+ 'separator' => 'after',
1209
+ ]
1210
+ );
1211
+
1212
+ $this->add_responsive_control(
1213
+ 'width_dropdown_item',
1214
+ [
1215
+ 'label' => __( 'Dropdown Width (px)', 'header-footer-elementor' ),
1216
+ 'type' => Controls_Manager::SLIDER,
1217
+ 'range' => [
1218
+ 'px' => [
1219
+ 'min' => 0,
1220
+ 'max' => 500,
1221
+ ],
1222
+ ],
1223
+ 'default' => [
1224
+ 'size' => '220',
1225
+ 'unit' => 'px',
1226
+ ],
1227
+ 'selectors' => [
1228
+ '{{WRAPPER}} ul.sub-menu' => 'width: {{SIZE}}{{UNIT}}',
1229
+ ],
1230
+ 'condition' => [
1231
+ 'layout' => 'horizontal',
1232
+ ],
1233
+ ]
1234
+ );
1235
+
1236
+ $this->add_responsive_control(
1237
+ 'padding_horizontal_dropdown_item',
1238
+ [
1239
+ 'label' => __( 'Horizontal Padding', 'header-footer-elementor' ),
1240
+ 'type' => Controls_Manager::SLIDER,
1241
+ 'size_units' => [ 'px' ],
1242
+ 'selectors' => [
1243
+ '{{WRAPPER}} .sub-menu li a.hfe-sub-menu-item,
1244
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item,
1245
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}}',
1246
+ '{{WRAPPER}} nav.hfe-dropdown-expandible a.hfe-sub-menu-item,
1247
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 20px );padding-right: {{SIZE}}{{UNIT}};',
1248
+ '{{WRAPPER}} .hfe-dropdown .menu-item ul ul a.hfe-sub-menu-item,
1249
+ {{WRAPPER}} .hfe-dropdown-expandible .menu-item ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 40px );padding-right: {{SIZE}}{{UNIT}};',
1250
+ '{{WRAPPER}} .hfe-dropdown .menu-item ul ul ul a.hfe-sub-menu-item,
1251
+ {{WRAPPER}} .hfe-dropdown-expandible .menu-item ul ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 60px );padding-right: {{SIZE}}{{UNIT}};',
1252
+ '{{WRAPPER}} .hfe-dropdown .menu-item ul ul ul ul a.hfe-sub-menu-item,
1253
+ {{WRAPPER}} .hfe-dropdown-expandible .menu-item ul ul ul ul a.hfe-sub-menu-item' => 'padding-left: calc( {{SIZE}}{{UNIT}} + 80px );padding-right: {{SIZE}}{{UNIT}};',
1254
+ ],
1255
+ ]
1256
+ );
1257
+
1258
+ $this->add_responsive_control(
1259
+ 'padding_vertical_dropdown_item',
1260
+ [
1261
+ 'label' => __( 'Vertical Padding', 'header-footer-elementor' ),
1262
+ 'type' => Controls_Manager::SLIDER,
1263
+ 'size_units' => [ 'px' ],
1264
+ 'default' => [
1265
+ 'size' => 15,
1266
+ 'unit' => 'px',
1267
+ ],
1268
+ 'range' => [
1269
+ 'px' => [
1270
+ 'max' => 50,
1271
+ ],
1272
+ ],
1273
+ 'selectors' => [
1274
+ '{{WRAPPER}} .sub-menu a.hfe-sub-menu-item,
1275
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-menu-item,
1276
+ {{WRAPPER}} nav.hfe-dropdown li a.hfe-sub-menu-item,
1277
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-menu-item,
1278
+ {{WRAPPER}} nav.hfe-dropdown-expandible li a.hfe-sub-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}}',
1279
+ ],
1280
+ ]
1281
+ );
1282
+
1283
+ $this->add_responsive_control(
1284
+ 'distance_from_menu',
1285
+ [
1286
+ 'label' => __( 'Top Distance', 'header-footer-elementor' ),
1287
+ 'type' => Controls_Manager::SLIDER,
1288
+ 'range' => [
1289
+ 'px' => [
1290
+ 'min' => -100,
1291
+ 'max' => 100,
1292
+ ],
1293
+ ],
1294
+ 'selectors' => [
1295
+ '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal ul.sub-menu, {{WRAPPER}} nav.hfe-nav-menu__layout-expandible.menu-is-active' => 'margin-top: {{SIZE}}px;',
1296
+ '{{WRAPPER}} .hfe-dropdown.menu-is-active' => 'margin-top: {{SIZE}}px;',
1297
+ ],
1298
+ 'condition' => [
1299
+ 'layout' => [ 'horizontal', 'vertical', 'expandible' ],
1300
+ ],
1301
+ ]
1302
+ );
1303
+
1304
+ $this->add_control(
1305
+ 'heading_dropdown_divider',
1306
+ [
1307
+ 'label' => __( 'Divider', 'header-footer-elementor' ),
1308
+ 'type' => Controls_Manager::HEADING,
1309
+ 'separator' => 'before',
1310
+ ]
1311
+ );
1312
+
1313
+ $this->add_control(
1314
+ 'dropdown_divider_border',
1315
+ [
1316
+ 'label' => __( 'Border Style', 'header-footer-elementor' ),
1317
+ 'type' => Controls_Manager::SELECT,
1318
+ 'default' => 'solid',
1319
+ 'label_block' => false,
1320
+ 'options' => [
1321
+ 'none' => __( 'None', 'header-footer-elementor' ),
1322
+ 'solid' => __( 'Solid', 'header-footer-elementor' ),
1323
+ 'double' => __( 'Double', 'header-footer-elementor' ),
1324
+ 'dotted' => __( 'Dotted', 'header-footer-elementor' ),
1325
+ 'dashed' => __( 'Dashed', 'header-footer-elementor' ),
1326
+ ],
1327
+ 'selectors' => [
1328
+ '{{WRAPPER}} .sub-menu li.menu-item:not(:last-child),
1329
+ {{WRAPPER}} nav.hfe-dropdown li.menu-item:not(:last-child),
1330
+ {{WRAPPER}} nav.hfe-dropdown-expandible li.menu-item:not(:last-child)' => 'border-bottom-style: {{VALUE}};',
1331
+ ],
1332
+ ]
1333
+ );
1334
+ $this->add_control(
1335
+ 'divider_border_color',
1336
+ [
1337
+ 'label' => __( 'Border Color', 'header-footer-elementor' ),
1338
+ 'type' => Controls_Manager::COLOR,
1339
+ 'default' => '#c4c4c4',
1340
+ 'selectors' => [
1341
+ '{{WRAPPER}} .sub-menu li.menu-item:not(:last-child),
1342
+ {{WRAPPER}} nav.hfe-dropdown li.menu-item:not(:last-child),
1343
+ {{WRAPPER}} nav.hfe-dropdown-expandible li.menu-item:not(:last-child)' => 'border-bottom-color: {{VALUE}};',
1344
+ ],
1345
+ 'condition' => [
1346
+ 'dropdown_divider_border!' => 'none',
1347
+ ],
1348
+ ]
1349
+ );
1350
+
1351
+ $this->add_control(
1352
+ 'dropdown_divider_width',
1353
+ [
1354
+ 'label' => __( 'Border Width', 'header-footer-elementor' ),
1355
+ 'type' => Controls_Manager::SLIDER,
1356
+ 'range' => [
1357
+ 'px' => [
1358
+ 'max' => 50,
1359
+ ],
1360
+ ],
1361
+ 'default' => [
1362
+ 'size' => '1',
1363
+ 'unit' => 'px',
1364
+ ],
1365
+ 'selectors' => [
1366
+ '{{WRAPPER}} .sub-menu li.menu-item:not(:last-child),
1367
+ {{WRAPPER}} nav.hfe-dropdown li.menu-item:not(:last-child),
1368
+ {{WRAPPER}} nav.hfe-dropdown-expandible li.menu-item:not(:last-child)' => 'border-bottom-width: {{SIZE}}{{UNIT}}',
1369
+ ],
1370
+ 'condition' => [
1371
+ 'dropdown_divider_border!' => 'none',
1372
+ ],
1373
+ ]
1374
+ );
1375
+
1376
+ $this->end_controls_section();
1377
+
1378
+ $this->start_controls_section(
1379
+ 'style_toggle',
1380
+ [
1381
+ 'label' => __( 'Menu Trigger & Close Icon', 'header-footer-elementor' ),
1382
+ 'tab' => Controls_Manager::TAB_STYLE,
1383
+ ]
1384
+ );
1385
+
1386
+ $this->start_controls_tabs( 'tabs_toggle_style' );
1387
+
1388
+ $this->start_controls_tab(
1389
+ 'toggle_style_normal',
1390
+ [
1391
+ 'label' => __( 'Normal', 'header-footer-elementor' ),
1392
+ ]
1393
+ );
1394
+
1395
+ $this->add_control(
1396
+ 'toggle_color',
1397
+ [
1398
+ 'label' => __( 'Color', 'header-footer-elementor' ),
1399
+ 'type' => Controls_Manager::COLOR,
1400
+ 'selectors' => [
1401
+ '{{WRAPPER}} div.hfe-nav-menu-icon' => 'color: {{VALUE}}',
1402
+ ],
1403
+ ]
1404
+ );
1405
+
1406
+ $this->add_control(
1407
+ 'toggle_background_color',
1408
+ [
1409
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
1410
+ 'type' => Controls_Manager::COLOR,
1411
+ 'selectors' => [
1412
+ '{{WRAPPER}} .hfe-nav-menu-icon' => 'background-color: {{VALUE}}; padding: 0.35em;',
1413
+ ],
1414
+ ]
1415
+ );
1416
+
1417
+ $this->end_controls_tab();
1418
+
1419
+ $this->start_controls_tab(
1420
+ 'toggle_hover',
1421
+ [
1422
+ 'label' => __( 'Hover', 'header-footer-elementor' ),
1423
+ ]
1424
+ );
1425
+
1426
+ $this->add_control(
1427
+ 'toggle_hover_color',
1428
+ [
1429
+ 'label' => __( 'Color', 'header-footer-elementor' ),
1430
+ 'type' => Controls_Manager::COLOR,
1431
+ 'selectors' => [
1432
+ '{{WRAPPER}} div.hfe-nav-menu-icon:hover' => 'color: {{VALUE}}',
1433
+ ],
1434
+ ]
1435
+ );
1436
+
1437
+ $this->add_control(
1438
+ 'toggle_hover_background_color',
1439
+ [
1440
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
1441
+ 'type' => Controls_Manager::COLOR,
1442
+ 'selectors' => [
1443
+ '{{WRAPPER}} .hfe-nav-menu-icon:hover' => 'background-color: {{VALUE}}; padding: 0.35em;',
1444
+ ],
1445
+ ]
1446
+ );
1447
+
1448
+ $this->end_controls_tab();
1449
+
1450
+ $this->end_controls_tabs();
1451
+
1452
+ $this->add_responsive_control(
1453
+ 'toggle_size',
1454
+ [
1455
+ 'label' => __( 'Icon Size', 'header-footer-elementor' ),
1456
+ 'type' => Controls_Manager::SLIDER,
1457
+ 'range' => [
1458
+ 'px' => [
1459
+ 'min' => 15,
1460
+ ],
1461
+ ],
1462
+ 'selectors' => [
1463
+ '{{WRAPPER}} .hfe-nav-menu-icon' => 'font-size: {{SIZE}}{{UNIT}}',
1464
+ ],
1465
+ 'separator' => 'before',
1466
+ ]
1467
+ );
1468
+
1469
+ $this->add_responsive_control(
1470
+ 'toggle_border_width',
1471
+ [
1472
+ 'label' => __( 'Border Width', 'header-footer-elementor' ),
1473
+ 'type' => Controls_Manager::SLIDER,
1474
+ 'range' => [
1475
+ 'px' => [
1476
+ 'max' => 10,
1477
+ ],
1478
+ ],
1479
+ 'selectors' => [
1480
+ '{{WRAPPER}} .hfe-nav-menu-icon' => 'border-width: {{SIZE}}{{UNIT}}; padding: 0.35em;',
1481
+ ],
1482
+ ]
1483
+ );
1484
+
1485
+ $this->add_responsive_control(
1486
+ 'toggle_border_radius',
1487
+ [
1488
+ 'label' => __( 'Border Radius', 'header-footer-elementor' ),
1489
+ 'type' => Controls_Manager::SLIDER,
1490
+ 'size_units' => [ 'px', '%' ],
1491
+ 'selectors' => [
1492
+ '{{WRAPPER}} .hfe-nav-menu-icon' => 'border-radius: {{SIZE}}{{UNIT}}',
1493
+ ],
1494
+ ]
1495
+ );
1496
+
1497
+ $this->add_control(
1498
+ 'close_color_flyout',
1499
+ [
1500
+ 'label' => __( 'Close Icon Color', 'header-footer-elementor' ),
1501
+ 'type' => Controls_Manager::COLOR,
1502
+ 'default' => '#7A7A7A',
1503
+ 'selectors' => [
1504
+ '{{WRAPPER}} .hfe-flyout-close' => 'color: {{VALUE}}',
1505
+ ],
1506
+ 'condition' => [
1507
+ 'layout' => 'flyout',
1508
+ ],
1509
+ 'separator' => 'before',
1510
+ ]
1511
+ );
1512
+
1513
+ $this->add_responsive_control(
1514
+ 'close_flyout_size',
1515
+ [
1516
+ 'label' => __( 'Close Icon Size', 'header-footer-elementor' ),
1517
+ 'type' => Controls_Manager::SLIDER,
1518
+ 'range' => [
1519
+ 'px' => [
1520
+ 'min' => 15,
1521
+ ],
1522
+ ],
1523
+ 'selectors' => [
1524
+ '{{WRAPPER}} .hfe-flyout-close' => 'height: {{SIZE}}px; width: {{SIZE}}px; font-size: {{SIZE}}px; line-height: {{SIZE}}px;',
1525
+ ],
1526
+ 'condition' => [
1527
+ 'layout' => 'flyout',
1528
+ ],
1529
+ ]
1530
+ );
1531
+
1532
+ $this->end_controls_section();
1533
+ }
1534
+
1535
+ /**
1536
+ * Render Nav Menu output on the frontend.
1537
+ *
1538
+ * Written in PHP and used to generate the final HTML.
1539
+ *
1540
+ * @since 1.3.0
1541
+ * @access protected
1542
+ */
1543
+ protected function render() {
1544
+
1545
+ $settings = $this->get_settings_for_display();
1546
+
1547
+ $args = [
1548
+ 'echo' => false,
1549
+ 'menu' => $settings['menu'],
1550
+ 'menu_class' => 'hfe-nav-menu',
1551
+ 'menu_id' => 'menu-' . $this->get_nav_menu_index() . '-' . $this->get_id(),
1552
+ 'fallback_cb' => '__return_empty_string',
1553
+ 'container' => '',
1554
+ 'walker' => new Menu_Walker,
1555
+ ];
1556
+
1557
+ $menu_html = wp_nav_menu( $args );
1558
+
1559
+ if ( 'flyout' === $settings['layout'] ) {
1560
+
1561
+ $this->add_render_attribute( 'hfe-flyout', 'class', 'hfe-flyout-wrapper' );
1562
+
1563
+ ?>
1564
+ <div class="hfe-nav-menu__toggle elementor-clickable hfe-flyout-trigger" tabindex="0">
1565
+ <div class="hfe-nav-menu-icon">
1566
+ <?php if ( $this->is_elementor_updated() ) { ?>
1567
+ <i class="<?php echo esc_attr( $settings['dropdown_icon']['value'] ); ?>" aria-hidden="true" tabindex="0"></i>
1568
+ <?php } else { ?>
1569
+ <i class="<?php echo esc_attr( $settings['dropdown_icon'] ); ?>" aria-hidden="true" tabindex="0"></i>
1570
+ <?php } ?>
1571
+ </div>
1572
+ </div>
1573
+ <div <?php echo wp_kses_post( $this->get_render_attribute_string( 'hfe-flyout' ) ); ?> >
1574
+ <div class="hfe-flyout-overlay elementor-clickable"></div>
1575
+ <div class="hfe-flyout-container">
1576
+ <div id="hfe-flyout-content-id-<?php echo esc_attr( $this->get_id() ); ?>" class="hfe-side hfe-flyout-<?php echo esc_attr( $settings['flyout_layout'] ); ?> hfe-flyout-open" data-width="<?php echo esc_attr( $settings['width_flyout_menu_item']['size'] ); ?>" data-layout="<?php echo wp_kses_post( $settings['flyout_layout'] ); ?>" data-flyout-type="<?php echo wp_kses_post( $settings['flyout_type'] ); ?>">
1577
+ <div class="hfe-flyout-content push">
1578
+ <nav <?php echo wp_kses_post( $this->get_render_attribute_string( 'hfe-nav-menu' ) ); ?>><?php echo wp_kses_post( $menu_html ); ?></nav>
1579
+ <div class="elementor-clickable hfe-flyout-close" tabindex="0">
1580
+ <?php if ( $this->is_elementor_updated() ) { ?>
1581
+ <i class="<?php echo esc_attr( $settings['dropdown_close_icon']['value'] ); ?>" aria-hidden="true"></i>
1582
+ <?php } else { ?>
1583
+ <i class="<?php echo esc_attr( $settings['dropdown_close_icon'] ); ?>" aria-hidden="true"></i>
1584
+ <?php } ?>
1585
+ </div>
1586
+ </div>
1587
+ </div>
1588
+ </div>
1589
+ </div>
1590
+ <?php
1591
+ } else {
1592
+ $this->add_render_attribute(
1593
+ 'hfe-main-menu',
1594
+ 'class',
1595
+ [
1596
+ 'hfe-nav-menu',
1597
+ 'hfe-layout-' . $settings['layout'],
1598
+ ]
1599
+ );
1600
+
1601
+ $this->add_render_attribute( 'hfe-main-menu', 'class', 'hfe-nav-menu-layout' );
1602
+
1603
+ $this->add_render_attribute( 'hfe-main-menu', 'class', $settings['layout'] );
1604
+
1605
+ $this->add_render_attribute( 'hfe-main-menu', 'data-layout', $settings['layout'] );
1606
+
1607
+ if ( $settings['pointer'] ) {
1608
+ if ( 'horizontal' === $settings['layout'] || 'vertical' === $settings['layout'] ) {
1609
+ $this->add_render_attribute( 'hfe-main-menu', 'class', 'hfe-pointer__' . $settings['pointer'] );
1610
+
1611
+ if ( in_array( $settings['pointer'], [ 'double-line', 'underline', 'overline' ], true ) ) {
1612
+ $key = 'animation_line';
1613
+ $this->add_render_attribute( 'hfe-main-menu', 'class', 'hfe-animation__' . $settings[ $key ] );
1614
+ } elseif ( 'framed' === $settings['pointer'] || 'text' === $settings['pointer'] ) {
1615
+ $key = 'animation_' . $settings['pointer'];
1616
+ $this->add_render_attribute( 'hfe-main-menu', 'class', 'hfe-animation__' . $settings[ $key ] );
1617
+ }
1618
+ }
1619
+ }
1620
+
1621
+ if ( 'expandible' === $settings['layout'] ) {
1622
+ $this->add_render_attribute( 'hfe-nav-menu', 'class', 'hfe-dropdown-expandible' );
1623
+ }
1624
+
1625
+ $this->add_render_attribute(
1626
+ 'hfe-nav-menu',
1627
+ 'class',
1628
+ [
1629
+ 'hfe-nav-menu__layout-' . $settings['layout'],
1630
+ 'hfe-nav-menu__submenu-' . $settings['submenu_icon'],
1631
+ ]
1632
+ );
1633
+
1634
+ $this->add_render_attribute( 'hfe-nav-menu', 'data-toggle-icon', $settings['dropdown_icon'] );
1635
+
1636
+ $this->add_render_attribute( 'hfe-nav-menu', 'data-close-icon', $settings['dropdown_close_icon'] );
1637
+
1638
+ $this->add_render_attribute( 'hfe-nav-menu', 'data-full-width', $settings['full_width_dropdown'] );
1639
+
1640
+ ?>
1641
+ <div <?php echo $this->get_render_attribute_string( 'hfe-main-menu' ); ?>>
1642
+ <div class="hfe-nav-menu__toggle elementor-clickable">
1643
+ <div class="hfe-nav-menu-icon">
1644
+ <?php if ( $this->is_elementor_updated() ) { ?>
1645
+ <i class="<?php echo esc_attr( $settings['dropdown_icon']['value'] ); ?>" aria-hidden="true" tabindex="0"></i>
1646
+ <?php } else { ?>
1647
+ <i class="<?php echo esc_attr( $settings['dropdown_icon'] ); ?>" aria-hidden="true" tabindex="0"></i>
1648
+ <?php } ?>
1649
+ </div>
1650
+ </div>
1651
+ <nav <?php echo $this->get_render_attribute_string( 'hfe-nav-menu' ); ?>><?php echo $menu_html; ?></nav>
1652
+ </div>
1653
+ <?php
1654
+ }
1655
+ }
1656
+ }
1657
+
inc/widgets-manager/widgets/class-page-title.php ADDED
@@ -0,0 +1,496 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ use Elementor\Controls_Manager;
11
+ use Elementor\Group_Control_Text_Shadow;
12
+ use Elementor\Widget_Base;
13
+ use Elementor\Group_Control_Typography;
14
+ use Elementor\Scheme_Typography;
15
+ use Elementor\Scheme_Color;
16
+
17
+ if ( ! defined( 'ABSPATH' ) ) {
18
+ exit; // Exit if accessed directly.
19
+ }
20
+
21
+ /**
22
+ * HFE Page Title widget
23
+ *
24
+ * HFE widget for Page Title.
25
+ *
26
+ * @since 1.3.0
27
+ */
28
+ class Page_Title extends Widget_Base {
29
+
30
+
31
+ /**
32
+ * Retrieve the widget name.
33
+ *
34
+ * @since 1.3.0
35
+ *
36
+ * @access public
37
+ *
38
+ * @return string Widget name.
39
+ */
40
+ public function get_name() {
41
+ return 'page-title';
42
+ }
43
+
44
+ /**
45
+ * Retrieve the widget title.
46
+ *
47
+ * @since 1.3.0
48
+ *
49
+ * @access public
50
+ *
51
+ * @return string Widget title.
52
+ */
53
+ public function get_title() {
54
+ return __( 'Page Title', 'header-footer-elementor' );
55
+ }
56
+
57
+ /**
58
+ * Retrieve the widget icon.
59
+ *
60
+ * @since 1.3.0
61
+ *
62
+ * @access public
63
+ *
64
+ * @return string Widget icon.
65
+ */
66
+ public function get_icon() {
67
+ return 'hfe-icon-page-title';
68
+ }
69
+
70
+ /**
71
+ * Retrieve the list of categories the widget belongs to.
72
+ *
73
+ * Used to determine where to display the widget in the editor.
74
+ *
75
+ * Note that currently Elementor supports only one category.
76
+ * When multiple categories passed, Elementor uses the first one.
77
+ *
78
+ * @since 1.3.0
79
+ *
80
+ * @access public
81
+ *
82
+ * @return array Widget categories.
83
+ */
84
+ public function get_categories() {
85
+ return [ 'hfe-widgets' ];
86
+ }
87
+
88
+ /**
89
+ * Register Page Title controls.
90
+ *
91
+ * @since 1.3.0
92
+ * @access protected
93
+ */
94
+ protected function _register_controls() {
95
+ $this->register_content_page_title_controls();
96
+ $this->register_page_title_style_controls();
97
+ }
98
+
99
+ /**
100
+ * Register Page Title General Controls.
101
+ *
102
+ * @since 1.3.0
103
+ * @access protected
104
+ */
105
+ protected function register_content_page_title_controls() {
106
+ $this->start_controls_section(
107
+ 'section_general_fields',
108
+ [
109
+ 'label' => __( 'Title', 'header-footer-elementor' ),
110
+ ]
111
+ );
112
+
113
+ $this->add_control(
114
+ 'before',
115
+ [
116
+ 'label' => __( 'Before Title Text', 'header-footer-elementor' ),
117
+ 'type' => Controls_Manager::TEXT,
118
+ 'dynamic' => [
119
+ 'active' => true,
120
+ ],
121
+ ]
122
+ );
123
+
124
+ $this->add_control(
125
+ 'after',
126
+ [
127
+ 'label' => __( 'After Title Text', 'header-footer-elementor' ),
128
+ 'type' => Controls_Manager::TEXT,
129
+ 'dynamic' => [
130
+ 'active' => true,
131
+ ],
132
+ ]
133
+ );
134
+
135
+ $this->add_control(
136
+ 'new_page_title_select_icon',
137
+ [
138
+ 'label' => __( 'Select Icon', 'header-footer-elementor' ),
139
+ 'type' => Controls_Manager::ICONS,
140
+ 'render_type' => 'template',
141
+ ]
142
+ );
143
+
144
+ $this->add_control(
145
+ 'page_title_icon_indent',
146
+ [
147
+ 'label' => __( 'Icon Spacing', 'header-footer-elementor' ),
148
+ 'type' => Controls_Manager::SLIDER,
149
+ 'range' => [
150
+ 'px' => [
151
+ 'max' => 50,
152
+ ],
153
+ ],
154
+ 'condition' => [
155
+ 'new_page_title_select_icon[value]!' => '',
156
+ ],
157
+ 'selectors' => [
158
+ '{{WRAPPER}} .hfe-page-title-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
159
+ ],
160
+ ]
161
+ );
162
+
163
+ $this->add_control(
164
+ 'page_custom_link',
165
+ [
166
+ 'label' => __( 'Link', 'header-footer-elementor' ),
167
+ 'type' => Controls_Manager::SELECT,
168
+ 'options' => [
169
+ 'custom' => __( 'Custom URL', 'header-footer-elementor' ),
170
+ 'default' => __( 'Default', 'header-footer-elementor' ),
171
+ ],
172
+ 'default' => 'default',
173
+ ]
174
+ );
175
+
176
+ $this->add_control(
177
+ 'page_heading_link',
178
+ [
179
+ 'label' => __( 'Link', 'header-footer-elementor' ),
180
+ 'type' => Controls_Manager::URL,
181
+ 'placeholder' => __( 'https://your-link.com', 'header-footer-elementor' ),
182
+ 'dynamic' => [
183
+ 'active' => true,
184
+ ],
185
+ 'default' => [
186
+ 'url' => get_home_url(),
187
+ ],
188
+ 'condition' => [
189
+ 'page_custom_link' => 'custom',
190
+ ],
191
+ ]
192
+ );
193
+
194
+ $this->add_control(
195
+ 'heading_tag',
196
+ [
197
+ 'label' => __( 'HTML Tag', 'header-footer-elementor' ),
198
+ 'type' => Controls_Manager::SELECT,
199
+ 'options' => [
200
+ 'h1' => __( 'H1', 'header-footer-elementor' ),
201
+ 'h2' => __( 'H2', 'header-footer-elementor' ),
202
+ 'h3' => __( 'H3', 'header-footer-elementor' ),
203
+ 'h4' => __( 'H4', 'header-footer-elementor' ),
204
+ 'h5' => __( 'H5', 'header-footer-elementor' ),
205
+ 'h6' => __( 'H6', 'header-footer-elementor' ),
206
+ ],
207
+ 'default' => 'h2',
208
+ ]
209
+ );
210
+
211
+ $this->add_control(
212
+ 'size',
213
+ [
214
+ 'label' => __( 'Size', 'header-footer-elementor' ),
215
+ 'type' => Controls_Manager::SELECT,
216
+ 'default' => 'default',
217
+ 'options' => [
218
+ 'default' => __( 'Default', 'header-footer-elementor' ),
219
+ 'small' => __( 'Small', 'header-footer-elementor' ),
220
+ 'medium' => __( 'Medium', 'header-footer-elementor' ),
221
+ 'large' => __( 'Large', 'header-footer-elementor' ),
222
+ 'xl' => __( 'XL', 'header-footer-elementor' ),
223
+ 'xxl' => __( 'XXL', 'header-footer-elementor' ),
224
+ ],
225
+ ]
226
+ );
227
+
228
+ $this->add_responsive_control(
229
+ 'align',
230
+ [
231
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
232
+ 'type' => Controls_Manager::CHOOSE,
233
+ 'options' => [
234
+ 'left' => [
235
+ 'title' => __( 'Left', 'header-footer-elementor' ),
236
+ 'icon' => 'eicon-text-align-left',
237
+ ],
238
+ 'center' => [
239
+ 'title' => __( 'Center', 'header-footer-elementor' ),
240
+ 'icon' => 'eicon-text-align-center',
241
+ ],
242
+ 'right' => [
243
+ 'title' => __( 'Right', 'header-footer-elementor' ),
244
+ 'icon' => 'eicon-text-align-right',
245
+ ],
246
+ 'justify' => [
247
+ 'title' => __( 'Justified', 'header-footer-elementor' ),
248
+ 'icon' => 'eicon-text-align-justify',
249
+ ],
250
+ ],
251
+ 'default' => '',
252
+ 'selectors' => [
253
+ '{{WRAPPER}} .hfe-page-title-wrapper' => 'text-align: {{VALUE}};',
254
+ ],
255
+ ]
256
+ );
257
+
258
+ $this->end_controls_section();
259
+ }
260
+ /**
261
+ * Register Page Title Style Controls.
262
+ *
263
+ * @since 1.3.0
264
+ * @access protected
265
+ */
266
+ protected function register_page_title_style_controls() {
267
+ $this->start_controls_section(
268
+ 'section_title_typography',
269
+ [
270
+ 'label' => __( 'Title', 'header-footer-elementor' ),
271
+ 'tab' => Controls_Manager::TAB_STYLE,
272
+ ]
273
+ );
274
+
275
+ $this->add_group_control(
276
+ Group_Control_Typography::get_type(),
277
+ [
278
+ 'name' => 'title_typography',
279
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
280
+ 'selector' => '{{WRAPPER}} .elementor-heading-title, {{WRAPPER}} .hfe-page-title a',
281
+ ]
282
+ );
283
+
284
+ $this->add_control(
285
+ 'title_color',
286
+ [
287
+ 'label' => __( 'Color', 'header-footer-elementor' ),
288
+ 'type' => Controls_Manager::COLOR,
289
+ 'scheme' => [
290
+ 'type' => Scheme_Color::get_type(),
291
+ 'value' => Scheme_Color::COLOR_1,
292
+ ],
293
+ 'selectors' => [
294
+ '{{WRAPPER}} .elementor-heading-title, {{WRAPPER}} .hfe-page-title a' => 'color: {{VALUE}};',
295
+ '{{WRAPPER}} .hfe-page-title-icon i' => 'color: {{VALUE}};',
296
+ '{{WRAPPER}} .hfe-page-title-icon svg' => 'fill: {{VALUE}};',
297
+ ],
298
+ ]
299
+ );
300
+
301
+ $this->add_group_control(
302
+ Group_Control_Text_Shadow::get_type(),
303
+ [
304
+ 'name' => 'title_shadow',
305
+ 'selector' => '{{WRAPPER}} .elementor-heading-title',
306
+ ]
307
+ );
308
+
309
+ $this->add_control(
310
+ 'blend_mode',
311
+ [
312
+ 'label' => __( 'Blend Mode', 'header-footer-elementor' ),
313
+ 'type' => Controls_Manager::SELECT,
314
+ 'options' => [
315
+ '' => __( 'Normal', 'header-footer-elementor' ),
316
+ 'multiply' => 'Multiply',
317
+ 'screen' => 'Screen',
318
+ 'overlay' => 'Overlay',
319
+ 'darken' => 'Darken',
320
+ 'lighten' => 'Lighten',
321
+ 'color-dodge' => 'Color Dodge',
322
+ 'saturation' => 'Saturation',
323
+ 'color' => 'Color',
324
+ 'difference' => 'Difference',
325
+ 'exclusion' => 'Exclusion',
326
+ 'hue' => 'Hue',
327
+ 'luminosity' => 'Luminosity',
328
+ ],
329
+ 'selectors' => [
330
+ '{{WRAPPER}} .elementor-heading-title' => 'mix-blend-mode: {{VALUE}}',
331
+ ],
332
+ ]
333
+ );
334
+
335
+ $this->end_controls_section();
336
+
337
+ $this->start_controls_section(
338
+ 'section_icon',
339
+ [
340
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
341
+ 'tab' => Controls_Manager::TAB_STYLE,
342
+ 'condition' => [
343
+ 'new_page_title_select_icon[value]!' => '',
344
+ ],
345
+ ]
346
+ );
347
+
348
+ $this->add_control(
349
+ 'page_title_icon_color',
350
+ [
351
+ 'label' => __( 'Icon Color', 'header-footer-elementor' ),
352
+ 'type' => Controls_Manager::COLOR,
353
+ 'scheme' => [
354
+ 'type' => Scheme_Color::get_type(),
355
+ 'value' => Scheme_Color::COLOR_1,
356
+ ],
357
+ 'condition' => [
358
+ 'new_page_title_select_icon[value]!' => '',
359
+ ],
360
+ 'default' => '',
361
+ 'selectors' => [
362
+ '{{WRAPPER}} .hfe-page-title-icon i' => 'color: {{VALUE}};',
363
+ '{{WRAPPER}} .hfe-page-title-icon svg' => 'fill: {{VALUE}};',
364
+ ],
365
+ ]
366
+ );
367
+ $this->add_control(
368
+ 'page_title_icons_hover_color',
369
+ [
370
+ 'label' => __( 'Icon Hover Color', 'header-footer-elementor' ),
371
+ 'type' => Controls_Manager::COLOR,
372
+ 'condition' => [
373
+ 'new_page_title_select_icon[value]!' => '',
374
+ ],
375
+ 'default' => '',
376
+ 'selectors' => [
377
+ '{{WRAPPER}} .hfe-page-title-icon:hover i' => 'color: {{VALUE}};',
378
+ '{{WRAPPER}} .hfe-page-title-icon:hover svg' => 'fill: {{VALUE}};',
379
+ ],
380
+ ]
381
+ );
382
+
383
+ $this->end_controls_section();
384
+ }
385
+
386
+ /**
387
+ * Render page title widget output on the frontend.
388
+ *
389
+ * Written in PHP and used to generate the final HTML.
390
+ *
391
+ * @since 1.3.0
392
+ * @access protected
393
+ */
394
+ protected function render() {
395
+ $settings = $this->get_settings_for_display();
396
+
397
+ $this->add_inline_editing_attributes( 'page_title', 'basic' );
398
+
399
+ if ( ! empty( $settings['page_heading_link']['url'] ) ) {
400
+ $this->add_render_attribute( 'url', 'href', $settings['page_heading_link']['url'] );
401
+
402
+ if ( $settings['page_heading_link']['is_external'] ) {
403
+ $this->add_render_attribute( 'url', 'target', '_blank' );
404
+ }
405
+
406
+ if ( ! empty( $settings['page_heading_link']['nofollow'] ) ) {
407
+ $this->add_render_attribute( 'url', 'rel', 'nofollow' );
408
+ }
409
+ $link = $this->get_render_attribute_string( 'url' );
410
+ }
411
+ ?>
412
+ <div class="hfe-page-title hfe-page-title-wrapper elementor-widget-heading">
413
+ <?php if ( '' != $settings['page_heading_link']['url'] && 'custom' === $settings['page_custom_link'] ) { ?>
414
+ <a <?php echo esc_attr( $link ); ?> >
415
+ <?php } else { ?>
416
+ <a href="<?php echo esc_url( get_home_url() ); ?>">
417
+ <?php } ?>
418
+ <<?php echo wp_kses_post( $settings['heading_tag'] ); ?> class="elementor-heading-title elementor-size-<?php echo $settings['size']; ?>">
419
+ <?php if ( '' !== $settings['new_page_title_select_icon']['value'] ) { ?>
420
+ <span class="hfe-page-title-icon">
421
+ <?php \Elementor\Icons_Manager::render_icon( $settings['new_page_title_select_icon'], [ 'aria-hidden' => 'true' ] ); ?> </span>
422
+ <?php } ?>
423
+ <?php if ( '' != $settings['before'] ) { ?>
424
+ <?php echo wp_kses_post( $settings['before'] ); ?>
425
+ <?php } ?>
426
+
427
+ <?php echo wp_kses_post( get_the_title() ); ?>
428
+
429
+ <?php if ( '' != $settings['after'] ) { ?>
430
+ <?php echo wp_kses_post( $settings['after'] ); ?>
431
+ <?php } ?>
432
+ </<?php echo wp_kses_post( $settings['heading_tag'] ); ?> >
433
+ </a>
434
+ </div>
435
+ <?php
436
+ }
437
+
438
+ /**
439
+ * Render page title output in the editor.
440
+ *
441
+ * Written as a Backbone JavaScript template and used to generate the live preview.
442
+ *
443
+ * @since 1.3.0
444
+ * @access protected
445
+ */
446
+ protected function content_template() {
447
+ ?>
448
+ <#
449
+ if ( '' == settings.page_title ) {
450
+ return;
451
+ }
452
+
453
+ if ( '' != settings.page_heading_link.url ) {
454
+ view.addRenderAttribute( 'url', 'href', settings.page_heading_link.url );
455
+ }
456
+ var iconHTML = elementor.helpers.renderIcon( view, settings.new_page_title_select_icon, { 'aria-hidden': true }, 'i' , 'object' );
457
+ #>
458
+ <div class="hfe-page-title hfe-page-title-wrapper elementor-widget-heading">
459
+ <# if ( '' != settings.page_heading_link.url ) { #>
460
+ <a {{{ view.getRenderAttributeString( 'url' ) }}} >
461
+ <# } #>
462
+ <{{{ settings.heading_tag }}} class="elementor-heading-title elementor-size-{{{ settings.size }}}">
463
+ <# if( '' != settings.new_page_title_select_icon.value ){ #>
464
+ <span class="hfe-page-title-icon" data-elementor-setting-key="page_title" data-elementor-inline-editing-toolbar="basic">
465
+ {{{iconHTML.value}}}
466
+ </span>
467
+ <# } #>
468
+ <# if ( '' != settings.before ) { #>
469
+ {{{ settings.before }}}
470
+ <# } #>
471
+ <?php echo wp_kses_post( get_the_title() ); ?>
472
+ <# if ( '' != settings.after ) { #>
473
+ {{{ settings.after }}}
474
+ <# } #>
475
+ </{{{ settings.heading_tag }}}>
476
+ <# if ( '' != settings.page_heading_link.url ) { #>
477
+ </a>
478
+ <# } #>
479
+ </div>
480
+ <?php
481
+ }
482
+
483
+ /**
484
+ * Render page title output in the editor.
485
+ *
486
+ * Written as a Backbone JavaScript template and used to generate the live preview.
487
+ *
488
+ * Remove this after Elementor v3.3.0
489
+ *
490
+ * @since 1.3.0
491
+ * @access protected
492
+ */
493
+ protected function _content_template() {
494
+ $this->content_template();
495
+ }
496
+ }
inc/widgets-manager/widgets/class-retina.php CHANGED
@@ -16,7 +16,6 @@ use Elementor\Group_Control_Box_Shadow;
16
  use Elementor\Scheme_Typography;
17
  use Elementor\Scheme_Color;
18
  use Elementor\Group_Control_Image_Size;
19
- use Elementor\Repeater;
20
  use Elementor\Group_Control_Css_Filter;
21
  use Elementor\Group_Control_Text_Shadow;
22
  use Elementor\Plugin;
@@ -34,7 +33,6 @@ if ( ! defined( 'ABSPATH' ) ) {
34
  * @since 1.2.0
35
  */
36
  class Retina extends Widget_Base {
37
-
38
  /**
39
  * Retrieve the widget name.
40
  *
@@ -71,7 +69,7 @@ class Retina extends Widget_Base {
71
  * @return string Widget icon.
72
  */
73
  public function get_icon() {
74
- return 'fas fa-search';
75
  }
76
 
77
  /**
16
  use Elementor\Scheme_Typography;
17
  use Elementor\Scheme_Color;
18
  use Elementor\Group_Control_Image_Size;
 
19
  use Elementor\Group_Control_Css_Filter;
20
  use Elementor\Group_Control_Text_Shadow;
21
  use Elementor\Plugin;
33
  * @since 1.2.0
34
  */
35
  class Retina extends Widget_Base {
 
36
  /**
37
  * Retrieve the widget name.
38
  *
69
  * @return string Widget icon.
70
  */
71
  public function get_icon() {
72
+ return 'hfe-icon-retina-image';
73
  }
74
 
75
  /**
inc/widgets-manager/widgets/class-site-logo.php ADDED
@@ -0,0 +1,879 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ use Elementor\Controls_Manager;
11
+ use Elementor\Control_Media;
12
+ use Elementor\Utils;
13
+ use Elementor\Group_Control_Border;
14
+ use Elementor\Group_Control_Typography;
15
+ use Elementor\Group_Control_Box_Shadow;
16
+ use Elementor\Scheme_Typography;
17
+ use Elementor\Scheme_Color;
18
+ use Elementor\Group_Control_Image_Size;
19
+ use Elementor\Repeater;
20
+ use Elementor\Group_Control_Css_Filter;
21
+ use Elementor\Group_Control_Text_Shadow;
22
+ use Elementor\Plugin;
23
+ use Elementor\Widget_Base;
24
+
25
+ if ( ! defined( 'ABSPATH' ) ) {
26
+ exit; // Exit if accessed directly.
27
+ }
28
+
29
+ /**
30
+ * HFE Site Logo widget
31
+ *
32
+ * HFE widget for Site Logo.
33
+ *
34
+ * @since 1.3.0
35
+ */
36
+ class Site_Logo extends Widget_Base {
37
+
38
+
39
+ /**
40
+ * Retrieve the widget name.
41
+ *
42
+ * @since 1.3.0
43
+ *
44
+ * @access public
45
+ *
46
+ * @return string Widget name.
47
+ */
48
+ public function get_name() {
49
+ return 'site-logo';
50
+ }
51
+
52
+ /**
53
+ * Retrieve the widget title.
54
+ *
55
+ * @since 1.3.0
56
+ *
57
+ * @access public
58
+ *
59
+ * @return string Widget title.
60
+ */
61
+ public function get_title() {
62
+ return __( 'Site Logo', 'header-footer-elementor' );
63
+ }
64
+
65
+ /**
66
+ * Retrieve the widget icon.
67
+ *
68
+ * @since 1.3.0
69
+ *
70
+ * @access public
71
+ *
72
+ * @return string Widget icon.
73
+ */
74
+ public function get_icon() {
75
+ return 'hfe-icon-site-logo';
76
+ }
77
+
78
+ /**
79
+ * Retrieve the list of categories the widget belongs to.
80
+ *
81
+ * Used to determine where to display the widget in the editor.
82
+ *
83
+ * Note that currently Elementor supports only one category.
84
+ * When multiple categories passed, Elementor uses the first one.
85
+ *
86
+ * @since 1.3.0
87
+ *
88
+ * @access public
89
+ *
90
+ * @return array Widget categories.
91
+ */
92
+ public function get_categories() {
93
+ return [ 'hfe-widgets' ];
94
+ }
95
+
96
+ /**
97
+ * Register Site Logo controls.
98
+ *
99
+ * @since 1.3.0
100
+ * @access protected
101
+ */
102
+ protected function _register_controls() {
103
+ $this->register_content_site_logo_controls();
104
+ $this->register_site_logo_styling_controls();
105
+ $this->register_site_logo_caption_styling_controls();
106
+ }
107
+
108
+ /**
109
+ * Register Site Logo General Controls.
110
+ *
111
+ * @since 1.3.0
112
+ * @access protected
113
+ */
114
+ protected function register_content_site_logo_controls() {
115
+ $this->start_controls_section(
116
+ 'section_site_image',
117
+ [
118
+ 'label' => __( 'Site Logo', 'header-footer-elementor' ),
119
+ ]
120
+ );
121
+
122
+ $this->add_control(
123
+ 'site_logo_fallback',
124
+ [
125
+ 'label' => __( 'Custom Image', 'header-footer-elementor' ),
126
+ 'type' => Controls_Manager::SWITCHER,
127
+ 'yes' => __( 'Yes', 'header-footer-elementor' ),
128
+ 'no' => __( 'No', 'header-footer-elementor' ),
129
+ 'default' => 'no',
130
+ 'render_type' => 'template',
131
+ ]
132
+ );
133
+
134
+ $this->add_control(
135
+ 'custom_image',
136
+ [
137
+ 'label' => __( 'Add Image', 'header-footer-elementor' ),
138
+ 'type' => Controls_Manager::MEDIA,
139
+ 'dynamic' => [
140
+ 'active' => true,
141
+ ],
142
+ 'default' => [
143
+ 'url' => Utils::get_placeholder_image_src(),
144
+ ],
145
+ 'condition' => [
146
+ 'site_logo_fallback' => 'yes',
147
+ ],
148
+ ]
149
+ );
150
+
151
+ $this->add_group_control(
152
+ Group_Control_Image_Size::get_type(),
153
+ [
154
+ 'name' => 'site_logo_size',
155
+ 'label' => __( 'Image Size', 'header-footer-elementor' ),
156
+ 'default' => 'medium',
157
+ ]
158
+ );
159
+ $this->add_responsive_control(
160
+ 'align',
161
+ [
162
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
163
+ 'type' => Controls_Manager::CHOOSE,
164
+ 'options' => [
165
+ 'left' => [
166
+ 'title' => __( 'Left', 'header-footer-elementor' ),
167
+ 'icon' => 'fa fa-align-left',
168
+ ],
169
+ 'center' => [
170
+ 'title' => __( 'Center', 'header-footer-elementor' ),
171
+ 'icon' => 'fa fa-align-center',
172
+ ],
173
+ 'right' => [
174
+ 'title' => __( 'Right', 'header-footer-elementor' ),
175
+ 'icon' => 'fa fa-align-right',
176
+ ],
177
+ ],
178
+ 'default' => 'center',
179
+ 'selectors' => [
180
+ '{{WRAPPER}} .hfe-site-logo-container, {{WRAPPER}} .hfe-caption-width figcaption' => 'text-align: {{VALUE}};',
181
+ ],
182
+ ]
183
+ );
184
+
185
+ $this->add_control(
186
+ 'caption_source',
187
+ [
188
+ 'label' => __( 'Caption', 'header-footer-elementor' ),
189
+ 'type' => Controls_Manager::SELECT,
190
+ 'options' => [
191
+ 'no' => __( 'No', 'header-footer-elementor' ),
192
+ 'yes' => __( 'Yes', 'header-footer-elementor' ),
193
+ ],
194
+ 'default' => 'no',
195
+ ]
196
+ );
197
+
198
+ $this->add_control(
199
+ 'caption',
200
+ [
201
+ 'label' => __( 'Custom Caption', 'header-footer-elementor' ),
202
+ 'type' => Controls_Manager::TEXT,
203
+ 'default' => '',
204
+ 'placeholder' => __( 'Enter caption', 'header-footer-elementor' ),
205
+ 'condition' => [
206
+ 'caption_source' => 'yes',
207
+ ],
208
+ 'dynamic' => [
209
+ 'active' => true,
210
+ ],
211
+ 'label_block' => true,
212
+ ]
213
+ );
214
+
215
+ $this->add_control(
216
+ 'link_to',
217
+ [
218
+ 'label' => __( 'Link', 'header-footer-elementor' ),
219
+ 'type' => Controls_Manager::SELECT,
220
+ 'default' => 'default',
221
+ 'options' => [
222
+ 'default' => __( 'Default', 'header-footer-elementor' ),
223
+ 'none' => __( 'None', 'header-footer-elementor' ),
224
+ 'file' => __( 'Media File', 'header-footer-elementor' ),
225
+ 'custom' => __( 'Custom URL', 'header-footer-elementor' ),
226
+ ],
227
+ ]
228
+ );
229
+
230
+ $this->add_control(
231
+ 'link',
232
+ [
233
+ 'label' => __( 'Link', 'header-footer-elementor' ),
234
+ 'type' => Controls_Manager::URL,
235
+ 'dynamic' => [
236
+ 'active' => true,
237
+ ],
238
+ 'placeholder' => __( 'https://your-link.com', 'header-footer-elementor' ),
239
+ 'condition' => [
240
+ 'link_to' => 'custom',
241
+ ],
242
+ 'show_label' => false,
243
+ ]
244
+ );
245
+
246
+ $this->add_control(
247
+ 'open_lightbox',
248
+ [
249
+ 'label' => __( 'Lightbox', 'header-footer-elementor' ),
250
+ 'type' => Controls_Manager::SELECT,
251
+ 'default' => 'default',
252
+ 'options' => [
253
+ 'default' => __( 'Default', 'header-footer-elementor' ),
254
+ 'yes' => __( 'Yes', 'header-footer-elementor' ),
255
+ 'no' => __( 'No', 'header-footer-elementor' ),
256
+ ],
257
+ 'condition' => [
258
+ 'link_to' => 'file',
259
+ ],
260
+ ]
261
+ );
262
+
263
+ $this->add_control(
264
+ 'view',
265
+ [
266
+ 'label' => __( 'View', 'header-footer-elementor' ),
267
+ 'type' => Controls_Manager::HIDDEN,
268
+ 'default' => 'traditional',
269
+ ]
270
+ );
271
+ $this->end_controls_section();
272
+ }
273
+ /**
274
+ * Register Site Image Style Controls.
275
+ *
276
+ * @since 1.3.0
277
+ * @access protected
278
+ */
279
+ protected function register_site_logo_styling_controls() {
280
+ $this->start_controls_section(
281
+ 'section_style_site_logo_image',
282
+ [
283
+ 'label' => __( 'Site logo', 'header-footer-elementor' ),
284
+ 'tab' => Controls_Manager::TAB_STYLE,
285
+ ]
286
+ );
287
+
288
+ $this->add_responsive_control(
289
+ 'width',
290
+ [
291
+ 'label' => __( 'Width', 'header-footer-elementor' ),
292
+ 'type' => Controls_Manager::SLIDER,
293
+ 'default' => [
294
+ 'unit' => '%',
295
+ ],
296
+ 'tablet_default' => [
297
+ 'unit' => '%',
298
+ ],
299
+ 'mobile_default' => [
300
+ 'unit' => '%',
301
+ ],
302
+ 'size_units' => [ '%', 'px', 'vw' ],
303
+ 'range' => [
304
+ '%' => [
305
+ 'min' => 1,
306
+ 'max' => 100,
307
+ ],
308
+ 'px' => [
309
+ 'min' => 1,
310
+ 'max' => 1000,
311
+ ],
312
+ 'vw' => [
313
+ 'min' => 1,
314
+ 'max' => 100,
315
+ ],
316
+ ],
317
+ 'selectors' => [
318
+ '{{WRAPPER}} .hfe-site-logo .hfe-site-logo-container img' => 'width: {{SIZE}}{{UNIT}};',
319
+ ],
320
+ ]
321
+ );
322
+
323
+ $this->add_responsive_control(
324
+ 'space',
325
+ [
326
+ 'label' => __( 'Max Width', 'header-footer-elementor' ) . ' (%)',
327
+ 'type' => Controls_Manager::SLIDER,
328
+ 'default' => [
329
+ 'unit' => '%',
330
+ ],
331
+ 'tablet_default' => [
332
+ 'unit' => '%',
333
+ ],
334
+ 'mobile_default' => [
335
+ 'unit' => '%',
336
+ ],
337
+ 'size_units' => [ '%' ],
338
+ 'range' => [
339
+ '%' => [
340
+ 'min' => 1,
341
+ 'max' => 100,
342
+ ],
343
+ ],
344
+ 'selectors' => [
345
+ '{{WRAPPER}} .hfe-site-logo img' => 'max-width: {{SIZE}}{{UNIT}};',
346
+ ],
347
+ ]
348
+ );
349
+
350
+ $this->add_control(
351
+ 'separator_panel_style',
352
+ [
353
+ 'type' => Controls_Manager::DIVIDER,
354
+ 'style' => 'thick',
355
+ ]
356
+ );
357
+
358
+ $this->add_control(
359
+ 'site_logo_background_color',
360
+ [
361
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
362
+ 'type' => Controls_Manager::COLOR,
363
+ 'selectors' => [
364
+ '{{WRAPPER}} .hfe-site-logo-set .hfe-site-logo-container' => 'background-color: {{VALUE}};',
365
+ ],
366
+ ]
367
+ );
368
+
369
+ $this->add_control(
370
+ 'site_logo_image_border',
371
+ [
372
+ 'label' => __( 'Border Style', 'header-footer-elementor' ),
373
+ 'type' => Controls_Manager::SELECT,
374
+ 'default' => 'none',
375
+ 'label_block' => false,
376
+ 'options' => [
377
+ 'none' => __( 'None', 'header-footer-elementor' ),
378
+ 'solid' => __( 'Solid', 'header-footer-elementor' ),
379
+ 'double' => __( 'Double', 'header-footer-elementor' ),
380
+ 'dotted' => __( 'Dotted', 'header-footer-elementor' ),
381
+ 'dashed' => __( 'Dashed', 'header-footer-elementor' ),
382
+ ],
383
+ 'selectors' => [
384
+ '{{WRAPPER}} .hfe-site-logo-container .hfe-site-logo-img' => 'border-style: {{VALUE}};',
385
+ ],
386
+ ]
387
+ );
388
+ $this->add_control(
389
+ 'site_logo_image_border_size',
390
+ [
391
+ 'label' => __( 'Border Width', 'header-footer-elementor' ),
392
+ 'type' => Controls_Manager::DIMENSIONS,
393
+ 'size_units' => [ 'px' ],
394
+ 'default' => [
395
+ 'top' => '1',
396
+ 'bottom' => '1',
397
+ 'left' => '1',
398
+ 'right' => '1',
399
+ 'unit' => 'px',
400
+ ],
401
+ 'condition' => [
402
+ 'site_logo_image_border!' => 'none',
403
+ ],
404
+ 'selectors' => [
405
+ '{{WRAPPER}} .hfe-site-logo-container .hfe-site-logo-img' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
406
+ ],
407
+ ]
408
+ );
409
+
410
+ $this->add_control(
411
+ 'site_logo_image_border_color',
412
+ [
413
+ 'label' => __( 'Border Color', 'header-footer-elementor' ),
414
+ 'type' => Controls_Manager::COLOR,
415
+ 'scheme' => [
416
+ 'type' => Scheme_Color::get_type(),
417
+ 'value' => Scheme_Color::COLOR_1,
418
+ ],
419
+ 'condition' => [
420
+ 'site_logo_image_border!' => 'none',
421
+ ],
422
+ 'default' => '',
423
+ 'selectors' => [
424
+ '{{WRAPPER}} .hfe-site-logo-container .hfe-site-logo-img' => 'border-color: {{VALUE}};',
425
+ ],
426
+ ]
427
+ );
428
+
429
+ $this->add_responsive_control(
430
+ 'image_border_radius',
431
+ [
432
+ 'label' => __( 'Border Radius', 'header-footer-elementor' ),
433
+ 'type' => Controls_Manager::DIMENSIONS,
434
+ 'size_units' => [ 'px', '%' ],
435
+ 'selectors' => [
436
+ '{{WRAPPER}} .hfe-site-logo img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
437
+ ],
438
+ ]
439
+ );
440
+
441
+ $this->add_group_control(
442
+ Group_Control_Box_Shadow::get_type(),
443
+ [
444
+ 'name' => 'image_box_shadow',
445
+ 'exclude' => [
446
+ 'box_shadow_position',
447
+ ],
448
+ 'selector' => '{{WRAPPER}} .hfe-site-logo img',
449
+ ]
450
+ );
451
+
452
+ $this->start_controls_tabs( 'image_effects' );
453
+
454
+ $this->start_controls_tab(
455
+ 'normal',
456
+ [
457
+ 'label' => __( 'Normal', 'header-footer-elementor' ),
458
+ ]
459
+ );
460
+
461
+ $this->add_control(
462
+ 'opacity',
463
+ [
464
+ 'label' => __( 'Opacity', 'header-footer-elementor' ),
465
+ 'type' => Controls_Manager::SLIDER,
466
+ 'range' => [
467
+ 'px' => [
468
+ 'max' => 1,
469
+ 'min' => 0.10,
470
+ 'step' => 0.01,
471
+ ],
472
+ ],
473
+ 'selectors' => [
474
+ '{{WRAPPER}} .hfe-site-logo img' => 'opacity: {{SIZE}};',
475
+ ],
476
+ ]
477
+ );
478
+
479
+ $this->add_group_control(
480
+ Group_Control_Css_Filter::get_type(),
481
+ [
482
+ 'name' => 'css_filters',
483
+ 'selector' => '{{WRAPPER}} .hfe-site-logo img',
484
+ ]
485
+ );
486
+
487
+ $this->end_controls_tab();
488
+
489
+ $this->start_controls_tab(
490
+ 'hover',
491
+ [
492
+ 'label' => __( 'Hover', 'header-footer-elementor' ),
493
+ ]
494
+ );
495
+ $this->add_control(
496
+ 'opacity_hover',
497
+ [
498
+ 'label' => __( 'Opacity', 'header-footer-elementor' ),
499
+ 'type' => Controls_Manager::SLIDER,
500
+ 'range' => [
501
+ 'px' => [
502
+ 'max' => 1,
503
+ 'min' => 0.10,
504
+ 'step' => 0.01,
505
+ ],
506
+ ],
507
+ 'selectors' => [
508
+ '{{WRAPPER}} .hfe-site-logo:hover img' => 'opacity: {{SIZE}};',
509
+ ],
510
+ ]
511
+ );
512
+ $this->add_control(
513
+ 'background_hover_transition',
514
+ [
515
+ 'label' => __( 'Transition Duration', 'header-footer-elementor' ),
516
+ 'type' => Controls_Manager::SLIDER,
517
+ 'range' => [
518
+ 'px' => [
519
+ 'max' => 3,
520
+ 'step' => 0.1,
521
+ ],
522
+ ],
523
+ 'selectors' => [
524
+ '{{WRAPPER}} .hfe-site-logo img' => 'transition-duration: {{SIZE}}s',
525
+ ],
526
+ ]
527
+ );
528
+
529
+ $this->add_group_control(
530
+ Group_Control_Css_Filter::get_type(),
531
+ [
532
+ 'name' => 'css_filters_hover',
533
+ 'selector' => '{{WRAPPER}} .hfe-site-logo:hover img',
534
+ ]
535
+ );
536
+
537
+ $this->add_control(
538
+ 'hover_animation',
539
+ [
540
+ 'label' => __( 'Hover Animation', 'header-footer-elementor' ),
541
+ 'type' => Controls_Manager::HOVER_ANIMATION,
542
+ ]
543
+ );
544
+
545
+ $this->end_controls_tab();
546
+
547
+ $this->end_controls_tabs();
548
+
549
+ $this->end_controls_section();
550
+ }
551
+ /**
552
+ * Register Site Logo style Controls.
553
+ *
554
+ * @since 1.3.0
555
+ * @access protected
556
+ */
557
+ protected function register_site_logo_caption_styling_controls() {
558
+ $this->start_controls_section(
559
+ 'section_style_caption',
560
+ [
561
+ 'label' => __( 'Caption', 'header-footer-elementor' ),
562
+ 'tab' => Controls_Manager::TAB_STYLE,
563
+ 'condition' => [
564
+ 'caption_source!' => 'none',
565
+ ],
566
+ ]
567
+ );
568
+
569
+ $this->add_control(
570
+ 'text_color',
571
+ [
572
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
573
+ 'type' => Controls_Manager::COLOR,
574
+ 'default' => '',
575
+ 'selectors' => [
576
+ '{{WRAPPER}} .widget-image-caption' => 'color: {{VALUE}};',
577
+ ],
578
+ 'scheme' => [
579
+ 'type' => Scheme_Color::get_type(),
580
+ 'value' => Scheme_Color::COLOR_3,
581
+ ],
582
+ ]
583
+ );
584
+
585
+ $this->add_control(
586
+ 'caption_background_color',
587
+ [
588
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
589
+ 'type' => Controls_Manager::COLOR,
590
+ 'selectors' => [
591
+ '{{WRAPPER}} .widget-image-caption' => 'background-color: {{VALUE}};',
592
+ ],
593
+ ]
594
+ );
595
+
596
+ $this->add_group_control(
597
+ Group_Control_Typography::get_type(),
598
+ [
599
+ 'name' => 'caption_typography',
600
+ 'selector' => '{{WRAPPER}} .widget-image-caption',
601
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
602
+ ]
603
+ );
604
+
605
+ $this->add_group_control(
606
+ Group_Control_Text_Shadow::get_type(),
607
+ [
608
+ 'name' => 'caption_text_shadow',
609
+ 'selector' => '{{WRAPPER}} .widget-image-caption',
610
+ ]
611
+ );
612
+
613
+ $this->add_responsive_control(
614
+ 'caption_padding',
615
+ [
616
+ 'label' => __( 'Padding', 'header-footer-elementor' ),
617
+ 'type' => Controls_Manager::DIMENSIONS,
618
+ 'size_units' => [ 'px', 'em', '%' ],
619
+ 'selectors' => [
620
+ '{{WRAPPER}} .widget-image-caption' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
621
+ ],
622
+ ]
623
+ );
624
+ $this->add_responsive_control(
625
+ 'caption_space',
626
+ [
627
+ 'label' => __( 'Spacing', 'header-footer-elementor' ),
628
+ 'type' => Controls_Manager::SLIDER,
629
+ 'range' => [
630
+ 'px' => [
631
+ 'min' => 0,
632
+ 'max' => 100,
633
+ ],
634
+ ],
635
+ 'default' => [
636
+ 'size' => 0,
637
+ 'unit' => 'px',
638
+ ],
639
+ 'selectors' => [
640
+ '{{WRAPPER}} .widget-image-caption' => 'margin-top: {{SIZE}}{{UNIT}}; margin-bottom: 0px;',
641
+ ],
642
+ ]
643
+ );
644
+
645
+ $this->end_controls_section();
646
+ }
647
+
648
+ /**
649
+ * Check if the current widget has caption
650
+ *
651
+ * @access private
652
+ * @since 1.3.0
653
+ *
654
+ * @param array $settings returns settings.
655
+ *
656
+ * @return boolean
657
+ */
658
+ private function has_caption( $settings ) {
659
+ return ( ! empty( $settings['caption_source'] ) && 'no' !== $settings['caption_source'] );
660
+ }
661
+
662
+ /**
663
+ * Get the caption for current widget.
664
+ *
665
+ * @access private
666
+ * @since 1.3.0
667
+ * @param array $settings returns the caption.
668
+ *
669
+ * @return string
670
+ */
671
+ private function get_caption( $settings ) {
672
+ $caption = '';
673
+ if ( 'yes' === $settings['caption_source'] ) {
674
+ $caption = ! empty( $settings['caption'] ) ? $settings['caption'] : '';
675
+ }
676
+ return $caption;
677
+ }
678
+
679
+ /**
680
+ * Render Site Image output on the frontend.
681
+ *
682
+ * Written in PHP and used to generate the final HTML.
683
+ *
684
+ * @since 1.3.0
685
+ * @param array $size returns the size of an image.
686
+ * @access public
687
+ */
688
+ public function site_image_url( $size ) {
689
+ $settings = $this->get_settings_for_display();
690
+ if ( ! empty( $settings['custom_image']['url'] ) ) {
691
+ $logo = wp_get_attachment_image_src( $settings['custom_image']['id'], $size, true );
692
+ } else {
693
+ $logo = wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), $size, true );
694
+ }
695
+ return $logo[0];
696
+ }
697
+
698
+ /**
699
+ * Render Site Image output on the frontend.
700
+ *
701
+ * Written in PHP and used to generate the final HTML.
702
+ *
703
+ * @since 1.3.0
704
+ * @access protected
705
+ */
706
+ protected function render() {
707
+ $settings = $this->get_settings_for_display();
708
+
709
+ $has_caption = $this->has_caption( $settings );
710
+
711
+ $this->add_render_attribute( 'wrapper', 'class', 'hfe-site-logo' );
712
+
713
+ $size = $settings['site_logo_size_size'];
714
+
715
+ $site_image = $this->site_image_url( $size );
716
+
717
+ if ( site_url() . '/wp-includes/images/media/default.png' === $site_image ) {
718
+ $site_image = site_url() . '/wp-content/plugins/elementor/assets/images/placeholder.png';
719
+ } else {
720
+ $site_image = $site_image;
721
+ }
722
+
723
+ if ( 'file' === $settings['link_to'] ) {
724
+ $link = $site_image;
725
+ $this->add_render_attribute( 'link', 'href', $link );
726
+ } elseif ( 'default' === $settings['link_to'] ) {
727
+ $link = site_url();
728
+ $this->add_render_attribute( 'link', 'href', $link );
729
+ } else {
730
+ $link = $this->get_link_url( $settings );
731
+ $this->add_render_attribute( 'link', 'href', $link['url'] );
732
+ if ( ! empty( $link['nofollow'] ) ) {
733
+ $this->add_render_attribute( 'link', 'rel', 'nofollow' );
734
+ }
735
+ if ( ! empty( $link['is_external'] ) ) {
736
+ $this->add_render_attribute( 'link', 'target', '_blank' );
737
+ }
738
+ }
739
+ $class = '';
740
+ if ( Plugin::$instance->editor->is_edit_mode() ) {
741
+ $class = 'elementor-non-clickable';
742
+ } else {
743
+ $class = 'elementor-clickable';
744
+ }
745
+ ?>
746
+ <div <?php echo $this->get_render_attribute_string( 'wrapper' ); ?>>
747
+ <?php if ( $has_caption ) : ?>
748
+ <figure class="wp-caption">
749
+ <?php endif; ?>
750
+ <?php if ( $link ) : ?>
751
+ <?php
752
+ if ( 'no' === $settings['open_lightbox'] ) {
753
+ $class = 'elementor-non-clickable';
754
+ }
755
+ ?>
756
+ <a data-elementor-open-lightbox="<?php echo esc_attr( $settings['open_lightbox'] ); ?>" class='<?php echo esc_attr( $class ); ?>' <?php echo $this->get_render_attribute_string( 'link' ); ?>>
757
+ <?php endif; ?>
758
+ <?php
759
+ if ( empty( $site_image ) ) {
760
+ return;
761
+ }
762
+ $img_animation = '';
763
+
764
+ if ( 'custom' !== $size ) {
765
+ $image_size = $size;
766
+ } else {
767
+ require_once ELEMENTOR_PATH . 'includes/libraries/bfi-thumb/bfi-thumb.php';
768
+
769
+ $image_dimension = $settings['site_logo_size_custom_dimension'];
770
+
771
+ $image_size = [
772
+ // Defaults sizes.
773
+ 0 => null, // Width.
774
+ 1 => null, // Height.
775
+
776
+ 'bfi_thumb' => true,
777
+ 'crop' => true,
778
+ ];
779
+
780
+ $has_custom_size = false;
781
+ if ( ! empty( $image_dimension['width'] ) ) {
782
+ $has_custom_size = true;
783
+ $image_size[0] = $image_dimension['width'];
784
+ }
785
+
786
+ if ( ! empty( $image_dimension['height'] ) ) {
787
+ $has_custom_size = true;
788
+ $image_size[1] = $image_dimension['height'];
789
+ }
790
+
791
+ if ( ! $has_custom_size ) {
792
+ $image_size = 'full';
793
+ }
794
+ }
795
+
796
+ $image_url = $site_image;
797
+
798
+ if ( ! empty( $settings['custom_image']['url'] ) ) {
799
+ $image_data = wp_get_attachment_image_src( $settings['custom_image']['id'], $image_size, true );
800
+ } else {
801
+ $image_data = wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), $image_size, true );
802
+ }
803
+
804
+ $site_image_class = 'elementor-animation-';
805
+
806
+ if ( ! empty( $settings['hover_animation'] ) ) {
807
+ $img_animation = $settings['hover_animation'];
808
+ }
809
+ if ( ! empty( $image_data ) ) {
810
+ $image_url = $image_data[0];
811
+ }
812
+
813
+ if ( site_url() . '/wp-includes/images/media/default.png' === $image_url ) {
814
+ $image_url = site_url() . '/wp-content/plugins/elementor/assets/images/placeholder.png';
815
+ } else {
816
+ $image_url = $image_url;
817
+ }
818
+
819
+ $class_animation = $site_image_class . $img_animation;
820
+
821
+ $image_unset = site_url() . '/wp-content/plugins/elementor/assets/images/placeholder.png';
822
+
823
+ if ( $image_unset !== $image_url ) {
824
+ $image_url = $image_url;
825
+ }
826
+
827
+ ?>
828
+ <div class="hfe-site-logo-set">
829
+ <div class="hfe-site-logo-container">
830
+ <img class="hfe-site-logo-img <?php echo esc_attr( $class_animation ); ?>" src="<?php echo esc_url( $image_url ); ?>"/>
831
+ </div>
832
+ </div>
833
+ <?php if ( $link ) : ?>
834
+ </a>
835
+ <?php endif; ?>
836
+ <?php
837
+ if ( $has_caption ) :
838
+ $caption_text = $this->get_caption( $settings );
839
+ ?>
840
+ <?php if ( ! empty( $caption_text ) ) : ?>
841
+ <div class="hfe-caption-width">
842
+ <figcaption class="widget-image-caption wp-caption-text"><?php echo wp_kses_post( $caption_text ); ?></figcaption>
843
+ </div>
844
+ <?php endif; ?>
845
+ </figure>
846
+ <?php endif; ?>
847
+ </div>
848
+ <?php
849
+ }
850
+
851
+ /**
852
+ * Retrieve Site Logo widget link URL.
853
+ *
854
+ * @since 1.3.0
855
+ * @access private
856
+ *
857
+ * @param array $settings returns settings.
858
+ * @return array|string|false An array/string containing the link URL, or false if no link.
859
+ */
860
+ private function get_link_url( $settings ) {
861
+ if ( 'none' === $settings['link_to'] ) {
862
+ return false;
863
+ }
864
+
865
+ if ( 'custom' === $settings['link_to'] ) {
866
+ if ( empty( $settings['link']['url'] ) ) {
867
+ return false;
868
+ }
869
+ return $settings['link'];
870
+ }
871
+
872
+ if ( 'default' === $settings['link_to'] ) {
873
+ if ( empty( $settings['link']['url'] ) ) {
874
+ return false;
875
+ }
876
+ return site_url();
877
+ }
878
+ }
879
+ }
inc/widgets-manager/widgets/class-site-tagline.php ADDED
@@ -0,0 +1,333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ use Elementor\Controls_Manager;
11
+ use Elementor\Group_Control_Typography;
12
+ use Elementor\Scheme_Typography;
13
+ use Elementor\Widget_Base;
14
+ use Elementor\Group_Control_Text_Shadow;
15
+ use Elementor\Scheme_Color;
16
+
17
+ if ( ! defined( 'ABSPATH' ) ) {
18
+ exit; // Exit if accessed directly.
19
+ }
20
+
21
+ /**
22
+ * HFE Site tagline widget
23
+ *
24
+ * HFE widget for site tagline
25
+ *
26
+ * @since 1.3.0
27
+ */
28
+ class Site_Tagline extends Widget_Base {
29
+
30
+ /**
31
+ * Retrieve the widget name.
32
+ *
33
+ * @since 1.3.0
34
+ *
35
+ * @access public
36
+ *
37
+ * @return string Widget name.
38
+ */
39
+ public function get_name() {
40
+ return 'hfe-site-tagline';
41
+ }
42
+
43
+ /**
44
+ * Retrieve the widget tagline.
45
+ *
46
+ * @since 1.3.0
47
+ *
48
+ * @access public
49
+ *
50
+ * @return string Widget tagline.
51
+ */
52
+ public function get_title() {
53
+ return __( 'Site Tagline', 'header-footer-elementor' );
54
+ }
55
+
56
+ /**
57
+ * Retrieve the widget icon.
58
+ *
59
+ * @since 1.3.0
60
+ *
61
+ * @access public
62
+ *
63
+ * @return string Widget icon.
64
+ */
65
+ public function get_icon() {
66
+ return 'hfe-icon-site-tagline';
67
+ }
68
+
69
+ /**
70
+ * Retrieve the list of categories the widget belongs to.
71
+ *
72
+ * Used to determine where to display the widget in the editor.
73
+ *
74
+ * Note that currently Elementor supports only one category.
75
+ * When multiple categories passed, Elementor uses the first one.
76
+ *
77
+ * @since 1.3.0
78
+ *
79
+ * @access public
80
+ *
81
+ * @return array Widget categories.
82
+ */
83
+ public function get_categories() {
84
+ return [ 'hfe-widgets' ];
85
+ }
86
+
87
+ /**
88
+ * Register site tagline controls controls.
89
+ *
90
+ * @since 1.3.0
91
+ * @access protected
92
+ */
93
+ protected function _register_controls() {
94
+ $this->register_general_content_controls();
95
+ }
96
+
97
+ /**
98
+ * Register site tagline General Controls.
99
+ *
100
+ * @since 1.3.0
101
+ * @access protected
102
+ */
103
+ protected function register_general_content_controls() {
104
+
105
+ $this->start_controls_section(
106
+ 'section_general_fields',
107
+ [
108
+ 'label' => __( 'Style', 'header-footer-elementor' ),
109
+ ]
110
+ );
111
+
112
+ $this->add_control(
113
+ 'before',
114
+ [
115
+ 'label' => __( 'Before Title Text', 'header-footer-elementor' ),
116
+ 'type' => Controls_Manager::TEXTAREA,
117
+ 'rows' => '1',
118
+ 'dynamic' => [
119
+ 'active' => true,
120
+ ],
121
+ ]
122
+ );
123
+
124
+ $this->add_control(
125
+ 'after',
126
+ [
127
+ 'label' => __( 'After Title Text', 'header-footer-elementor' ),
128
+ 'type' => Controls_Manager::TEXTAREA,
129
+ 'rows' => '1',
130
+ 'dynamic' => [
131
+ 'active' => true,
132
+ ],
133
+ ]
134
+ );
135
+
136
+ $this->add_control(
137
+ 'icon',
138
+ [
139
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
140
+ 'type' => Controls_Manager::ICONS,
141
+ 'label_block' => 'true',
142
+ ]
143
+ );
144
+
145
+ $this->add_control(
146
+ 'icon_indent',
147
+ [
148
+ 'label' => __( 'Icon Spacing', 'header-footer-elementor' ),
149
+ 'type' => Controls_Manager::SLIDER,
150
+ 'range' => [
151
+ 'px' => [
152
+ 'max' => 50,
153
+ ],
154
+ ],
155
+ 'condition' => [
156
+ 'icon[value]!' => '',
157
+ ],
158
+ 'selectors' => [
159
+ '{{WRAPPER}} .hfe-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
160
+ ],
161
+ ]
162
+ );
163
+
164
+ $this->add_responsive_control(
165
+ 'heading_text_align',
166
+ [
167
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
168
+ 'type' => Controls_Manager::CHOOSE,
169
+ 'options' => [
170
+ 'left' => [
171
+ 'title' => __( 'Left', 'header-footer-elementor' ),
172
+ 'icon' => 'fa fa-align-left',
173
+ ],
174
+ 'center' => [
175
+ 'title' => __( 'Center', 'header-footer-elementor' ),
176
+ 'icon' => 'fa fa-align-center',
177
+ ],
178
+ 'right' => [
179
+ 'title' => __( 'Right', 'header-footer-elementor' ),
180
+ 'icon' => 'fa fa-align-right',
181
+ ],
182
+ 'justify' => [
183
+ 'title' => __( 'Justify', 'header-footer-elementor' ),
184
+ 'icon' => 'fa fa-align-justify',
185
+ ],
186
+ ],
187
+ 'selectors' => [
188
+ '{{WRAPPER}} .hfe-site-tagline' => 'text-align: {{VALUE}};',
189
+ ],
190
+ ]
191
+ );
192
+
193
+ $this->add_group_control(
194
+ Group_Control_Typography::get_type(),
195
+ [
196
+ 'name' => 'tagline_typography',
197
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_2,
198
+ 'selector' => '{{WRAPPER}} .hfe-site-tagline',
199
+ ]
200
+ );
201
+ $this->add_control(
202
+ 'tagline_color',
203
+ [
204
+ 'label' => __( 'Color', 'header-footer-elementor' ),
205
+ 'type' => Controls_Manager::COLOR,
206
+ 'scheme' => [
207
+ 'type' => Scheme_Color::get_type(),
208
+ 'value' => Scheme_Color::COLOR_2,
209
+ ],
210
+ 'selectors' => [
211
+ '{{WRAPPER}} .hfe-site-tagline' => 'color: {{VALUE}};',
212
+ '{{WRAPPER}} .hfe-icon i' => 'color: {{VALUE}};',
213
+ '{{WRAPPER}} .hfe-icon svg' => 'fill: {{VALUE}};',
214
+ ],
215
+ ]
216
+ );
217
+
218
+ $this->add_control(
219
+ 'icon_color',
220
+ [
221
+ 'label' => __( 'Icon Color', 'header-footer-elementor' ),
222
+ 'type' => Controls_Manager::COLOR,
223
+ 'scheme' => [
224
+ 'type' => Scheme_Color::get_type(),
225
+ 'value' => Scheme_Color::COLOR_1,
226
+ ],
227
+ 'condition' => [
228
+ 'icon[value]!' => '',
229
+ ],
230
+ 'default' => '',
231
+ 'selectors' => [
232
+ '{{WRAPPER}} .hfe-icon i' => 'color: {{VALUE}};',
233
+ '{{WRAPPER}} .hfe-icon svg' => 'fill: {{VALUE}};',
234
+ ],
235
+ ]
236
+ );
237
+ $this->add_control(
238
+ 'icons_hover_color',
239
+ [
240
+ 'label' => __( 'Icon Hover Color', 'header-footer-elementor' ),
241
+ 'type' => Controls_Manager::COLOR,
242
+ 'condition' => [
243
+ 'icon[value]!' => '',
244
+ ],
245
+ 'default' => '',
246
+ 'selectors' => [
247
+ '{{WRAPPER}} .hfe-icon:hover i' => 'color: {{VALUE}};',
248
+ '{{WRAPPER}} .hfe-icon:hover svg' => 'fill: {{VALUE}};',
249
+ ],
250
+ ]
251
+ );
252
+
253
+ $this->end_controls_section();
254
+ }
255
+
256
+ /**
257
+ * Render site tagline output on the frontend.
258
+ *
259
+ * Written in PHP and used to generate the final HTML.
260
+ *
261
+ * @since 1.3.0
262
+ * @access protected
263
+ */
264
+ protected function render() {
265
+ $settings = $this->get_settings_for_display();
266
+ ?>
267
+ <div class="hfe-site-tagline hfe-site-tagline-wrapper">
268
+ <?php if ( '' !== $settings['icon']['value'] ) { ?>
269
+ <span class="hfe-icon">
270
+ <?php \Elementor\Icons_Manager::render_icon( $settings['icon'], [ 'aria-hidden' => 'true' ] ); ?>
271
+ </span>
272
+ <?php } ?>
273
+ <span>
274
+ <?php
275
+ if ( '' !== $settings['before'] ) {
276
+ echo wp_kses_post( $settings['before'] );
277
+ }
278
+ ?>
279
+ <?php echo wp_kses_post( get_bloginfo( 'description' ) ); ?>
280
+ <?php
281
+ if ( '' !== $settings['after'] ) {
282
+ echo ' ' . wp_kses_post( $settings['after'] );
283
+ }
284
+ ?>
285
+ </span>
286
+ </div>
287
+ <?php
288
+ }
289
+
290
+ /**
291
+ * Render Site Tagline widgets output in the editor.
292
+ *
293
+ * Written as a Backbone JavaScript template and used to generate the live preview.
294
+ *
295
+ * @since 1.3.0
296
+ * @access protected
297
+ */
298
+ protected function content_template() {
299
+ ?>
300
+ <# var iconHTML = elementor.helpers.renderIcon( view, settings.icon, { 'aria-hidden': true }, 'i' , 'object' ); #>
301
+ <div class="hfe-site-tagline hfe-site-tagline-wrapper">
302
+ <# if( '' != settings.icon.value ){ #>
303
+ <span class="hfe-icon">
304
+ {{{iconHTML.value}}}
305
+ </span>
306
+ <# } #>
307
+ <span>
308
+ <#if ( '' != settings.before ){#>
309
+ {{{ settings.before}}}
310
+ <#}#>
311
+ <?php echo wp_kses_post( get_bloginfo( 'description' ) ); ?>
312
+ <# if ( '' != settings.after ){#>
313
+ {{{ settings.after }}}
314
+ <#}#>
315
+ </span>
316
+ </div>
317
+ <?php
318
+ }
319
+
320
+ /**
321
+ * Render Site Tagline output in the editor.
322
+ *
323
+ * Written as a Backbone JavaScript template and used to generate the live preview.
324
+ *
325
+ * Remove this after Elementor v3.3.0
326
+ *
327
+ * @since 1.3.0
328
+ * @access protected
329
+ */
330
+ protected function _content_template() {
331
+ $this->content_template();
332
+ }
333
+ }
inc/widgets-manager/widgets/class-site-title.php ADDED
@@ -0,0 +1,509 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ use Elementor\Controls_Manager;
11
+ use Elementor\Group_Control_Typography;
12
+ use Elementor\Scheme_Typography;
13
+ use Elementor\Widget_Base;
14
+ use Elementor\Group_Control_Text_Shadow;
15
+ use Elementor\Scheme_Color;
16
+
17
+ if ( ! defined( 'ABSPATH' ) ) {
18
+ exit; // Exit if accessed directly.
19
+ }
20
+
21
+ /**
22
+ * HFE Site title widget
23
+ *
24
+ * HFE widget for site title
25
+ *
26
+ * @since 1.3.0
27
+ */
28
+ class Site_Title extends Widget_Base {
29
+
30
+ /**
31
+ * Retrieve the widget name.
32
+ *
33
+ * @since 1.3.0
34
+ *
35
+ * @access public
36
+ *
37
+ * @return string Widget name.
38
+ */
39
+ public function get_name() {
40
+ return 'hfe-site-title';
41
+ }
42
+
43
+ /**
44
+ * Retrieve the widget title.
45
+ *
46
+ * @since 1.3.0
47
+ *
48
+ * @access public
49
+ *
50
+ * @return string Widget title.
51
+ */
52
+ public function get_title() {
53
+ return __( 'Site Title', 'header-footer-elementor' );
54
+ }
55
+
56
+ /**
57
+ * Retrieve the widget icon.
58
+ *
59
+ * @since 1.3.0
60
+ *
61
+ * @access public
62
+ *
63
+ * @return string Widget icon.
64
+ */
65
+ public function get_icon() {
66
+ return 'hfe-icon-site-title';
67
+ }
68
+
69
+ /**
70
+ * Retrieve the list of categories the widget belongs to.
71
+ *
72
+ * Used to determine where to display the widget in the editor.
73
+ *
74
+ * Note that currently Elementor supports only one category.
75
+ * When multiple categories passed, Elementor uses the first one.
76
+ *
77
+ * @since 1.3.0
78
+ *
79
+ * @access public
80
+ *
81
+ * @return array Widget categories.
82
+ */
83
+ public function get_categories() {
84
+ return [ 'hfe-widgets' ];
85
+ }
86
+
87
+ /**
88
+ * Register site title controls controls.
89
+ *
90
+ * @since 1.3.0
91
+ * @access protected
92
+ */
93
+ protected function _register_controls() {
94
+
95
+ $this->register_general_content_controls();
96
+ $this->register_heading_typo_content_controls();
97
+ }
98
+
99
+ /**
100
+ * Register Advanced Heading General Controls.
101
+ *
102
+ * @since 1.3.0
103
+ * @access protected
104
+ */
105
+ protected function register_general_content_controls() {
106
+
107
+ $this->start_controls_section(
108
+ 'section_general_fields',
109
+ [
110
+ 'label' => __( 'General', 'header-footer-elementor' ),
111
+ ]
112
+ );
113
+
114
+ $this->add_control(
115
+ 'before',
116
+ [
117
+ 'label' => __( 'Before Title Text', 'header-footer-elementor' ),
118
+ 'type' => Controls_Manager::TEXT,
119
+ 'dynamic' => [
120
+ 'active' => true,
121
+ ],
122
+ ]
123
+ );
124
+
125
+ $this->add_control(
126
+ 'after',
127
+ [
128
+ 'label' => __( 'After Title Text', 'header-footer-elementor' ),
129
+ 'type' => Controls_Manager::TEXT,
130
+ 'dynamic' => [
131
+ 'active' => true,
132
+ ],
133
+ ]
134
+ );
135
+
136
+ $this->add_control(
137
+ 'icon',
138
+ [
139
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
140
+ 'type' => Controls_Manager::ICONS,
141
+ 'label_block' => 'true',
142
+ ]
143
+ );
144
+
145
+ $this->add_control(
146
+ 'icon_indent',
147
+ [
148
+ 'label' => __( 'Icon Spacing', 'header-footer-elementor' ),
149
+ 'type' => Controls_Manager::SLIDER,
150
+ 'range' => [
151
+ 'px' => [
152
+ 'max' => 50,
153
+ ],
154
+ ],
155
+ 'condition' => [
156
+ 'icon[value]!' => '',
157
+ ],
158
+ 'selectors' => [
159
+ '{{WRAPPER}} .hfe-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
160
+ ],
161
+ ]
162
+ );
163
+
164
+ $this->add_control(
165
+ 'custom_link',
166
+ [
167
+ 'label' => __( 'Link', 'header-footer-elementor' ),
168
+ 'type' => Controls_Manager::SELECT,
169
+ 'options' => [
170
+ 'custom' => __( 'Custom URL', 'header-footer-elementor' ),
171
+ 'default' => __( 'Default', 'header-footer-elementor' ),
172
+ ],
173
+ 'default' => 'default',
174
+ ]
175
+ );
176
+
177
+ $this->add_control(
178
+ 'heading_link',
179
+ [
180
+ 'label' => __( 'Link', 'header-footer-elementor' ),
181
+ 'type' => Controls_Manager::URL,
182
+ 'placeholder' => __( 'https://your-link.com', 'header-footer-elementor' ),
183
+ 'dynamic' => [
184
+ 'active' => true,
185
+ ],
186
+ 'default' => [
187
+ 'url' => get_home_url(),
188
+ ],
189
+ 'condition' => [
190
+ 'custom_link' => 'custom',
191
+ ],
192
+ ]
193
+ );
194
+
195
+ $this->add_control(
196
+ 'size',
197
+ [
198
+ 'label' => __( 'Size', 'header-footer-elementor' ),
199
+ 'type' => Controls_Manager::SELECT,
200
+ 'default' => 'default',
201
+ 'options' => [
202
+ 'default' => __( 'Default', 'header-footer-elementor' ),
203
+ 'small' => __( 'Small', 'header-footer-elementor' ),
204
+ 'medium' => __( 'Medium', 'header-footer-elementor' ),
205
+ 'large' => __( 'Large', 'header-footer-elementor' ),
206
+ 'xl' => __( 'XL', 'header-footer-elementor' ),
207
+ 'xxl' => __( 'XXL', 'header-footer-elementor' ),
208
+ ],
209
+ ]
210
+ );
211
+
212
+ $this->add_control(
213
+ 'heading_tag',
214
+ [
215
+ 'label' => __( 'HTML Tag', 'header-footer-elementor' ),
216
+ 'type' => Controls_Manager::SELECT,
217
+ 'options' => [
218
+ 'h1' => __( 'H1', 'header-footer-elementor' ),
219
+ 'h2' => __( 'H2', 'header-footer-elementor' ),
220
+ 'h3' => __( 'H3', 'header-footer-elementor' ),
221
+ 'h4' => __( 'H4', 'header-footer-elementor' ),
222
+ 'h5' => __( 'H5', 'header-footer-elementor' ),
223
+ 'h6' => __( 'H6', 'header-footer-elementor' ),
224
+ ],
225
+ 'default' => 'h2',
226
+ ]
227
+ );
228
+
229
+ $this->add_responsive_control(
230
+ 'heading_text_align',
231
+ [
232
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
233
+ 'type' => Controls_Manager::CHOOSE,
234
+ 'options' => [
235
+ 'left' => [
236
+ 'title' => __( 'Left', 'header-footer-elementor' ),
237
+ 'icon' => 'fa fa-align-left',
238
+ ],
239
+ 'center' => [
240
+ 'title' => __( 'Center', 'header-footer-elementor' ),
241
+ 'icon' => 'fa fa-align-center',
242
+ ],
243
+ 'right' => [
244
+ 'title' => __( 'Right', 'header-footer-elementor' ),
245
+ 'icon' => 'fa fa-align-right',
246
+ ],
247
+ 'justify' => [
248
+ 'title' => __( 'Justify', 'header-footer-elementor' ),
249
+ 'icon' => 'fa fa-align-justify',
250
+ ],
251
+ ],
252
+ 'selectors' => [
253
+ '{{WRAPPER}} .hfe-heading' => 'text-align: {{VALUE}};',
254
+ ],
255
+ 'prefix_class' => 'hfe%s-heading-align-',
256
+ ]
257
+ );
258
+ $this->end_controls_section();
259
+ }
260
+
261
+
262
+ /**
263
+ * Register Advanced Heading Typography Controls.
264
+ *
265
+ * @since 1.3.0
266
+ * @access protected
267
+ */
268
+ protected function register_heading_typo_content_controls() {
269
+ $this->start_controls_section(
270
+ 'section_heading_typography',
271
+ [
272
+ 'label' => __( 'Title', 'header-footer-elementor' ),
273
+ 'tab' => Controls_Manager::TAB_STYLE,
274
+ ]
275
+ );
276
+ $this->add_group_control(
277
+ Group_Control_Typography::get_type(),
278
+ [
279
+ 'name' => 'heading_typography',
280
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
281
+ 'selector' => '{{WRAPPER}} .elementor-heading-title, {{WRAPPER}} .hfe-heading a',
282
+ ]
283
+ );
284
+ $this->add_control(
285
+ 'heading_color',
286
+ [
287
+ 'label' => __( 'Color', 'header-footer-elementor' ),
288
+ 'type' => Controls_Manager::COLOR,
289
+ 'scheme' => [
290
+ 'type' => Scheme_Color::get_type(),
291
+ 'value' => Scheme_Color::COLOR_1,
292
+ ],
293
+ 'selectors' => [
294
+ '{{WRAPPER}} .hfe-heading-text' => 'color: {{VALUE}};',
295
+ '{{WRAPPER}} .hfe-icon i' => 'color: {{VALUE}};',
296
+ '{{WRAPPER}} .hfe-icon svg' => 'fill: {{VALUE}};',
297
+ ],
298
+ ]
299
+ );
300
+
301
+ $this->add_group_control(
302
+ Group_Control_Text_Shadow::get_type(),
303
+ [
304
+ 'name' => 'heading_shadow',
305
+ 'selector' => '{{WRAPPER}} .hfe-heading-text',
306
+ ]
307
+ );
308
+
309
+ $this->add_control(
310
+ 'blend_mode',
311
+ [
312
+ 'label' => __( 'Blend Mode', 'header-footer-elementor' ),
313
+ 'type' => Controls_Manager::SELECT,
314
+ 'options' => [
315
+ '' => __( 'Normal', 'header-footer-elementor' ),
316
+ 'multiply' => 'Multiply',
317
+ 'screen' => 'Screen',
318
+ 'overlay' => 'Overlay',
319
+ 'darken' => 'Darken',
320
+ 'lighten' => 'Lighten',
321
+ 'color-dodge' => 'Color Dodge',
322
+ 'saturation' => 'Saturation',
323
+ 'color' => 'Color',
324
+ 'difference' => 'Difference',
325
+ 'exclusion' => 'Exclusion',
326
+ 'hue' => 'Hue',
327
+ 'luminosity' => 'Luminosity',
328
+ ],
329
+ 'selectors' => [
330
+ '{{WRAPPER}} .hfe-heading-text' => 'mix-blend-mode: {{VALUE}}',
331
+ ],
332
+ 'separator' => 'none',
333
+ ]
334
+ );
335
+ $this->end_controls_section();
336
+
337
+ $this->start_controls_section(
338
+ 'section_icon',
339
+ [
340
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
341
+ 'tab' => Controls_Manager::TAB_STYLE,
342
+ 'condition' => [
343
+ 'icon[value]!' => '',
344
+ ],
345
+ ]
346
+ );
347
+ $this->add_control(
348
+ 'icon_color',
349
+ [
350
+ 'label' => __( 'Icon Color', 'header-footer-elementor' ),
351
+ 'type' => Controls_Manager::COLOR,
352
+ 'scheme' => [
353
+ 'type' => Scheme_Color::get_type(),
354
+ 'value' => Scheme_Color::COLOR_1,
355
+ ],
356
+ 'condition' => [
357
+ 'icon[value]!' => '',
358
+ ],
359
+ 'default' => '',
360
+ 'selectors' => [
361
+ '{{WRAPPER}} .hfe-icon i' => 'color: {{VALUE}};',
362
+ '{{WRAPPER}} .hfe-icon svg' => 'fill: {{VALUE}};',
363
+ ],
364
+ ]
365
+ );
366
+ $this->add_control(
367
+ 'icons_hover_color',
368
+ [
369
+ 'label' => __( 'Icon Hover Color', 'header-footer-elementor' ),
370
+ 'type' => Controls_Manager::COLOR,
371
+ 'condition' => [
372
+ 'icon[value]!' => '',
373
+ ],
374
+ 'default' => '',
375
+ 'selectors' => [
376
+ '{{WRAPPER}} .hfe-icon:hover i' => 'color: {{VALUE}};',
377
+ '{{WRAPPER}} .hfe-icon:hover svg' => 'fill: {{VALUE}};',
378
+ ],
379
+ ]
380
+ );
381
+ $this->end_controls_section();
382
+ }
383
+
384
+ /**
385
+ * Render Heading output on the frontend.
386
+ *
387
+ * Written in PHP and used to generate the final HTML.
388
+ *
389
+ * @since 1.3.0
390
+ * @access protected
391
+ */
392
+ protected function render() {
393
+
394
+ $settings = $this->get_settings();
395
+ $title = get_bloginfo( 'name' );
396
+
397
+ $this->add_inline_editing_attributes( 'heading_title', 'basic' );
398
+
399
+ if ( ! empty( $settings['size'] ) ) {
400
+ $this->add_render_attribute( 'title', 'class', 'elementor-size-' . $settings['size'] );
401
+ }
402
+
403
+ if ( ! empty( $settings['heading_link']['url'] ) ) {
404
+ $this->add_render_attribute( 'url', 'href', $settings['heading_link']['url'] );
405
+
406
+ if ( $settings['heading_link']['is_external'] ) {
407
+ $this->add_render_attribute( 'url', 'target', '_blank' );
408
+ }
409
+
410
+ if ( ! empty( $settings['heading_link']['nofollow'] ) ) {
411
+ $this->add_render_attribute( 'url', 'rel', 'nofollow' );
412
+ }
413
+ $link = $this->get_render_attribute_string( 'url' );
414
+ }
415
+ ?>
416
+
417
+ <div class="hfe-module-content hfe-heading-wrapper elementor-widget-heading">
418
+ <?php if ( ! empty( $settings['heading_link']['url'] ) && 'custom' === $settings['custom_link'] ) { ?>
419
+ <a <?php echo esc_attr( $link ); ?> >
420
+ <?php } else { ?>
421
+ <a href="<?php echo get_home_url(); ?>">
422
+ <?php } ?>
423
+ <<?php echo wp_kses_post( $settings['heading_tag'] ); ?> class="hfe-heading elementor-heading-title elementor-size-<?php echo $settings['size']; ?>">
424
+ <?php if ( '' !== $settings['icon']['value'] ) { ?>
425
+ <span class="hfe-icon">
426
+ <?php \Elementor\Icons_Manager::render_icon( $settings['icon'], [ 'aria-hidden' => 'true' ] ); ?>
427
+ </span>
428
+ <?php } ?>
429
+ <span class="hfe-heading-text" >
430
+ <?php
431
+ if ( '' !== $settings['before'] ) {
432
+ echo wp_kses_post( $settings['before'] );
433
+ }
434
+ ?>
435
+ <?php echo wp_kses_post( $title ); ?>
436
+ <?php
437
+ if ( '' !== $settings['after'] ) {
438
+ echo wp_kses_post( $settings['after'] );
439
+ }
440
+ ?>
441
+ </span>
442
+ </<?php echo wp_kses_post( $settings['heading_tag'] ); ?>>
443
+ </a>
444
+ </div>
445
+ <?php
446
+ }
447
+ /**
448
+ * Render site title output in the editor.
449
+ *
450
+ * Written as a Backbone JavaScript template and used to generate the live preview.
451
+ *
452
+ * @since 1.3.0
453
+ * @access protected
454
+ */
455
+ protected function content_template() {
456
+ ?>
457
+ <#
458
+ if ( '' == settings.heading_title ) {
459
+ return;
460
+ }
461
+ if ( '' == settings.size ){
462
+ return;
463
+ }
464
+ if ( '' != settings.heading_link.url ) {
465
+ view.addRenderAttribute( 'url', 'href', settings.heading_link.url );
466
+ }
467
+ var iconHTML = elementor.helpers.renderIcon( view, settings.icon, { 'aria-hidden': true }, 'i' , 'object' );
468
+ #>
469
+ <div class="hfe-module-content hfe-heading-wrapper elementor-widget-heading">
470
+ <# if ( '' != settings.heading_link.url ) { #>
471
+ <a {{{ view.getRenderAttributeString( 'url' ) }}} >
472
+ <# } #>
473
+ <{{{ settings.heading_tag }}} class="hfe-heading elementor-heading-title elementor-size-{{{ settings.size }}}">
474
+ <# if( '' != settings.icon.value ){ #>
475
+ <span class="hfe-icon">
476
+ {{{iconHTML.value}}}
477
+ </span>
478
+ <# } #>
479
+ <span class="hfe-heading-text elementor-heading-title" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" >
480
+ <#if ( '' != settings.before ){#>
481
+ {{{ settings.before }}}
482
+ <#}#>
483
+ <?php echo wp_kses_post( get_bloginfo( 'name' ) ); ?>
484
+ <# if ( '' != settings.after ){#>
485
+ {{{ settings.after }}}
486
+ <#}#>
487
+ </span>
488
+ </{{{ settings.heading_tag }}}>
489
+ <# if ( '' != settings.heading_link.url ) { #>
490
+ </a>
491
+ <# } #>
492
+ </div>
493
+ <?php
494
+ }
495
+
496
+ /**
497
+ * Render site title output in the editor.
498
+ *
499
+ * Written as a Backbone JavaScript template and used to generate the live preview.
500
+ *
501
+ * Remove this after Elementor v3.3.0
502
+ *
503
+ * @since 1.3.0
504
+ * @access protected
505
+ */
506
+ protected function _content_template() {
507
+ $this->content_template();
508
+ }
509
+ }
languages/header-footer-elementor.pot CHANGED
@@ -1,15 +1,15 @@
1
- # Copyright (C) 2019 Brainstorm Force, Nikhil Chavan
2
  # This file is distributed under the same license as the Elementor - Header, Footer & Blocks package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Elementor - Header, Footer & Blocks 1.2.1\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
- "POT-Creation-Date: 2019-12-23 05:47:57+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
  "Language: en\n"
@@ -25,197 +25,197 @@ msgstr ""
25
  "X-Textdomain-Support: yes\n"
26
  "X-Generator: grunt-wp-i18n 1.0.3\n"
27
 
28
- #: admin/class-hfe-admin.php:68 admin/class-hfe-admin.php:301
29
  msgid "Display Rules"
30
  msgstr ""
31
 
32
- #: admin/class-hfe-admin.php:69
33
  msgid "Date"
34
  msgstr ""
35
 
36
- #: admin/class-hfe-admin.php:152 admin/class-hfe-admin.php:154
37
  msgid "Header Footers Template"
38
  msgstr ""
39
 
40
- #: admin/class-hfe-admin.php:153 admin/class-hfe-admin.php:155
41
  msgid "Elementor Header Footer"
42
  msgstr ""
43
 
44
- #: admin/class-hfe-admin.php:156
45
  msgid "Add New"
46
  msgstr ""
47
 
48
- #: admin/class-hfe-admin.php:157
49
  msgid "Add New Header Footer"
50
  msgstr ""
51
 
52
- #: admin/class-hfe-admin.php:158
53
  msgid "New Header Footers Template"
54
  msgstr ""
55
 
56
- #: admin/class-hfe-admin.php:159
57
  msgid "Edit Header Footers Template"
58
  msgstr ""
59
 
60
- #: admin/class-hfe-admin.php:160
61
  msgid "View Header Footers Template"
62
  msgstr ""
63
 
64
- #: admin/class-hfe-admin.php:161
65
  msgid "All Elementor Header Footers"
66
  msgstr ""
67
 
68
- #: admin/class-hfe-admin.php:162
69
  msgid "Search Header Footers Templates"
70
  msgstr ""
71
 
72
- #: admin/class-hfe-admin.php:163
73
  msgid "Parent Header Footers Templates:"
74
  msgstr ""
75
 
76
- #: admin/class-hfe-admin.php:164
77
  msgid "No Header Footers Templates found."
78
  msgstr ""
79
 
80
- #: admin/class-hfe-admin.php:165
81
  msgid "No Header Footers Templates found in Trash."
82
  msgstr ""
83
 
84
- #: admin/class-hfe-admin.php:194 admin/class-hfe-admin.php:195
85
  msgid "Header Footer Builder"
86
  msgstr ""
87
 
88
- #: admin/class-hfe-admin.php:207
89
  msgid "Elementor Header Footer options"
90
  msgstr ""
91
 
92
- #: admin/class-hfe-admin.php:235
93
  msgid "Type of Template"
94
  msgstr ""
95
 
96
- #: admin/class-hfe-admin.php:239
97
  msgid "Select Option"
98
  msgstr ""
99
 
100
- #: admin/class-hfe-admin.php:240
101
  msgid "Header"
102
  msgstr ""
103
 
104
- #: admin/class-hfe-admin.php:241
105
  msgid "Before Footer"
106
  msgstr ""
107
 
108
- #: admin/class-hfe-admin.php:242
109
  msgid "Footer"
110
  msgstr ""
111
 
112
- #: admin/class-hfe-admin.php:243
113
  msgid "Custom Block"
114
  msgstr ""
115
 
116
- #: admin/class-hfe-admin.php:251 admin/class-hfe-admin.php:496
117
  msgid "Shortcode"
118
  msgstr ""
119
 
120
- #: admin/class-hfe-admin.php:252
121
  msgid ""
122
  "Copy this shortcode and paste it into your post, page, or text widget "
123
  "content."
124
  msgstr ""
125
 
126
- #: admin/class-hfe-admin.php:264
127
  msgid "Enable Layout for Elementor Canvas Template?"
128
  msgstr ""
129
 
130
- #: admin/class-hfe-admin.php:266
131
  msgid ""
132
  "Enabling this option will display this layout on pages using Elementor "
133
  "Canvas Template."
134
  msgstr ""
135
 
136
- #: admin/class-hfe-admin.php:292
137
  msgid "Display On"
138
  msgstr ""
139
 
140
- #: admin/class-hfe-admin.php:294
141
  msgid "Add locations for where this template should appear."
142
  msgstr ""
143
 
144
- #: admin/class-hfe-admin.php:305
145
  msgid "Add Display Rule"
146
  msgstr ""
147
 
148
- #: admin/class-hfe-admin.php:314
149
  msgid "Do Not Display On"
150
  msgstr ""
151
 
152
- #: admin/class-hfe-admin.php:316
153
  msgid "This Advanced Header will not appear at these locations."
154
  msgstr ""
155
 
156
- #: admin/class-hfe-admin.php:323
157
  msgid "Exclude On"
158
  msgstr ""
159
 
160
- #: admin/class-hfe-admin.php:326
161
  #: inc/lib/target-rule/class-astra-target-rules-fields.php:840
162
  msgid "Add Exclusion Rule"
163
  msgstr ""
164
 
165
- #: admin/class-hfe-admin.php:336
166
  msgid "User Roles"
167
  msgstr ""
168
 
169
- #: admin/class-hfe-admin.php:337
170
  msgid "Display custom template based on user role."
171
  msgstr ""
172
 
173
- #: admin/class-hfe-admin.php:344
174
  msgid "Users"
175
  msgstr ""
176
 
177
- #: admin/class-hfe-admin.php:347
178
  msgid "Add User Rule"
179
  msgstr ""
180
 
181
- #: admin/class-hfe-admin.php:427
182
  #. Translators: Post title, Template Location
183
  msgid "Template %1$s is already assigned to the location %2$s"
184
  msgstr ""
185
 
186
- #: inc/class-header-footer-elementor.php:144
187
  msgid ""
188
  "Hello! Seems like you have used Elementor - Header, Footer & Blocks to "
189
  "build this website — Thanks a ton!"
190
  msgstr ""
191
 
192
- #: inc/class-header-footer-elementor.php:145
193
  msgid ""
194
  "Could you please do us a BIG favor and give it a 5-star rating on "
195
  "WordPress? This would boost our motivation and help other users make a "
196
  "comfortable decision while choosing the Elementor - Header, Footer & Blocks."
197
  msgstr ""
198
 
199
- #: inc/class-header-footer-elementor.php:147
200
  msgid "Ok, you deserve it"
201
  msgstr ""
202
 
203
- #: inc/class-header-footer-elementor.php:149
204
  msgid "Nope, maybe later"
205
  msgstr ""
206
 
207
- #: inc/class-header-footer-elementor.php:150
208
  msgid "I already did"
209
  msgstr ""
210
 
211
- #: inc/class-header-footer-elementor.php:183
212
  #. Translators: URL to install or activate Elementor plugin.
213
  msgid ""
214
  "The <strong>Header Footer Elementor</strong> plugin requires <strong><a "
215
  "href=\"%s\">Elementor</strong></a> plugin installed & activated."
216
  msgstr ""
217
 
218
- #: inc/class-header-footer-elementor.php:315
219
  msgid ""
220
  "Your current theme is not supported by Elementor - Header, Footer & Blocks "
221
  "plugin, click <a href=\"themes.php?page=hfe-settings\">here</a> to check "
@@ -377,7 +377,7 @@ msgstr ""
377
  msgid "The same display setting is already exist in %s post/s."
378
  msgstr ""
379
 
380
- #: inc/widgets-manager/class-widgets-loader.php:99
381
  msgid "Header, Footer & Blocks"
382
  msgstr ""
383
 
@@ -397,165 +397,730 @@ msgid ""
397
  msgstr ""
398
 
399
  #: inc/widgets-manager/widgets/class-copyright.php:122
400
- #: inc/widgets-manager/widgets/class-retina.php:214
401
- #: inc/widgets-manager/widgets/class-retina.php:227
 
 
 
 
 
 
402
  msgid "Link"
403
  msgstr ""
404
 
405
  #: inc/widgets-manager/widgets/class-copyright.php:124
406
- #: inc/widgets-manager/widgets/class-retina.php:232
 
 
 
407
  msgid "https://your-link.com"
408
  msgstr ""
409
 
410
  #: inc/widgets-manager/widgets/class-copyright.php:131
411
- #: inc/widgets-manager/widgets/class-retina.php:158
 
 
 
 
 
 
412
  msgid "Alignment"
413
  msgstr ""
414
 
415
  #: inc/widgets-manager/widgets/class-copyright.php:135
416
- #: inc/widgets-manager/widgets/class-retina.php:162
 
 
 
 
 
 
 
 
 
417
  msgid "Left"
418
  msgstr ""
419
 
420
  #: inc/widgets-manager/widgets/class-copyright.php:139
421
- #: inc/widgets-manager/widgets/class-retina.php:166
 
 
 
 
 
 
 
 
422
  msgid "Center"
423
  msgstr ""
424
 
425
  #: inc/widgets-manager/widgets/class-copyright.php:143
426
- #: inc/widgets-manager/widgets/class-retina.php:170
 
 
 
 
 
 
 
 
 
427
  msgid "Right"
428
  msgstr ""
429
 
430
  #: inc/widgets-manager/widgets/class-copyright.php:156
431
- #: inc/widgets-manager/widgets/class-retina.php:531
 
 
 
 
 
 
432
  msgid "Text Color"
433
  msgstr ""
434
 
435
- #: inc/widgets-manager/widgets/class-retina.php:61
436
- #: inc/widgets-manager/widgets/class-retina.php:118
437
- #: inc/widgets-manager/widgets/class-retina.php:251
438
- msgid "Retina Image"
439
  msgstr ""
440
 
441
- #: inc/widgets-manager/widgets/class-retina.php:124
442
- msgid "Choose Default Image"
 
443
  msgstr ""
444
 
445
- #: inc/widgets-manager/widgets/class-retina.php:137
446
- msgid "Choose Retina Image"
 
 
 
447
  msgstr ""
448
 
449
- #: inc/widgets-manager/widgets/class-retina.php:151
450
- msgid "Image Size"
 
 
 
451
  msgstr ""
452
 
453
- #: inc/widgets-manager/widgets/class-retina.php:184
454
- #: inc/widgets-manager/widgets/class-retina.php:520
455
- msgid "Caption"
456
  msgstr ""
457
 
458
- #: inc/widgets-manager/widgets/class-retina.php:187
459
- #: inc/widgets-manager/widgets/class-retina.php:218
460
- #: inc/widgets-manager/widgets/class-retina.php:336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
  msgid "None"
462
  msgstr ""
463
 
464
- #: inc/widgets-manager/widgets/class-retina.php:188
465
- #: inc/widgets-manager/widgets/class-retina.php:197
466
- msgid "Custom Caption"
467
  msgstr ""
468
 
469
- #: inc/widgets-manager/widgets/class-retina.php:200
470
- msgid "Enter your image caption"
471
  msgstr ""
472
 
473
- #: inc/widgets-manager/widgets/class-retina.php:219
474
- msgid "Custom URL"
475
  msgstr ""
476
 
477
- #: inc/widgets-manager/widgets/class-retina.php:259
478
- msgid "Width"
 
 
 
479
  msgstr ""
480
 
481
- #: inc/widgets-manager/widgets/class-retina.php:295
482
- msgid "Max Width"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
  msgstr ""
484
 
485
- #: inc/widgets-manager/widgets/class-retina.php:331
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  msgid "Border Style"
487
  msgstr ""
488
 
489
- #: inc/widgets-manager/widgets/class-retina.php:337
 
 
490
  msgid "Solid"
491
  msgstr ""
492
 
493
- #: inc/widgets-manager/widgets/class-retina.php:338
 
 
494
  msgid "Double"
495
  msgstr ""
496
 
497
- #: inc/widgets-manager/widgets/class-retina.php:339
 
 
498
  msgid "Dotted"
499
  msgstr ""
500
 
501
- #: inc/widgets-manager/widgets/class-retina.php:340
 
 
502
  msgid "Dashed"
503
  msgstr ""
504
 
505
- #: inc/widgets-manager/widgets/class-retina.php:350
 
 
 
 
 
 
 
 
 
506
  msgid "Border Width"
507
  msgstr ""
508
 
509
- #: inc/widgets-manager/widgets/class-retina.php:372
510
- msgid "Border Color"
511
  msgstr ""
512
 
513
- #: inc/widgets-manager/widgets/class-retina.php:391
514
- msgid "Border Radius"
 
 
 
 
515
  msgstr ""
516
 
517
- #: inc/widgets-manager/widgets/class-retina.php:416
518
- msgid "Normal"
519
  msgstr ""
520
 
521
- #: inc/widgets-manager/widgets/class-retina.php:423
522
- #: inc/widgets-manager/widgets/class-retina.php:457
523
- msgid "Opacity"
524
  msgstr ""
525
 
526
- #: inc/widgets-manager/widgets/class-retina.php:451
527
- msgid "Hover"
528
  msgstr ""
529
 
530
- #: inc/widgets-manager/widgets/class-retina.php:483
531
- msgid "Hover Animation"
532
  msgstr ""
533
 
534
- #: inc/widgets-manager/widgets/class-retina.php:490
535
- msgid "Transition Duration"
 
 
536
  msgstr ""
537
 
538
- #: inc/widgets-manager/widgets/class-retina.php:547
539
- msgid "Background Color"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
540
  msgstr ""
541
 
542
- #: inc/widgets-manager/widgets/class-retina.php:575
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
543
  msgid "Padding"
544
  msgstr ""
545
 
546
- #: inc/widgets-manager/widgets/class-retina.php:586
547
  msgid "Caption Top Spacing"
548
  msgstr ""
549
 
550
- #: inc/widgets-manager/widgets/class-retina.php:617
551
  msgid "Helpful Information"
552
  msgstr ""
553
 
554
- #: inc/widgets-manager/widgets/class-retina.php:626
555
  #. translators: %1$s doc link
556
  msgid "%1$s Getting started article » %2$s"
557
  msgstr ""
558
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
559
  #: themes/default/class-hfe-fallback-theme-support.php:65
560
  msgid "Add Theme Support"
561
  msgstr ""
1
+ # Copyright (C) 2020 Brainstorm Force, Nikhil Chavan
2
  # This file is distributed under the same license as the Elementor - Header, Footer & Blocks package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Elementor - Header, Footer & Blocks 1.3.0\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
+ "POT-Creation-Date: 2020-02-24 09:23:50+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
  "Language: en\n"
25
  "X-Textdomain-Support: yes\n"
26
  "X-Generator: grunt-wp-i18n 1.0.3\n"
27
 
28
+ #: admin/class-hfe-admin.php:99 admin/class-hfe-admin.php:332
29
  msgid "Display Rules"
30
  msgstr ""
31
 
32
+ #: admin/class-hfe-admin.php:100
33
  msgid "Date"
34
  msgstr ""
35
 
36
+ #: admin/class-hfe-admin.php:183 admin/class-hfe-admin.php:185
37
  msgid "Header Footers Template"
38
  msgstr ""
39
 
40
+ #: admin/class-hfe-admin.php:184 admin/class-hfe-admin.php:186
41
  msgid "Elementor Header Footer"
42
  msgstr ""
43
 
44
+ #: admin/class-hfe-admin.php:187
45
  msgid "Add New"
46
  msgstr ""
47
 
48
+ #: admin/class-hfe-admin.php:188
49
  msgid "Add New Header Footer"
50
  msgstr ""
51
 
52
+ #: admin/class-hfe-admin.php:189
53
  msgid "New Header Footers Template"
54
  msgstr ""
55
 
56
+ #: admin/class-hfe-admin.php:190
57
  msgid "Edit Header Footers Template"
58
  msgstr ""
59
 
60
+ #: admin/class-hfe-admin.php:191
61
  msgid "View Header Footers Template"
62
  msgstr ""
63
 
64
+ #: admin/class-hfe-admin.php:192
65
  msgid "All Elementor Header Footers"
66
  msgstr ""
67
 
68
+ #: admin/class-hfe-admin.php:193
69
  msgid "Search Header Footers Templates"
70
  msgstr ""
71
 
72
+ #: admin/class-hfe-admin.php:194
73
  msgid "Parent Header Footers Templates:"
74
  msgstr ""
75
 
76
+ #: admin/class-hfe-admin.php:195
77
  msgid "No Header Footers Templates found."
78
  msgstr ""
79
 
80
+ #: admin/class-hfe-admin.php:196
81
  msgid "No Header Footers Templates found in Trash."
82
  msgstr ""
83
 
84
+ #: admin/class-hfe-admin.php:225 admin/class-hfe-admin.php:226
85
  msgid "Header Footer Builder"
86
  msgstr ""
87
 
88
+ #: admin/class-hfe-admin.php:238
89
  msgid "Elementor Header Footer options"
90
  msgstr ""
91
 
92
+ #: admin/class-hfe-admin.php:266
93
  msgid "Type of Template"
94
  msgstr ""
95
 
96
+ #: admin/class-hfe-admin.php:270
97
  msgid "Select Option"
98
  msgstr ""
99
 
100
+ #: admin/class-hfe-admin.php:271
101
  msgid "Header"
102
  msgstr ""
103
 
104
+ #: admin/class-hfe-admin.php:272
105
  msgid "Before Footer"
106
  msgstr ""
107
 
108
+ #: admin/class-hfe-admin.php:273
109
  msgid "Footer"
110
  msgstr ""
111
 
112
+ #: admin/class-hfe-admin.php:274
113
  msgid "Custom Block"
114
  msgstr ""
115
 
116
+ #: admin/class-hfe-admin.php:282 admin/class-hfe-admin.php:527
117
  msgid "Shortcode"
118
  msgstr ""
119
 
120
+ #: admin/class-hfe-admin.php:283
121
  msgid ""
122
  "Copy this shortcode and paste it into your post, page, or text widget "
123
  "content."
124
  msgstr ""
125
 
126
+ #: admin/class-hfe-admin.php:295
127
  msgid "Enable Layout for Elementor Canvas Template?"
128
  msgstr ""
129
 
130
+ #: admin/class-hfe-admin.php:297
131
  msgid ""
132
  "Enabling this option will display this layout on pages using Elementor "
133
  "Canvas Template."
134
  msgstr ""
135
 
136
+ #: admin/class-hfe-admin.php:323
137
  msgid "Display On"
138
  msgstr ""
139
 
140
+ #: admin/class-hfe-admin.php:325
141
  msgid "Add locations for where this template should appear."
142
  msgstr ""
143
 
144
+ #: admin/class-hfe-admin.php:336
145
  msgid "Add Display Rule"
146
  msgstr ""
147
 
148
+ #: admin/class-hfe-admin.php:345
149
  msgid "Do Not Display On"
150
  msgstr ""
151
 
152
+ #: admin/class-hfe-admin.php:347
153
  msgid "This Advanced Header will not appear at these locations."
154
  msgstr ""
155
 
156
+ #: admin/class-hfe-admin.php:354
157
  msgid "Exclude On"
158
  msgstr ""
159
 
160
+ #: admin/class-hfe-admin.php:357
161
  #: inc/lib/target-rule/class-astra-target-rules-fields.php:840
162
  msgid "Add Exclusion Rule"
163
  msgstr ""
164
 
165
+ #: admin/class-hfe-admin.php:367
166
  msgid "User Roles"
167
  msgstr ""
168
 
169
+ #: admin/class-hfe-admin.php:368
170
  msgid "Display custom template based on user role."
171
  msgstr ""
172
 
173
+ #: admin/class-hfe-admin.php:375
174
  msgid "Users"
175
  msgstr ""
176
 
177
+ #: admin/class-hfe-admin.php:378
178
  msgid "Add User Rule"
179
  msgstr ""
180
 
181
+ #: admin/class-hfe-admin.php:458
182
  #. Translators: Post title, Template Location
183
  msgid "Template %1$s is already assigned to the location %2$s"
184
  msgstr ""
185
 
186
+ #: inc/class-header-footer-elementor.php:142
187
  msgid ""
188
  "Hello! Seems like you have used Elementor - Header, Footer & Blocks to "
189
  "build this website — Thanks a ton!"
190
  msgstr ""
191
 
192
+ #: inc/class-header-footer-elementor.php:143
193
  msgid ""
194
  "Could you please do us a BIG favor and give it a 5-star rating on "
195
  "WordPress? This would boost our motivation and help other users make a "
196
  "comfortable decision while choosing the Elementor - Header, Footer & Blocks."
197
  msgstr ""
198
 
199
+ #: inc/class-header-footer-elementor.php:145
200
  msgid "Ok, you deserve it"
201
  msgstr ""
202
 
203
+ #: inc/class-header-footer-elementor.php:147
204
  msgid "Nope, maybe later"
205
  msgstr ""
206
 
207
+ #: inc/class-header-footer-elementor.php:148
208
  msgid "I already did"
209
  msgstr ""
210
 
211
+ #: inc/class-header-footer-elementor.php:181
212
  #. Translators: URL to install or activate Elementor plugin.
213
  msgid ""
214
  "The <strong>Header Footer Elementor</strong> plugin requires <strong><a "
215
  "href=\"%s\">Elementor</strong></a> plugin installed & activated."
216
  msgstr ""
217
 
218
+ #: inc/class-header-footer-elementor.php:313
219
  msgid ""
220
  "Your current theme is not supported by Elementor - Header, Footer & Blocks "
221
  "plugin, click <a href=\"themes.php?page=hfe-settings\">here</a> to check "
377
  msgid "The same display setting is already exist in %s post/s."
378
  msgstr ""
379
 
380
+ #: inc/widgets-manager/class-widgets-loader.php:152
381
  msgid "Header, Footer & Blocks"
382
  msgstr ""
383
 
397
  msgstr ""
398
 
399
  #: inc/widgets-manager/widgets/class-copyright.php:122
400
+ #: inc/widgets-manager/widgets/class-page-title.php:166
401
+ #: inc/widgets-manager/widgets/class-page-title.php:179
402
+ #: inc/widgets-manager/widgets/class-retina.php:213
403
+ #: inc/widgets-manager/widgets/class-retina.php:226
404
+ #: inc/widgets-manager/widgets/class-site-logo.php:218
405
+ #: inc/widgets-manager/widgets/class-site-logo.php:233
406
+ #: inc/widgets-manager/widgets/class-site-title.php:167
407
+ #: inc/widgets-manager/widgets/class-site-title.php:180
408
  msgid "Link"
409
  msgstr ""
410
 
411
  #: inc/widgets-manager/widgets/class-copyright.php:124
412
+ #: inc/widgets-manager/widgets/class-page-title.php:181
413
+ #: inc/widgets-manager/widgets/class-retina.php:231
414
+ #: inc/widgets-manager/widgets/class-site-logo.php:238
415
+ #: inc/widgets-manager/widgets/class-site-title.php:182
416
  msgid "https://your-link.com"
417
  msgstr ""
418
 
419
  #: inc/widgets-manager/widgets/class-copyright.php:131
420
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:248
421
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:447
422
+ #: inc/widgets-manager/widgets/class-page-title.php:231
423
+ #: inc/widgets-manager/widgets/class-retina.php:157
424
+ #: inc/widgets-manager/widgets/class-site-logo.php:162
425
+ #: inc/widgets-manager/widgets/class-site-tagline.php:167
426
+ #: inc/widgets-manager/widgets/class-site-title.php:232
427
  msgid "Alignment"
428
  msgstr ""
429
 
430
  #: inc/widgets-manager/widgets/class-copyright.php:135
431
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:252
432
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:283
433
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:318
434
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:354
435
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:451
436
+ #: inc/widgets-manager/widgets/class-page-title.php:235
437
+ #: inc/widgets-manager/widgets/class-retina.php:161
438
+ #: inc/widgets-manager/widgets/class-site-logo.php:166
439
+ #: inc/widgets-manager/widgets/class-site-tagline.php:171
440
+ #: inc/widgets-manager/widgets/class-site-title.php:236
441
  msgid "Left"
442
  msgstr ""
443
 
444
  #: inc/widgets-manager/widgets/class-copyright.php:139
445
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:256
446
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:322
447
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:358
448
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:455
449
+ #: inc/widgets-manager/widgets/class-page-title.php:239
450
+ #: inc/widgets-manager/widgets/class-retina.php:165
451
+ #: inc/widgets-manager/widgets/class-site-logo.php:170
452
+ #: inc/widgets-manager/widgets/class-site-tagline.php:175
453
+ #: inc/widgets-manager/widgets/class-site-title.php:240
454
  msgid "Center"
455
  msgstr ""
456
 
457
  #: inc/widgets-manager/widgets/class-copyright.php:143
458
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:260
459
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:284
460
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:326
461
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:362
462
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:459
463
+ #: inc/widgets-manager/widgets/class-page-title.php:243
464
+ #: inc/widgets-manager/widgets/class-retina.php:169
465
+ #: inc/widgets-manager/widgets/class-site-logo.php:174
466
+ #: inc/widgets-manager/widgets/class-site-tagline.php:179
467
+ #: inc/widgets-manager/widgets/class-site-title.php:244
468
  msgid "Right"
469
  msgstr ""
470
 
471
  #: inc/widgets-manager/widgets/class-copyright.php:156
472
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:871
473
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:911
474
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:981
475
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1075
476
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1118
477
+ #: inc/widgets-manager/widgets/class-retina.php:530
478
+ #: inc/widgets-manager/widgets/class-site-logo.php:572
479
  msgid "Text Color"
480
  msgstr ""
481
 
482
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:63
483
+ msgid "Navigation Menu"
 
 
484
  msgstr ""
485
 
486
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:188
487
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:198
488
+ msgid "Menu"
489
  msgstr ""
490
 
491
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:205
492
+ #. translators: %s Nav menu URL
493
+ msgid ""
494
+ "Go to the <a href=\"%s\" target=\"_blank\">Menus screen</a> to manage your "
495
+ "menus."
496
  msgstr ""
497
 
498
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:214
499
+ #. translators: %s Nav menu URL
500
+ msgid ""
501
+ "<strong>There are no menus in your site.</strong><br>Go to the <a "
502
+ "href=\"%s\" target=\"_blank\">Menus screen</a> to create one."
503
  msgstr ""
504
 
505
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:226
506
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:233
507
+ msgid "Layout"
508
  msgstr ""
509
 
510
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:237
511
+ msgid "Horizontal"
512
+ msgstr ""
513
+
514
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:238
515
+ msgid "Vertical"
516
+ msgstr ""
517
+
518
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:239
519
+ msgid "Expanded"
520
+ msgstr ""
521
+
522
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:240
523
+ msgid "Flyout"
524
+ msgstr ""
525
+
526
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:264
527
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:366
528
+ #: inc/widgets-manager/widgets/class-site-tagline.php:183
529
+ #: inc/widgets-manager/widgets/class-site-title.php:248
530
+ msgid "Justify"
531
+ msgstr ""
532
+
533
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:279
534
+ msgid "Flyout Orientation"
535
+ msgstr ""
536
+
537
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:295
538
+ msgid "Appear Effect"
539
+ msgstr ""
540
+
541
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:300
542
+ msgid "Slide"
543
+ msgstr ""
544
+
545
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:301
546
+ msgid "Push"
547
+ msgstr ""
548
+
549
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:313
550
+ msgid "Hamburger Align"
551
+ msgstr ""
552
+
553
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:350
554
+ msgid "Menu Items Align"
555
+ msgstr ""
556
+
557
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:384
558
+ msgid "Submenu Icon"
559
+ msgstr ""
560
+
561
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:388
562
+ msgid "Arrows"
563
+ msgstr ""
564
+
565
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:389
566
+ msgid "Plus Sign"
567
+ msgstr ""
568
+
569
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:390
570
+ msgid "Classic"
571
+ msgstr ""
572
+
573
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:399
574
+ msgid "Submenu Animation"
575
+ msgstr ""
576
+
577
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:403
578
+ #: inc/widgets-manager/widgets/class-page-title.php:170
579
+ #: inc/widgets-manager/widgets/class-page-title.php:218
580
+ #: inc/widgets-manager/widgets/class-site-logo.php:222
581
+ #: inc/widgets-manager/widgets/class-site-logo.php:253
582
+ #: inc/widgets-manager/widgets/class-site-title.php:171
583
+ #: inc/widgets-manager/widgets/class-site-title.php:202
584
+ msgid "Default"
585
+ msgstr ""
586
+
587
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:404
588
+ msgid "Slide Up"
589
+ msgstr ""
590
+
591
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:417
592
+ msgid "Responsive"
593
+ msgstr ""
594
+
595
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:428
596
+ msgid "Breakpoint"
597
+ msgstr ""
598
+
599
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:432
600
+ msgid "Mobile (767px >)"
601
+ msgstr ""
602
+
603
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:433
604
+ msgid "Tablet (1023px >)"
605
+ msgstr ""
606
+
607
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:434
608
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:765
609
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1322
610
+ #: inc/widgets-manager/widgets/class-retina.php:186
611
+ #: inc/widgets-manager/widgets/class-retina.php:217
612
+ #: inc/widgets-manager/widgets/class-retina.php:335
613
+ #: inc/widgets-manager/widgets/class-site-logo.php:223
614
+ #: inc/widgets-manager/widgets/class-site-logo.php:377
615
  msgid "None"
616
  msgstr ""
617
 
618
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:464
619
+ msgid "This is the alignement of menu icon on selected responsive breakpoints."
 
620
  msgstr ""
621
 
622
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:483
623
+ msgid "Full Width"
624
  msgstr ""
625
 
626
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:484
627
+ msgid "Enable this option to stretch the Sub Menu to Full Width."
628
  msgstr ""
629
 
630
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:486
631
+ #: inc/widgets-manager/widgets/class-site-logo.php:127
632
+ #: inc/widgets-manager/widgets/class-site-logo.php:192
633
+ #: inc/widgets-manager/widgets/class-site-logo.php:254
634
+ msgid "Yes"
635
  msgstr ""
636
 
637
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:487
638
+ #: inc/widgets-manager/widgets/class-site-logo.php:128
639
+ #: inc/widgets-manager/widgets/class-site-logo.php:191
640
+ #: inc/widgets-manager/widgets/class-site-logo.php:255
641
+ msgid "No"
642
+ msgstr ""
643
+
644
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:502
645
+ msgid "Menu Icon"
646
+ msgstr ""
647
+
648
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:518
649
+ #: inc/widgets-manager/widgets/class-page-title.php:340
650
+ #: inc/widgets-manager/widgets/class-site-tagline.php:139
651
+ #: inc/widgets-manager/widgets/class-site-title.php:139
652
+ #: inc/widgets-manager/widgets/class-site-title.php:340
653
+ msgid "Icon"
654
+ msgstr ""
655
+
656
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:533
657
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:549
658
+ msgid "Close Icon"
659
+ msgstr ""
660
+
661
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:574
662
+ msgid "Main Menu"
663
+ msgstr ""
664
+
665
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:585
666
+ msgid "Flyout Box Width"
667
+ msgstr ""
668
+
669
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:612
670
+ msgid "Flyout Box Padding"
671
  msgstr ""
672
 
673
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:635
674
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1240
675
+ msgid "Horizontal Padding"
676
+ msgstr ""
677
+
678
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:660
679
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1262
680
+ msgid "Vertical Padding"
681
+ msgstr ""
682
+
683
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:681
684
+ msgid "Space Between"
685
+ msgstr ""
686
+
687
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:705
688
+ msgid "Row Spacing"
689
+ msgstr ""
690
+
691
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:725
692
+ msgid "Menu Item Top Spacing"
693
+ msgstr ""
694
+
695
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:745
696
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:887
697
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:930
698
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:993
699
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1092
700
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1135
701
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1410
702
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1441
703
+ #: inc/widgets-manager/widgets/class-retina.php:546
704
+ #: inc/widgets-manager/widgets/class-site-logo.php:361
705
+ #: inc/widgets-manager/widgets/class-site-logo.php:588
706
+ msgid "Background Color"
707
+ msgstr ""
708
+
709
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:761
710
+ msgid "Link Hover Effect"
711
+ msgstr ""
712
+
713
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:766
714
+ msgid "Underline"
715
+ msgstr ""
716
+
717
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:767
718
+ msgid "Overline"
719
+ msgstr ""
720
+
721
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:768
722
+ msgid "Double Line"
723
+ msgstr ""
724
+
725
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:769
726
+ msgid "Framed"
727
+ msgstr ""
728
+
729
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:770
730
+ msgid "Text"
731
+ msgstr ""
732
+
733
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:781
734
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:823
735
+ msgid "Animation"
736
+ msgstr ""
737
+
738
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:802
739
+ msgid "Frame Animation"
740
+ msgstr ""
741
+
742
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:864
743
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1068
744
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1392
745
+ #: inc/widgets-manager/widgets/class-page-title.php:315
746
+ #: inc/widgets-manager/widgets/class-retina.php:415
747
+ #: inc/widgets-manager/widgets/class-site-logo.php:457
748
+ #: inc/widgets-manager/widgets/class-site-title.php:315
749
+ msgid "Normal"
750
+ msgstr ""
751
+
752
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:904
753
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1111
754
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1423
755
+ #: inc/widgets-manager/widgets/class-retina.php:450
756
+ #: inc/widgets-manager/widgets/class-site-logo.php:492
757
+ msgid "Hover"
758
+ msgstr ""
759
+
760
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:948
761
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1008
762
+ msgid "Link Hover Effect Color"
763
+ msgstr ""
764
+
765
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:974
766
+ msgid "Active"
767
+ msgstr ""
768
+
769
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1043
770
+ msgid "Dropdown"
771
+ msgstr ""
772
+
773
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1051
774
+ msgid ""
775
+ "<b>Note:</b> On desktop, below style options will apply to the submenu. On "
776
+ "mobile, this will apply to the entire menu."
777
+ msgstr ""
778
+
779
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1182
780
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1489
781
+ #: inc/widgets-manager/widgets/class-retina.php:390
782
+ #: inc/widgets-manager/widgets/class-site-logo.php:432
783
+ msgid "Border Radius"
784
+ msgstr ""
785
+
786
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1216
787
+ msgid "Dropdown Width (px)"
788
+ msgstr ""
789
+
790
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1287
791
+ msgid "Top Distance"
792
+ msgstr ""
793
+
794
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1308
795
+ msgid "Divider"
796
+ msgstr ""
797
+
798
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1317
799
+ #: inc/widgets-manager/widgets/class-retina.php:330
800
+ #: inc/widgets-manager/widgets/class-site-logo.php:372
801
  msgid "Border Style"
802
  msgstr ""
803
 
804
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1323
805
+ #: inc/widgets-manager/widgets/class-retina.php:336
806
+ #: inc/widgets-manager/widgets/class-site-logo.php:378
807
  msgid "Solid"
808
  msgstr ""
809
 
810
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1324
811
+ #: inc/widgets-manager/widgets/class-retina.php:337
812
+ #: inc/widgets-manager/widgets/class-site-logo.php:379
813
  msgid "Double"
814
  msgstr ""
815
 
816
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1325
817
+ #: inc/widgets-manager/widgets/class-retina.php:338
818
+ #: inc/widgets-manager/widgets/class-site-logo.php:380
819
  msgid "Dotted"
820
  msgstr ""
821
 
822
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1326
823
+ #: inc/widgets-manager/widgets/class-retina.php:339
824
+ #: inc/widgets-manager/widgets/class-site-logo.php:381
825
  msgid "Dashed"
826
  msgstr ""
827
 
828
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1338
829
+ #: inc/widgets-manager/widgets/class-retina.php:371
830
+ #: inc/widgets-manager/widgets/class-site-logo.php:413
831
+ msgid "Border Color"
832
+ msgstr ""
833
+
834
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1355
835
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1473
836
+ #: inc/widgets-manager/widgets/class-retina.php:349
837
+ #: inc/widgets-manager/widgets/class-site-logo.php:391
838
  msgid "Border Width"
839
  msgstr ""
840
 
841
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1382
842
+ msgid "Menu Trigger & Close Icon"
843
  msgstr ""
844
 
845
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1399
846
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1430
847
+ #: inc/widgets-manager/widgets/class-page-title.php:287
848
+ #: inc/widgets-manager/widgets/class-site-tagline.php:204
849
+ #: inc/widgets-manager/widgets/class-site-title.php:287
850
+ msgid "Color"
851
  msgstr ""
852
 
853
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1456
854
+ msgid "Icon Size"
855
  msgstr ""
856
 
857
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1501
858
+ msgid "Close Icon Color"
 
859
  msgstr ""
860
 
861
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1517
862
+ msgid "Close Icon Size"
863
  msgstr ""
864
 
865
+ #: inc/widgets-manager/widgets/class-page-title.php:54
866
+ msgid "Page Title"
867
  msgstr ""
868
 
869
+ #: inc/widgets-manager/widgets/class-page-title.php:109
870
+ #: inc/widgets-manager/widgets/class-page-title.php:270
871
+ #: inc/widgets-manager/widgets/class-site-title.php:272
872
+ msgid "Title"
873
  msgstr ""
874
 
875
+ #: inc/widgets-manager/widgets/class-page-title.php:116
876
+ #: inc/widgets-manager/widgets/class-site-tagline.php:115
877
+ #: inc/widgets-manager/widgets/class-site-title.php:117
878
+ msgid "Before Title Text"
879
+ msgstr ""
880
+
881
+ #: inc/widgets-manager/widgets/class-page-title.php:127
882
+ #: inc/widgets-manager/widgets/class-site-tagline.php:127
883
+ #: inc/widgets-manager/widgets/class-site-title.php:128
884
+ msgid "After Title Text"
885
+ msgstr ""
886
+
887
+ #: inc/widgets-manager/widgets/class-page-title.php:138
888
+ msgid "Select Icon"
889
+ msgstr ""
890
+
891
+ #: inc/widgets-manager/widgets/class-page-title.php:147
892
+ #: inc/widgets-manager/widgets/class-site-tagline.php:148
893
+ #: inc/widgets-manager/widgets/class-site-title.php:148
894
+ msgid "Icon Spacing"
895
+ msgstr ""
896
+
897
+ #: inc/widgets-manager/widgets/class-page-title.php:169
898
+ #: inc/widgets-manager/widgets/class-retina.php:218
899
+ #: inc/widgets-manager/widgets/class-site-logo.php:225
900
+ #: inc/widgets-manager/widgets/class-site-title.php:170
901
+ msgid "Custom URL"
902
+ msgstr ""
903
+
904
+ #: inc/widgets-manager/widgets/class-page-title.php:197
905
+ #: inc/widgets-manager/widgets/class-site-title.php:215
906
+ msgid "HTML Tag"
907
+ msgstr ""
908
+
909
+ #: inc/widgets-manager/widgets/class-page-title.php:200
910
+ #: inc/widgets-manager/widgets/class-site-title.php:218
911
+ msgid "H1"
912
+ msgstr ""
913
+
914
+ #: inc/widgets-manager/widgets/class-page-title.php:201
915
+ #: inc/widgets-manager/widgets/class-site-title.php:219
916
+ msgid "H2"
917
+ msgstr ""
918
+
919
+ #: inc/widgets-manager/widgets/class-page-title.php:202
920
+ #: inc/widgets-manager/widgets/class-site-title.php:220
921
+ msgid "H3"
922
+ msgstr ""
923
+
924
+ #: inc/widgets-manager/widgets/class-page-title.php:203
925
+ #: inc/widgets-manager/widgets/class-site-title.php:221
926
+ msgid "H4"
927
+ msgstr ""
928
+
929
+ #: inc/widgets-manager/widgets/class-page-title.php:204
930
+ #: inc/widgets-manager/widgets/class-site-title.php:222
931
+ msgid "H5"
932
+ msgstr ""
933
+
934
+ #: inc/widgets-manager/widgets/class-page-title.php:205
935
+ #: inc/widgets-manager/widgets/class-site-title.php:223
936
+ msgid "H6"
937
+ msgstr ""
938
+
939
+ #: inc/widgets-manager/widgets/class-page-title.php:214
940
+ #: inc/widgets-manager/widgets/class-site-title.php:198
941
+ msgid "Size"
942
+ msgstr ""
943
+
944
+ #: inc/widgets-manager/widgets/class-page-title.php:219
945
+ #: inc/widgets-manager/widgets/class-site-title.php:203
946
+ msgid "Small"
947
+ msgstr ""
948
+
949
+ #: inc/widgets-manager/widgets/class-page-title.php:220
950
+ #: inc/widgets-manager/widgets/class-site-title.php:204
951
+ msgid "Medium"
952
+ msgstr ""
953
+
954
+ #: inc/widgets-manager/widgets/class-page-title.php:221
955
+ #: inc/widgets-manager/widgets/class-site-title.php:205
956
+ msgid "Large"
957
+ msgstr ""
958
+
959
+ #: inc/widgets-manager/widgets/class-page-title.php:222
960
+ #: inc/widgets-manager/widgets/class-site-title.php:206
961
+ msgid "XL"
962
+ msgstr ""
963
+
964
+ #: inc/widgets-manager/widgets/class-page-title.php:223
965
+ #: inc/widgets-manager/widgets/class-site-title.php:207
966
+ msgid "XXL"
967
+ msgstr ""
968
+
969
+ #: inc/widgets-manager/widgets/class-page-title.php:247
970
+ msgid "Justified"
971
+ msgstr ""
972
+
973
+ #: inc/widgets-manager/widgets/class-page-title.php:312
974
+ #: inc/widgets-manager/widgets/class-site-title.php:312
975
+ msgid "Blend Mode"
976
+ msgstr ""
977
+
978
+ #: inc/widgets-manager/widgets/class-page-title.php:351
979
+ #: inc/widgets-manager/widgets/class-site-tagline.php:221
980
+ #: inc/widgets-manager/widgets/class-site-title.php:350
981
+ msgid "Icon Color"
982
  msgstr ""
983
 
984
+ #: inc/widgets-manager/widgets/class-page-title.php:370
985
+ #: inc/widgets-manager/widgets/class-site-tagline.php:240
986
+ #: inc/widgets-manager/widgets/class-site-title.php:369
987
+ msgid "Icon Hover Color"
988
+ msgstr ""
989
+
990
+ #: inc/widgets-manager/widgets/class-retina.php:60
991
+ #: inc/widgets-manager/widgets/class-retina.php:117
992
+ #: inc/widgets-manager/widgets/class-retina.php:250
993
+ msgid "Retina Image"
994
+ msgstr ""
995
+
996
+ #: inc/widgets-manager/widgets/class-retina.php:123
997
+ msgid "Choose Default Image"
998
+ msgstr ""
999
+
1000
+ #: inc/widgets-manager/widgets/class-retina.php:136
1001
+ msgid "Choose Retina Image"
1002
+ msgstr ""
1003
+
1004
+ #: inc/widgets-manager/widgets/class-retina.php:150
1005
+ #: inc/widgets-manager/widgets/class-site-logo.php:155
1006
+ msgid "Image Size"
1007
+ msgstr ""
1008
+
1009
+ #: inc/widgets-manager/widgets/class-retina.php:183
1010
+ #: inc/widgets-manager/widgets/class-retina.php:519
1011
+ #: inc/widgets-manager/widgets/class-site-logo.php:188
1012
+ #: inc/widgets-manager/widgets/class-site-logo.php:561
1013
+ msgid "Caption"
1014
+ msgstr ""
1015
+
1016
+ #: inc/widgets-manager/widgets/class-retina.php:187
1017
+ #: inc/widgets-manager/widgets/class-retina.php:196
1018
+ #: inc/widgets-manager/widgets/class-site-logo.php:201
1019
+ msgid "Custom Caption"
1020
+ msgstr ""
1021
+
1022
+ #: inc/widgets-manager/widgets/class-retina.php:199
1023
+ msgid "Enter your image caption"
1024
+ msgstr ""
1025
+
1026
+ #: inc/widgets-manager/widgets/class-retina.php:258
1027
+ #: inc/widgets-manager/widgets/class-site-logo.php:291
1028
+ msgid "Width"
1029
+ msgstr ""
1030
+
1031
+ #: inc/widgets-manager/widgets/class-retina.php:294
1032
+ #: inc/widgets-manager/widgets/class-site-logo.php:326
1033
+ msgid "Max Width"
1034
+ msgstr ""
1035
+
1036
+ #: inc/widgets-manager/widgets/class-retina.php:422
1037
+ #: inc/widgets-manager/widgets/class-retina.php:456
1038
+ #: inc/widgets-manager/widgets/class-site-logo.php:464
1039
+ #: inc/widgets-manager/widgets/class-site-logo.php:498
1040
+ msgid "Opacity"
1041
+ msgstr ""
1042
+
1043
+ #: inc/widgets-manager/widgets/class-retina.php:482
1044
+ #: inc/widgets-manager/widgets/class-site-logo.php:540
1045
+ msgid "Hover Animation"
1046
+ msgstr ""
1047
+
1048
+ #: inc/widgets-manager/widgets/class-retina.php:489
1049
+ #: inc/widgets-manager/widgets/class-site-logo.php:515
1050
+ msgid "Transition Duration"
1051
+ msgstr ""
1052
+
1053
+ #: inc/widgets-manager/widgets/class-retina.php:574
1054
+ #: inc/widgets-manager/widgets/class-site-logo.php:616
1055
  msgid "Padding"
1056
  msgstr ""
1057
 
1058
+ #: inc/widgets-manager/widgets/class-retina.php:585
1059
  msgid "Caption Top Spacing"
1060
  msgstr ""
1061
 
1062
+ #: inc/widgets-manager/widgets/class-retina.php:616
1063
  msgid "Helpful Information"
1064
  msgstr ""
1065
 
1066
+ #: inc/widgets-manager/widgets/class-retina.php:625
1067
  #. translators: %1$s doc link
1068
  msgid "%1$s Getting started article » %2$s"
1069
  msgstr ""
1070
 
1071
+ #: inc/widgets-manager/widgets/class-site-logo.php:62
1072
+ #: inc/widgets-manager/widgets/class-site-logo.php:118
1073
+ msgid "Site Logo"
1074
+ msgstr ""
1075
+
1076
+ #: inc/widgets-manager/widgets/class-site-logo.php:125
1077
+ msgid "Custom Image"
1078
+ msgstr ""
1079
+
1080
+ #: inc/widgets-manager/widgets/class-site-logo.php:137
1081
+ msgid "Add Image"
1082
+ msgstr ""
1083
+
1084
+ #: inc/widgets-manager/widgets/class-site-logo.php:204
1085
+ msgid "Enter caption"
1086
+ msgstr ""
1087
+
1088
+ #: inc/widgets-manager/widgets/class-site-logo.php:224
1089
+ msgid "Media File"
1090
+ msgstr ""
1091
+
1092
+ #: inc/widgets-manager/widgets/class-site-logo.php:249
1093
+ msgid "Lightbox"
1094
+ msgstr ""
1095
+
1096
+ #: inc/widgets-manager/widgets/class-site-logo.php:266
1097
+ msgid "View"
1098
+ msgstr ""
1099
+
1100
+ #: inc/widgets-manager/widgets/class-site-logo.php:283
1101
+ msgid "Site logo"
1102
+ msgstr ""
1103
+
1104
+ #: inc/widgets-manager/widgets/class-site-logo.php:627
1105
+ msgid "Spacing"
1106
+ msgstr ""
1107
+
1108
+ #: inc/widgets-manager/widgets/class-site-tagline.php:53
1109
+ msgid "Site Tagline"
1110
+ msgstr ""
1111
+
1112
+ #: inc/widgets-manager/widgets/class-site-tagline.php:108
1113
+ msgid "Style"
1114
+ msgstr ""
1115
+
1116
+ #: inc/widgets-manager/widgets/class-site-title.php:53
1117
+ msgid "Site Title"
1118
+ msgstr ""
1119
+
1120
+ #: inc/widgets-manager/widgets/class-site-title.php:110
1121
+ msgid "General"
1122
+ msgstr ""
1123
+
1124
  #: themes/default/class-hfe-fallback-theme-support.php:65
1125
  msgid "Add Theme Support"
1126
  msgstr ""
readme.txt CHANGED
@@ -1,83 +1,101 @@
1
  === Elementor - Header, Footer & Blocks ===
2
  Contributors: brainstormforce, Nikschavan
3
- Tags: elementor, header footer builder, header, footer, page builder, template builder, landing page builder, front-end editor
4
  Donate link: https://www.paypal.me/BrainstormForce
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
  Tested up to: 5.3
8
- Stable tag: 1.2.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
- Create Header and Footer for your site using Elementor Page Builder.
13
 
14
- == Description ==
15
 
16
- Have you ever imagined you could create your website header and footer with <a href="https://elementor.com/?ref=1352">Elementor</a>?
17
 
18
- The Elementor Header, Footer & Blocks plugin allows you to create a layout with Elementor and set it as a header/footer or use as a custom block easily on your website.
 
 
 
19
 
20
- All you need to do is –
21
 
22
- 1. Design a layout using Elementor.
23
- 2. Select whether it should be applied as the header or footer.
24
- 3. Select target locations where the template should appear.
25
- 4. The template will be automatically applied as the header/footer on selected locations.
26
- 5. To display a template as a block, just copy the shortcode and display it anywhere on the website.
27
 
28
- Easy peasy!
29
 
30
- You can refer to our step-by-step article that will help you <a href="https://uaelementor.com/header-footer-with-elementor/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description">set Elementor headers and footers</a> quickly.
31
 
32
- = Features of Elementor Header, Footer & Blocks =
33
 
34
- - Create attractive pages and templates to be used as a header or footer.
35
- - Usefully customized header and footer across the website.
36
- - Design useful custom blocks and add them anywhere with a shortcode.
37
 
 
38
 
39
- = Themes you can use Elementor Header, Footer & Blocks with =
40
 
41
- The Elementor Header, Footer & Blocks isn’t universally compatible with all WordPress themes. Here is a list of themes you can use it with
42
 
43
- 1. <a href="https://wpastra.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description&bsf=162">Astra</a> - The Fastest, Most Lightweight &amp; Customizable WordPress Theme.
44
- 2. <a href="https://shareasale.com/r.cfm?b=642802&u=1115254&m=55096&urllink=themeisle%2Ecom%2Fthemes%2Fneve%2F&afftrack=">Neve.</a>
45
- 3. <a href="https://shareasale.com/r.cfm?b=642802&u=1115254&m=55096&urllink=themeisle%2Ecom%2Fthemes%2Fhestia%2F&afftrack=">Hestia.</a>
46
- 4. GeneratePress.
47
- 5. OceanWP.
48
- 6. Genesis.
49
- 7. Phlox Theme.
50
- 8. Attesa Theme.
51
 
52
- Do not see your theme listed here? Don’t Worry!
53
 
54
- A plugin itself offers inbuild options to add theme support.
55
 
56
- Also, theme authors can add <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">support for Elementor – Header, Footer & Blocks through their theme</a> easily.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
  = LOOKING FOR PREMIUM ELEMENTOR ADDONS AND WIDGETS? =
59
- Check <a href="https://uaelementor.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description">Ultimate Addons for Elementor</a>. It is a library of creative and unique Elementor widgets that add more functionality and flexibility to your favorite page builder.
 
60
 
61
  = HAVE YOU TRIED ASTRA WITH ELEMENTOR? =
62
 
63
- Powering over 500,000+ WordPress websites, Astra is loved for the performance and ease-of-use it offers.
64
 
65
- = WHY PEOPLE LOVE ASTRA? =
66
 
67
  **Better Performance** - Optimized code and modular architecture make Astra the most lightweight theme for a faster loading website!
68
 
69
- **Page Builders Best Friend** - Astra works great with all page builders. Its support for custom layouts, Elementor templates, and ready-made starter sites makes it the best <a href="https://wpastra.com/theme-for-elementor/?utm_source=wp-repo&utm_medium=astra_desc&utm_campaign=header_footer_elementor">theme for Elementor</a>.
70
 
71
- **Easy Customization** - Astra takes away the pain and time spent in coding. With all the settings available in the customizer itself, Astra lets you manage all the theme options with just a few clicks.
72
-
73
- **Deeper Integrations** - Astra works seamlessly with all WooCommerce plugins, LifterLMS, LearnDash, etc. Therefore, you can now build online stores or websites offering online courses with Astra and Elementor!
74
-
75
- **Ready-to-use complete website demos** - Astra offers free ready-made website demos built with Elementor. You can choose any of the <a href="https://wpastra.com/elementor-templates-free-downloads/">Elementor Templates</a>, tweak them as you want and go live in minutes!
76
 
77
  = SUPPORTED & ACTIVELY DEVELOPED =
78
- Need help with something? Have an issue to report? [Get in touch](https://github.com/Nikschavan/header-footer-elementor "Header Footer elementor on GitHub"). with us on GitHub.
 
 
79
 
80
- Made with love at <a href="https://www.brainstormforce.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description">Brainstorm Force</a>!
81
 
82
  == Installation ==
83
 
@@ -88,15 +106,16 @@ Made with love at <a href="https://www.brainstormforce.com/?utm_source=wp-repo&u
88
 
89
  == Frequently Asked Questions ==
90
 
91
- If you are a theme developer <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">here</a> is a quick tutorial on how you can add support for the Elementor – Header, Footer & Blocks from your theme.
92
-
93
  = How Does This Plugin Work? =
94
 
95
  1. Go to Appearance -> Header Footer Builder to build a header or footer layout using Elementor.
96
  2. Click on “Add New” and design a template with Elementor.
97
  3. Once the template is ready, set is as a header/footer/block using options “Type of Template” (<a href="https://share.getcloudapp.com/geurz2JR">screenshot</a>).
98
- 4. a) For Header/Footer - Select the target location with the option “Display On”. With this Header/Footer will be visible only on selected locations for selected “User Roles”.
99
- b) For Custom Block - Just copy the shortcode and add it anywhere on the website. Your designed template will display automatically. Display conditions or user roles will not be effective with shortcodes.
 
 
 
100
 
101
  = Can You Create a Mobile Responsive Header/Footer Using This Plugin? =
102
 
@@ -104,32 +123,27 @@ Yes, You can create the mobile responsive layout of your header using the plugin
104
 
105
  The Elementor – Header, Footer & Blocks plugin just gives you a container where you can completely design the header using Elementor Page Builder, So the process of creating the mobile responsive layout is exactly the same as you would create a responsive layout of your other Elementor page.
106
 
107
- Here is a documentation by Elementor Page builder which explains how you can create mobile responsive layouts using Elementor - <a href="https://elementor.com/introducing-mobile-editing/">https://elementor.com/introducing-mobile-editing/</a>
108
  This same applies when you are creating your Header/Footer using this plugin.
109
 
110
- = I Am NOT a Developer. How Can I Add Support for the Plugin from My Theme? =
111
-
112
- The plugin offers two inbuild methods to add theme support. (<a href="https://share.getcloudapp.com/4gux9ykY">Screenshot</a>)
113
-
114
- 1. If your theme is unsupported by the plugin, you can see a tab “Theme Support” under Appearance -> Header Footer Builder.
115
- 2. Select a suitable method.
116
- 3. In case inbuild methods won’t work, you can get in touch with your theme author and share the link <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">here</a>. With this link, your theme author will be able to add theme support very easily.
117
-
118
- = I Am a Developer. How Can I Add Support for the Plugin from the Theme? =
119
-
120
- If you are a theme developer <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">here</a> is a quick tutorial on how you can add support for the Elementor – Header, Footer & Blocks from your theme.
121
-
122
- You can add support for the plugin from your child theme. Just follow <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Add-support-to-Header-Footer-Elementor-from-the-Child-Theme">this article</a>.
123
-
124
  == Screenshots ==
125
 
126
  1. Go to Appearance -> Header Footer Builder to create a new template.
127
  2. Assign template to be a header/footer and select display rules.
128
  3. Copy shortcode for Custom Blocks.
129
  4. Methods to add Theme Support.
 
130
 
131
  == Changelog ==
132
 
 
 
 
 
 
 
 
 
133
  = 1.2.2 =
134
  - Fix: Add default fallback theme support after checking if current theme does not add it.
135
 
1
  === Elementor - Header, Footer & Blocks ===
2
  Contributors: brainstormforce, Nikschavan
3
+ Tags: elementor, header footer builder, header template, footer template, elementor widget, WordPress header, WordPress footer, elementor menu, website header design, footer design
4
  Donate link: https://www.paypal.me/BrainstormForce
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
  Tested up to: 5.3
8
+ Stable tag: 1.3.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
+ Create Header and Footer for your WordPress website using Elementor Page Builder for free.
13
 
14
+ ## Description ##
15
 
16
+ Have you ever imagined you could create your website header and footer with <a href="https://elementor.com/?ref=1352">Elementor</a> for FREE?
17
 
18
+ Elementor - Header, Footer & Blocks is a simple yet powerful WordPress plugin that allows you to create a layout with Elementor and set it as
19
+ - Header
20
+ - Footer
21
+ - Block (anywhere on the website)
22
 
23
+ = Create Attractive Designs =
24
 
25
+ Elementor editor gives you the flexibility to design beautiful sections. Using it you can create out of the box header and footer designs.
 
 
 
 
26
 
27
+ = Pick Display Locations =
28
 
29
+ Want to display a custom header template only on the homepage or on the blog archive page or on the entire website? Well, this plugin allows choosing a specific target location to display header and footer on.
30
 
31
+ = Add Elementor Blocks Anywhere =
32
 
33
+ Apart from header and footer, you can design custom templates with Elementor and set it at any place on the website with a shortcode.
 
 
34
 
35
+ = ‘Before Footer’ Template =
36
 
37
+ Along with the main footer, the plugin gives the additional area - above the footer - where you can append your custom template. This gives great flexibility in footer design.
38
 
39
+ = Available With Elementor Canvas Template =
40
 
41
+ Your custom header/footer layout can be easily displayed on the pages where Elementor Canvas Template is enabled.
 
 
 
 
 
 
 
42
 
43
+ = Comes With Inbuilt Widgets =
44
 
45
+ The plugin offers inbuilt widgets that help to create header/footer layouts. These widgets offer basic required features so you don’t have to look for extra plugins.
46
 
47
+ <ul>
48
+ <li><strong>Site Logo</strong> - Automatically inherits a logo from the customizer. You can even set a custom image as a logo with a custom link and caption.</li>
49
+ <li><strong>Site Title</strong> - Site name will be automatically inherited from the customizer. You can add prefix, suffix, icon, and link with it.</li>
50
+ <li><strong>Site Tagline</strong> - It will display a tagline from the customizer. You get an option for prefix, suffix, icon, and link with it.</li>
51
+ <li><strong>Navigation Menu</strong> - Offers you list of already created menus on your website. You just need to choose the required one. If offers 4 layouts for the menu - horizontal, vertical, expanded and flyout. With many other options, you can even set custom icons to open and close the menu.</li>
52
+ <li><strong>Page Title</strong> - Displays your current post/page title and offers additional options for prefix, suffix, icon, link, and alignment.</li>
53
+ <li><strong>Retina Image</strong> - You can upload the retina image for high definition screens.</li>
54
+ <li><strong>Copyright</strong> - It offers constants to display copyright notice - [hfe_current_year] and [hfe_site_title].</li>
55
+ </ul>
56
+
57
+ = WORKS WITH ALL THEMES =
58
+
59
+ Elementor – Header, Footer & Blocks plugin works with all themes. Few of the themes have direct support while for few you can enable theme support with few clicks.
60
+
61
+ In case you see a notice to enable theme support manually, go to Appearance > Header Footer Builder > Theme Support. Select a method to add compatibility to your current theme and you are good to go!
62
+
63
+ = STEPS TO USE THE PLUGIN =
64
+
65
+ Step 1 - Visit Appearance > Header Footer Builder and click on the ‘Add New’.
66
+
67
+ Step 2 - Select ‘Type of Template’ (header/footer/block). Set its display location and user roles.
68
+
69
+ Step 3 - Publish it.
70
+
71
+ Step 4 - Edit it with Elementor and design a section.
72
+
73
+ Step 5 - Save it and you are done!
74
+
75
+ You can refer to our step-by-step article that will help you [set Elementor headers and footers](https://uaelementor.com/header-footer-with-elementor/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description) quickly.
76
 
77
  = LOOKING FOR PREMIUM ELEMENTOR ADDONS AND WIDGETS? =
78
+
79
+ Check [Ultimate Addons for Elementor](https://uaelementor.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description). It is a library of creative and unique Elementor widgets that add more functionality and flexibility to your favorite page builder.
80
 
81
  = HAVE YOU TRIED ASTRA WITH ELEMENTOR? =
82
 
83
+ Powering over 600,000+ WordPress websites, Astra is loved for the performance and ease-of-use it offers.
84
 
85
+ People love Astra for -
86
 
87
  **Better Performance** - Optimized code and modular architecture make Astra the most lightweight theme for a faster loading website!
88
 
89
+ **Page Builder's Best Friend** - Astra works great with all page builders. Its support for custom layouts, Elementor templates, and ready-made starter sites makes it the best [theme for Elementor](https://wpastra.com/theme-for-elementor/?utm_source=wp-repo&utm_medium=astra_desc&utm_campaign=header_footer_elementor).
90
 
91
+ **Ready-to-use complete website templates** - Astra offers free ready-made website demos built with Elementor. You can choose any of the [Elementor Templates](https://wpastra.com/elementor-templates-free-downloads/ "Elementor Templates"), tweak them as you want and go live in minutes!
 
 
 
 
92
 
93
  = SUPPORTED & ACTIVELY DEVELOPED =
94
+ Need help with something? Have an issue to report? Visit [Plugin’s Forum](https://wordpress.org/plugins/header-footer-elementor/ "Plugin’s Forum").
95
+
96
+ [Get in touch](https://github.com/Nikschavan/header-footer-elementor "Header Footer elementor on GitHub") with us on GitHub.
97
 
98
+ Made with love at [Brainstorm Force](https://www.brainstormforce.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description "Brainstorm Force")!
99
 
100
  == Installation ==
101
 
106
 
107
  == Frequently Asked Questions ==
108
 
 
 
109
  = How Does This Plugin Work? =
110
 
111
  1. Go to Appearance -> Header Footer Builder to build a header or footer layout using Elementor.
112
  2. Click on “Add New” and design a template with Elementor.
113
  3. Once the template is ready, set is as a header/footer/block using options “Type of Template” (<a href="https://share.getcloudapp.com/geurz2JR">screenshot</a>).
114
+ 4.
115
+
116
+ a) For Header/Footer - Select the target location with the option “Display On”. With this Header/Footer will be visible only on selected locations for selected “User Roles”.
117
+
118
+ b) For Custom Block - Just copy the shortcode and add it anywhere on the website. Your designed template will display automatically. Display conditions or user roles will not be effective with shortcodes.
119
 
120
  = Can You Create a Mobile Responsive Header/Footer Using This Plugin? =
121
 
123
 
124
  The Elementor – Header, Footer & Blocks plugin just gives you a container where you can completely design the header using Elementor Page Builder, So the process of creating the mobile responsive layout is exactly the same as you would create a responsive layout of your other Elementor page.
125
 
126
+ Here is a documentation by Elementor Page builder which explains how you can create mobile responsive layouts using Elementor - [https://elementor.com/introducing-mobile-editing/](https://elementor.com/introducing-mobile-editing/)
127
  This same applies when you are creating your Header/Footer using this plugin.
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  == Screenshots ==
130
 
131
  1. Go to Appearance -> Header Footer Builder to create a new template.
132
  2. Assign template to be a header/footer and select display rules.
133
  3. Copy shortcode for Custom Blocks.
134
  4. Methods to add Theme Support.
135
+ 5. Default widgets available with the plugin.
136
 
137
  == Changelog ==
138
 
139
+ = 1.3.0 =
140
+ - New: Added 'Site Logo' widget.
141
+ - New: Added 'Site Title' widget.
142
+ - New: Added 'Site Tagline' widget.
143
+ - New: Added 'Navigation Menu' widget.
144
+ - New: Added 'Page Title' widget.
145
+ - Improvement: Elementor v2.9 compatibility.
146
+
147
  = 1.2.2 =
148
  - Fix: Add default fallback theme support after checking if current theme does not add it.
149