PK\(O.assets/images/header-footer-elementor-icon.svgnuW+A Header, Footer & Blocks for Elementor PK\?&assets/css/header-footer-elementor.cssnuW+A.footer-width-fixer { width: 100%; } /* Container fix for genesis themes */ .ehf-template-genesis.ehf-header .site-header .wrap, .ehf-template-genesis.ehf-footer .site-footer .wrap, .ehf-template-generatepress.ehf-header .site-header .inside-header { width: 100%; padding: 0; max-width: 100%; } /* Container fix for generatepress theme */ .ehf-template-generatepress.ehf-header .site-header, .ehf-template-generatepress.ehf-footer .site-footer { width: 100%; padding: 0; max-width: 100%; background-color: transparent !important; /* override generatepress default white color for header */ } .bhf-hidden { display: none } /* Fix: Header hidden below the page content */ .ehf-header #masthead { z-index: 99; position: relative; }PK\GsIIassets/css/style.cssnuW+A@font-face { font-family: 'hfe'; src: url('../fonts/hfe.eot?ejqak3'); src: url('../fonts/hfe.eot?ejqak3#iefix') format('embedded-opentype'), url('../fonts/hfe.ttf?ejqak3') format('truetype'), url('../fonts/hfe.woff?ejqak3') format('woff'), url('../fonts/hfe.svg?ejqak3#hfe') format('svg'); font-weight: normal; font-style: normal; } [class^="hfe-icon-"], [class*=" hfe-icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'hfe' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .elementor-element [class*="hfe-icon-"]:after { content: "HFE"; position: absolute; top: 0; right: 0; z-index: 1; color: #a4afb7; background: transparent; font-size: 10px; font-family: Roboto,Arial,Helvetica,Verdana,sans-serif; padding: 0.2em 0.5em; border-width: 0 0 1px 1px; border-color: #e0e0e0; border-style: solid; } .hfe-icon-navigation-menu:before { content: "\e900"; color: #556068; } .hfe-icon-menu-cart:before { content: "\e901"; } .hfe-icon-copyright-widget:before { content: "\e902"; } .hfe-icon-retina-image:before { content: "\e903"; } .hfe-icon-page-title:before { content: "\e904"; } .hfe-icon-site-logo:before { content: "\e905"; } .hfe-icon-site-tagline:before { content: "\e906"; } .hfe-icon-site-title:before { content: "\e907"; }PK\w,assets/css/admin-header-footer-elementor.cssnuW+A.astra-review-notice-container { display: flex; align-items: center; padding-top: 10px; } .astra-review-notice-container .dashicons { font-size: 1.4em; padding-left: 10px; } .astra-review-notice-container a { padding-left: 5px; text-decoration: none; } .astra-review-notice-container .dashicons:first-child { padding-left: 0; } .notice-image img { max-width: 90px; } .notice-content .notice-heading { padding-bottom: 5px; } .notice-content { margin-left: 15px; } .notice-container { padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center; } li#toplevel_page_Settings-page { display: none; }PK\Ihhassets/fonts/hfe.woffnuW+AwOFFh OS/2``cmaphTTVҎgaspglyf 4 4,)head 66UDhhea 0$$hmtx T00&Nloca   maxp name J postH 3 @@@ 8   797979f 04&#!"3!26=4&#!"3!2654&#!"3!265           ( ( '  ' F8121021281:3812781:381625021063817>'.54&#"'&13201;326737>76&'&#.#"#"&/!2676&'.#!'041.+"312#"&546!2#"&54631#!!TT8  8g&Q9&**-)$1)(' !5 `:%g W$(HH0 0 %1$$%)- %;%1  G(+7Z"'.'&547>7632"327>7654'.'&"'.'&547>7632.#"3267#j]])(()]]jj]])(()]]j]QRy$##$yRQ]]QRy$##$yRQ]5/.FF./54^%.G'OqqO'G.%^4@()]]jj]])(()]]jj]])(#$yRQ]]QRy$##$yRQ]]QRy$#@F./55/.F(%-qOOq-%( ;Xo"&54632"32654&#"'.'&'&4767>7632#327>767&'.'&#"%"&=4&+"&546;2#!"&=46;2+"##"&546;26=4632#!#"&=4632;2#GddGGddG,??,,??,LIH89++98HILLIH89++98HILE'21r??AA??r12''21r??AA??r12'   0E @ E0   k   E00E   dGGddGGd?,,??,,?@T<=LL=O= O7 7OO7X  O#w2#"3-?#2  i"&3BW`s'.#"!>76&/.'"#7#3#'7'2654&#"174632#"&58%.#!"3!2654&'%5#"&'04#!"&5463!;l6q    d  ^yrM )@!//!!//  m 6MM6(6M. .. c&c>  ./!!//!!/P   M66MM6N  ..  .&-.=L[.#!"3!2654&'#"&=!"&5463!;#!"3!2654&#!"3!2654&#!"3!2654&#26=3#";2654&+53326=4&+"3* p7OO77On"v"32#w@-3" c c c AT @  O7 7OO7X  O#w2#"3-?#2   ^   Y           l,:e.#!"3!2654&''#"&5!"&5463!;#'!"3!2654&26=3#";2654&+3326=4&#!"3 q8OO87On#v#33#w?-2#Di    m.   /m   O7 7OO7X #2#"3-?#2  Z     7 7 3_< ڛڛ fil d@6 `6u K   g = |   R 4icomoonicomoonVersion 1.0Version 1.0icomoonicomoonicomoonicomoonRegularRegularicomoonicomoonFont generated by IcoMoon.Font generated by IcoMoon.PK\瓅)u*u*assets/fonts/hfe.svgnuW+A Generated by IcoMoon PK\assets/fonts/hfe.eotnuW+ALP3icomoonRegularVersion 1.0icomoon 0OS/2`cmapVҎTgasppglyf,)x 4headUD 6hhea $hmtx&N 0loca   8maxp T nameJ tpost 3 @@@ 8   797979f 04&#!"3!26=4&#!"3!2654&#!"3!265           ( ( '  ' F8121021281:3812781:381625021063817>'.54&#"'&13201;326737>76&'&#.#"#"&/!2676&'.#!'041.+"312#"&546!2#"&54631#!!TT8  8g&Q9&**-)$1)(' !5 `:%g W$(HH0 0 %1$$%)- %;%1  G(+7Z"'.'&547>7632"327>7654'.'&"'.'&547>7632.#"3267#j]])(()]]jj]])(()]]j]QRy$##$yRQ]]QRy$##$yRQ]5/.FF./54^%.G'OqqO'G.%^4@()]]jj]])(()]]jj]])(#$yRQ]]QRy$##$yRQ]]QRy$#@F./55/.F(%-qOOq-%( ;Xo"&54632"32654&#"'.'&'&4767>7632#327>767&'.'&#"%"&=4&+"&546;2#!"&=46;2+"##"&546;26=4632#!#"&=4632;2#GddGGddG,??,,??,LIH89++98HILLIH89++98HILE'21r??AA??r12''21r??AA??r12'   0E @ E0   k   E00E   dGGddGGd?,,??,,?@T<=LL=O= O7 7OO7X  O#w2#"3-?#2  i"&3BW`s'.#"!>76&/.'"#7#3#'7'2654&#"174632#"&58%.#!"3!2654&'%5#"&'04#!"&5463!;l6q    d  ^yrM )@!//!!//  m 6MM6(6M. .. c&c>  ./!!//!!/P   M66MM6N  ..  .&-.=L[.#!"3!2654&'#"&=!"&5463!;#!"3!2654&#!"3!2654&#!"3!2654&#26=3#";2654&+53326=4&+"3* p7OO77On"v"32#w@-3" c c c AT @  O7 7OO7X  O#w2#"3-?#2   ^   Y           l,:e.#!"3!2654&''#"&5!"&5463!;#'!"3!2654&26=3#";2654&+3326=4&#!"3 q8OO87On#v#33#w?-2#Di    m.   /m   O7 7OO7X #2#"3-?#2  Z     7 7 3_< ڛڛ fil d@6 `6u K   g = |   R 4icomoonicomoonVersion 1.0Version 1.0icomoonicomoonicomoonicomoonRegularRegularicomoonicomoonFont generated by IcoMoon.Font generated by IcoMoon.PK\ay^assets/fonts/hfe.ttfnuW+A 0OS/2`cmapVҎTgasppglyf,)x 4headUD 6hhea $hmtx&N 0loca   8maxp T nameJ tpost 3 @@@ 8   797979f 04&#!"3!26=4&#!"3!2654&#!"3!265           ( ( '  ' F8121021281:3812781:381625021063817>'.54&#"'&13201;326737>76&'&#.#"#"&/!2676&'.#!'041.+"312#"&546!2#"&54631#!!TT8  8g&Q9&**-)$1)(' !5 `:%g W$(HH0 0 %1$$%)- %;%1  G(+7Z"'.'&547>7632"327>7654'.'&"'.'&547>7632.#"3267#j]])(()]]jj]])(()]]j]QRy$##$yRQ]]QRy$##$yRQ]5/.FF./54^%.G'OqqO'G.%^4@()]]jj]])(()]]jj]])(#$yRQ]]QRy$##$yRQ]]QRy$#@F./55/.F(%-qOOq-%( ;Xo"&54632"32654&#"'.'&'&4767>7632#327>767&'.'&#"%"&=4&+"&546;2#!"&=46;2+"##"&546;26=4632#!#"&=4632;2#GddGGddG,??,,??,LIH89++98HILLIH89++98HILE'21r??AA??r12''21r??AA??r12'   0E @ E0   k   E00E   dGGddGGd?,,??,,?@T<=LL=O= O7 7OO7X  O#w2#"3-?#2  i"&3BW`s'.#"!>76&/.'"#7#3#'7'2654&#"174632#"&58%.#!"3!2654&'%5#"&'04#!"&5463!;l6q    d  ^yrM )@!//!!//  m 6MM6(6M. .. c&c>  ./!!//!!/P   M66MM6N  ..  .&-.=L[.#!"3!2654&'#"&=!"&5463!;#!"3!2654&#!"3!2654&#!"3!2654&#26=3#";2654&+53326=4&+"3* p7OO77On"v"32#w@-3" c c c AT @  O7 7OO7X  O#w2#"3-?#2   ^   Y           l,:e.#!"3!2654&''#"&5!"&5463!;#'!"3!2654&26=3#";2654&+3326=4&#!"3 q8OO87On#v#33#w?-2#Di    m.   /m   O7 7OO7X #2#"3-?#2  Z     7 7 3_< ڛڛ fil d@6 `6u K   g = |   R 4icomoonicomoonVersion 1.0Version 1.0icomoonicomoonicomoonicomoonRegularRegularicomoonicomoonFont generated by IcoMoon.Font generated by IcoMoon.PK\^1themes/storefront/class-hfe-storefront-compat.phpnuW+A

'
', 'xhtml' => '
', 'xhtml' => '', ] ); } /** * Open markup for footer. */ public function genesis_footer_markup_open() { genesis_markup( [ 'html5' => '
', 'xhtml' => '
', 'xhtml' => '', ] ); } } HFE_Genesis_Compat::instance(); PK\thTT;themes/hello-elementor/class-hfe-hello-elementor-compat.phpnuW+A PK\ 3themes/default/class-global-theme-compatibility.phpnuW+A'; do_action( 'hfe_fallback_header' ); echo ''; } } } new Global_Theme_Compatibility(); PK\knXX+themes/default/class-hfe-default-compat.phpnuW+Asetup_fallback_support(); add_action( 'admin_menu', [ $this, 'hfe_register_settings_page' ] ); add_action( 'admin_init', [ $this, 'hfe_admin_init' ] ); add_action( 'admin_head', [ $this, 'hfe_global_css' ] ); add_filter( 'views_edit-elementor-hf', [ $this, 'hfe_settings' ], 10, 1 ); } /** * Adds CSS to Hide the extra submenu added for the settings tab. * * @since 1.2.0 * @return void */ public function hfe_global_css() { wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER ); } /** * Adds a tab in plugin submenu page. * * @since 1.2.0 * @param string $views to add tab to current post type view. * * @return mixed */ public function hfe_settings( $views ) { $this->hfe_tabs(); return $views; } /** * Function for registering the settings api. * * @since 1.2.0 * @return void */ public function hfe_admin_init() { register_setting( 'hfe-plugin-options', 'hfe_compatibility_option' ); add_settings_section( 'hfe-options', __( 'Add Theme Support', 'header-footer-elementor' ), [ $this, 'hfe_compatibility_callback' ], 'Settings' ); add_settings_field( 'hfe-way', 'Methods to Add Theme Support', [ $this, 'hfe_compatibility_option_callback' ], 'Settings', 'hfe-options' ); } /** * Call back function for the ssettings api function add_settings_section * * This function can be used to add description of the settings sections * * @since 1.2.0 * @return void */ public function hfe_compatibility_callback() { _e( 'The Elementor - Header, Footer & Blocks plugin need compatibility with your current theme to work smoothly.

Following are two methods that enable theme support for the plugin.

Method 1 is selected by default and that works fine almost will all themes. In case, you face any issue with the header or footer template, try choosing Method 2.', 'header-footer-elementor' ); } /** * Call back function for the ssettings api function add_settings_field * * This function will contain the markup for the input feilds that we can add. * * @since 1.2.0 * @return void */ public function hfe_compatibility_option_callback() { $hfe_radio_button = get_option( 'hfe_compatibility_option', '1' ); wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER ); ?>

plugin.', 'header-footer-elementor' ), '
' ); ?>

'; esc_attr_e( 'Elementor - Header, Footer & Blocks ', 'header-footer-elementor' ); echo ''; ?>

> >
PK\%77 readme.txtnuW+A=== Elementor - Header, Footer & Blocks === Contributors: brainstormforce, Nikschavan Tags: elementor, header footer builder, header template, footer template, elementor widget, WordPress header, WordPress footer, elementor menu, website header design, footer design Donate link: https://www.paypal.me/BrainstormForce Requires at least: 4.4 Requires PHP: 5.4 Tested up to: 5.4 Stable tag: 1.4.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Create Header and Footer for your WordPress website using Elementor Page Builder for free. ## Description ## Have you ever imagined you could create your website header and footer with Elementor for FREE? Elementor - Header, Footer & Blocks is a simple yet powerful WordPress plugin that allows you to create a layout with Elementor and set it as - Header - Footer - Block (anywhere on the website) = Create Attractive Designs = Elementor editor gives you the flexibility to design beautiful sections. Using it you can create out of the box header and footer designs. = Pick Display Locations = 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. = Add Elementor Blocks Anywhere = Apart from header and footer, you can design custom templates with Elementor and set it at any place on the website with a shortcode. = ‘Before Footer’ Template = 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. = Available With Elementor Canvas Template = Your custom header/footer layout can be easily displayed on the pages where Elementor Canvas Template is enabled. = Comes With Inbuilt Widgets = 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.
  • Site Logo - Automatically inherits a logo from the customizer. You can even set a custom image as a logo with a custom link and caption.
  • Site Title - Site name will be automatically inherited from the customizer. You can add prefix, suffix, icon, and link with it.
  • Site Tagline - It will display a tagline from the customizer. You get an option for prefix, suffix, icon, and link with it.
  • Navigation Menu - 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.
  • Page Title - Displays your current post/page title and offers additional options for prefix, suffix, icon, link, and alignment.
  • Retina Image - You can upload the retina image for high definition screens.
  • WooCommerce Menu Cart - You can display current number of products in the cart along with the total price.
  • Copyright - It offers constants to display copyright notice - [hfe_current_year] and [hfe_site_title].
= WORKS WITH ALL THEMES = Elementor – Header, Footer & Blocks plugin works with all themes. Few of the themes have direct support while for few you can choose a method to add theme support. In case you face any difficulty displaying header/footer, manually choose the theme support method. Visit Appearance > Header Footer Builder > Theme Support. Select a method to suit your current theme and you are good to go! = STEPS TO USE THE PLUGIN = Step 1 - Visit Appearance > Header Footer Builder and click on the ‘Add New’. Step 2 - Select ‘Type of Template’ (header/footer/block). Set its display location and user roles. Step 3 - Publish it. Step 4 - Edit it with Elementor and design a section. Step 5 - Save it and you are done! 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. = LOOKING FOR PREMIUM ELEMENTOR ADDONS AND WIDGETS? = 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. = HAVE YOU TRIED ASTRA WITH ELEMENTOR? = Powering over 700,000+ WordPress websites, Astra is loved for the performance and ease-of-use it offers. People love Astra for - **Better Performance** - Optimized code and modular architecture make Astra the most lightweight theme for a faster loading website! **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). **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! = SUPPORTED & ACTIVELY DEVELOPED = Need help with something? Have an issue to report? Visit [Plugin’s Forum](https://wordpress.org/plugins/header-footer-elementor/ "Plugin’s Forum"). [Get in touch](https://github.com/Nikschavan/header-footer-elementor "Header Footer elementor on GitHub") with us on GitHub. Made with love at [Brainstorm Force](https://www.brainstormforce.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description "Brainstorm Force")! == Installation == 1. Go to `Plugins -> Add New` and search for Elementor – Header, Footer & Blocks. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Go to `Appearance -> Header Footer Builder` to build a header or footer layout using elementor. 4. After the layout is ready assign it as header or footer using the option `Select the type of template this is` (screenshot) == Frequently Asked Questions == = How Does This Plugin Work? = 1. Go to Appearance -> Header Footer Builder to build a header or footer layout using Elementor. 2. Click on “Add New” and design a template with Elementor. 3. Once the template is ready, set is as a header/footer/block using options “Type of Template” (screenshot). 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”. 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. = Can You Create a Mobile Responsive Header/Footer Using This Plugin? = Yes, You can create the mobile responsive layout of your header using the plugin. 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. 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/) This same applies when you are creating your Header/Footer using this plugin. == Screenshots == 1. Go to Appearance -> Header Footer Builder to create a new template. 2. Assign template to be a header/footer and select display rules. 3. Copy shortcode for Custom Blocks. 4. Methods to add Theme Support. 5. Default widgets available with the plugin. == Changelog == = 1.4.1 = - Fix: EHF header overlapping Astra WooCommerce Off-Canvas. - Fix: WooCommerce Menu Cart - 'div' tag of custom cart layout was not closed. - Fix: WooCommerce Menu Cart - Fatal error with count when cart is empty. = 1.4.0 = - New: WooCommerce Menu Cart widget. - Improvement: Compatibility to Elementor Pro v2.9 full site editing. - Improvement: In-built support to Hello Elementor theme. - Improvement: WPML support to before footer template. - Improvement: Navigation Menu - Added option to convert last item into CTA. = 1.3.1 = - Fix: Copyright - Link with open in new tab not working. - Fix: Navigation Menu - Hamburger menu click not working on responsive devices. - Deprecated: Removed the theme dependency for the plugin, so removed the associated notice. = 1.3.0 = - 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. = 1.2.2 = - Fix: Add default fallback theme support after checking if current theme does not add it. = 1.2.1 = - Categorize the Elementor widgets in a separate category in the Elementor window. - Hide target rules options when a custom block template is selected. = 1.2.0 = - New: Support all the themes, Includes two separate fallback methods so that you can create custom headers and footers for any theme. - New: Added target rule engine, which allows you to have different headers/footers for different pages. - New: Added Retina Image Elementor widget, which can be used as a Site Logo. - New: Added Copyright widget and Shortcode for current year & site title. - Improvement: Allow before footer to work on Elementor Canvas Template when not using Astra Theme. - Improvement: Added support of `Before Footer` action for all the themes. = 1.1.4 = - Fix: Flush permalinks on plugin update to Elementor error when trying to edit the Header/Footer. = 1.1.3 = - Improvement: Allow changing the permalinks for the hfe templates (#162) - Fix: WPML Translations do not work when using the Elementor Template as a shortcode. (#159) - Fix: Page content appears over the header. (#150) - Fix: Remove the deprecated function warning for shortcode functions. (Props @hogash #145) = 1.1.2 = - Fix: Depracated function warning from Elementor's method `\Elementor\Post_CSS_File` = 1.1.1 = - Fix: Blank header being displayed when only footer is translated using WPML. = 1.1.0 = - New: Rename plugin to be Header Footer & Blocks builder as now thee blocks templates can be used as shortcodes. - New: Add templates before the footer for Astra Theme. Options for other themes will be coming soon. - New: Use templates (Blocks) anywhere in your content with the help of shortcodes. - Improvement: Improved the UI of the metabox for Header Footer post type. = 1.0.16 = - Fix: Make the theme not supported notice dismissable. - Fix: Use specific selector when adding z-index for the header. = 1.0.15 = - Fix: Default Header being displayed for Generatepress and Gensis theme after v1.0.14. = 1.0.14 = - Fix: Fixes possible PHP notices/Errors due to WP_Query being called early for all the supported themes. = 1.0.13 = - Fix: PHP Notices and errors due to WP_Query being called early when some plugins use filters inside WP_Query. = 1.0.12 = - Fix: Compatibility with Elementor 2.0 changed canvas template path. = 1.0.11 = - Load the CSS footer early in the page to avoid slow rendering of CSS. - Change the schema.org links to be https. - Fix: Added correct schema markup for the footer. = 1.0.10 = - Load the header layout correctly in the in Elementor canvas template. - Load the Elementor Pro CSS/JS files in . - Provide more filters for the helper functions. = 1.0.9 = - Add Support for WPML. - Updated the missing strings from the translations template. = 1.0.8 = - Allow filters to override the WP_Query parameters when retreiving the Header / Footer template id. = 1.0.7 = - Fix: Dismissable notice not actually dismissing. = 1.0.6 = - New: Option to display the header/footer on the pages using Elementor Canvas Template. = 1.0.5 = - Fix: Correctly check if Elementor actually is active before using its methods. This fixes errors for sites using older versions of PHP where Elementor does not actually get activated. = 1.0.4 = - Improvement: Use Elementor's created instance when rendering the markup for header/footer - Credits itay9001 = 1.0.3 = - Fix: Adding theme support for the plugin does not remove the "no supported" notice. = 1.0.2 = - New: Added support for the OceanWP Theme. - Fix: Load the elementor header assets correctly in the header. This fixes header looking different just when loading the page as previously Elementor would load its CSS in the footer. - Introduced helper functions for rendering and checking the headers to make it simpler to integrate HFE with more themes. = 1.0.1 = - New: Added support for the Astra WordPress theme - The Fastest, Most Lightweight & Customizable WordPress Theme. * Moved the menu under Appearance -> Header Footer Builder. * Fix: Header content getting hidden behind tha page content. * Use Elemenntor's canvas template when designing header and footer layout to have full width experience. = 1.0.0 = * Initial Release. PK\l )inc/class-hfe-elementor-canvas-compat.phpnuW+A=' ) ) { add_action( 'elementor/page_templates/canvas/before_content', [ $this, 'render_header' ] ); } else { add_action( 'wp_head', [ $this, 'render_header' ] ); } } if ( hfe_footer_enabled() ) { // Action `elementor/page_templates/canvas/after_content` is introduced in Elementor Version 1.9.0. if ( version_compare( ELEMENTOR_VERSION, '1.9.0', '>=' ) ) { add_action( 'elementor/page_templates/canvas/after_content', [ $this, 'render_footer' ] ); } else { add_action( 'wp_footer', [ $this, 'render_footer' ] ); } } if ( hfe_is_before_footer_enabled() ) { // check if current page template is Elemenntor Canvas. if ( 'elementor_canvas' == get_page_template_slug() ) { $override_cannvas_template = get_post_meta( hfe_get_before_footer_id(), 'display-on-canvas-template', true ); if ( '1' == $override_cannvas_template ) { add_action( 'elementor/page_templates/canvas/after_content', 'hfe_render_before_footer', 9 ); } } } } /** * Render the header if display template on elementor canvas is enabled * and current template is Elementor Canvas */ public function render_header() { // bail if current page template is not Elemenntor Canvas. if ( 'elementor_canvas' !== get_page_template_slug() ) { return; } $override_cannvas_template = get_post_meta( get_hfe_header_id(), 'display-on-canvas-template', true ); if ( '1' == $override_cannvas_template ) { hfe_render_header(); } } /** * Render the footer if display template on elementor canvas is enabled * and current template is Elementor Canvas */ public function render_footer() { // bail if current page template is not Elemenntor Canvas. if ( 'elementor_canvas' !== get_page_template_slug() ) { return; } $override_cannvas_template = get_post_meta( get_hfe_footer_id(), 'display-on-canvas-template', true ); if ( '1' == $override_cannvas_template ) { hfe_render_footer(); } } } HFE_Elementor_Canvas_Compat::instance(); PK\ 1inc/widgets-manager/widgets/class-menu-walker.phpnuW+Aclasses ) ? [] : (array) $item->classes; $submenu = $args->has_children ? ' hfe-has-submenu' : ''; if ( 0 === $depth ) { array_push( $classes, 'parent' ); } $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) ); $class_names = ' class="' . esc_attr( $class_names ) . $submenu . ' hfe-creative-menu"'; $output .= $indent . '
  • ' ); var message = this.options.get('translations').get(params.message); $message.append( escapeMarkup( message(params.args) ) ); $message[0].className += ' select2-results__message'; this.$results.append($message); }; Results.prototype.hideMessages = function () { this.$results.find('.select2-results__message').remove(); }; Results.prototype.append = function (data) { this.hideLoading(); var $options = []; if (data.results == null || data.results.length === 0) { if (this.$results.children().length === 0) { this.trigger('results:message', { message: 'noResults' }); } return; } data.results = this.sort(data.results); for (var d = 0; d < data.results.length; d++) { var item = data.results[d]; var $option = this.option(item); $options.push($option); } this.$results.append($options); }; Results.prototype.position = function ($results, $dropdown) { var $resultsContainer = $dropdown.find('.select2-results'); $resultsContainer.append($results); }; Results.prototype.sort = function (data) { var sorter = this.options.get('sorter'); return sorter(data); }; Results.prototype.highlightFirstItem = function () { var $options = this.$results .find('.select2-results__option[aria-selected]'); var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options if ($selected.length > 0) { // If there are selected options, highlight the first $selected.first().trigger('mouseenter'); } else { // If there are no selected options, highlight the first option // in the dropdown $options.first().trigger('mouseenter'); } this.ensureHighlightVisible(); }; Results.prototype.setClasses = function () { var self = this; this.data.current(function (selected) { var selectedIds = $.map(selected, function (s) { return s.id.toString(); }); var $options = self.$results .find('.select2-results__option[aria-selected]'); $options.each(function () { var $option = $(this); var item = $.data(this, 'data'); // id needs to be converted to a string when comparing var id = '' + item.id; if ((item.element != null && item.element.selected) || (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('aria-selected', 'true'); } else { $option.attr('aria-selected', 'false'); } }); }); }; Results.prototype.showLoading = function (params) { this.hideLoading(); var loadingMore = this.options.get('translations').get('searching'); var loading = { disabled: true, loading: true, text: loadingMore(params) }; var $loading = this.option(loading); $loading.className += ' loading-results'; this.$results.prepend($loading); }; Results.prototype.hideLoading = function () { this.$results.find('.loading-results').remove(); }; Results.prototype.option = function (data) { var option = document.createElement('li'); option.className = 'select2-results__option'; var attrs = { 'role': 'treeitem', 'aria-selected': 'false' }; if (data.disabled) { delete attrs['aria-selected']; attrs['aria-disabled'] = 'true'; } if (data.id == null) { delete attrs['aria-selected']; } if (data._resultId != null) { option.id = data._resultId; } if (data.title) { option.title = data.title; } if (data.children) { attrs.role = 'group'; attrs['aria-label'] = data.text; delete attrs['aria-selected']; } for (var attr in attrs) { var val = attrs[attr]; option.setAttribute(attr, val); } if (data.children) { var $option = $(option); var label = document.createElement('strong'); label.className = 'select2-results__group'; var $label = $(label); this.template(data, label); var $children = []; for (var c = 0; c < data.children.length; c++) { var child = data.children[c]; var $child = this.option(child); $children.push($child); } var $childrenContainer = $('
      ', { 'class': 'select2-results__options select2-results__options--nested' }); $childrenContainer.append($children); $option.append(label); $option.append($childrenContainer); } else { this.template(data, option); } $.data(option, 'data', data); return option; }; Results.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-results'; this.$results.attr('id', id); container.on('results:all', function (params) { self.clear(); self.append(params.data); if (container.isOpen()) { self.setClasses(); self.highlightFirstItem(); } }); container.on('results:append', function (params) { self.append(params.data); if (container.isOpen()) { self.setClasses(); } }); container.on('query', function (params) { self.hideMessages(); self.showLoading(params); }); container.on('select', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('unselect', function () { if (!container.isOpen()) { return; } self.setClasses(); self.highlightFirstItem(); }); container.on('open', function () { // When the dropdown is open, aria-expended="true" self.$results.attr('aria-expanded', 'true'); self.$results.attr('aria-hidden', 'false'); self.setClasses(); self.ensureHighlightVisible(); }); container.on('close', function () { // When the dropdown is closed, aria-expended="false" self.$results.attr('aria-expanded', 'false'); self.$results.attr('aria-hidden', 'true'); self.$results.removeAttr('aria-activedescendant'); }); container.on('results:toggle', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } $highlighted.trigger('mouseup'); }); container.on('results:select', function () { var $highlighted = self.getHighlightedResults(); if ($highlighted.length === 0) { return; } var data = $highlighted.data('data'); if ($highlighted.attr('aria-selected') == 'true') { self.trigger('close', {}); } else { self.trigger('select', { data: data }); } }); container.on('results:previous', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); // If we are already at te top, don't move further if (currentIndex === 0) { return; } var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first if ($highlighted.length === 0) { nextIndex = 0; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top; var nextTop = $next.offset().top; var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset); if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextTop - currentOffset < 0) { self.$results.scrollTop(nextOffset); } }); container.on('results:next', function () { var $highlighted = self.getHighlightedResults(); var $options = self.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var nextIndex = currentIndex + 1; // If we are at the last option, stay there if (nextIndex >= $options.length) { return; } var $next = $options.eq(nextIndex); $next.trigger('mouseenter'); var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var nextBottom = $next.offset().top + $next.outerHeight(false); var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset; if (nextIndex === 0) { self.$results.scrollTop(0); } else if (nextBottom > currentOffset) { self.$results.scrollTop(nextOffset); } }); container.on('results:focus', function (params) { params.element.addClass('select2-results__option--highlighted'); }); container.on('results:message', function (params) { self.displayMessage(params); }); if ($.fn.mousewheel) { this.$results.on('mousewheel', function (e) { var top = self.$results.scrollTop(); var bottom = self.$results.get(0).scrollHeight - top + e.deltaY; var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0; var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height(); if (isAtTop) { self.$results.scrollTop(0); e.preventDefault(); e.stopPropagation(); } else if (isAtBottom) { self.$results.scrollTop( self.$results.get(0).scrollHeight - self.$results.height() ); e.preventDefault(); e.stopPropagation(); } }); } this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) { var $this = $(this); var data = $this.data('data'); if ($this.attr('aria-selected') === 'true') { if (self.options.get('multiple')) { self.trigger('unselect', { originalEvent: evt, data: data }); } else { self.trigger('close', {}); } return; } self.trigger('select', { originalEvent: evt, data: data }); }); this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) { var data = $(this).data('data'); self.getHighlightedResults() .removeClass('select2-results__option--highlighted'); self.trigger('results:focus', { data: data, element: $(this) }); }); }; Results.prototype.getHighlightedResults = function () { var $highlighted = this.$results .find('.select2-results__option--highlighted'); return $highlighted; }; Results.prototype.destroy = function () { this.$results.remove(); }; Results.prototype.ensureHighlightVisible = function () { var $highlighted = this.getHighlightedResults(); if ($highlighted.length === 0) { return; } var $options = this.$results.find('[aria-selected]'); var currentIndex = $options.index($highlighted); var currentOffset = this.$results.offset().top; var nextTop = $highlighted.offset().top; var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset); var offsetDelta = nextTop - currentOffset; nextOffset -= $highlighted.outerHeight(false) * 2; if (currentIndex <= 2) { this.$results.scrollTop(0); } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) { this.$results.scrollTop(nextOffset); } }; Results.prototype.template = function (result, container) { var template = this.options.get('templateResult'); var escapeMarkup = this.options.get('escapeMarkup'); var content = template(result, container); if (content == null) { container.style.display = 'none'; } else if (typeof content === 'string') { container.innerHTML = escapeMarkup(content); } else { $(container).append(content); } }; return Results; }); S2.define('select2/keys',[ ], function () { var KEYS = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, ESC: 27, SPACE: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, DELETE: 46 }; return KEYS; }); S2.define('select2/selection/base',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function BaseSelection ($element, options) { this.$element = $element; this.options = options; BaseSelection.__super__.constructor.call(this); } Utils.Extend(BaseSelection, Utils.Observable); BaseSelection.prototype.render = function () { var $selection = $( '' ); this._tabindex = 0; if (this.$element.data('old-tabindex') != null) { this._tabindex = this.$element.data('old-tabindex'); } else if (this.$element.attr('tabindex') != null) { this._tabindex = this.$element.attr('tabindex'); } $selection.attr('title', this.$element.attr('title')); $selection.attr('tabindex', this._tabindex); this.$selection = $selection; return $selection; }; BaseSelection.prototype.bind = function (container, $container) { var self = this; var id = container.id + '-container'; var resultsId = container.id + '-results'; this.container = container; this.$selection.on('focus', function (evt) { self.trigger('focus', evt); }); this.$selection.on('blur', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', function (evt) { self.trigger('keypress', evt); if (evt.which === KEYS.SPACE) { evt.preventDefault(); } }); container.on('results:focus', function (params) { self.$selection.attr('aria-activedescendant', params.data._resultId); }); container.on('selection:update', function (params) { self.update(params.data); }); container.on('open', function () { // When the dropdown is open, aria-expanded="true" self.$selection.attr('aria-expanded', 'true'); self.$selection.attr('aria-owns', resultsId); self._attachCloseHandler(container); }); container.on('close', function () { // When the dropdown is closed, aria-expanded="false" self.$selection.attr('aria-expanded', 'false'); self.$selection.removeAttr('aria-activedescendant'); self.$selection.removeAttr('aria-owns'); self.$selection.focus(); self._detachCloseHandler(container); }); container.on('enable', function () { self.$selection.attr('tabindex', self._tabindex); }); container.on('disable', function () { self.$selection.attr('tabindex', '-1'); }); }; BaseSelection.prototype._handleBlur = function (evt) { var self = this; // This needs to be delayed as the active element is the body when the tab // key is pressed, possibly along with others. window.setTimeout(function () { // Don't trigger `blur` if the focus is still in the selection if ( (document.activeElement == self.$selection[0]) || ($.contains(self.$selection[0], document.activeElement)) ) { return; } self.trigger('blur', evt); }, 1); }; BaseSelection.prototype._attachCloseHandler = function (container) { var self = this; $(document.body).on('mousedown.select2.' + container.id, function (e) { var $target = $(e.target); var $select = $target.closest('.select2'); var $all = $('.select2.select2-container--open'); $all.each(function () { var $this = $(this); if (this == $select[0]) { return; } var $element = $this.data('element'); $element.select2('close'); }); }); }; BaseSelection.prototype._detachCloseHandler = function (container) { $(document.body).off('mousedown.select2.' + container.id); }; BaseSelection.prototype.position = function ($selection, $container) { var $selectionContainer = $container.find('.selection'); $selectionContainer.append($selection); }; BaseSelection.prototype.destroy = function () { this._detachCloseHandler(this.container); }; BaseSelection.prototype.update = function (data) { throw new Error('The `update` method must be defined in child classes.'); }; return BaseSelection; }); S2.define('select2/selection/single',[ 'jquery', './base', '../utils', '../keys' ], function ($, BaseSelection, Utils, KEYS) { function SingleSelection () { SingleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(SingleSelection, BaseSelection); SingleSelection.prototype.render = function () { var $selection = SingleSelection.__super__.render.call(this); $selection.addClass('select2-selection--single'); $selection.html( '' + '' + '' + '' ); return $selection; }; SingleSelection.prototype.bind = function (container, $container) { var self = this; SingleSelection.__super__.bind.apply(this, arguments); var id = container.id + '-container'; this.$selection.find('.select2-selection__rendered').attr('id', id); this.$selection.attr('aria-labelledby', id); this.$selection.on('mousedown', function (evt) { // Only respond to left clicks if (evt.which !== 1) { return; } self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on('focus', function (evt) { // User focuses on the container }); this.$selection.on('blur', function (evt) { // User exits the container }); container.on('focus', function (evt) { if (!container.isOpen()) { self.$selection.focus(); } }); container.on('selection:update', function (params) { self.update(params.data); }); }; SingleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { return $(''); }; SingleSelection.prototype.update = function (data) { if (data.length === 0) { this.clear(); return; } var selection = data[0]; var $rendered = this.$selection.find('.select2-selection__rendered'); var formatted = this.display(selection, $rendered); $rendered.empty().append(formatted); $rendered.prop('title', selection.title || selection.text); }; return SingleSelection; }); S2.define('select2/selection/multiple',[ 'jquery', './base', '../utils' ], function ($, BaseSelection, Utils) { function MultipleSelection ($element, options) { MultipleSelection.__super__.constructor.apply(this, arguments); } Utils.Extend(MultipleSelection, BaseSelection); MultipleSelection.prototype.render = function () { var $selection = MultipleSelection.__super__.render.call(this); $selection.addClass('select2-selection--multiple'); $selection.html( '
        ' ); return $selection; }; MultipleSelection.prototype.bind = function (container, $container) { var self = this; MultipleSelection.__super__.bind.apply(this, arguments); this.$selection.on('click', function (evt) { self.trigger('toggle', { originalEvent: evt }); }); this.$selection.on( 'click', '.select2-selection__choice__remove', function (evt) { // Ignore the event if it is disabled if (self.options.get('disabled')) { return; } var $remove = $(this); var $selection = $remove.parent(); var data = $selection.data('data'); self.trigger('unselect', { originalEvent: evt, data: data }); } ); }; MultipleSelection.prototype.clear = function () { this.$selection.find('.select2-selection__rendered').empty(); }; MultipleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); return escapeMarkup(template(data, container)); }; MultipleSelection.prototype.selectionContainer = function () { var $container = $( '
      • ' + '' + '×' + '' + '
      • ' ); return $container; }; MultipleSelection.prototype.update = function (data) { this.clear(); if (data.length === 0) { return; } var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; var $selection = this.selectionContainer(); var formatted = this.display(selection, $selection); $selection.append(formatted); $selection.prop('title', selection.title || selection.text); $selection.data('data', selection); $selections.push($selection); } var $rendered = this.$selection.find('.select2-selection__rendered'); Utils.appendMany($rendered, $selections); }; return MultipleSelection; }); S2.define('select2/selection/placeholder',[ '../utils' ], function (Utils) { function Placeholder (decorated, $element, options) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options); } Placeholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; Placeholder.prototype.createPlaceholder = function (decorated, placeholder) { var $placeholder = this.selectionContainer(); $placeholder.html(this.display(placeholder)); $placeholder.addClass('select2-selection__placeholder') .removeClass('select2-selection__choice'); return $placeholder; }; Placeholder.prototype.update = function (decorated, data) { var singlePlaceholder = ( data.length == 1 && data[0].id != this.placeholder.id ); var multipleSelections = data.length > 1; if (multipleSelections || singlePlaceholder) { return decorated.call(this, data); } this.clear(); var $placeholder = this.createPlaceholder(this.placeholder); this.$selection.find('.select2-selection__rendered').append($placeholder); }; return Placeholder; }); S2.define('select2/selection/allowClear',[ 'jquery', '../keys' ], function ($, KEYS) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); if (this.placeholder == null) { if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' ); } } this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { self._handleClear(evt); }); container.on('keypress', function (evt) { self._handleKeyboardClear(evt, container); }); }; AllowClear.prototype._handleClear = function (_, evt) { // Ignore the event if it is disabled if (this.options.get('disabled')) { return; } var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected if ($clear.length === 0) { return; } evt.stopPropagation(); var data = $clear.data('data'); for (var d = 0; d < data.length; d++) { var unselectData = { data: data[d] }; // Trigger the `unselect` event, so people can prevent it from being // cleared. this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out. if (unselectData.prevented) { return; } } this.$element.val(this.placeholder.id).trigger('change'); this.trigger('toggle', {}); }; AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { if (container.isOpen()) { return; } if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { this._handleClear(evt); } }; AllowClear.prototype.update = function (decorated, data) { decorated.call(this, data); if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) { return; } var $remove = $( '' + '×' + '' ); $remove.data('data', data); this.$selection.find('.select2-selection__rendered').prepend($remove); }; return AllowClear; }); S2.define('select2/selection/search',[ 'jquery', '../utils', '../keys' ], function ($, Utils, KEYS) { function Search (decorated, $element, options) { decorated.call(this, $element, options); } Search.prototype.render = function (decorated) { var $search = $( '' ); this.$searchContainer = $search; this.$search = $search.find('input'); var $rendered = decorated.call(this); this._transferTabIndex(); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('open', function () { self.$search.trigger('focus'); }); container.on('close', function () { self.$search.val(''); self.$search.removeAttr('aria-activedescendant'); self.$search.trigger('focus'); }); container.on('enable', function () { self.$search.prop('disabled', false); self._transferTabIndex(); }); container.on('disable', function () { self.$search.prop('disabled', true); }); container.on('focus', function (evt) { self.$search.trigger('focus'); }); container.on('results:focus', function (params) { self.$search.attr('aria-activedescendant', params.id); }); this.$selection.on('focusin', '.select2-search--inline', function (evt) { self.trigger('focus', evt); }); this.$selection.on('focusout', '.select2-search--inline', function (evt) { self._handleBlur(evt); }); this.$selection.on('keydown', '.select2-search--inline', function (evt) { evt.stopPropagation(); self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); var key = evt.which; if (key === KEYS.BACKSPACE && self.$search.val() === '') { var $previousChoice = self.$searchContainer .prev('.select2-selection__choice'); if ($previousChoice.length > 0) { var item = $previousChoice.data('data'); self.searchRemoveChoice(item); evt.preventDefault(); } } }); // Try to detect the IE version should the `documentMode` property that // is stored on the document. This is only implemented in IE and is // slightly cleaner than doing a user agent check. // This property is not available in Edge, but Edge also doesn't have // this bug. var msie = document.documentMode; var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$selection.on( 'input.searchcheck', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents) { self.$selection.off('input.search input.searchcheck'); return; } // Unbind the duplicated `keyup` event self.$selection.off('keyup.search'); } ); this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { // IE will trigger the `input` event when a placeholder is used on a // search box. To get around this issue, we are forced to ignore all // `input` events in IE and keep using `keyup`. if (disableInputEvents && evt.type === 'input') { self.$selection.off('input.search input.searchcheck'); return; } var key = evt.which; // We can freely ignore events from modifier keys if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) { return; } // Tabbing will be handled during the `keydown` phase if (key == KEYS.TAB) { return; } self.handleSearch(evt); } ); }; /** * This method will transfer the tabindex attribute from the rendered * selection to the search box. This allows for the search box to be used as * the primary focus instead of the selection container. * * @private */ Search.prototype._transferTabIndex = function (decorated) { this.$search.attr('tabindex', this.$selection.attr('tabindex')); this.$selection.attr('tabindex', '-1'); }; Search.prototype.createPlaceholder = function (decorated, placeholder) { this.$search.attr('placeholder', placeholder.text); }; Search.prototype.update = function (decorated, data) { var searchHadFocus = this.$search[0] == document.activeElement; this.$search.attr('placeholder', ''); decorated.call(this, data); this.$selection.find('.select2-selection__rendered') .append(this.$searchContainer); this.resizeSearch(); if (searchHadFocus) { this.$search.focus(); } }; Search.prototype.handleSearch = function () { this.resizeSearch(); if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(item.text); this.handleSearch(); }; Search.prototype.resizeSearch = function () { this.$search.css('width', '25px'); var width = ''; if (this.$search.attr('placeholder') !== '') { width = this.$selection.find('.select2-selection__rendered').innerWidth(); } else { var minimumWidth = this.$search.val().length + 1; width = (minimumWidth * 0.75) + 'em'; } this.$search.css('width', width); }; return Search; }); S2.define('select2/selection/eventRelay',[ 'jquery' ], function ($) { function EventRelay () { } EventRelay.prototype.bind = function (decorated, container, $container) { var self = this; var relayEvents = [ 'open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting' ]; var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting']; decorated.call(this, container, $container); container.on('*', function (name, params) { // Ignore events that should not be relayed if ($.inArray(name, relayEvents) === -1) { return; } // The parameters should always be an object params = params || {}; // Generate the jQuery event for the Select2 event var evt = $.Event('select2:' + name, { params: params }); self.$element.trigger(evt); // Only handle preventable events if it was one if ($.inArray(name, preventableEvents) === -1) { return; } params.prevented = evt.isDefaultPrevented(); }); }; return EventRelay; }); S2.define('select2/translation',[ 'jquery', 'require' ], function ($, require) { function Translation (dict) { this.dict = dict || {}; } Translation.prototype.all = function () { return this.dict; }; Translation.prototype.get = function (key) { return this.dict[key]; }; Translation.prototype.extend = function (translation) { this.dict = $.extend({}, translation.all(), this.dict); }; // Static functions Translation._cache = {}; Translation.loadPath = function (path) { if (!(path in Translation._cache)) { var translations = require(path); Translation._cache[path] = translations; } return new Translation(Translation._cache[path]); }; return Translation; }); S2.define('select2/diacritics',[ ], function () { var diacritics = { '\u24B6': 'A', '\uFF21': 'A', '\u00C0': 'A', '\u00C1': 'A', '\u00C2': 'A', '\u1EA6': 'A', '\u1EA4': 'A', '\u1EAA': 'A', '\u1EA8': 'A', '\u00C3': 'A', '\u0100': 'A', '\u0102': 'A', '\u1EB0': 'A', '\u1EAE': 'A', '\u1EB4': 'A', '\u1EB2': 'A', '\u0226': 'A', '\u01E0': 'A', '\u00C4': 'A', '\u01DE': 'A', '\u1EA2': 'A', '\u00C5': 'A', '\u01FA': 'A', '\u01CD': 'A', '\u0200': 'A', '\u0202': 'A', '\u1EA0': 'A', '\u1EAC': 'A', '\u1EB6': 'A', '\u1E00': 'A', '\u0104': 'A', '\u023A': 'A', '\u2C6F': 'A', '\uA732': 'AA', '\u00C6': 'AE', '\u01FC': 'AE', '\u01E2': 'AE', '\uA734': 'AO', '\uA736': 'AU', '\uA738': 'AV', '\uA73A': 'AV', '\uA73C': 'AY', '\u24B7': 'B', '\uFF22': 'B', '\u1E02': 'B', '\u1E04': 'B', '\u1E06': 'B', '\u0243': 'B', '\u0182': 'B', '\u0181': 'B', '\u24B8': 'C', '\uFF23': 'C', '\u0106': 'C', '\u0108': 'C', '\u010A': 'C', '\u010C': 'C', '\u00C7': 'C', '\u1E08': 'C', '\u0187': 'C', '\u023B': 'C', '\uA73E': 'C', '\u24B9': 'D', '\uFF24': 'D', '\u1E0A': 'D', '\u010E': 'D', '\u1E0C': 'D', '\u1E10': 'D', '\u1E12': 'D', '\u1E0E': 'D', '\u0110': 'D', '\u018B': 'D', '\u018A': 'D', '\u0189': 'D', '\uA779': 'D', '\u01F1': 'DZ', '\u01C4': 'DZ', '\u01F2': 'Dz', '\u01C5': 'Dz', '\u24BA': 'E', '\uFF25': 'E', '\u00C8': 'E', '\u00C9': 'E', '\u00CA': 'E', '\u1EC0': 'E', '\u1EBE': 'E', '\u1EC4': 'E', '\u1EC2': 'E', '\u1EBC': 'E', '\u0112': 'E', '\u1E14': 'E', '\u1E16': 'E', '\u0114': 'E', '\u0116': 'E', '\u00CB': 'E', '\u1EBA': 'E', '\u011A': 'E', '\u0204': 'E', '\u0206': 'E', '\u1EB8': 'E', '\u1EC6': 'E', '\u0228': 'E', '\u1E1C': 'E', '\u0118': 'E', '\u1E18': 'E', '\u1E1A': 'E', '\u0190': 'E', '\u018E': 'E', '\u24BB': 'F', '\uFF26': 'F', '\u1E1E': 'F', '\u0191': 'F', '\uA77B': 'F', '\u24BC': 'G', '\uFF27': 'G', '\u01F4': 'G', '\u011C': 'G', '\u1E20': 'G', '\u011E': 'G', '\u0120': 'G', '\u01E6': 'G', '\u0122': 'G', '\u01E4': 'G', '\u0193': 'G', '\uA7A0': 'G', '\uA77D': 'G', '\uA77E': 'G', '\u24BD': 'H', '\uFF28': 'H', '\u0124': 'H', '\u1E22': 'H', '\u1E26': 'H', '\u021E': 'H', '\u1E24': 'H', '\u1E28': 'H', '\u1E2A': 'H', '\u0126': 'H', '\u2C67': 'H', '\u2C75': 'H', '\uA78D': 'H', '\u24BE': 'I', '\uFF29': 'I', '\u00CC': 'I', '\u00CD': 'I', '\u00CE': 'I', '\u0128': 'I', '\u012A': 'I', '\u012C': 'I', '\u0130': 'I', '\u00CF': 'I', '\u1E2E': 'I', '\u1EC8': 'I', '\u01CF': 'I', '\u0208': 'I', '\u020A': 'I', '\u1ECA': 'I', '\u012E': 'I', '\u1E2C': 'I', '\u0197': 'I', '\u24BF': 'J', '\uFF2A': 'J', '\u0134': 'J', '\u0248': 'J', '\u24C0': 'K', '\uFF2B': 'K', '\u1E30': 'K', '\u01E8': 'K', '\u1E32': 'K', '\u0136': 'K', '\u1E34': 'K', '\u0198': 'K', '\u2C69': 'K', '\uA740': 'K', '\uA742': 'K', '\uA744': 'K', '\uA7A2': 'K', '\u24C1': 'L', '\uFF2C': 'L', '\u013F': 'L', '\u0139': 'L', '\u013D': 'L', '\u1E36': 'L', '\u1E38': 'L', '\u013B': 'L', '\u1E3C': 'L', '\u1E3A': 'L', '\u0141': 'L', '\u023D': 'L', '\u2C62': 'L', '\u2C60': 'L', '\uA748': 'L', '\uA746': 'L', '\uA780': 'L', '\u01C7': 'LJ', '\u01C8': 'Lj', '\u24C2': 'M', '\uFF2D': 'M', '\u1E3E': 'M', '\u1E40': 'M', '\u1E42': 'M', '\u2C6E': 'M', '\u019C': 'M', '\u24C3': 'N', '\uFF2E': 'N', '\u01F8': 'N', '\u0143': 'N', '\u00D1': 'N', '\u1E44': 'N', '\u0147': 'N', '\u1E46': 'N', '\u0145': 'N', '\u1E4A': 'N', '\u1E48': 'N', '\u0220': 'N', '\u019D': 'N', '\uA790': 'N', '\uA7A4': 'N', '\u01CA': 'NJ', '\u01CB': 'Nj', '\u24C4': 'O', '\uFF2F': 'O', '\u00D2': 'O', '\u00D3': 'O', '\u00D4': 'O', '\u1ED2': 'O', '\u1ED0': 'O', '\u1ED6': 'O', '\u1ED4': 'O', '\u00D5': 'O', '\u1E4C': 'O', '\u022C': 'O', '\u1E4E': 'O', '\u014C': 'O', '\u1E50': 'O', '\u1E52': 'O', '\u014E': 'O', '\u022E': 'O', '\u0230': 'O', '\u00D6': 'O', '\u022A': 'O', '\u1ECE': 'O', '\u0150': 'O', '\u01D1': 'O', '\u020C': 'O', '\u020E': 'O', '\u01A0': 'O', '\u1EDC': 'O', '\u1EDA': 'O', '\u1EE0': 'O', '\u1EDE': 'O', '\u1EE2': 'O', '\u1ECC': 'O', '\u1ED8': 'O', '\u01EA': 'O', '\u01EC': 'O', '\u00D8': 'O', '\u01FE': 'O', '\u0186': 'O', '\u019F': 'O', '\uA74A': 'O', '\uA74C': 'O', '\u01A2': 'OI', '\uA74E': 'OO', '\u0222': 'OU', '\u24C5': 'P', '\uFF30': 'P', '\u1E54': 'P', '\u1E56': 'P', '\u01A4': 'P', '\u2C63': 'P', '\uA750': 'P', '\uA752': 'P', '\uA754': 'P', '\u24C6': 'Q', '\uFF31': 'Q', '\uA756': 'Q', '\uA758': 'Q', '\u024A': 'Q', '\u24C7': 'R', '\uFF32': 'R', '\u0154': 'R', '\u1E58': 'R', '\u0158': 'R', '\u0210': 'R', '\u0212': 'R', '\u1E5A': 'R', '\u1E5C': 'R', '\u0156': 'R', '\u1E5E': 'R', '\u024C': 'R', '\u2C64': 'R', '\uA75A': 'R', '\uA7A6': 'R', '\uA782': 'R', '\u24C8': 'S', '\uFF33': 'S', '\u1E9E': 'S', '\u015A': 'S', '\u1E64': 'S', '\u015C': 'S', '\u1E60': 'S', '\u0160': 'S', '\u1E66': 'S', '\u1E62': 'S', '\u1E68': 'S', '\u0218': 'S', '\u015E': 'S', '\u2C7E': 'S', '\uA7A8': 'S', '\uA784': 'S', '\u24C9': 'T', '\uFF34': 'T', '\u1E6A': 'T', '\u0164': 'T', '\u1E6C': 'T', '\u021A': 'T', '\u0162': 'T', '\u1E70': 'T', '\u1E6E': 'T', '\u0166': 'T', '\u01AC': 'T', '\u01AE': 'T', '\u023E': 'T', '\uA786': 'T', '\uA728': 'TZ', '\u24CA': 'U', '\uFF35': 'U', '\u00D9': 'U', '\u00DA': 'U', '\u00DB': 'U', '\u0168': 'U', '\u1E78': 'U', '\u016A': 'U', '\u1E7A': 'U', '\u016C': 'U', '\u00DC': 'U', '\u01DB': 'U', '\u01D7': 'U', '\u01D5': 'U', '\u01D9': 'U', '\u1EE6': 'U', '\u016E': 'U', '\u0170': 'U', '\u01D3': 'U', '\u0214': 'U', '\u0216': 'U', '\u01AF': 'U', '\u1EEA': 'U', '\u1EE8': 'U', '\u1EEE': 'U', '\u1EEC': 'U', '\u1EF0': 'U', '\u1EE4': 'U', '\u1E72': 'U', '\u0172': 'U', '\u1E76': 'U', '\u1E74': 'U', '\u0244': 'U', '\u24CB': 'V', '\uFF36': 'V', '\u1E7C': 'V', '\u1E7E': 'V', '\u01B2': 'V', '\uA75E': 'V', '\u0245': 'V', '\uA760': 'VY', '\u24CC': 'W', '\uFF37': 'W', '\u1E80': 'W', '\u1E82': 'W', '\u0174': 'W', '\u1E86': 'W', '\u1E84': 'W', '\u1E88': 'W', '\u2C72': 'W', '\u24CD': 'X', '\uFF38': 'X', '\u1E8A': 'X', '\u1E8C': 'X', '\u24CE': 'Y', '\uFF39': 'Y', '\u1EF2': 'Y', '\u00DD': 'Y', '\u0176': 'Y', '\u1EF8': 'Y', '\u0232': 'Y', '\u1E8E': 'Y', '\u0178': 'Y', '\u1EF6': 'Y', '\u1EF4': 'Y', '\u01B3': 'Y', '\u024E': 'Y', '\u1EFE': 'Y', '\u24CF': 'Z', '\uFF3A': 'Z', '\u0179': 'Z', '\u1E90': 'Z', '\u017B': 'Z', '\u017D': 'Z', '\u1E92': 'Z', '\u1E94': 'Z', '\u01B5': 'Z', '\u0224': 'Z', '\u2C7F': 'Z', '\u2C6B': 'Z', '\uA762': 'Z', '\u24D0': 'a', '\uFF41': 'a', '\u1E9A': 'a', '\u00E0': 'a', '\u00E1': 'a', '\u00E2': 'a', '\u1EA7': 'a', '\u1EA5': 'a', '\u1EAB': 'a', '\u1EA9': 'a', '\u00E3': 'a', '\u0101': 'a', '\u0103': 'a', '\u1EB1': 'a', '\u1EAF': 'a', '\u1EB5': 'a', '\u1EB3': 'a', '\u0227': 'a', '\u01E1': 'a', '\u00E4': 'a', '\u01DF': 'a', '\u1EA3': 'a', '\u00E5': 'a', '\u01FB': 'a', '\u01CE': 'a', '\u0201': 'a', '\u0203': 'a', '\u1EA1': 'a', '\u1EAD': 'a', '\u1EB7': 'a', '\u1E01': 'a', '\u0105': 'a', '\u2C65': 'a', '\u0250': 'a', '\uA733': 'aa', '\u00E6': 'ae', '\u01FD': 'ae', '\u01E3': 'ae', '\uA735': 'ao', '\uA737': 'au', '\uA739': 'av', '\uA73B': 'av', '\uA73D': 'ay', '\u24D1': 'b', '\uFF42': 'b', '\u1E03': 'b', '\u1E05': 'b', '\u1E07': 'b', '\u0180': 'b', '\u0183': 'b', '\u0253': 'b', '\u24D2': 'c', '\uFF43': 'c', '\u0107': 'c', '\u0109': 'c', '\u010B': 'c', '\u010D': 'c', '\u00E7': 'c', '\u1E09': 'c', '\u0188': 'c', '\u023C': 'c', '\uA73F': 'c', '\u2184': 'c', '\u24D3': 'd', '\uFF44': 'd', '\u1E0B': 'd', '\u010F': 'd', '\u1E0D': 'd', '\u1E11': 'd', '\u1E13': 'd', '\u1E0F': 'd', '\u0111': 'd', '\u018C': 'd', '\u0256': 'd', '\u0257': 'd', '\uA77A': 'd', '\u01F3': 'dz', '\u01C6': 'dz', '\u24D4': 'e', '\uFF45': 'e', '\u00E8': 'e', '\u00E9': 'e', '\u00EA': 'e', '\u1EC1': 'e', '\u1EBF': 'e', '\u1EC5': 'e', '\u1EC3': 'e', '\u1EBD': 'e', '\u0113': 'e', '\u1E15': 'e', '\u1E17': 'e', '\u0115': 'e', '\u0117': 'e', '\u00EB': 'e', '\u1EBB': 'e', '\u011B': 'e', '\u0205': 'e', '\u0207': 'e', '\u1EB9': 'e', '\u1EC7': 'e', '\u0229': 'e', '\u1E1D': 'e', '\u0119': 'e', '\u1E19': 'e', '\u1E1B': 'e', '\u0247': 'e', '\u025B': 'e', '\u01DD': 'e', '\u24D5': 'f', '\uFF46': 'f', '\u1E1F': 'f', '\u0192': 'f', '\uA77C': 'f', '\u24D6': 'g', '\uFF47': 'g', '\u01F5': 'g', '\u011D': 'g', '\u1E21': 'g', '\u011F': 'g', '\u0121': 'g', '\u01E7': 'g', '\u0123': 'g', '\u01E5': 'g', '\u0260': 'g', '\uA7A1': 'g', '\u1D79': 'g', '\uA77F': 'g', '\u24D7': 'h', '\uFF48': 'h', '\u0125': 'h', '\u1E23': 'h', '\u1E27': 'h', '\u021F': 'h', '\u1E25': 'h', '\u1E29': 'h', '\u1E2B': 'h', '\u1E96': 'h', '\u0127': 'h', '\u2C68': 'h', '\u2C76': 'h', '\u0265': 'h', '\u0195': 'hv', '\u24D8': 'i', '\uFF49': 'i', '\u00EC': 'i', '\u00ED': 'i', '\u00EE': 'i', '\u0129': 'i', '\u012B': 'i', '\u012D': 'i', '\u00EF': 'i', '\u1E2F': 'i', '\u1EC9': 'i', '\u01D0': 'i', '\u0209': 'i', '\u020B': 'i', '\u1ECB': 'i', '\u012F': 'i', '\u1E2D': 'i', '\u0268': 'i', '\u0131': 'i', '\u24D9': 'j', '\uFF4A': 'j', '\u0135': 'j', '\u01F0': 'j', '\u0249': 'j', '\u24DA': 'k', '\uFF4B': 'k', '\u1E31': 'k', '\u01E9': 'k', '\u1E33': 'k', '\u0137': 'k', '\u1E35': 'k', '\u0199': 'k', '\u2C6A': 'k', '\uA741': 'k', '\uA743': 'k', '\uA745': 'k', '\uA7A3': 'k', '\u24DB': 'l', '\uFF4C': 'l', '\u0140': 'l', '\u013A': 'l', '\u013E': 'l', '\u1E37': 'l', '\u1E39': 'l', '\u013C': 'l', '\u1E3D': 'l', '\u1E3B': 'l', '\u017F': 'l', '\u0142': 'l', '\u019A': 'l', '\u026B': 'l', '\u2C61': 'l', '\uA749': 'l', '\uA781': 'l', '\uA747': 'l', '\u01C9': 'lj', '\u24DC': 'm', '\uFF4D': 'm', '\u1E3F': 'm', '\u1E41': 'm', '\u1E43': 'm', '\u0271': 'm', '\u026F': 'm', '\u24DD': 'n', '\uFF4E': 'n', '\u01F9': 'n', '\u0144': 'n', '\u00F1': 'n', '\u1E45': 'n', '\u0148': 'n', '\u1E47': 'n', '\u0146': 'n', '\u1E4B': 'n', '\u1E49': 'n', '\u019E': 'n', '\u0272': 'n', '\u0149': 'n', '\uA791': 'n', '\uA7A5': 'n', '\u01CC': 'nj', '\u24DE': 'o', '\uFF4F': 'o', '\u00F2': 'o', '\u00F3': 'o', '\u00F4': 'o', '\u1ED3': 'o', '\u1ED1': 'o', '\u1ED7': 'o', '\u1ED5': 'o', '\u00F5': 'o', '\u1E4D': 'o', '\u022D': 'o', '\u1E4F': 'o', '\u014D': 'o', '\u1E51': 'o', '\u1E53': 'o', '\u014F': 'o', '\u022F': 'o', '\u0231': 'o', '\u00F6': 'o', '\u022B': 'o', '\u1ECF': 'o', '\u0151': 'o', '\u01D2': 'o', '\u020D': 'o', '\u020F': 'o', '\u01A1': 'o', '\u1EDD': 'o', '\u1EDB': 'o', '\u1EE1': 'o', '\u1EDF': 'o', '\u1EE3': 'o', '\u1ECD': 'o', '\u1ED9': 'o', '\u01EB': 'o', '\u01ED': 'o', '\u00F8': 'o', '\u01FF': 'o', '\u0254': 'o', '\uA74B': 'o', '\uA74D': 'o', '\u0275': 'o', '\u01A3': 'oi', '\u0223': 'ou', '\uA74F': 'oo', '\u24DF': 'p', '\uFF50': 'p', '\u1E55': 'p', '\u1E57': 'p', '\u01A5': 'p', '\u1D7D': 'p', '\uA751': 'p', '\uA753': 'p', '\uA755': 'p', '\u24E0': 'q', '\uFF51': 'q', '\u024B': 'q', '\uA757': 'q', '\uA759': 'q', '\u24E1': 'r', '\uFF52': 'r', '\u0155': 'r', '\u1E59': 'r', '\u0159': 'r', '\u0211': 'r', '\u0213': 'r', '\u1E5B': 'r', '\u1E5D': 'r', '\u0157': 'r', '\u1E5F': 'r', '\u024D': 'r', '\u027D': 'r', '\uA75B': 'r', '\uA7A7': 'r', '\uA783': 'r', '\u24E2': 's', '\uFF53': 's', '\u00DF': 's', '\u015B': 's', '\u1E65': 's', '\u015D': 's', '\u1E61': 's', '\u0161': 's', '\u1E67': 's', '\u1E63': 's', '\u1E69': 's', '\u0219': 's', '\u015F': 's', '\u023F': 's', '\uA7A9': 's', '\uA785': 's', '\u1E9B': 's', '\u24E3': 't', '\uFF54': 't', '\u1E6B': 't', '\u1E97': 't', '\u0165': 't', '\u1E6D': 't', '\u021B': 't', '\u0163': 't', '\u1E71': 't', '\u1E6F': 't', '\u0167': 't', '\u01AD': 't', '\u0288': 't', '\u2C66': 't', '\uA787': 't', '\uA729': 'tz', '\u24E4': 'u', '\uFF55': 'u', '\u00F9': 'u', '\u00FA': 'u', '\u00FB': 'u', '\u0169': 'u', '\u1E79': 'u', '\u016B': 'u', '\u1E7B': 'u', '\u016D': 'u', '\u00FC': 'u', '\u01DC': 'u', '\u01D8': 'u', '\u01D6': 'u', '\u01DA': 'u', '\u1EE7': 'u', '\u016F': 'u', '\u0171': 'u', '\u01D4': 'u', '\u0215': 'u', '\u0217': 'u', '\u01B0': 'u', '\u1EEB': 'u', '\u1EE9': 'u', '\u1EEF': 'u', '\u1EED': 'u', '\u1EF1': 'u', '\u1EE5': 'u', '\u1E73': 'u', '\u0173': 'u', '\u1E77': 'u', '\u1E75': 'u', '\u0289': 'u', '\u24E5': 'v', '\uFF56': 'v', '\u1E7D': 'v', '\u1E7F': 'v', '\u028B': 'v', '\uA75F': 'v', '\u028C': 'v', '\uA761': 'vy', '\u24E6': 'w', '\uFF57': 'w', '\u1E81': 'w', '\u1E83': 'w', '\u0175': 'w', '\u1E87': 'w', '\u1E85': 'w', '\u1E98': 'w', '\u1E89': 'w', '\u2C73': 'w', '\u24E7': 'x', '\uFF58': 'x', '\u1E8B': 'x', '\u1E8D': 'x', '\u24E8': 'y', '\uFF59': 'y', '\u1EF3': 'y', '\u00FD': 'y', '\u0177': 'y', '\u1EF9': 'y', '\u0233': 'y', '\u1E8F': 'y', '\u00FF': 'y', '\u1EF7': 'y', '\u1E99': 'y', '\u1EF5': 'y', '\u01B4': 'y', '\u024F': 'y', '\u1EFF': 'y', '\u24E9': 'z', '\uFF5A': 'z', '\u017A': 'z', '\u1E91': 'z', '\u017C': 'z', '\u017E': 'z', '\u1E93': 'z', '\u1E95': 'z', '\u01B6': 'z', '\u0225': 'z', '\u0240': 'z', '\u2C6C': 'z', '\uA763': 'z', '\u0386': '\u0391', '\u0388': '\u0395', '\u0389': '\u0397', '\u038A': '\u0399', '\u03AA': '\u0399', '\u038C': '\u039F', '\u038E': '\u03A5', '\u03AB': '\u03A5', '\u038F': '\u03A9', '\u03AC': '\u03B1', '\u03AD': '\u03B5', '\u03AE': '\u03B7', '\u03AF': '\u03B9', '\u03CA': '\u03B9', '\u0390': '\u03B9', '\u03CC': '\u03BF', '\u03CD': '\u03C5', '\u03CB': '\u03C5', '\u03B0': '\u03C5', '\u03C9': '\u03C9', '\u03C2': '\u03C3' }; return diacritics; }); S2.define('select2/data/base',[ '../utils' ], function (Utils) { function BaseAdapter ($element, options) { BaseAdapter.__super__.constructor.call(this); } Utils.Extend(BaseAdapter, Utils.Observable); BaseAdapter.prototype.current = function (callback) { throw new Error('The `current` method must be defined in child classes.'); }; BaseAdapter.prototype.query = function (params, callback) { throw new Error('The `query` method must be defined in child classes.'); }; BaseAdapter.prototype.bind = function (container, $container) { // Can be implemented in subclasses }; BaseAdapter.prototype.destroy = function () { // Can be implemented in subclasses }; BaseAdapter.prototype.generateResultId = function (container, data) { var id = container.id + '-result-'; id += Utils.generateChars(4); if (data.id != null) { id += '-' + data.id.toString(); } else { id += '-' + Utils.generateChars(4); } return id; }; return BaseAdapter; }); S2.define('select2/data/select',[ './base', '../utils', 'jquery' ], function (BaseAdapter, Utils, $) { function SelectAdapter ($element, options) { this.$element = $element; this.options = options; SelectAdapter.__super__.constructor.call(this); } Utils.Extend(SelectAdapter, BaseAdapter); SelectAdapter.prototype.current = function (callback) { var data = []; var self = this; this.$element.find(':selected').each(function () { var $option = $(this); var option = self.item($option); data.push(option); }); callback(data); }; SelectAdapter.prototype.select = function (data) { var self = this; data.selected = true; // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; this.$element.trigger('change'); return; } if (this.$element.prop('multiple')) { this.current(function (currentData) { var val = []; data = [data]; data.push.apply(data, currentData); for (var d = 0; d < data.length; d++) { var id = data[d].id; if ($.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); } else { var val = data.id; this.$element.val(val); this.$element.trigger('change'); } }; SelectAdapter.prototype.unselect = function (data) { var self = this; if (!this.$element.prop('multiple')) { return; } data.selected = false; if ($(data.element).is('option')) { data.element.selected = false; this.$element.trigger('change'); return; } this.current(function (currentData) { var val = []; for (var d = 0; d < currentData.length; d++) { var id = currentData[d].id; if (id !== data.id && $.inArray(id, val) === -1) { val.push(id); } } self.$element.val(val); self.$element.trigger('change'); }); }; SelectAdapter.prototype.bind = function (container, $container) { var self = this; this.container = container; container.on('select', function (params) { self.select(params.data); }); container.on('unselect', function (params) { self.unselect(params.data); }); }; SelectAdapter.prototype.destroy = function () { // Remove anything added to child elements this.$element.find('*').each(function () { // Remove any custom data set by Select2 $.removeData(this, 'data'); }); }; SelectAdapter.prototype.query = function (params, callback) { var data = []; var self = this; var $options = this.$element.children(); $options.each(function () { var $option = $(this); if (!$option.is('option') && !$option.is('optgroup')) { return; } var option = self.item($option); var matches = self.matches(params, option); if (matches !== null) { data.push(matches); } }); callback({ results: data }); }; SelectAdapter.prototype.addOptions = function ($options) { Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { var option; if (data.children) { option = document.createElement('optgroup'); option.label = data.text; } else { option = document.createElement('option'); if (option.textContent !== undefined) { option.textContent = data.text; } else { option.innerText = data.text; } } if (data.id !== undefined) { option.value = data.id; } if (data.disabled) { option.disabled = true; } if (data.selected) { option.selected = true; } if (data.title) { option.title = data.title; } var $option = $(option); var normalizedData = this._normalizeItem(data); normalizedData.element = option; // Override the option's data with the combined data $.data(option, 'data', normalizedData); return $option; }; SelectAdapter.prototype.item = function ($option) { var data = {}; data = $.data($option[0], 'data'); if (data != null) { return data; } if ($option.is('option')) { data = { id: $option.val(), text: $option.text(), disabled: $option.prop('disabled'), selected: $option.prop('selected'), title: $option.prop('title') }; } else if ($option.is('optgroup')) { data = { text: $option.prop('label'), children: [], title: $option.prop('title') }; var $children = $option.children('option'); var children = []; for (var c = 0; c < $children.length; c++) { var $child = $($children[c]); var child = this.item($child); children.push(child); } data.children = children; } data = this._normalizeItem(data); data.element = $option[0]; $.data($option[0], 'data', data); return data; }; SelectAdapter.prototype._normalizeItem = function (item) { if (!$.isPlainObject(item)) { item = { id: item, text: item }; } item = $.extend({}, { text: '' }, item); var defaults = { selected: false, disabled: false }; if (item.id != null) { item.id = item.id.toString(); } if (item.text != null) { item.text = item.text.toString(); } if (item._resultId == null && item.id && this.container != null) { item._resultId = this.generateResultId(this.container, item); } return $.extend({}, defaults, item); }; SelectAdapter.prototype.matches = function (params, data) { var matcher = this.options.get('matcher'); return matcher(params, data); }; return SelectAdapter; }); S2.define('select2/data/array',[ './select', '../utils', 'jquery' ], function (SelectAdapter, Utils, $) { function ArrayAdapter ($element, options) { var data = options.get('data') || []; ArrayAdapter.__super__.constructor.call(this, $element, options); this.addOptions(this.convertToOptions(data)); } Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { var $option = this.$element.find('option').filter(function (i, elm) { return elm.value == data.id.toString(); }); if ($option.length === 0) { $option = this.option(data); this.addOptions($option); } ArrayAdapter.__super__.select.call(this, data); }; ArrayAdapter.prototype.convertToOptions = function (data) { var self = this; var $existing = this.$element.find('option'); var existingIds = $existing.map(function () { return self.item($(this)).id; }).get(); var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { return function () { return $(this).val() == item.id; }; } for (var d = 0; d < data.length; d++) { var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data if ($.inArray(item.id, existingIds) >= 0) { var $existingOption = $existing.filter(onlyItem(item)); var existingData = this.item($existingOption); var newData = $.extend(true, {}, item, existingData); var $newOption = this.option(newData); $existingOption.replaceWith($newOption); continue; } var $option = this.option(item); if (item.children) { var $children = this.convertToOptions(item.children); Utils.appendMany($option, $children); } $options.push($option); } return $options; }; return ArrayAdapter; }); S2.define('select2/data/ajax',[ './array', '../utils', 'jquery' ], function (ArrayAdapter, Utils, $) { function AjaxAdapter ($element, options) { this.ajaxOptions = this._applyDefaults(options.get('ajax')); if (this.ajaxOptions.processResults != null) { this.processResults = this.ajaxOptions.processResults; } AjaxAdapter.__super__.constructor.call(this, $element, options); } Utils.Extend(AjaxAdapter, ArrayAdapter); AjaxAdapter.prototype._applyDefaults = function (options) { var defaults = { data: function (params) { return $.extend({}, params, { q: params.term }); }, transport: function (params, success, failure) { var $request = $.ajax(params); $request.then(success); $request.fail(failure); return $request; } }; return $.extend({}, defaults, options, true); }; AjaxAdapter.prototype.processResults = function (results) { return results; }; AjaxAdapter.prototype.query = function (params, callback) { var matches = []; var self = this; if (this._request != null) { // JSONP requests cannot always be aborted if ($.isFunction(this._request.abort)) { this._request.abort(); } this._request = null; } var options = $.extend({ type: 'GET' }, this.ajaxOptions); if (typeof options.url === 'function') { options.url = options.url.call(this.$element, params); } if (typeof options.data === 'function') { options.data = options.data.call(this.$element, params); } function request () { var $request = options.transport(options, function (data) { var results = self.processResults(data, params); if (self.options.get('debug') && window.console && console.error) { // Check to make sure that the response included a `results` key. if (!results || !results.results || !$.isArray(results.results)) { console.error( 'Select2: The AJAX results did not return an array in the ' + '`results` key of the response.' ); } } callback(results); }, function () { // Attempt to detect if a request was aborted // Only works if the transport exposes a status property if ($request.status && $request.status === '0') { return; } self.trigger('results:message', { message: 'errorLoading' }); }); self._request = $request; } if (this.ajaxOptions.delay && params.term != null) { if (this._queryTimeout) { window.clearTimeout(this._queryTimeout); } this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay); } else { request(); } }; return AjaxAdapter; }); S2.define('select2/data/tags',[ 'jquery' ], function ($) { function Tags (decorated, $element, options) { var tags = options.get('tags'); var createTag = options.get('createTag'); if (createTag !== undefined) { this.createTag = createTag; } var insertTag = options.get('insertTag'); if (insertTag !== undefined) { this.insertTag = insertTag; } decorated.call(this, $element, options); if ($.isArray(tags)) { for (var t = 0; t < tags.length; t++) { var tag = tags[t]; var item = this._normalizeItem(tag); var $option = this.option(item); this.$element.append($option); } } } Tags.prototype.query = function (decorated, params, callback) { var self = this; this._removeOldTags(); if (params.term == null || params.page != null) { decorated.call(this, params, callback); return; } function wrapper (obj, child) { var data = obj.results; for (var i = 0; i < data.length; i++) { var option = data[i]; var checkChildren = ( option.children != null && !wrapper({ results: option.children }, true) ); var optionText = (option.text || '').toUpperCase(); var paramsTerm = (params.term || '').toUpperCase(); var checkText = optionText === paramsTerm; if (checkText || checkChildren) { if (child) { return false; } obj.data = data; callback(obj); return; } } if (child) { return true; } var tag = self.createTag(params); if (tag != null) { var $option = self.option(tag); $option.attr('data-select2-tag', true); self.addOptions([$option]); self.insertTag(data, tag); } obj.results = data; callback(obj); } decorated.call(this, params, wrapper); }; Tags.prototype.createTag = function (decorated, params) { var term = $.trim(params.term); if (term === '') { return null; } return { id: term, text: term }; }; Tags.prototype.insertTag = function (_, data, tag) { data.unshift(tag); }; Tags.prototype._removeOldTags = function (_) { var tag = this._lastTag; var $options = this.$element.find('option[data-select2-tag]'); $options.each(function () { if (this.selected) { return; } $(this).remove(); }); }; return Tags; }); S2.define('select2/data/tokenizer',[ 'jquery' ], function ($) { function Tokenizer (decorated, $element, options) { var tokenizer = options.get('tokenizer'); if (tokenizer !== undefined) { this.tokenizer = tokenizer; } decorated.call(this, $element, options); } Tokenizer.prototype.bind = function (decorated, container, $container) { decorated.call(this, container, $container); this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field'); }; Tokenizer.prototype.query = function (decorated, params, callback) { var self = this; function createAndSelect (data) { // Normalize the data object so we can use it for checks var item = self._normalizeItem(data); // Check if the data object already exists as a tag // Select it if it doesn't var $existingOptions = self.$element.find('option').filter(function () { return $(this).val() === item.id; }); // If an existing option wasn't found for it, create the option if (!$existingOptions.length) { var $option = self.option(item); $option.attr('data-select2-tag', true); self._removeOldTags(); self.addOptions([$option]); } // Select the item, now that we know there is an option for it select(item); } function select (data) { self.trigger('select', { data: data }); } params.term = params.term || ''; var tokenData = this.tokenizer(params, this.options, createAndSelect); if (tokenData.term !== params.term) { // Replace the search term if we have the search box if (this.$search.length) { this.$search.val(tokenData.term); this.$search.focus(); } params.term = tokenData.term; } decorated.call(this, params, callback); }; Tokenizer.prototype.tokenizer = function (_, params, options, callback) { var separators = options.get('tokenSeparators') || []; var term = params.term; var i = 0; var createTag = this.createTag || function (params) { return { id: params.term, text: params.term }; }; while (i < term.length) { var termChar = term[i]; if ($.inArray(termChar, separators) === -1) { i++; continue; } var part = term.substr(0, i); var partParams = $.extend({}, params, { term: part }); var data = createTag(partParams); if (data == null) { i++; continue; } callback(data); // Reset the term to not include the tokenized portion term = term.substr(i + 1) || ''; i = 0; } return { term: term }; }; return Tokenizer; }); S2.define('select2/data/minimumInputLength',[ ], function () { function MinimumInputLength (decorated, $e, options) { this.minimumInputLength = options.get('minimumInputLength'); decorated.call(this, $e, options); } MinimumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (params.term.length < this.minimumInputLength) { this.trigger('results:message', { message: 'inputTooShort', args: { minimum: this.minimumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MinimumInputLength; }); S2.define('select2/data/maximumInputLength',[ ], function () { function MaximumInputLength (decorated, $e, options) { this.maximumInputLength = options.get('maximumInputLength'); decorated.call(this, $e, options); } MaximumInputLength.prototype.query = function (decorated, params, callback) { params.term = params.term || ''; if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) { this.trigger('results:message', { message: 'inputTooLong', args: { maximum: this.maximumInputLength, input: params.term, params: params } }); return; } decorated.call(this, params, callback); }; return MaximumInputLength; }); S2.define('select2/data/maximumSelectionLength',[ ], function (){ function MaximumSelectionLength (decorated, $e, options) { this.maximumSelectionLength = options.get('maximumSelectionLength'); decorated.call(this, $e, options); } MaximumSelectionLength.prototype.query = function (decorated, params, callback) { var self = this; this.current(function (currentData) { var count = currentData != null ? currentData.length : 0; if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) { self.trigger('results:message', { message: 'maximumSelected', args: { maximum: self.maximumSelectionLength } }); return; } decorated.call(self, params, callback); }); }; return MaximumSelectionLength; }); S2.define('select2/dropdown',[ 'jquery', './utils' ], function ($, Utils) { function Dropdown ($element, options) { this.$element = $element; this.options = options; Dropdown.__super__.constructor.call(this); } Utils.Extend(Dropdown, Utils.Observable); Dropdown.prototype.render = function () { var $dropdown = $( '' + '' + '' ); $dropdown.attr('dir', this.options.get('dir')); this.$dropdown = $dropdown; return $dropdown; }; Dropdown.prototype.bind = function () { // Should be implemented in subclasses }; Dropdown.prototype.position = function ($dropdown, $container) { // Should be implmented in subclasses }; Dropdown.prototype.destroy = function () { // Remove the dropdown from the DOM this.$dropdown.remove(); }; return Dropdown; }); S2.define('select2/dropdown/search',[ 'jquery', '../utils' ], function ($, Utils) { function Search () { } Search.prototype.render = function (decorated) { var $rendered = decorated.call(this); var $search = $( '' + '' + '' ); this.$searchContainer = $search; this.$search = $search.find('input'); $rendered.prepend($search); return $rendered; }; Search.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); this.$search.on('keydown', function (evt) { self.trigger('keypress', evt); self._keyUpPrevented = evt.isDefaultPrevented(); }); // Workaround for browsers which do not support the `input` event // This will prevent double-triggering of events for browsers which support // both the `keyup` and `input` events. this.$search.on('input', function (evt) { // Unbind the duplicated `keyup` event $(this).off('keyup'); }); this.$search.on('keyup input', function (evt) { self.handleSearch(evt); }); container.on('open', function () { self.$search.attr('tabindex', 0); self.$search.focus(); window.setTimeout(function () { self.$search.focus(); }, 0); }); container.on('close', function () { self.$search.attr('tabindex', -1); self.$search.val(''); }); container.on('focus', function () { if (!container.isOpen()) { self.$search.focus(); } }); container.on('results:all', function (params) { if (params.query.term == null || params.query.term === '') { var showSearch = self.showSearch(params); if (showSearch) { self.$searchContainer.removeClass('select2-search--hide'); } else { self.$searchContainer.addClass('select2-search--hide'); } } }); }; Search.prototype.handleSearch = function (evt) { if (!this._keyUpPrevented) { var input = this.$search.val(); this.trigger('query', { term: input }); } this._keyUpPrevented = false; }; Search.prototype.showSearch = function (_, params) { return true; }; return Search; }); S2.define('select2/dropdown/hidePlaceholder',[ ], function () { function HidePlaceholder (decorated, $element, options, dataAdapter) { this.placeholder = this.normalizePlaceholder(options.get('placeholder')); decorated.call(this, $element, options, dataAdapter); } HidePlaceholder.prototype.append = function (decorated, data) { data.results = this.removePlaceholder(data.results); decorated.call(this, data); }; HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) { if (typeof placeholder === 'string') { placeholder = { id: '', text: placeholder }; } return placeholder; }; HidePlaceholder.prototype.removePlaceholder = function (_, data) { var modifiedData = data.slice(0); for (var d = data.length - 1; d >= 0; d--) { var item = data[d]; if (this.placeholder.id === item.id) { modifiedData.splice(d, 1); } } return modifiedData; }; return HidePlaceholder; }); S2.define('select2/dropdown/infiniteScroll',[ 'jquery' ], function ($) { function InfiniteScroll (decorated, $element, options, dataAdapter) { this.lastParams = {}; decorated.call(this, $element, options, dataAdapter); this.$loadingMore = this.createLoadingMore(); this.loading = false; } InfiniteScroll.prototype.append = function (decorated, data) { this.$loadingMore.remove(); this.loading = false; decorated.call(this, data); if (this.showLoadingMore(data)) { this.$results.append(this.$loadingMore); } }; InfiniteScroll.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('query', function (params) { self.lastParams = params; self.loading = true; }); container.on('query:append', function (params) { self.lastParams = params; self.loading = true; }); this.$results.on('scroll', function () { var isLoadMoreVisible = $.contains( document.documentElement, self.$loadingMore[0] ); if (self.loading || !isLoadMoreVisible) { return; } var currentOffset = self.$results.offset().top + self.$results.outerHeight(false); var loadingMoreOffset = self.$loadingMore.offset().top + self.$loadingMore.outerHeight(false); if (currentOffset + 50 >= loadingMoreOffset) { self.loadMore(); } }); }; InfiniteScroll.prototype.loadMore = function () { this.loading = true; var params = $.extend({}, {page: 1}, this.lastParams); params.page++; this.trigger('query:append', params); }; InfiniteScroll.prototype.showLoadingMore = function (_, data) { return data.pagination && data.pagination.more; }; InfiniteScroll.prototype.createLoadingMore = function () { var $option = $( '
      • ' ); var message = this.options.get('translations').get('loadingMore'); $option.html(message(this.lastParams)); return $option; }; return InfiniteScroll; }); S2.define('select2/dropdown/attachBody',[ 'jquery', '../utils' ], function ($, Utils) { function AttachBody (decorated, $element, options) { this.$dropdownParent = options.get('dropdownParent') || $(document.body); decorated.call(this, $element, options); } AttachBody.prototype.bind = function (decorated, container, $container) { var self = this; var setupResultsEvents = false; decorated.call(this, container, $container); container.on('open', function () { self._showDropdown(); self._attachPositioningHandler(container); if (!setupResultsEvents) { setupResultsEvents = true; container.on('results:all', function () { self._positionDropdown(); self._resizeDropdown(); }); container.on('results:append', function () { self._positionDropdown(); self._resizeDropdown(); }); } }); container.on('close', function () { self._hideDropdown(); self._detachPositioningHandler(container); }); this.$dropdownContainer.on('mousedown', function (evt) { evt.stopPropagation(); }); }; AttachBody.prototype.destroy = function (decorated) { decorated.call(this); this.$dropdownContainer.remove(); }; AttachBody.prototype.position = function (decorated, $dropdown, $container) { // Clone all of the container classes $dropdown.attr('class', $container.attr('class')); $dropdown.removeClass('select2'); $dropdown.addClass('select2-container--open'); $dropdown.css({ position: 'absolute', top: -999999 }); this.$container = $container; }; AttachBody.prototype.render = function (decorated) { var $container = $(''); var $dropdown = decorated.call(this); $container.append($dropdown); this.$dropdownContainer = $container; return $container; }; AttachBody.prototype._hideDropdown = function (decorated) { this.$dropdownContainer.detach(); }; AttachBody.prototype._attachPositioningHandler = function (decorated, container) { var self = this; var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.each(function () { $(this).data('select2-scroll-position', { x: $(this).scrollLeft(), y: $(this).scrollTop() }); }); $watchers.on(scrollEvent, function (ev) { var position = $(this).data('select2-scroll-position'); $(this).scrollTop(position.y); }); $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) { self._positionDropdown(); self._resizeDropdown(); }); }; AttachBody.prototype._detachPositioningHandler = function (decorated, container) { var scrollEvent = 'scroll.select2.' + container.id; var resizeEvent = 'resize.select2.' + container.id; var orientationEvent = 'orientationchange.select2.' + container.id; var $watchers = this.$container.parents().filter(Utils.hasScroll); $watchers.off(scrollEvent); $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent); }; AttachBody.prototype._positionDropdown = function () { var $window = $(window); var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above'); var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below'); var newDirection = null; var offset = this.$container.offset(); offset.bottom = offset.top + this.$container.outerHeight(false); var container = { height: this.$container.outerHeight(false) }; container.top = offset.top; container.bottom = offset.top + container.height; var dropdown = { height: this.$dropdown.outerHeight(false) }; var viewport = { top: $window.scrollTop(), bottom: $window.scrollTop() + $window.height() }; var enoughRoomAbove = viewport.top < (offset.top - dropdown.height); var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height); var css = { left: offset.left, top: container.bottom }; // Determine what the parent element is to use for calciulating the offset var $offsetParent = this.$dropdownParent; // For statically positoned elements, we need to get the element // that is determining the offset if ($offsetParent.css('position') === 'static') { $offsetParent = $offsetParent.offsetParent(); } var parentOffset = $offsetParent.offset(); css.top -= parentOffset.top; css.left -= parentOffset.left; if (!isCurrentlyAbove && !isCurrentlyBelow) { newDirection = 'below'; } if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) { newDirection = 'above'; } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) { newDirection = 'below'; } if (newDirection == 'above' || (isCurrentlyAbove && newDirection !== 'below')) { css.top = container.top - parentOffset.top - dropdown.height; } if (newDirection != null) { this.$dropdown .removeClass('select2-dropdown--below select2-dropdown--above') .addClass('select2-dropdown--' + newDirection); this.$container .removeClass('select2-container--below select2-container--above') .addClass('select2-container--' + newDirection); } this.$dropdownContainer.css(css); }; AttachBody.prototype._resizeDropdown = function () { var css = { width: this.$container.outerWidth(false) + 'px' }; if (this.options.get('dropdownAutoWidth')) { css.minWidth = css.width; css.position = 'relative'; css.width = 'auto'; } this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { this.$dropdownContainer.appendTo(this.$dropdownParent); this._positionDropdown(); this._resizeDropdown(); }; return AttachBody; }); S2.define('select2/dropdown/minimumResultsForSearch',[ ], function () { function countResults (data) { var count = 0; for (var d = 0; d < data.length; d++) { var item = data[d]; if (item.children) { count += countResults(item.children); } else { count++; } } return count; } function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { this.minimumResultsForSearch = options.get('minimumResultsForSearch'); if (this.minimumResultsForSearch < 0) { this.minimumResultsForSearch = Infinity; } decorated.call(this, $element, options, dataAdapter); } MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { if (countResults(params.data.results) < this.minimumResultsForSearch) { return false; } return decorated.call(this, params); }; return MinimumResultsForSearch; }); S2.define('select2/dropdown/selectOnClose',[ ], function () { function SelectOnClose () { } SelectOnClose.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('close', function (params) { self._handleSelectOnClose(params); }); }; SelectOnClose.prototype._handleSelectOnClose = function (_, params) { if (params && params.originalSelect2Event != null) { var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or // unselect event if (event._type === 'select' || event._type === 'unselect') { return; } } var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results if ($highlightedResults.length < 1) { return; } var data = $highlightedResults.data('data'); // Don't re-select already selected resulte if ( (data.element != null && data.element.selected) || (data.element == null && data.selected) ) { return; } this.trigger('select', { data: data }); }; return SelectOnClose; }); S2.define('select2/dropdown/closeOnSelect',[ ], function () { function CloseOnSelect () { } CloseOnSelect.prototype.bind = function (decorated, container, $container) { var self = this; decorated.call(this, container, $container); container.on('select', function (evt) { self._selectTriggered(evt); }); container.on('unselect', function (evt) { self._selectTriggered(evt); }); }; CloseOnSelect.prototype._selectTriggered = function (_, evt) { var originalEvent = evt.originalEvent; // Don't close if the control key is being held if (originalEvent && originalEvent.ctrlKey) { return; } this.trigger('close', { originalEvent: originalEvent, originalSelect2Event: evt }); }; return CloseOnSelect; }); S2.define('select2/i18n/en',[],function () { // English return { errorLoading: function () { return 'The results could not be loaded.'; }, inputTooLong: function (args) { var overChars = args.input.length - args.maximum; var message = 'Please delete ' + overChars + ' character'; if (overChars != 1) { message += 's'; } return message; }, inputTooShort: function (args) { var remainingChars = args.minimum - args.input.length; var message = 'Please enter ' + remainingChars + ' or more characters'; return message; }, loadingMore: function () { return 'Loading more results…'; }, maximumSelected: function (args) { var message = 'You can only select ' + args.maximum + ' item'; if (args.maximum != 1) { message += 's'; } return message; }, noResults: function () { return 'No results found'; }, searching: function () { return 'Searching…'; } }; }); S2.define('select2/defaults',[ 'jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en' ], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) { function Defaults () { this.reset(); } Defaults.prototype.apply = function (options) { options = $.extend(true, {}, this.defaults, options); if (options.dataAdapter == null) { if (options.ajax != null) { options.dataAdapter = AjaxData; } else if (options.data != null) { options.dataAdapter = ArrayData; } else { options.dataAdapter = SelectData; } if (options.minimumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MinimumInputLength ); } if (options.maximumInputLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumInputLength ); } if (options.maximumSelectionLength > 0) { options.dataAdapter = Utils.Decorate( options.dataAdapter, MaximumSelectionLength ); } if (options.tags) { options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags); } if (options.tokenSeparators != null || options.tokenizer != null) { options.dataAdapter = Utils.Decorate( options.dataAdapter, Tokenizer ); } if (options.query != null) { var Query = require(options.amdBase + 'compat/query'); options.dataAdapter = Utils.Decorate( options.dataAdapter, Query ); } if (options.initSelection != null) { var InitSelection = require(options.amdBase + 'compat/initSelection'); options.dataAdapter = Utils.Decorate( options.dataAdapter, InitSelection ); } } if (options.resultsAdapter == null) { options.resultsAdapter = ResultsList; if (options.ajax != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, InfiniteScroll ); } if (options.placeholder != null) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, HidePlaceholder ); } if (options.selectOnClose) { options.resultsAdapter = Utils.Decorate( options.resultsAdapter, SelectOnClose ); } } if (options.dropdownAdapter == null) { if (options.multiple) { options.dropdownAdapter = Dropdown; } else { var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch); options.dropdownAdapter = SearchableDropdown; } if (options.minimumResultsForSearch !== 0) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, MinimumResultsForSearch ); } if (options.closeOnSelect) { options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, CloseOnSelect ); } if ( options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null ) { var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, DropdownCSS ); } options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody ); } if (options.selectionAdapter == null) { if (options.multiple) { options.selectionAdapter = MultipleSelection; } else { options.selectionAdapter = SingleSelection; } // Add the placeholder mixin if a placeholder was specified if (options.placeholder != null) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, Placeholder ); } if (options.allowClear) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, AllowClear ); } if (options.multiple) { options.selectionAdapter = Utils.Decorate( options.selectionAdapter, SelectionSearch ); } if ( options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null ) { var ContainerCSS = require(options.amdBase + 'compat/containerCss'); options.selectionAdapter = Utils.Decorate( options.selectionAdapter, ContainerCSS ); } options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay ); } if (typeof options.language === 'string') { // Check if the language is specified with a region if (options.language.indexOf('-') > 0) { // Extract the region information if it is included var languageParts = options.language.split('-'); var baseLanguage = languageParts[0]; options.language = [options.language, baseLanguage]; } else { options.language = [options.language]; } } if ($.isArray(options.language)) { var languages = new Translation(); options.language.push('en'); var languageNames = options.language; for (var l = 0; l < languageNames.length; l++) { var name = languageNames[l]; var language = {}; try { // Try to load it with the original name language = Translation.loadPath(name); } catch (e) { try { // If we couldn't load it, check if it wasn't the full path name = this.defaults.amdLanguageBase + name; language = Translation.loadPath(name); } catch (ex) { // The translation could not be loaded at all. Sometimes this is // because of a configuration problem, other times this can be // because of how Select2 helps load all possible translation files. if (options.debug && window.console && console.warn) { console.warn( 'Select2: The language file for "' + name + '" could not be ' + 'automatically loaded. A fallback will be used instead.' ); } continue; } } languages.extend(language); } options.translations = languages; } else { var baseTranslation = Translation.loadPath( this.defaults.amdLanguageBase + 'en' ); var customTranslation = new Translation(options.language); customTranslation.extend(baseTranslation); options.translations = customTranslation; } return options; }; Defaults.prototype.reset = function () { function stripDiacritics (text) { // Used 'uni range + named function' from http://jsperf.com/diacritics/18 function match(a) { return DIACRITICS[a] || a; } return text.replace(/[^\u0000-\u007E]/g, match); } function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(params.term) === '') { return data; } // Do a recursive check for options with children if (data.children && data.children.length > 0) { // Clone the data object if there are children // This is required as we modify the object to remove any non-matches var match = $.extend(true, {}, data); // Check each child of the option for (var c = data.children.length - 1; c >= 0; c--) { var child = data.children[c]; var matches = matcher(params, child); // If there wasn't a match, remove the object in the array if (matches == null) { match.children.splice(c, 1); } } // If any children matched, return the new object if (match.children.length > 0) { return match; } // If there were no matching children, check just the plain object return matcher(params, match); } var original = stripDiacritics(data.text).toUpperCase(); var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term if (original.indexOf(term) > -1) { return data; } // If it doesn't contain the term, don't return anything return null; } this.defaults = { amdBase: './', amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, minimumInputLength: 0, maximumInputLength: 0, maximumSelectionLength: 0, minimumResultsForSearch: 0, selectOnClose: false, sorter: function (data) { return data; }, templateResult: function (result) { return result.text; }, templateSelection: function (selection) { return selection.text; }, theme: 'default', width: 'resolve' }; }; Defaults.prototype.set = function (key, value) { var camelKey = $.camelCase(key); var data = {}; data[camelKey] = value; var convertedData = Utils._convertData(data); $.extend(this.defaults, convertedData); }; var defaults = new Defaults(); return defaults; }); S2.define('select2/options',[ 'require', 'jquery', './defaults', './utils' ], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; if ($element != null) { this.fromElement($element); } this.options = Defaults.apply(this.options); if ($element && $element.is('input')) { var InputCompat = require(this.get('amdBase') + 'compat/inputData'); this.options.dataAdapter = Utils.Decorate( this.options.dataAdapter, InputCompat ); } } Options.prototype.fromElement = function ($e) { var excludedData = ['select2']; if (this.options.multiple == null) { this.options.multiple = $e.prop('multiple'); } if (this.options.disabled == null) { this.options.disabled = $e.prop('disabled'); } if (this.options.language == null) { if ($e.prop('lang')) { this.options.language = $e.prop('lang').toLowerCase(); } else if ($e.closest('[lang]').prop('lang')) { this.options.language = $e.closest('[lang]').prop('lang'); } } if (this.options.dir == null) { if ($e.prop('dir')) { this.options.dir = $e.prop('dir'); } else if ($e.closest('[dir]').prop('dir')) { this.options.dir = $e.closest('[dir]').prop('dir'); } else { this.options.dir = 'ltr'; } } $e.prop('disabled', this.options.disabled); $e.prop('multiple', this.options.multiple); if ($e.data('select2Tags')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags="true"` attributes and will be ' + 'removed in future versions of Select2.' ); } $e.data('data', $e.data('select2Tags')); $e.data('tags', true); } if ($e.data('ajaxUrl')) { if (this.options.debug && window.console && console.warn) { console.warn( 'Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.' ); } $e.attr('ajax--url', $e.data('ajaxUrl')); $e.data('ajax--url', $e.data('ajaxUrl')); } var dataset = {}; // Prefer the element's `dataset` attribute if it exists // jQuery 1.x does not correctly handle data attributes with multiple dashes if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) { dataset = $.extend(true, {}, $e[0].dataset, $e.data()); } else { dataset = $e.data(); } var data = $.extend(true, {}, dataset); data = Utils._convertData(data); for (var key in data) { if ($.inArray(key, excludedData) > -1) { continue; } if ($.isPlainObject(this.options[key])) { $.extend(this.options[key], data[key]); } else { this.options[key] = data[key]; } } return this; }; Options.prototype.get = function (key) { return this.options[key]; }; Options.prototype.set = function (key, val) { this.options[key] = val; }; return Options; }); S2.define('select2/core',[ 'jquery', './options', './utils', './keys' ], function ($, Options, Utils, KEYS) { var Select2 = function ($element, options) { if ($element.data('select2') != null) { $element.data('select2').destroy(); } this.$element = $element; this.id = this._generateId($element); options = options || {}; this.options = new Options(options, $element); Select2.__super__.constructor.call(this); // Set up the tabindex var tabindex = $element.attr('tabindex') || 0; $element.data('old-tabindex', tabindex); $element.attr('tabindex', '-1'); // Set up containers and adapters var DataAdapter = this.options.get('dataAdapter'); this.dataAdapter = new DataAdapter($element, this.options); var $container = this.render(); this._placeContainer($container); var SelectionAdapter = this.options.get('selectionAdapter'); this.selection = new SelectionAdapter($element, this.options); this.$selection = this.selection.render(); this.selection.position(this.$selection, $container); var DropdownAdapter = this.options.get('dropdownAdapter'); this.dropdown = new DropdownAdapter($element, this.options); this.$dropdown = this.dropdown.render(); this.dropdown.position(this.$dropdown, $container); var ResultsAdapter = this.options.get('resultsAdapter'); this.results = new ResultsAdapter($element, this.options, this.dataAdapter); this.$results = this.results.render(); this.results.position(this.$results, this.$dropdown); // Bind events var self = this; // Bind the container to all of the adapters this._bindAdapters(); // Register any DOM event handlers this._registerDomEvents(); // Register any internal event handlers this._registerDataEvents(); this._registerSelectionEvents(); this._registerDropdownEvents(); this._registerResultsEvents(); this._registerEvents(); // Set the initial state this.dataAdapter.current(function (initialData) { self.trigger('selection:update', { data: initialData }); }); // Hide the original select $element.addClass('select2-hidden-accessible'); $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes this._syncAttributes(); $element.data('select2', this); }; Utils.Extend(Select2, Utils.Observable); Select2.prototype._generateId = function ($element) { var id = ''; if ($element.attr('id') != null) { id = $element.attr('id'); } else if ($element.attr('name') != null) { id = $element.attr('name') + '-' + Utils.generateChars(2); } else { id = Utils.generateChars(4); } id = id.replace(/(:|\.|\[|\]|,)/g, ''); id = 'select2-' + id; return id; }; Select2.prototype._placeContainer = function ($container) { $container.insertAfter(this.$element); var width = this._resolveWidth(this.$element, this.options.get('width')); if (width != null) { $container.css('width', width); } }; Select2.prototype._resolveWidth = function ($element, method) { var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if (method == 'resolve') { var styleWidth = this._resolveWidth($element, 'style'); if (styleWidth != null) { return styleWidth; } return this._resolveWidth($element, 'element'); } if (method == 'element') { var elementWidth = $element.outerWidth(false); if (elementWidth <= 0) { return 'auto'; } return elementWidth + 'px'; } if (method == 'style') { var style = $element.attr('style'); if (typeof(style) !== 'string') { return null; } var attrs = style.split(';'); for (var i = 0, l = attrs.length; i < l; i = i + 1) { var attr = attrs[i].replace(/\s/g, ''); var matches = attr.match(WIDTH); if (matches !== null && matches.length >= 1) { return matches[1]; } } return null; } return method; }; Select2.prototype._bindAdapters = function () { this.dataAdapter.bind(this, this.$container); this.selection.bind(this, this.$container); this.dropdown.bind(this, this.$container); this.results.bind(this, this.$container); }; Select2.prototype._registerDomEvents = function () { var self = this; this.$element.on('change.select2', function () { self.dataAdapter.current(function (data) { self.trigger('selection:update', { data: data }); }); }); this.$element.on('focus.select2', function (evt) { self.trigger('focus', evt); }); this._syncA = Utils.bind(this._syncAttributes, this); this._syncS = Utils.bind(this._syncSubtree, this); if (this.$element[0].attachEvent) { this.$element[0].attachEvent('onpropertychange', this._syncA); } var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver ; if (observer != null) { this._observer = new observer(function (mutations) { $.each(mutations, self._syncA); $.each(mutations, self._syncS); }); this._observer.observe(this.$element[0], { attributes: true, childList: true, subtree: false }); } else if (this.$element[0].addEventListener) { this.$element[0].addEventListener( 'DOMAttrModified', self._syncA, false ); this.$element[0].addEventListener( 'DOMNodeInserted', self._syncS, false ); this.$element[0].addEventListener( 'DOMNodeRemoved', self._syncS, false ); } }; Select2.prototype._registerDataEvents = function () { var self = this; this.dataAdapter.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerSelectionEvents = function () { var self = this; var nonRelayEvents = ['toggle', 'focus']; this.selection.on('toggle', function () { self.toggleDropdown(); }); this.selection.on('focus', function (params) { self.focus(params); }); this.selection.on('*', function (name, params) { if ($.inArray(name, nonRelayEvents) !== -1) { return; } self.trigger(name, params); }); }; Select2.prototype._registerDropdownEvents = function () { var self = this; this.dropdown.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerResultsEvents = function () { var self = this; this.results.on('*', function (name, params) { self.trigger(name, params); }); }; Select2.prototype._registerEvents = function () { var self = this; this.on('open', function () { self.$container.addClass('select2-container--open'); }); this.on('close', function () { self.$container.removeClass('select2-container--open'); }); this.on('enable', function () { self.$container.removeClass('select2-container--disabled'); }); this.on('disable', function () { self.$container.addClass('select2-container--disabled'); }); this.on('blur', function () { self.$container.removeClass('select2-container--focus'); }); this.on('query', function (params) { if (!self.isOpen()) { self.trigger('open', {}); } this.dataAdapter.query(params, function (data) { self.trigger('results:all', { data: data, query: params }); }); }); this.on('query:append', function (params) { this.dataAdapter.query(params, function (data) { self.trigger('results:append', { data: data, query: params }); }); }); this.on('keypress', function (evt) { var key = evt.which; if (self.isOpen()) { if (key === KEYS.ESC || key === KEYS.TAB || (key === KEYS.UP && evt.altKey)) { self.close(); evt.preventDefault(); } else if (key === KEYS.ENTER) { self.trigger('results:select', {}); evt.preventDefault(); } else if ((key === KEYS.SPACE && evt.ctrlKey)) { self.trigger('results:toggle', {}); evt.preventDefault(); } else if (key === KEYS.UP) { self.trigger('results:previous', {}); evt.preventDefault(); } else if (key === KEYS.DOWN) { self.trigger('results:next', {}); evt.preventDefault(); } } else { if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN && evt.altKey)) { self.open(); evt.preventDefault(); } } }); }; Select2.prototype._syncAttributes = function () { this.options.set('disabled', this.$element.prop('disabled')); if (this.options.get('disabled')) { if (this.isOpen()) { this.close(); } this.trigger('disable', {}); } else { this.trigger('enable', {}); } }; Select2.prototype._syncSubtree = function (evt, mutations) { var changed = false; var self = this; // Ignore any mutation events raised for elements that aren't options or // optgroups. This handles the case when the select element is destroyed if ( evt && evt.target && ( evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP' ) ) { return; } if (!mutations) { // If mutation events aren't supported, then we can only assume that the // change affected the selections changed = true; } else if (mutations.addedNodes && mutations.addedNodes.length > 0) { for (var n = 0; n < mutations.addedNodes.length; n++) { var node = mutations.addedNodes[n]; if (node.selected) { changed = true; } } } else if (mutations.removedNodes && mutations.removedNodes.length > 0) { changed = true; } // Only re-pull the data if we think there is a change if (changed) { this.dataAdapter.current(function (currentData) { self.trigger('selection:update', { data: currentData }); }); } }; /** * Override the trigger method to automatically trigger pre-events when * there are events that can be prevented. */ Select2.prototype.trigger = function (name, args) { var actualTrigger = Select2.__super__.trigger; var preTriggerMap = { 'open': 'opening', 'close': 'closing', 'select': 'selecting', 'unselect': 'unselecting' }; if (args === undefined) { args = {}; } if (name in preTriggerMap) { var preTriggerName = preTriggerMap[name]; var preTriggerArgs = { prevented: false, name: name, args: args }; actualTrigger.call(this, preTriggerName, preTriggerArgs); if (preTriggerArgs.prevented) { args.prevented = true; return; } } actualTrigger.call(this, name, args); }; Select2.prototype.toggleDropdown = function () { if (this.options.get('disabled')) { return; } if (this.isOpen()) { this.close(); } else { this.open(); } }; Select2.prototype.open = function () { if (this.isOpen()) { return; } this.trigger('query', {}); }; Select2.prototype.close = function () { if (!this.isOpen()) { return; } this.trigger('close', {}); }; Select2.prototype.isOpen = function () { return this.$container.hasClass('select2-container--open'); }; Select2.prototype.hasFocus = function () { return this.$container.hasClass('select2-container--focus'); }; Select2.prototype.focus = function (data) { // No need to re-trigger focus events if we are already focused if (this.hasFocus()) { return; } this.$container.addClass('select2-container--focus'); this.trigger('focus', {}); }; Select2.prototype.enable = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("enable")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop("disabled")' + ' instead.' ); } if (args == null || args.length === 0) { args = [true]; } var disabled = !args[0]; this.$element.prop('disabled', disabled); }; Select2.prototype.data = function () { if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) { console.warn( 'Select2: Data can no longer be set using `select2("data")`. You ' + 'should consider setting the value instead using `$element.val()`.' ); } var data = []; this.dataAdapter.current(function (currentData) { data = currentData; }); return data; }; Select2.prototype.val = function (args) { if (this.options.get('debug') && window.console && console.warn) { console.warn( 'Select2: The `select2("val")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.' ); } if (args == null || args.length === 0) { return this.$element.val(); } var newVal = args[0]; if ($.isArray(newVal)) { newVal = $.map(newVal, function (obj) { return obj.toString(); }); } this.$element.val(newVal).trigger('change'); }; Select2.prototype.destroy = function () { this.$container.remove(); if (this.$element[0].detachEvent) { this.$element[0].detachEvent('onpropertychange', this._syncA); } if (this._observer != null) { this._observer.disconnect(); this._observer = null; } else if (this.$element[0].removeEventListener) { this.$element[0] .removeEventListener('DOMAttrModified', this._syncA, false); this.$element[0] .removeEventListener('DOMNodeInserted', this._syncS, false); this.$element[0] .removeEventListener('DOMNodeRemoved', this._syncS, false); } this._syncA = null; this._syncS = null; this.$element.off('.select2'); this.$element.attr('tabindex', this.$element.data('old-tabindex')); this.$element.removeClass('select2-hidden-accessible'); this.$element.attr('aria-hidden', 'false'); this.$element.removeData('select2'); this.dataAdapter.destroy(); this.selection.destroy(); this.dropdown.destroy(); this.results.destroy(); this.dataAdapter = null; this.selection = null; this.dropdown = null; this.results = null; }; Select2.prototype.render = function () { var $container = $( '' + '' + '' + '' ); $container.attr('dir', this.options.get('dir')); this.$container = $container; this.$container.addClass('select2-container--' + this.options.get('theme')); $container.data('element', this.$element); return $container; }; return Select2; }); S2.define('jquery-mousewheel',[ 'jquery' ], function ($) { // Used to shim jQuery.mousewheel for non-full builds. return $; }); S2.define('jquery.select2',[ 'jquery', 'jquery-mousewheel', './select2/core', './select2/defaults' ], function ($, _, Select2, Defaults) { if ($.fn.select2 == null) { // All methods that should return the element var thisMethods = ['open', 'close', 'destroy']; $.fn.select2 = function (options) { options = options || {}; if (typeof options === 'object') { this.each(function () { var instanceOptions = $.extend(true, {}, options); var instance = new Select2($(this), instanceOptions); }); return this; } else if (typeof options === 'string') { var ret; var args = Array.prototype.slice.call(arguments, 1); this.each(function () { var instance = $(this).data('select2'); if (instance == null && window.console && console.error) { console.error( 'The select2(\'' + options + '\') method was called on an ' + 'element that is not using Select2.' ); } ret = instance[options].apply(instance, args); }); // Check if we should be returning `this` if ($.inArray(options, thisMethods) > -1) { return this; } return ret; } else { throw new Error('Invalid arguments for Select2: ' + options); } }; } if ($.fn.select2.defaults == null) { $.fn.select2.defaults = Defaults; } return Select2; }); // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, require: S2.require }; }()); // Autoload the jQuery bindings // We know that all of the modules exist above this, so we're safe var select2 = S2.require('jquery.select2'); // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; }));PK\ޓ]7inc/lib/target-rule/class-astra-target-rules-fields.phpnuW+A true, '_builtin' => true, ); $post_types = get_post_types( $args, 'objects' ); unset( $post_types['attachment'] ); $args['_builtin'] = false; $custom_post_type = get_post_types( $args, 'objects' ); $post_types = apply_filters( 'astra_location_rule_post_types', array_merge( $post_types, $custom_post_type ) ); $special_pages = array( 'special-404' => __( '404 Page', 'header-footer-elementor' ), 'special-search' => __( 'Search Page', 'header-footer-elementor' ), 'special-blog' => __( 'Blog / Posts Page', 'header-footer-elementor' ), 'special-front' => __( 'Front Page', 'header-footer-elementor' ), 'special-date' => __( 'Date Archive', 'header-footer-elementor' ), 'special-author' => __( 'Author Archive', 'header-footer-elementor' ), ); if ( class_exists( 'WooCommerce' ) ) { $special_pages['special-woo-shop'] = __( 'WooCommerce Shop Page', 'header-footer-elementor' ); } $selection_options = array( 'basic' => array( 'label' => __( 'Basic', 'header-footer-elementor' ), 'value' => array( 'basic-global' => __( 'Entire Website', 'header-footer-elementor' ), 'basic-singulars' => __( 'All Singulars', 'header-footer-elementor' ), 'basic-archives' => __( 'All Archives', 'header-footer-elementor' ), ), ), 'special-pages' => array( 'label' => __( 'Special Pages', 'header-footer-elementor' ), 'value' => $special_pages, ), ); $args = array( 'public' => true, ); $taxonomies = get_taxonomies( $args, 'objects' ); if ( ! empty( $taxonomies ) ) { foreach ( $taxonomies as $taxonomy ) { // skip post format taxonomy. if ( 'post_format' == $taxonomy->name ) { continue; } foreach ( $post_types as $post_type ) { $post_opt = self::get_post_target_rule_options( $post_type, $taxonomy ); if ( isset( $selection_options[ $post_opt['post_key'] ] ) ) { if ( ! empty( $post_opt['value'] ) && is_array( $post_opt['value'] ) ) { foreach ( $post_opt['value'] as $key => $value ) { if ( ! in_array( $value, $selection_options[ $post_opt['post_key'] ]['value'] ) ) { $selection_options[ $post_opt['post_key'] ]['value'][ $key ] = $value; } } } } else { $selection_options[ $post_opt['post_key'] ] = array( 'label' => $post_opt['label'], 'value' => $post_opt['value'], ); } } } } $selection_options['specific-target'] = array( 'label' => __( 'Specific Target', 'header-footer-elementor' ), 'value' => array( 'specifics' => __( 'Specific Pages / Posts / Taxanomies, etc.', 'header-footer-elementor' ), ), ); /** * Filter options displayed in the display conditions select field of Display conditions. * * @since 1.5.0 */ return apply_filters( 'astra_display_on_list', $selection_options ); } /** * Get user selection options. * * @return array */ public static function get_user_selections() { $selection_options = array( 'basic' => array( 'label' => __( 'Basic', 'header-footer-elementor' ), 'value' => array( 'all' => __( 'All', 'header-footer-elementor' ), 'logged-in' => __( 'Logged In', 'header-footer-elementor' ), 'logged-out' => __( 'Logged Out', 'header-footer-elementor' ), ), ), 'advanced' => array( 'label' => __( 'Advanced', 'header-footer-elementor' ), 'value' => array(), ), ); /* User roles */ $roles = get_editable_roles(); foreach ( $roles as $slug => $data ) { $selection_options['advanced']['value'][ $slug ] = $data['name']; } /** * Filter options displayed in the user select field of Display conditions. * * @since 1.5.0 */ return apply_filters( 'astra_user_roles_list', $selection_options ); } /** * Get location label by key. * * @param string $key Location option key. * @return string */ public static function get_location_by_key( $key ) { if ( ! isset( self::$location_selection ) || empty( self::$location_selection ) ) { self::$location_selection = self::get_location_selections(); } $location_selection = self::$location_selection; foreach ( $location_selection as $location_grp ) { if ( isset( $location_grp['value'][ $key ] ) ) { return $location_grp['value'][ $key ]; } } if ( strpos( $key, 'post-' ) !== false ) { $post_id = (int) str_replace( 'post-', '', $key ); return get_the_title( $post_id ); } // taxonomy options. if ( strpos( $key, 'tax-' ) !== false ) { $tax_id = (int) str_replace( 'tax-', '', $key ); $term = get_term( $tax_id ); if ( ! is_wp_error( $term ) ) { $term_taxonomy = ucfirst( str_replace( '_', ' ', $term->taxonomy ) ); return $term->name . ' - ' . $term_taxonomy; } else { return ''; } } return $key; } /** * Get user label by key. * * @param string $key User option key. * @return string */ public static function get_user_by_key( $key ) { if ( ! isset( self::$user_selection ) || empty( self::$user_selection ) ) { self::$user_selection = self::get_user_selections(); } $user_selection = self::$user_selection; if ( isset( $user_selection['basic']['value'][ $key ] ) ) { return $user_selection['basic']['value'][ $key ]; } elseif ( $user_selection['advanced']['value'][ $key ] ) { return $user_selection['advanced']['value'][ $key ]; } return $key; } /** * Ajax handeler to return the posts based on the search query. * When searching for the post/pages only titles are searched for. * * @since 1.0.0 */ function astra_get_posts_by_query() { $search_string = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : ''; $data = array(); $result = array(); $args = array( 'public' => true, '_builtin' => false, ); $output = 'names'; // names or objects, note names is the default. $operator = 'and'; // also supports 'or'. $post_types = get_post_types( $args, $output, $operator ); $post_types['Posts'] = 'post'; $post_types['Pages'] = 'page'; foreach ( $post_types as $key => $post_type ) { $data = array(); add_filter( 'posts_search', array( $this, 'search_only_titles' ), 10, 2 ); $query = new \WP_Query( array( 's' => $search_string, 'post_type' => $post_type, 'posts_per_page' => - 1, ) ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $title = get_the_title(); $title .= ( 0 != $query->post->post_parent ) ? ' (' . get_the_title( $query->post->post_parent ) . ')' : ''; $id = get_the_id(); $data[] = array( 'id' => 'post-' . $id, 'text' => $title, ); } } if ( is_array( $data ) && ! empty( $data ) ) { $result[] = array( 'text' => $key, 'children' => $data, ); } } $data = array(); wp_reset_postdata(); $args = array( 'public' => true, ); $output = 'objects'; // names or objects, note names is the default. $operator = 'and'; // also supports 'or'. $taxonomies = get_taxonomies( $args, $output, $operator ); foreach ( $taxonomies as $taxonomy ) { $terms = get_terms( $taxonomy->name, array( 'orderby' => 'count', 'hide_empty' => 0, 'name__like' => $search_string, ) ); $data = array(); $label = ucwords( $taxonomy->label ); if ( ! empty( $terms ) ) { foreach ( $terms as $term ) { $term_taxonomy_name = ucfirst( str_replace( '_', ' ', $taxonomy->name ) ); $data[] = array( 'id' => 'tax-' . $term->term_id, 'text' => $term->name . ' archive page', ); $data[] = array( 'id' => 'tax-' . $term->term_id . '-single-' . $taxonomy->name, 'text' => 'All singulars from ' . $term->name, ); } } if ( is_array( $data ) && ! empty( $data ) ) { $result[] = array( 'text' => $label, 'children' => $data, ); } } // return the result in json. wp_send_json( $result ); } /** * Return search results only by post title. * This is only run from astra_get_posts_by_query() * * @param (string) $search Search SQL for WHERE clause. * @param (WP_Query) $wp_query The current WP_Query object. * * @return (string) The Modified Search SQL for WHERE clause. */ function search_only_titles( $search, $wp_query ) { if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) { global $wpdb; $q = $wp_query->query_vars; $n = ! empty( $q['exact'] ) ? '' : '%'; $search = array(); foreach ( (array) $q['search_terms'] as $term ) { $search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n ); } if ( ! is_user_logged_in() ) { $search[] = "$wpdb->posts.post_password = ''"; } $search = ' AND ' . implode( ' AND ', $search ); } return $search; } /** * Function Name: admin_styles. * Function Description: admin_styles. */ public function admin_styles() { wp_enqueue_script( 'astra-select2', AST_TARGET_RULE_URI . 'select2.js', array( 'jquery' ), AST_TARGET_RULE_VER, true ); $wp_lang = get_locale(); $ast_lang = ''; if ( '' !== $wp_lang ) { $select2_lang = array( '' => 'en', 'hi_IN' => 'hi', 'mr' => 'mr', 'af' => 'af', 'ar' => 'ar', 'ary' => 'ar', 'as' => 'as', 'azb' => 'az', 'az' => 'az', 'bel' => 'be', 'bg_BG' => 'bg', 'bn_BD' => 'bn', 'bo' => 'bo', 'bs_BA' => 'bs', 'ca' => 'ca', 'ceb' => 'ceb', 'cs_CZ' => 'cs', 'cy' => 'cy', 'da_DK' => 'da', 'de_CH' => 'de', 'de_DE' => 'de', 'de_DE_formal' => 'de', 'de_CH_informal' => 'de', 'dzo' => 'dz', 'el' => 'el', 'en_CA' => 'en', 'en_GB' => 'en', 'en_AU' => 'en', 'en_NZ' => 'en', 'en_ZA' => 'en', 'eo' => 'eo', 'es_MX' => 'es', 'es_VE' => 'es', 'es_CR' => 'es', 'es_CO' => 'es', 'es_GT' => 'es', 'es_ES' => 'es', 'es_CL' => 'es', 'es_PE' => 'es', 'es_AR' => 'es', 'et' => 'et', 'eu' => 'eu', 'fa_IR' => 'fa', 'fi' => 'fi', 'fr_BE' => 'fr', 'fr_FR' => 'fr', 'fr_CA' => 'fr', 'gd' => 'gd', 'gl_ES' => 'gl', 'gu' => 'gu', 'haz' => 'haz', 'he_IL' => 'he', 'hr' => 'hr', 'hu_HU' => 'hu', 'hy' => 'hy', 'id_ID' => 'id', 'is_IS' => 'is', 'it_IT' => 'it', 'ja' => 'ja', 'jv_ID' => 'jv', 'ka_GE' => 'ka', 'kab' => 'kab', 'km' => 'km', 'ko_KR' => 'ko', 'ckb' => 'ku', 'lo' => 'lo', 'lt_LT' => 'lt', 'lv' => 'lv', 'mk_MK' => 'mk', 'ml_IN' => 'ml', 'mn' => 'mn', 'ms_MY' => 'ms', 'my_MM' => 'my', 'nb_NO' => 'nb', 'ne_NP' => 'ne', 'nl_NL' => 'nl', 'nl_NL_formal' => 'nl', 'nl_BE' => 'nl', 'nn_NO' => 'nn', 'oci' => 'oc', 'pa_IN' => 'pa', 'pl_PL' => 'pl', 'ps' => 'ps', 'pt_BR' => 'pt', 'pt_PT_ao90' => 'pt', 'pt_PT' => 'pt', 'rhg' => 'rhg', 'ro_RO' => 'ro', 'ru_RU' => 'ru', 'sah' => 'sah', 'si_LK' => 'si', 'sk_SK' => 'sk', 'sl_SI' => 'sl', 'sq' => 'sq', 'sr_RS' => 'sr', 'sv_SE' => 'sv', 'szl' => 'szl', 'ta_IN' => 'ta', 'te' => 'te', 'th' => 'th', 'tl' => 'tl', 'tr_TR' => 'tr', 'tt_RU' => 'tt', 'tah' => 'ty', 'ug_CN' => 'ug', 'uk' => 'uk', 'ur' => 'ur', 'uz_UZ' => 'uz', 'vi' => 'vi', 'zh_CN' => 'zh', 'zh_TW' => 'zh', 'zh_HK' => 'zh', ); if ( isset( $select2_lang[ $wp_lang ] ) && file_exists( AST_TARGET_RULE_DIR . 'i18n/' . $select2_lang[ $wp_lang ] . '.js' ) ) { $ast_lang = $select2_lang[ $wp_lang ]; wp_enqueue_script( 'astra-select2-lang', AST_TARGET_RULE_URI . 'i18n/' . $select2_lang[ $wp_lang ] . '.js', array( 'jquery', 'astra-select2', ), AST_TARGET_RULE_VER, true ); } } wp_register_script( 'astra-target-rule', AST_TARGET_RULE_URI . 'target-rule.js', array( 'jquery', 'astra-select2', ), AST_TARGET_RULE_VER, true ); wp_enqueue_script( 'astra-target-rule' ); wp_register_script( 'astra-user-role', AST_TARGET_RULE_URI . 'user-role.js', array( 'jquery', ), AST_TARGET_RULE_VER, true ); wp_enqueue_script( 'astra-user-role' ); wp_register_style( 'astra-select2', AST_TARGET_RULE_URI . 'select2.css', '', AST_TARGET_RULE_VER ); wp_enqueue_style( 'astra-select2' ); wp_register_style( 'astra-target-rule', AST_TARGET_RULE_URI . 'target-rule.css', '', AST_TARGET_RULE_VER ); wp_enqueue_style( 'astra-target-rule' ); /** * Registered localize vars */ $localize_vars = array( 'ast_lang' => $ast_lang, 'please_enter' => __( 'Please enter', 'header-footer-elementor' ), 'please_delete' => __( 'Please delete', 'header-footer-elementor' ), 'more_char' => __( 'or more characters', 'header-footer-elementor' ), 'character' => __( 'character', 'header-footer-elementor' ), 'loading' => __( 'Loading more results…', 'header-footer-elementor' ), 'only_select' => __( 'You can only select', 'header-footer-elementor' ), 'item' => __( 'item', 'header-footer-elementor' ), 'char_s' => __( 's', 'header-footer-elementor' ), 'no_result' => __( 'No results found', 'header-footer-elementor' ), 'searching' => __( 'Searching…', 'header-footer-elementor' ), 'not_loader' => __( 'The results could not be loaded.', 'header-footer-elementor' ), 'search' => __( 'Search pages / post / categories', 'header-footer-elementor' ), ); wp_localize_script( 'astra-select2', 'astRules', $localize_vars ); } /** * Function Name: target_rule_settings_field. * Function Description: Function to handle new input type. * * @param string $name string parameter. * @param string $settings string parameter. * @param string $value string parameter. */ public static function target_rule_settings_field( $name, $settings, $value ) { $input_name = $name; $type = isset( $settings['type'] ) ? $settings['type'] : 'target_rule'; $class = isset( $settings['class'] ) ? $settings['class'] : ''; $rule_type = isset( $settings['rule_type'] ) ? $settings['rule_type'] : 'target_rule'; $add_rule_label = isset( $settings['add_rule_label'] ) ? $settings['add_rule_label'] : __( 'Add Rule', 'header-footer-elementor' ); $saved_values = $value; $output = ''; if ( isset( self::$location_selection ) || empty( self::$location_selection ) ) { self::$location_selection = self::get_location_selections(); } $selection_options = self::$location_selection; /* WP Template Format */ $output .= ''; /* Wrapper Start */ $output .= '
        '; // $output .= ''; $output .= '
        '; $output .= self::generate_target_rule_selector( $rule_type, $selection_options, $input_name, $saved_values, $add_rule_label ); $output .= '
        '; /* Wrapper end */ $output .= '
        '; echo $output; } /** * Get target rules for generating the markup for rule selector. * * @since 1.0.0 * * @param object $post_type post type parameter. * @param object $taxonomy taxonomy for creating the target rule markup. */ public static function get_post_target_rule_options( $post_type, $taxonomy ) { $post_key = str_replace( ' ', '-', strtolower( $post_type->label ) ); $post_label = ucwords( $post_type->label ); $post_name = $post_type->name; $post_option = array(); /* translators: %s post label */ $all_posts = sprintf( __( 'All %s', 'header-footer-elementor' ), $post_label ); $post_option[ $post_name . '|all' ] = $all_posts; if ( 'pages' != $post_key ) { /* translators: %s post label */ $all_archive = sprintf( __( 'All %s Archive', 'header-footer-elementor' ), $post_label ); $post_option[ $post_name . '|all|archive' ] = $all_archive; } if ( in_array( $post_type->name, $taxonomy->object_type ) ) { $tax_label = ucwords( $taxonomy->label ); $tax_name = $taxonomy->name; /* translators: %s taxonomy label */ $tax_archive = sprintf( __( 'All %s Archive', 'header-footer-elementor' ), $tax_label ); $post_option[ $post_name . '|all|taxarchive|' . $tax_name ] = $tax_archive; } $post_output['post_key'] = $post_key; $post_output['label'] = $post_label; $post_output['value'] = $post_option; return $post_output; } /** * Generate markup for rendering the location selction. * * @since 1.0.0 * @param String $type Rule type display|exclude. * @param Array $selection_options Array for available selection fields. * @param String $input_name Input name for the settings. * @param Array $saved_values Array of saved valued. * @param String $add_rule_label Label for the Add rule button. * * @return HTML Markup for for the location settings. */ public static function generate_target_rule_selector( $type, $selection_options, $input_name, $saved_values, $add_rule_label ) { $output = '
        '; if ( ! is_array( $saved_values ) || ( is_array( $saved_values ) && empty( $saved_values ) ) ) { $saved_values = array(); $saved_values['rule'][0] = ''; $saved_values['specific'][0] = ''; } $index = 0; foreach ( $saved_values['rule'] as $index => $data ) { $output .= '
        '; /* Condition Selection */ $output .= ''; $output .= '
        '; $output .= ''; $output .= '
        '; $output .= '
        '; /* Specific page selection */ $output .= ''; } $output .= '
        '; /* Add new rule */ $output .= '
        '; $output .= '' . $add_rule_label . ''; $output .= '
        '; if ( 'display' == $type ) { /* Add new rule */ $output .= ''; } return $output; } /** * Get current layout. * Checks of the passed post id of the layout is to be displayed in the page. * * @param int $layout_id Layout ID. * @param string $option Option prefix. * * @return int|boolean If the current layout is to be displayed it will be returned back else a boolean will be passed. */ public function get_current_layout( $layout_id, $option ) { $post_id = ( ! is_404() && ! is_search() && ! is_archive() && ! is_home() ) ? get_the_id() : false; $current_layout = false; $is_exclude = false; $is_user_role = false; $display_on = get_post_meta( $layout_id, $option . '-location', true ); $exclude_on = get_post_meta( $layout_id, $option . '-exclusion', true ); $user_roles = get_post_meta( $layout_id, $option . '-users', true ); /* Parse Display On Condition */ $is_display = $this->parse_layout_display_condition( $post_id, $display_on ); if ( true == $is_display ) { /* Parse Exclude On Condition */ $is_exclude = $this->parse_layout_display_condition( $post_id, $exclude_on ); /* Parse User Role Condition */ $is_user_role = $this->parse_user_role_condition( $post_id, $user_roles ); } if ( $is_display && ! $is_exclude && $is_user_role ) { $current_layout = $layout_id; } // filter target page settings. $current_layout = apply_filters( 'astra_target_page_settings', $current_layout, $layout_id ); return $current_layout; } /** * Checks for the display condition for the current page/ * * @param int $post_id Current post ID. * @param array $rules Array of rules Display on | Exclude on. * * @return boolean Returns true or false depending on if the $rules match for the current page and the layout is to be displayed. */ public function parse_layout_display_condition( $post_id, $rules ) { $display = false; $current_post_type = get_post_type( $post_id ); if ( isset( $rules['rule'] ) && is_array( $rules['rule'] ) && ! empty( $rules['rule'] ) ) { foreach ( $rules['rule'] as $key => $rule ) { if ( strrpos( $rule, 'all' ) !== false ) { $rule_case = 'all'; } else { $rule_case = $rule; } switch ( $rule_case ) { case 'basic-global': $display = true; break; case 'basic-singulars': if ( is_singular() ) { $display = true; } break; case 'basic-archives': if ( is_archive() ) { $display = true; } break; case 'special-404': if ( is_404() ) { $display = true; } break; case 'special-search': if ( is_search() ) { $display = true; } break; case 'special-blog': if ( is_home() ) { $display = true; } break; case 'special-front': if ( is_front_page() ) { $display = true; } break; case 'special-date': if ( is_date() ) { $display = true; } break; case 'special-author': if ( is_author() ) { $display = true; } break; case 'special-woo-shop': if ( function_exists( 'is_shop' ) && is_shop() ) { $display = true; } break; case 'all': $rule_data = explode( '|', $rule ); $post_type = isset( $rule_data[0] ) ? $rule_data[0] : false; $archieve_type = isset( $rule_data[2] ) ? $rule_data[2] : false; $taxonomy = isset( $rule_data[3] ) ? $rule_data[3] : false; if ( false === $archieve_type ) { $current_post_type = get_post_type( $post_id ); if ( false !== $post_id && $current_post_type == $post_type ) { $display = true; } } else { if ( is_archive() ) { $current_post_type = get_post_type(); if ( $current_post_type == $post_type ) { if ( 'archive' == $archieve_type ) { $display = true; } elseif ( 'taxarchive' == $archieve_type ) { $obj = get_queried_object(); $current_taxonomy = ''; if ( '' !== $obj && null !== $obj ) { $current_taxonomy = $obj->taxonomy; } if ( $current_taxonomy == $taxonomy ) { $display = true; } } } } } break; case 'specifics': if ( isset( $rules['specific'] ) && is_array( $rules['specific'] ) ) { foreach ( $rules['specific'] as $specific_page ) { $specific_data = explode( '-', $specific_page ); $specific_post_type = isset( $specific_data[0] ) ? $specific_data[0] : false; $specific_post_id = isset( $specific_data[1] ) ? $specific_data[1] : false; if ( 'post' == $specific_post_type ) { if ( $specific_post_id == $post_id ) { $display = true; } } elseif ( isset( $specific_data[2] ) && ( 'single' == $specific_data[2] ) && 'tax' == $specific_post_type ) { if ( is_singular() ) { $term_details = get_term( $specific_post_id ); if ( isset( $term_details->taxonomy ) ) { $has_term = has_term( (int) $specific_post_id, $term_details->taxonomy, $post_id ); if ( $has_term ) { $display = true; } } } } elseif ( 'tax' == $specific_post_type ) { $tax_id = get_queried_object_id(); if ( $specific_post_id == $tax_id ) { $display = true; } } } } break; default: break; } if ( $display ) { break; } } } return $display; } /** * Function Name: target_user_role_settings_field. * Function Description: Function to handle new input type. * * @param string $name string parameter. * @param string $settings string parameter. * @param string $value string parameter. */ public static function target_user_role_settings_field( $name, $settings, $value ) { $input_name = $name; $type = isset( $settings['type'] ) ? $settings['type'] : 'target_rule'; $class = isset( $settings['class'] ) ? $settings['class'] : ''; $rule_type = isset( $settings['rule_type'] ) ? $settings['rule_type'] : 'target_rule'; $add_rule_label = isset( $settings['add_rule_label'] ) ? $settings['add_rule_label'] : __( 'Add Rule', 'header-footer-elementor' ); $saved_values = $value; $output = ''; if ( ! isset( self::$user_selection ) || empty( self::$user_selection ) ) { self::$user_selection = self::get_user_selections(); } $selection_options = self::$user_selection; /* WP Template Format */ $output .= ''; if ( ! is_array( $saved_values ) || ( is_array( $saved_values ) && empty( $saved_values ) ) ) { $saved_values = array(); $saved_values[0] = ''; } $index = 0; $output .= '
        '; $output .= '
        '; $output .= '
        '; foreach ( $saved_values as $index => $data ) { $output .= '
        '; $output .= ''; /* Condition Selection */ $output .= '
        '; $output .= ''; $output .= '
        '; $output .= '
        '; } $output .= '
        '; /* Add new rule */ $output .= '
        '; $output .= '' . $add_rule_label . ''; $output .= '
        '; $output .= '
        '; $output .= '
        '; echo $output; } /** * Parse user role condition. * * @since 1.0.0 * @param int $post_id Post ID. * @param Array $rules Current user rules. * * @return boolean True = user condition passes. False = User condition does not pass. */ public function parse_user_role_condition( $post_id, $rules ) { $show_popup = true; if ( is_array( $rules ) && ! empty( $rules ) ) { $show_popup = false; foreach ( $rules as $i => $rule ) { switch ( $rule ) { case '': case 'all': $show_popup = true; break; case 'logged-in': if ( is_user_logged_in() ) { $show_popup = true; } break; case 'logged-out': if ( ! is_user_logged_in() ) { $show_popup = true; } break; default: if ( is_user_logged_in() ) { $current_user = wp_get_current_user(); if ( isset( $current_user->roles ) && is_array( $current_user->roles ) && in_array( $rule, $current_user->roles ) ) { $show_popup = true; } } break; } if ( $show_popup ) { break; } } } return $show_popup; } /** * Get current page type * * @since 1.0.0 * * @return string Page Type. */ public function get_current_page_type() { if ( null === self::$current_page_type ) { $page_type = ''; $current_id = false; if ( is_404() ) { $page_type = 'is_404'; } elseif ( is_search() ) { $page_type = 'is_search'; } elseif ( is_archive() ) { $page_type = 'is_archive'; if ( is_category() || is_tag() || is_tax() ) { $page_type = 'is_tax'; } elseif ( is_date() ) { $page_type = 'is_date'; } elseif ( is_author() ) { $page_type = 'is_author'; } elseif ( function_exists( 'is_shop' ) && is_shop() ) { $page_type = 'is_woo_shop_page'; } } elseif ( is_home() ) { $page_type = 'is_home'; } elseif ( is_front_page() ) { $page_type = 'is_front_page'; $current_id = get_the_id(); } elseif ( is_singular() ) { $page_type = 'is_singular'; $current_id = get_the_id(); } else { $current_id = get_the_id(); } self::$current_page_data['ID'] = $current_id; self::$current_page_type = $page_type; } return self::$current_page_type; } /** * Get posts by conditions * * @since 1.0.0 * @param string $post_type Post Type. * @param array $option meta option name. * * @return object Posts. */ public function get_posts_by_conditions( $post_type, $option ) { global $wpdb; global $post; $post_type = $post_type ? esc_sql( $post_type ) : esc_sql( $post->post_type ); if ( is_array( self::$current_page_data ) && isset( self::$current_page_data[ $post_type ] ) ) { return apply_filters( 'astra_get_display_posts_by_conditions', self::$current_page_data[ $post_type ], $post_type ); } $current_page_type = $this->get_current_page_type(); self::$current_page_data[ $post_type ] = array(); $option['current_post_id'] = self::$current_page_data['ID']; $meta_header = self::get_meta_option_post( $post_type, $option ); /* Meta option is enabled */ if ( false === $meta_header ) { $current_post_type = esc_sql( get_post_type() ); $current_post_id = false; $q_obj = get_queried_object(); $location = isset( $option['location'] ) ? esc_sql( $option['location'] ) : ''; $query = "SELECT p.ID, pm.meta_value FROM {$wpdb->postmeta} as pm INNER JOIN {$wpdb->posts} as p ON pm.post_id = p.ID WHERE pm.meta_key = '{$location}' AND p.post_type = '{$post_type}' AND p.post_status = 'publish'"; $orderby = ' ORDER BY p.post_date DESC'; /* Entire Website */ $meta_args = "pm.meta_value LIKE '%\"basic-global\"%'"; switch ( $current_page_type ) { case 'is_404': $meta_args .= " OR pm.meta_value LIKE '%\"special-404\"%'"; break; case 'is_search': $meta_args .= " OR pm.meta_value LIKE '%\"special-search\"%'"; break; case 'is_archive': case 'is_tax': case 'is_date': case 'is_author': $meta_args .= " OR pm.meta_value LIKE '%\"basic-archives\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"{$current_post_type}|all|archive\"%'"; if ( 'is_tax' == $current_page_type && ( is_category() || is_tag() || is_tax() ) ) { if ( is_object( $q_obj ) ) { $meta_args .= " OR pm.meta_value LIKE '%\"{$current_post_type}|all|taxarchive|{$q_obj->taxonomy}\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"tax-{$q_obj->term_id}\"%'"; } } elseif ( 'is_date' == $current_page_type ) { $meta_args .= " OR pm.meta_value LIKE '%\"special-date\"%'"; } elseif ( 'is_author' == $current_page_type ) { $meta_args .= " OR pm.meta_value LIKE '%\"special-author\"%'"; } break; case 'is_home': $meta_args .= " OR pm.meta_value LIKE '%\"special-blog\"%'"; break; case 'is_front_page': $current_id = esc_sql( get_the_id() ); $current_post_id = $current_id; $meta_args .= " OR pm.meta_value LIKE '%\"special-front\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"{$current_post_type}|all\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"post-{$current_id}\"%'"; break; case 'is_singular': $current_id = esc_sql( get_the_id() ); $current_post_id = $current_id; $meta_args .= " OR pm.meta_value LIKE '%\"basic-singulars\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"{$current_post_type}|all\"%'"; $meta_args .= " OR pm.meta_value LIKE '%\"post-{$current_id}\"%'"; $taxonomies = get_object_taxonomies( $q_obj->post_type ); $terms = wp_get_post_terms( $q_obj->ID, $taxonomies ); foreach ( $terms as $key => $term ) { $meta_args .= " OR pm.meta_value LIKE '%\"tax-{$term->term_id}-single-{$term->taxonomy}\"%'"; } break; case 'is_woo_shop_page': $meta_args .= " OR pm.meta_value LIKE '%\"special-woo-shop\"%'"; break; case '': $current_post_id = get_the_id(); break; } // Ignore the PHPCS warning about constant declaration. // @codingStandardsIgnoreStart $posts = $wpdb->get_results( $query . ' AND (' . $meta_args . ')' . $orderby ); // @codingStandardsIgnoreEnd foreach ( $posts as $local_post ) { self::$current_page_data[ $post_type ][ $local_post->ID ] = array( 'id' => $local_post->ID, 'location' => unserialize( $local_post->meta_value ), ); } $option['current_post_id'] = $current_post_id; $this->remove_exclusion_rule_posts( $post_type, $option ); $this->remove_user_rule_posts( $post_type, $option ); } return apply_filters( 'astra_get_display_posts_by_conditions', self::$current_page_data[ $post_type ], $post_type ); } /** * Remove exclusion rule posts. * * @since 1.0.0 * @param string $post_type Post Type. * @param array $option meta option name. */ public function remove_exclusion_rule_posts( $post_type, $option ) { $exclusion = isset( $option['exclusion'] ) ? $option['exclusion'] : ''; $current_post_id = isset( $option['current_post_id'] ) ? $option['current_post_id'] : false; foreach ( self::$current_page_data[ $post_type ] as $c_post_id => $c_data ) { $exclusion_rules = get_post_meta( $c_post_id, $exclusion, true ); $is_exclude = $this->parse_layout_display_condition( $current_post_id, $exclusion_rules ); if ( $is_exclude ) { unset( self::$current_page_data[ $post_type ][ $c_post_id ] ); } } } /** * Remove user rule posts. * * @since 1.0.0 * @param int $post_type Post Type. * @param array $option meta option name. */ public function remove_user_rule_posts( $post_type, $option ) { $users = isset( $option['users'] ) ? $option['users'] : ''; $current_post_id = isset( $option['current_post_id'] ) ? $option['current_post_id'] : false; foreach ( self::$current_page_data[ $post_type ] as $c_post_id => $c_data ) { $user_rules = get_post_meta( $c_post_id, $users, true ); $is_user = $this->parse_user_role_condition( $current_post_id, $user_rules ); if ( ! $is_user ) { unset( self::$current_page_data[ $post_type ][ $c_post_id ] ); } } } /** * Same display_on notice. * * @since 1.0.0 * @param int $post_type Post Type. * @param array $option meta option name. */ public static function same_display_on_notice( $post_type, $option ) { global $wpdb; global $post; $all_rules = array(); $already_set_rule = array(); $location = isset( $option['location'] ) ? $option['location'] : ''; $all_headers = $wpdb->get_results( $wpdb->prepare( "SELECT p.ID, p.post_title, pm.meta_value FROM {$wpdb->postmeta} as pm INNER JOIN {$wpdb->posts} as p ON pm.post_id = p.ID WHERE pm.meta_key = %s AND p.post_type = %s AND p.post_status = 'publish'", $location, $post_type ) ); foreach ( $all_headers as $header ) { $location_rules = unserialize( $header->meta_value ); if ( is_array( $location_rules ) && isset( $location_rules['rule'] ) ) { foreach ( $location_rules['rule'] as $key => $rule ) { if ( ! isset( $all_rules[ $rule ] ) ) { $all_rules[ $rule ] = array(); } if ( 'specifics' == $rule && isset( $location_rules['specific'] ) && is_array( $location_rules['specific'] ) ) { foreach ( $location_rules['specific'] as $s_index => $s_value ) { $all_rules[ $rule ][ $s_value ][ $header->ID ] = array( 'ID' => $header->ID, 'name' => $header->post_title, ); } } else { $all_rules[ $rule ][ $header->ID ] = array( 'ID' => $header->ID, 'name' => $header->post_title, ); } } } } if ( empty( $post ) ) { return; } $current_post_data = get_post_meta( $post->ID, $location, true ); if ( is_array( $current_post_data ) && isset( $current_post_data['rule'] ) ) { foreach ( $current_post_data['rule'] as $c_key => $c_rule ) { if ( ! isset( $all_rules[ $c_rule ] ) ) { continue; } if ( 'specifics' === $c_rule ) { foreach ( $current_post_data['specific'] as $s_index => $s_id ) { if ( ! isset( $all_rules[ $c_rule ][ $s_id ] ) ) { continue; } foreach ( $all_rules[ $c_rule ][ $s_id ] as $p_id => $data ) { if ( $p_id == $post->ID ) { continue; } $already_set_rule[] = $data['name']; } } } else { foreach ( $all_rules[ $c_rule ] as $p_id => $data ) { if ( $p_id == $post->ID ) { continue; } $already_set_rule[] = $data['name']; } } } } if ( ! empty( $already_set_rule ) ) { add_action( 'admin_notices', function() use ( $already_set_rule ) { $rule_set_titles = '' . implode( ',', $already_set_rule ) . ''; /* translators: %s post title. */ $notice = sprintf( __( 'The same display setting is already exist in %s post/s.', 'header-footer-elementor' ), $rule_set_titles ); echo '
        '; echo '

        ' . $notice . '

        '; echo '
        '; } ); } } /** * Meta option post. * * @since 1.0.0 * @param string $post_type Post Type. * @param array $option meta option name. * * @return false | object */ public static function get_meta_option_post( $post_type, $option ) { $page_meta = ( isset( $option['page_meta'] ) && '' != $option['page_meta'] ) ? $option['page_meta'] : false; if ( false !== $page_meta ) { $current_post_id = isset( $option['current_post_id'] ) ? $option['current_post_id'] : false; $meta_id = get_post_meta( $current_post_id, $option['page_meta'], true ); if ( false !== $meta_id && '' != $meta_id ) { self::$current_page_data[ $post_type ][ $meta_id ] = array( 'id' => $meta_id, 'location' => '', ); return self::$current_page_data[ $post_type ]; } } return false; } /** * Get post selection. * * @since 1.0.0 * @param string $post_type Post Type. * * @return object Posts. */ public static function get_post_selection( $post_type ) { $query_args = array( 'post_type' => $post_type, 'posts_per_page' => -1, 'post_status' => 'publish', ); $all_headers = get_posts( $query_args ); $headers = array(); if ( ! empty( $all_headers ) ) { $headers = array( '' => __( 'Select', 'header-footer-elementor' ), ); foreach ( $all_headers as $i => $data ) { $headers[ $data->ID ] = $data->post_title; } } return $headers; } /** * Formated rule meta value to save. * * @since 1.0.0 * @param array $save_data PostData. * @param string $key varaible key. * * @return array Rule data. */ public static function get_format_rule_value( $save_data, $key ) { $meta_value = array(); if ( isset( $save_data[ $key ]['rule'] ) ) { $save_data[ $key ]['rule'] = array_unique( $save_data[ $key ]['rule'] ); if ( isset( $save_data[ $key ]['specific'] ) ) { $save_data[ $key ]['specific'] = array_unique( $save_data[ $key ]['specific'] ); } // Unset the specifics from rule. This will be readded conditionally in next condition. $index = array_search( '', $save_data[ $key ]['rule'] ); if ( false !== $index ) { unset( $save_data[ $key ]['rule'][ $index ] ); } $index = array_search( 'specifics', $save_data[ $key ]['rule'] ); if ( false !== $index ) { unset( $save_data[ $key ]['rule'][ $index ] ); // Only re-add the specifics key if there are specific rules added. if ( isset( $save_data[ $key ]['specific'] ) && is_array( $save_data[ $key ]['specific'] ) ) { array_push( $save_data[ $key ]['rule'], 'specifics' ); } } foreach ( $save_data[ $key ] as $meta_key => $value ) { if ( ! empty( $value ) ) { $meta_value[ $meta_key ] = array_map( 'esc_attr', $value ); } } if ( ! isset( $meta_value['rule'] ) || ! in_array( 'specifics', $meta_value['rule'] ) ) { $meta_value['specific'] = array(); } if ( empty( $meta_value['rule'] ) ) { $meta_value = array(); } } return $meta_value; } } /** * Kicking this off by calling 'get_instance()' method */ Astra_Target_Rules_Fields::get_instance(); PK\v*"inc/lib/target-rule/target-rule.jsnuW+A;(function ( $, window, undefined ) { var init_target_rule_select2 = function( selector ) { $(selector).astselect2({ placeholder: astRules.search, ajax: { url: ajaxurl, dataType: 'json', method: 'post', delay: 250, data: function (params) { return { q: params.term, // search term page: params.page, action: 'astra_get_posts_by_query' }; }, processResults: function (data) { // console.log(data); // console.log("inside"); // parse the results into the format expected by Select2. // since we are using custom formatting functions we do not need to // alter the remote JSON data return { results: data }; }, cache: true }, minimumInputLength: 2, language: astRules.ast_lang }); }; var update_target_rule_input = function(wrapper) { var rule_input = wrapper.find('.ast-target_rule-input'); var old_value = rule_input.val(); var new_value = []; wrapper.find('.astra-target-rule-condition').each(function(i) { var $this = $(this); var temp_obj = {}; var rule_condition = $this.find('select.target_rule-condition'); var specific_page = $this.find('select.target_rule-specific-page'); var rule_condition_val = rule_condition.val(); var specific_page_val = specific_page.val(); if ( '' != rule_condition_val ) { temp_obj = { type : rule_condition_val, specific: specific_page_val } new_value.push( temp_obj ); }; }) var rules_string = JSON.stringify( new_value ); rule_input.val( rules_string ); }; var update_close_button = function(wrapper) { type = wrapper.closest('.ast-target-rule-wrapper').attr('data-type'); rules = wrapper.find('.astra-target-rule-condition'); show_close = false; if ( 'display' == type ) { if ( rules.length > 1 ) { show_close = true; } }else{ show_close = true; } rules.each(function() { if ( show_close ) { jQuery(this).find('.target_rule-condition-delete').removeClass('ast-hidden'); }else{ jQuery(this).find('.target_rule-condition-delete').addClass('ast-hidden'); } }); }; var update_exclusion_button = function( force_show, force_hide ) { var display_on = $('.ast-target-rule-display-on-wrap'); var exclude_on = $('.ast-target-rule-exclude-on-wrap'); var exclude_field_wrap = exclude_on.closest('tr'); var add_exclude_block = display_on.find('.target_rule-add-exclusion-rule'); var exclude_conditions = exclude_on.find('.astra-target-rule-condition'); if ( true == force_hide ) { exclude_field_wrap.addClass( 'ast-hidden' ); add_exclude_block.removeClass( 'ast-hidden' ); }else if( true == force_show ){ exclude_field_wrap.removeClass( 'ast-hidden' ); add_exclude_block.addClass( 'ast-hidden' ); }else{ if ( 1 == exclude_conditions.length && '' == $(exclude_conditions[0]).find('select.target_rule-condition').val() ) { exclude_field_wrap.addClass( 'ast-hidden' ); add_exclude_block.removeClass( 'ast-hidden' ); }else{ exclude_field_wrap.removeClass( 'ast-hidden' ); add_exclude_block.addClass( 'ast-hidden' ); } } }; $(document).ready(function($) { jQuery( '.astra-target-rule-condition' ).each( function() { var $this = $( this ), condition = $this.find('select.target_rule-condition'), condition_val = condition.val(), specific_page = $this.next( '.target_rule-specific-page-wrap' ); if( 'specifics' == condition_val ) { specific_page.slideDown( 300 ); } } ); jQuery('select.target-rule-select2').each(function(index, el) { init_target_rule_select2( el ); }); jQuery('.ast-target-rule-selector-wrapper').each(function() { update_close_button( jQuery(this) ); }) /* Show hide exclusion button */ update_exclusion_button(); jQuery( document ).on( 'change', '.astra-target-rule-condition select.target_rule-condition' , function( e ) { var $this = jQuery(this), this_val = $this.val(), field_wrap = $this.closest('.ast-target-rule-wrapper'); if( 'specifics' == this_val ) { $this.closest( '.astra-target-rule-condition' ).next( '.target_rule-specific-page-wrap' ).slideDown( 300 ); } else { $this.closest( '.astra-target-rule-condition' ).next( '.target_rule-specific-page-wrap' ).slideUp( 300 ); } update_target_rule_input( field_wrap ); } ); jQuery( '.ast-target-rule-selector-wrapper' ).on( 'change', '.target-rule-select2', function(e) { var $this = jQuery( this ), field_wrap = $this.closest('.ast-target-rule-wrapper'); update_target_rule_input( field_wrap ); }); jQuery( '.ast-target-rule-selector-wrapper' ).on( 'click', '.target_rule-add-rule-wrap a', function(e) { e.preventDefault(); e.stopPropagation(); var $this = jQuery( this ), id = $this.attr( 'data-rule-id' ), new_id = parseInt(id) + 1, type = $this.attr( 'data-rule-type' ), rule_wrap = $this.closest('.ast-target-rule-selector-wrapper').find('.target_rule-builder-wrap'), template = wp.template( 'astra-target-rule-' + type + '-condition' ), field_wrap = $this.closest('.ast-target-rule-wrapper'); rule_wrap.append( template( { id : new_id, type : type } ) ); init_target_rule_select2( '.ast-target-rule-'+type+'-on .target-rule-select2' ); $this.attr( 'data-rule-id', new_id ); update_close_button( field_wrap ); }); jQuery( '.ast-target-rule-selector-wrapper' ).on( 'click', '.target_rule-condition-delete', function(e) { var $this = jQuery( this ), rule_condition = $this.closest('.astra-target-rule-condition'), field_wrap = $this.closest('.ast-target-rule-wrapper'); cnt = 0, data_type = field_wrap.attr( 'data-type' ), optionVal = $this.siblings('.target_rule-condition-wrap').children('.target_rule-condition').val(); if ( 'exclude' == data_type ) { if ( 1 === field_wrap.find('.target_rule-condition').length ) { field_wrap.find('.target_rule-condition').val(''); field_wrap.find('.target_rule-specific-page').val(''); field_wrap.find('.target_rule-condition').trigger('change'); update_exclusion_button( false, true ); }else{ $this.parent('.astra-target-rule-condition').next('.target_rule-specific-page-wrap').remove(); rule_condition.remove(); } } else { $this.parent('.astra-target-rule-condition').next('.target_rule-specific-page-wrap').remove(); rule_condition.remove(); } field_wrap.find('.astra-target-rule-condition').each(function(i) { var condition = jQuery( this ), old_rule_id = condition.attr('data-rule'), select_location = condition.find('.target_rule-condition'), select_specific = condition.find('.target_rule-specific-page'), location_name = select_location.attr( 'name' ); condition.attr( 'data-rule', i ); select_location.attr( 'name', location_name.replace('['+old_rule_id+']', '['+i+']') ); condition.removeClass('ast-target-rule-'+old_rule_id).addClass('ast-target-rule-'+i); cnt = i; }); field_wrap.find('.target_rule-add-rule-wrap a').attr( 'data-rule-id', cnt ) update_close_button( field_wrap ); update_target_rule_input( field_wrap ); }); jQuery( '.ast-target-rule-selector-wrapper' ).on( 'click', '.target_rule-add-exclusion-rule a', function(e) { e.preventDefault(); e.stopPropagation(); update_exclusion_button( true ); }); }); }(jQuery, window)); PK\iybx\;\;inc/lib/target-rule/select2.cssnuW+A.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} PK\ inc/lib/target-rule/user-role.jsnuW+A;(function ( $, window, undefined ) { var user_role_update_close_button = function(wrapper) { type = wrapper.closest('.ast-user-role-wrapper').attr('data-type'); rules = wrapper.find('.astra-user-role-condition'); show_close = false; if ( rules.length > 1 ) { show_close = true; } rules.each(function() { if ( show_close ) { jQuery(this).find('.user_role-condition-delete').removeClass('ast-hidden'); }else{ jQuery(this).find('.user_role-condition-delete').addClass('ast-hidden'); } }); }; $(document).ready(function($) { jQuery('.ast-user-role-selector-wrapper').each(function() { user_role_update_close_button( jQuery(this) ); }) jQuery( '.ast-user-role-selector-wrapper' ).on( 'click', '.user_role-add-rule-wrap a', function(e) { e.preventDefault(); e.stopPropagation(); var $this = jQuery( this ), id = $this.attr( 'data-rule-id' ), new_id = parseInt(id) + 1, rule_wrap = $this.closest('.ast-user-role-selector-wrapper').find('.user_role-builder-wrap'), template = wp.template( 'astra-user-role-condition' ), field_wrap = $this.closest('.ast-user-role-wrapper'); rule_wrap.append( template( { id : new_id } ) ); $this.attr( 'data-rule-id', new_id ); user_role_update_close_button( field_wrap ); }); jQuery( '.ast-user-role-selector-wrapper' ).on( 'click', '.user_role-condition-delete', function(e) { var $this = jQuery( this ), rule_condition = $this.closest('.astra-user-role-condition'), field_wrap = $this.closest('.ast-user-role-wrapper'); cnt = 0, data_type = field_wrap.attr( 'data-type' ), optionVal = $this.siblings('.user_role-condition-wrap').children('.user_role-condition').val(); rule_condition.remove(); field_wrap.find('.astra-user-role-condition').each(function(i) { var condition = jQuery( this ), old_rule_id = condition.attr('data-rule'), select_location = condition.find('.user_role-condition'), location_name = select_location.attr( 'name' ); condition.attr( 'data-rule', i ); select_location.attr( 'name', location_name.replace('['+old_rule_id+']', '['+i+']') ); condition.removeClass('ast-user-role-'+old_rule_id).addClass('ast-user-role-'+i); cnt = i; }); field_wrap.find('.user_role-add-rule-wrap a').attr( 'data-rule-id', cnt ) user_role_update_close_button( field_wrap ); }); }); }(jQuery, window));PK\W}inc/lib/target-rule/i18n/sv.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();PK\b3inc/lib/target-rule/i18n/fa.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();PK\>inc/lib/target-rule/i18n/id.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();PK\$g*""inc/lib/target-rule/i18n/hu.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();PK\xinc/lib/target-rule/i18n/is.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();PK\~K;;inc/lib/target-rule/i18n/en.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();PK\M&++#inc/lib/target-rule/i18n/sr-Cyrl.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();PK\kC!inc/lib/target-rule/i18n/zh-CN.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();PK\ *NNinc/lib/target-rule/i18n/af.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Verwyders asseblief "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Voer asseblief "+t+" of meer karakters";return n},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var t="Kies asseblief net "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"}}}),{define:e.define,require:e.require}})();PK\HVVinc/lib/target-rule/i18n/ko.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();PK\4c!inc/lib/target-rule/i18n/zh-TW.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();PK\  inc/lib/target-rule/i18n/vi.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+" ký tự";return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();PK\ZBͪinc/lib/target-rule/i18n/sr.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();PK\Էinc/lib/target-rule/i18n/he.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();PK\Qjinc/lib/target-rule/i18n/tr.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();PK\r Hinc/lib/target-rule/i18n/nb.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn "+t+" tegn til";return n+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();PK\;))inc/lib/target-rule/i18n/km.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})();PK\hu+inc/lib/target-rule/i18n/pl.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();PK\)Cdgginc/lib/target-rule/i18n/ru.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();PK\^Yllinc/lib/target-rule/i18n/it.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();PK\q_*ssinc/lib/target-rule/i18n/fr.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Supprimez "+t+" caractère"+(t>1)?"s":""},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Saisissez au moins "+t+" caractère"+(t>1)?"s":""},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1)?"s":""},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();PK\~ddinc/lib/target-rule/i18n/ar.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();PK\U=llinc/lib/target-rule/i18n/el.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();PK\4t_GGinc/lib/target-rule/i18n/hr.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();PK\inc/lib/target-rule/i18n/mk.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();PK\Ʌ]]inc/lib/target-rule/i18n/uk.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();PK\F5||inc/lib/target-rule/i18n/es.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();PK\Ώinc/lib/target-rule/i18n/bs.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bs",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();PK\pzzzinc/lib/target-rule/i18n/sl.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})();PK\)3binc/lib/target-rule/i18n/ps.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="د مهربانۍ لمخي "+t+" توری ړنګ کړئ";return t!=1&&(n=n.replace("توری","توري")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لږ تر لږه "+t+" يا ډېر توري وليکئ";return n},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(e){var t="تاسو يوازي "+e.maximum+" قلم په نښه کولای سی";return e.maximum!=1&&(t=t.replace("قلم","قلمونه")),t},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."}}}),{define:e.define,require:e.require}})();PK\Rinc/lib/target-rule/i18n/az.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();PK\ Y&((inc/lib/target-rule/i18n/da.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();PK\6 llinc/lib/target-rule/i18n/ca.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();PK\PPinc/lib/target-rule/i18n/ja.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();PK\jlĊinc/lib/target-rule/i18n/bg.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();PK\]~5inc/lib/target-rule/i18n/hy.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})();PK\U Qvvinc/lib/target-rule/i18n/gl.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();PK\F{LLinc/lib/target-rule/i18n/eu.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();PK\+:R[[inc/lib/target-rule/i18n/pt.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();PK\gg<inc/lib/target-rule/i18n/nl.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();PK\Tinc/lib/target-rule/i18n/lt.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();PK\Uvinc/lib/target-rule/i18n/cs.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadejte o jeden znak méně.":n<=4?"Prosím, zadejte o "+e(n,!0)+" znaky méně.":"Prosím, zadejte o "+n+" znaků méně."},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadejte ještě jeden znak.":n<=4?"Prosím, zadejte ještě další "+e(n,!0)+" znaky.":"Prosím, zadejte ještě dalších "+n+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku.":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky.":"Můžete zvolit maximálně "+n+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();PK\2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Pšosym lašuj "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Pšosym zapódaj nanejmjenjej "+r+" "+n(r,e)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(e){return"Móžoš jano "+e.maximum+" "+n(e.maximum,t)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"}}}),{define:e.define,require:e.require}})();PK\inc/lib/target-rule/i18n/et.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();PK\~Binc/lib/target-rule/i18n/ms.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();PK\5DGinc/lib/target-rule/i18n/sk.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();PK\Ainc/lib/target-rule/i18n/hsb.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hsb",[],function(){var e=["znamješko","znamješce","znamješka","znamješkow"],t=["zapisk","zapiskaj","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Prošu zhašej "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Prošu zapodaj znajmjeńša "+r+" "+n(r,e)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(e){return"Móžeš jenož "+e.maximum+" "+n(e.maximum,t)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"}}}),{define:e.define,require:e.require}})();PK\ZjUU!inc/lib/target-rule/i18n/pt-BR.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();PK\2hhinc/lib/target-rule/i18n/lv.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();PK\#inc/lib/target-rule/i18n/ro.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+" sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();PK\Yinc/lib/target-rule/i18n/fi.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})();PK\oBeeinc/lib/target-rule/i18n/hi.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();PK\y&inc/lib/target-rule/i18n/th.jsnuW+A/*! Select2 4.0.5 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();PK\a inc/lib/notices/notices.jsnuW+A/** * Customizer controls toggles * * @package Astra */ ( function( $ ) { /** * Helper class for the main Customizer interface. * * @since 1.0.0 * @class ASTCustomizer */ AstraNotices = { /** * Initializes our custom logic for the Customizer. * * @since 1.0.0 * @method init */ init: function() { this._bind(); }, /** * Binds events for the Astra Portfolio. * * @since 1.0.0 * @access private * @method _bind */ _bind: function() { $( document ).on('click', '.astra-notice-close', AstraNotices._dismissNoticeNew ); $( document ).on('click', '.astra-notice .notice-dismiss', AstraNotices._dismissNotice ); }, _dismissNotice: function( event ) { event.preventDefault(); var repeat_notice_after = $( this ).parents('.astra-notice').data( 'repeat-notice-after' ) || ''; var notice_id = $( this ).parents('.astra-notice').attr( 'id' ) || ''; AstraNotices._ajax( notice_id, repeat_notice_after ); }, _dismissNoticeNew: function( event ) { event.preventDefault(); var repeat_notice_after = $( this ).attr( 'data-repeat-notice-after' ) || ''; var notice_id = $( this ).parents('.astra-notice').attr( 'id' ) || ''; var $el = $( this ).parents('.astra-notice'); $el.fadeTo( 100, 0, function() { $el.slideUp( 100, function() { $el.remove(); }); }); AstraNotices._ajax( notice_id, repeat_notice_after ); var link = $( this ).attr( 'href' ) || ''; var target = $( this ).attr( 'target' ) || ''; if( '' !== link && '_blank' === target ) { window.open(link , '_blank'); } }, _ajax: function( notice_id, repeat_notice_after ) { if( '' === notice_id ) { return; } $.ajax({ url: ajaxurl, type: 'POST', data: { action : 'astra-notice-dismiss', notice_id : notice_id, repeat_notice_after : parseInt( repeat_notice_after ), nonce : astraNotices._notice_nonce }, }); } }; $( function() { AstraNotices.init(); } ); } )( jQuery ); PK\t!&!&'inc/lib/notices/class-astra-notices.phpnuW+A Create custom close notice link in the notice markup. E.g. * `` * It close the notice for 30 days. * * @package Astra Sites * @since 1.4.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! class_exists( 'Astra_Notices' ) ) : /** * Astra_Notices * * @since 1.4.0 */ class Astra_Notices { /** * Notices * * @access private * @var array Notices. * @since 1.4.0 */ private static $version = '1.1.5'; /** * Notices * * @access private * @var array Notices. * @since 1.4.0 */ private static $notices = array(); /** * Instance * * @access private * @var object Class object. * @since 1.4.0 */ private static $instance; /** * Initiator * * @since 1.4.0 * @return object initialized object of class. */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor * * @since 1.4.0 */ public function __construct() { add_action( 'admin_notices', array( $this, 'show_notices' ), 30 ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'wp_ajax_astra-notice-dismiss', array( $this, 'dismiss_notice' ) ); add_filter( 'wp_kses_allowed_html', array( $this, 'add_data_attributes' ), 10, 2 ); } /** * Filters and Returns a list of allowed tags and attributes for a given context. * * @param Array $allowedposttags Array of allowed tags. * @param String $context Context type (explicit). * @since 1.4.0 * @return Array */ public function add_data_attributes( $allowedposttags, $context ) { $allowedposttags['a']['data-repeat-notice-after'] = true; return $allowedposttags; } /** * Add Notice. * * @since 1.4.0 * @param array $args Notice arguments. * @return void */ public static function add_notice( $args = array() ) { self::$notices[] = $args; } /** * Dismiss Notice. * * @since 1.4.0 * @return void */ public function dismiss_notice() { $notice_id = ( isset( $_POST['notice_id'] ) ) ? sanitize_key( $_POST['notice_id'] ) : ''; $repeat_notice_after = ( isset( $_POST['repeat_notice_after'] ) ) ? absint( $_POST['repeat_notice_after'] ) : ''; $nonce = ( isset( $_POST['nonce'] ) ) ? sanitize_key( $_POST['nonce'] ) : ''; if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) { wp_send_json_error( _e( 'WordPress Nonce not validated.', 'header-footer-elementor' ) ); } // Valid inputs? if ( ! empty( $notice_id ) ) { if ( ! empty( $repeat_notice_after ) ) { set_transient( $notice_id, true, $repeat_notice_after ); } else { update_user_meta( get_current_user_id(), $notice_id, 'notice-dismissed' ); } wp_send_json_success(); } wp_send_json_error(); } /** * Enqueue Scripts. * * @since 1.4.0 * @return void */ public function enqueue_scripts() { wp_register_script( 'astra-notices', self::_get_uri() . 'notices.js', array( 'jquery' ), self::$version, true ); wp_localize_script( 'astra-notices', 'astraNotices', array( '_notice_nonce' => wp_create_nonce( 'astra-notices' ), ) ); } /** * Rating priority sort * * @since 1.5.2 * @param array $array1 array one. * @param array $array2 array two. * @return array */ public function sort_notices( $array1, $array2 ) { if ( ! isset( $array1['priority'] ) ) { $array1['priority'] = 10; } if ( ! isset( $array2['priority'] ) ) { $array2['priority'] = 10; } return $array1['priority'] - $array2['priority']; } /** * Notice Types * * @since 1.4.0 * @return void */ public function show_notices() { $defaults = array( 'id' => '', // Optional, Notice ID. If empty it set `astra-notices-id-<$array-index>`. 'type' => 'info', // Optional, Notice type. Default `info`. Expected [info, warning, notice, error]. 'message' => '', // Optional, Message. 'show_if' => true, // Optional, Show notice on custom condition. E.g. 'show_if' => if( is_admin() ) ? true, false, . 'repeat-notice-after' => '', // Optional, Dismiss-able notice time. It'll auto show after given time. 'display-notice-after' => false, // Optional, Dismiss-able notice time. It'll auto show after given time. 'class' => '', // Optional, Additional notice wrapper class. 'priority' => 10, // Priority of the notice. 'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices. 'is_dismissible' => true, ); // Count for the notices that are rendered. $notices_displayed = 0; // sort the array with priority. usort( self::$notices, array( $this, 'sort_notices' ) ); foreach ( self::$notices as $key => $notice ) { $notice = wp_parse_args( $notice, $defaults ); $notice['id'] = self::get_notice_id( $notice, $key ); $notice['classes'] = self::get_wrap_classes( $notice ); // Notices visible after transient expire. if ( isset( $notice['show_if'] ) && true === $notice['show_if'] ) { // don't display the notice if it is not supposed to be displayed with other notices. if ( 0 !== $notices_displayed && false === $notice['display-with-other-notices'] ) { continue; } if ( self::is_expired( $notice ) ) { self::markup( $notice ); ++$notices_displayed; } } } } /** * Markup Notice. * * @since 1.4.0 * @param array $notice Notice markup. * @return void */ public static function markup( $notice = array() ) { wp_enqueue_script( 'astra-notices' ); do_action( 'astra_notice_before_markup' ); do_action( "astra_notice_before_markup_{$notice['id']}" ); ?>

        * @copyright Copyright (c) 2019, Header Footer Elementor * @link https://github.com/Nikschavan/header-footer-elementor/ * @since HFE 1.1.4 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! class_exists( 'HFE_Update' ) ) { /** * HFE_Update initial setup * * @since 1.1.4 */ class HFE_Update { /** * Option key for stored version number. * * @since 1.1.4 * @var string */ private $db_option_key = '_hfe_db_version'; /** * Constructor * * @since 1.1.4 */ public function __construct() { // Theme Updates. if ( is_admin() ) { add_action( 'admin_init', [ $this, 'init' ], 5 ); } else { add_action( 'wp', [ $this, 'init' ], 5 ); } } /** * Implement theme update logic. * * @since 1.1.4 */ public function init() { do_action( 'hfe_update_before' ); if ( ! $this->needs_db_update() ) { return; } $db_version = get_option( $this->db_option_key, false ); if ( version_compare( $db_version, '1.2.0-beta.2', '<' ) ) { $this->setup_default_terget_rules(); } // flush rewrite rules on plugin update. flush_rewrite_rules(); $this->update_db_version(); do_action( 'hfe_update_after' ); } /** * Set default target rules for header, footer, before footers being used before target rules were added to the plugin. * * @since 1.2.0-beta.1 * @return void */ private function setup_default_terget_rules() { $default_include_locations = [ 'rule' => [ 0 => 'basic-global' ], 'specific' => [], ]; $header_id = $this->get_legacy_template_id( 'type_header' ); $footer_id = $this->get_legacy_template_id( 'type_footer' ); $before_footer_id = $this->get_legacy_template_id( 'type_before_footer' ); // Header. if ( ! empty( $header_id ) ) { update_post_meta( $header_id, 'ehf_target_include_locations', $default_include_locations ); } // Footer. if ( ! empty( $footer_id ) ) { update_post_meta( $footer_id, 'ehf_target_include_locations', $default_include_locations ); } // Before Footer. if ( ! empty( $before_footer_id ) ) { update_post_meta( $before_footer_id, 'ehf_target_include_locations', $default_include_locations ); } } /** * Get header or footer template id based on the meta query. * * @param String $type Type of the template header/footer. * * @return Mixed Returns the header or footer template id if found, else returns string ''. */ public function get_legacy_template_id( $type ) { $args = [ 'post_type' => 'elementor-hf', 'meta_key' => 'ehf_template_type', 'meta_value' => $type, 'meta_type' => 'post', 'meta_compare' => '>=', 'orderby' => 'meta_value', 'order' => 'ASC', 'meta_query' => [ 'relation' => 'OR', [ 'key' => 'ehf_template_type', 'value' => $type, 'compare' => '==', 'type' => 'post', ], ], ]; $args = apply_filters( 'hfe_get_template_id_args', $args ); $template = new WP_Query( $args ); if ( $template->have_posts() ) { $posts = wp_list_pluck( $template->posts, 'ID' ); return $posts[0]; } return ''; } /** * Check if db upgrade is required. * * @since 1.1.4 * @return true|false True if stored database version is lower than constant; false if otherwise. */ private function needs_db_update() { $db_version = get_option( $this->db_option_key, false ); if ( false === $db_version || version_compare( $db_version, HFE_VER ) ) { return true; } return false; } /** * Update DB version. * * @since 1.1.4 * @return void */ private function update_db_version() { update_option( $this->db_option_key, HFE_VER ); } } } new HFE_Update(); PK\eYYinc/widgets-css/frontend.cssnuW+A/* Navigation Menu CSS */ ul.hfe-nav-menu, .hfe-nav-menu li, .hfe-nav-menu ul { list-style: none !important; margin: 0; padding: 0; } .hfe-nav-menu li.menu-item { position: relative; } .hfe-flyout-container .hfe-nav-menu li.menu-item { position: relative; background: unset; } .hfe-nav-menu .sub-menu li.menu-item { position: relative; background: inherit; } div.hfe-nav-menu, .elementor-widget-hfe-nav-menu .elementor-widget-container { -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; -moz-box-orient: vertical; -moz-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__layout-horizontal .hfe-nav-menu { -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu { -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } .hfe-nav-menu .parent-has-no-child .hfe-menu-toggle { display: none; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu, .hfe-submenu-action-hover .hfe-layout-vertical .hfe-nav-menu .sub-menu { position: absolute; top: 100%; left: 0; z-index: 16; visibility: hidden; opacity: 0; text-align: left; -webkit-transition: all 300ms ease-in; transition: all 300ms ease-in; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:focus > .sub-menu { visibility: visible; opacity: 1; } .hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-submenu-action-click .hfe-nav-menu .menu-item-has-children:focus > .sub-menu { visibility: hidden; opacity: 0; } .hfe-nav-menu .menu-item-has-children .sub-menu { position: absolute; top: 100%; left: 0; z-index: 9999; visibility: hidden; opacity: 0; } .hfe-flyout-container .hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu { top: 0; left: 0; } .hfe-nav-menu .menu-item-has-children .menu-item-has-children .sub-menu { top: 0; left: 100%; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children.focus > .sub-menu { visibility: visible; opacity: 1; -webkit-transition: all 300ms ease-out; transition: all 300ms ease-out; } .hfe-nav-menu:before, .hfe-nav-menu:after { content: ''; display: table; clear: both; } /* Alignemnt CSS */ .hfe-nav-menu__align-right .hfe-nav-menu { margin-left: auto; -webkit-box-pack: end; -ms-flex-pack: end; -webkit-justify-content: flex-end; -moz-box-pack: end; justify-content: flex-end; } .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-menu-item, .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item { -webkit-box-pack: end; -ms-flex-pack: end; -webkit-justify-content: flex-end; -moz-box-pack: end; justify-content: flex-end; } .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{ text-align: right; } .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{ text-align: left; } .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{ text-align: center; } .hfe-nav-menu__align-left .hfe-nav-menu { margin-right: auto; -webkit-box-pack: start; -ms-flex-pack: start; -webkit-justify-content: flex-start; -moz-box-pack: start; justify-content: flex-start; } .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-menu-item, .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item { -webkit-box-pack: start; -ms-flex-pack: start; -webkit-justify-content: flex-start; -moz-box-pack: start; justify-content: flex-start; } .hfe-nav-menu__align-center .hfe-nav-menu { margin-left: auto; margin-right: auto; -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; -moz-box-pack: center; justify-content: center; } .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-menu-item, .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item { -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; -moz-box-pack: center; justify-content: center; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu { -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu { width: 100%; } .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.menu-item { -webkit-box-flex: 1; -ms-flex-positive: 1; -webkit-flex-grow: 1; -moz-box-flex: 1; flex-grow: 1; } .hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item { -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; -moz-box-pack: center; justify-content: center; } /* Alignment CSS ends */ .hfe-active-menu + nav li:not(:last-child) a.hfe-menu-item, .hfe-active-menu + nav li:not(:last-child) a.hfe-sub-menu-item { border-bottom-width: 0; } /* Horizontal Menu */ .hfe-nav-menu a.hfe-menu-item, .hfe-nav-menu a.hfe-sub-menu-item { line-height: 1; text-decoration: none; -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -moz-box-pack: justify; -ms-flex-pack: justify; -webkit-box-shadow: none; box-shadow: none; -webkit-box-align: center; -webkit-align-items: center; -moz-box-align: center; -ms-flex-align: center; align-items: center; -webkit-justify-content: space-between; justify-content: space-between; } .hfe-nav-menu a.hfe-menu-item:hover, .hfe-nav-menu a.hfe-sub-menu-item:hover { text-decoration: none; } .hfe-nav-menu .sub-menu { min-width: 220px; margin: 0; z-index: 9999; } .hfe-nav-menu__layout-horizontal { font-size: 0; } .hfe-nav-menu__layout-horizontal li.menu-item, .hfe-nav-menu__layout-horizontal > li.menu-item { font-size: medium; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-menu{ -webkit-box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1); } /* Icons CSS */ .hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-arrow i:before { content: ''; } .hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-arrow i:before { content: ''; } .hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-arrow i:before { content: '+'; } .hfe-submenu-icon-none .hfe-nav-menu .parent-has-child .sub-arrow { display: none; } .hfe-submenu-icon-arrow .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before { content: ''; } .hfe-submenu-icon-plus .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before { content: '-'; } .hfe-submenu-icon-classic .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i:before { content: ''; } .rtl .hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before { content: ''; } .rtl .hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before { content: ''; } .hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before { content: ''; } .hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before { content: ''; } /* Icon CSS ends */ .hfe-nav-menu-icon { padding: 0.35em; border: 0 solid; } .hfe-nav-menu-icon i:focus { outline: 0; } .hfe-has-submenu-container a.hfe-menu-item:focus, .hfe-has-submenu-container a.hfe-sub-menu-item:focus { outline: 0; } /* Submenus */ .hfe-nav-menu .menu-item-has-children:focus, .hfe-nav-menu .menu-item-has-children .sub-menu:focus, .hfe-nav-menu .menu-item-has-children-container:focus { outline: 0; } .hfe-nav-menu .menu-item-has-children-container { position: relative; } .hfe-nav-menu__layout-expandible .sub-menu, .hfe-nav-menu__layout-vertical .sub-menu, .hfe-flyout-wrapper .sub-menu { position: relative; height: 0; } .hfe-nav-menu__submenu-arrow .hfe-menu-toggle:before, .hfe-nav-menu__submenu-plus .hfe-menu-toggle:before, .hfe-nav-menu__submenu-classic .hfe-menu-toggle:before { font-family: 'Font Awesome 5 Free'; z-index: 1; font-size: inherit; font-weight: inherit; line-height: 0; } .hfe-menu-item-center .hfe-nav-menu li a.hfe-menu-item, .hfe-menu-item-center .hfe-nav-menu li a.hfe-sub-menu-item { margin-right: 0px; } .hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-menu-item, .hfe-nav-menu__submenu-none .hfe-nav-menu li a.hfe-sub-menu-item { margin-right: 0px; } .hfe-nav-menu__toggle-icon:before { content: '\f0c9'; font-family: 'fontAwesome'; z-index: 1; font-size: 24px; font-weight: inherit; font-style: normal; line-height: 0; } .hfe-active-menu .hfe-nav-menu__toggle-icon:before { content: '\f00d'; } .hfe-nav-menu__layout-expandible { -webkit-transition-property: display; transition-property: display; -webkit-transition-duration: .5s; transition-duration: .5s; -webkit-transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 ); transition-timing-function: cubic-bezier( 0, 1, 0.5, 1 ); } .hfe-nav-menu__layout-expandible { visibility: hidden; opacity: 0; } .hfe-nav-menu__layout-expandible .sub-menu { visibility: hidden; opacity: 0; } .hfe-active-menu + .hfe-nav-menu__layout-expandible { visibility: visible; opacity: 1; height: auto; } .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-expandible, .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal, .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical { position: absolute; top: 100%; } .hfe-nav-menu__layout-expandible .menu-item-has-children .menu-item-has-children .sub-menu, .hfe-nav-menu__layout-vertical .menu-item-has-children .menu-item-has-children .sub-menu { top: 0; left: 0; } .hfe-layout-expandible nav { height: 0; } .hfe-nav-sub-menu-icon, .hfe-nav-menu__icon { display: inline-block; line-height: 1; } .hfe-nav-menu__toggle { -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; font-size: 22px; cursor: pointer; border: 0 solid; -webkit-border-radius: 3px; border-radius: 3px; color: #494c4f; position: relative; line-height: 1; } .hfe-nav-menu__toggle-icon { display: inline-block; font-size: inherit; font-weight: normal; font-style: normal; font-variant: normal; line-height: 1; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .hfe-nav-menu .sub-arrow { font-size: 14px; line-height: 1; -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; cursor: pointer; margin-top: -10px; margin-bottom: -10px; } .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow { margin-left: 10px; } .hfe-nav-menu__layout-vertical .hfe-nav-menu .sub-arrow, .hfe-layout-expandible .sub-arrow, .hfe-flyout-wrapper .sub-arrow { padding: 10px; } .hfe-nav-menu .child-item, .hfe-nav-menu__layout-vertical .hfe-nav-menu .child-item { font-size: 14px; line-height: 1; padding: 10px 0 10px 10px; margin-top: -10px; margin-bottom: -10px; position: absolute; right: 0; margin-right: 20px; } .hfe-layout-horizontal .hfe-nav-menu__toggle, .hfe-layout-vertical .hfe-nav-menu__toggle { visibility: hidden; opacity: 0; display: none; } .hfe-nav-menu-icon { display: inline-block; line-height: 1; text-align: center; } .hfe-nav-menu__layout-expandible .saved-content, .hfe-nav-menu__layout-expandible .sub-menu, .hfe-nav-menu__layout-expandible .child, .hfe-nav-menu__layout-vertical .saved-content, .hfe-nav-menu__layout-vertical .sub-menu, .hfe-nav-menu__layout-vertical .child, .hfe-flyout-container .saved-content, .hfe-flyout-container .sub-menu, .hfe-flyout-container .child { left: 0 !important; width: 100% !important; } .hfe-flyout-container .hfe-nav-menu .sub-menu { background: unset; } .hfe-nav-menu__layout-vertical .hfe-menu-toggle:hover, .hfe-nav-menu__layout-expandible .hfe-menu-toggle:hover, .hfe-flyout-wrapper .hfe-menu-toggle:hover { border:1px dotted; } .hfe-nav-menu__layout-vertical .hfe-menu-toggle, .hfe-nav-menu__layout-expandible .hfe-menu-toggle, .hfe-flyout-wrapper .hfe-menu-toggle { border:1px dotted transparent; } /* Common Animation CSS */ .hfe-nav-menu .menu-item a:before, .hfe-nav-menu .menu-item a:after { display: block; position: absolute; -webkit-transition: 0.3s; transition: 0.3s; -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); } .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 { opacity: 0; } .hfe-nav-menu .menu-item a.hfe-menu-item:hover:before, .hfe-nav-menu .menu-item a.hfe-menu-item:hover:after, .hfe-nav-menu .menu-item a.hfe-menu-item:focus:before, .hfe-nav-menu .menu-item a.hfe-menu-item:focus:after, .hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:before, .hfe-nav-menu .menu-item a.hfe-menu-item.highlighted:after, .hfe-nav-menu .current-menu-item:before, .hfe-nav-menu .current-menu-item:after { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); } /* Double Line / Underline / Overline Style */ .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 { height: 3px; width: 100%; left: 0; background-color: #55595c; z-index: 2; } .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 { height: 0; width: 0; left: 50%; } .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 { top: 10px; } .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 { bottom: 10px; } .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 { top: -10px; } .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 { bottom: -10px; } .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 { -webkit-transition-duration: 0s; transition-duration: 0s; } .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 { -webkit-transition-duration: 0s; transition-duration: 0s; } .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item:before { content: ''; top: 0; } .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 { width: 10px; left: -20px; } .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item:after, .hfe-pointer__underline .menu-item.parent a.hfe-menu-item:after { content: ''; bottom: 0; } .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 { width: 10px; left: -webkit-calc( 100% + 20px); left: calc( 100% + 20px); } /* Framed Style */ .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:after { background: transparent; left: 0; top: 0; bottom: 0; right: 0; border: 3px solid #55595c; } .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before { content: ''; } .hfe-pointer__framed.hfe-animation__grow .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before { -webkit-transform: scale(0.75); -ms-transform: scale(0.75); transform: scale(0.75); } .hfe-pointer__framed.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before { -webkit-transform: scale(1.25); -ms-transform: scale(1.25); transform: scale(1.25); } .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 { -webkit-transition: opacity 0.2s, -webkit-transform 0.4s; transition: opacity 0.2s, -webkit-transform 0.4s; transition: opacity 0.2s, transform 0.4s; transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s; } .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 { width: 3px; height: 3px; } .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:before { border-width: 0 0 3px 3px; -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; } .hfe-pointer__framed.hfe-animation__draw .menu-item.parent a.hfe-menu-item:after { content: ''; top: initial; bottom: 0; left: initial; right: 0; border-width: 3px 3px 0 0; -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; } .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 { width: 100%; height: 100%; } .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 { -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; } .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 { -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; } .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 { width: 3px; height: 3px; } .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:before { border-width: 3px 0 0 3px; } .hfe-pointer__framed.hfe-animation__corners .menu-item.parent a.hfe-menu-item:after { content: ''; top: initial; bottom: 0; left: initial; right: 0; border-width: 0 3px 3px 0; } .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 { width: 100%; height: 100%; -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s; transition: opacity 0.002s, width 0.4s, height 0.4s; } .hfe-pointer__framed.hfe-animation__none, .hfe-pointer__framed.hfe-animation__none .menu-item.parent a.hfe-menu-item { -webkit-transition-duration: 0s; transition-duration: 0s; } .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 { -webkit-transition-duration: 0s; transition-duration: 0s; } /* Background Style */ .hfe-pointer__background .menu-item.parent a.hfe-menu-item:before, .hfe-pointer__background .menu-item.parent a.hfe-menu-item:after { content: ''; -webkit-transition: 0.3s; transition: 0.3s; } .hfe-pointer__background .menu-item.parent a.hfe-menu-item:before { top: 0; left: 0; right: 0; bottom: 0; background: #55595c; z-index: -1; } .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 { color: #fff; } .hfe-pointer__background.hfe-animation__grow .menu-item.parent a.hfe-menu-item:before { -webkit-transform: scale(0.5); -ms-transform: scale(0.5); transform: scale(0.5); } .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 { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); opacity: 1; } .hfe-pointer__background.hfe-animation__shrink .menu-item.parent a.hfe-menu-item:not(:hover):not(:focus):not(.current-menu-item):not(.highlighted):before { -webkit-transform: scale(1.2); -ms-transform: scale(1.2); transform: scale(1.2); -webkit-transition: 0.3s; transition: 0.3s; } .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 { -webkit-transition: opacity 0.15s, -webkit-transform 0.4s; transition: opacity 0.15s, -webkit-transform 0.4s; transition: opacity 0.15s, transform 0.4s; transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s; } .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 { left: 100%; } .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 { right: 100%; } .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 { top: 100%; } .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 { bottom: 100%; } .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 { bottom: 50%; top: 50%; } .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 { right: 50%; left: 50%; } .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 { top: 0; left: 0; right: 0; bottom: 0; background: #55595c; z-index: -1; } .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:before { top: 0; bottom: 100%; } .hfe-pointer__background.hfe-animation__shutter-in-vertical .menu-item.parent a.hfe-menu-item:after { top: 100%; bottom: 0; } .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 { bottom: 50%; } .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 { top: 50%; } .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:before { right: 0; left: 100%; } .hfe-pointer__background.hfe-animation__shutter-in-horizontal .menu-item.parent a.hfe-menu-item:after { right: 100%; left: 0; } .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 { left: 50%; } .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 { right: 50%; } .hfe-pointer__background.hfe-animation__none, .hfe-pointer__background.hfe-animation__none .menu-item.parent a.hfe-menu-item { -webkit-transition-duration: 0s; transition-duration: 0s; } .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 { -webkit-transition-duration: 0s; transition-duration: 0s; } /* Text Style */ .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 { -webkit-transform: skew(-8deg); -ms-transform: skew(-8deg); transform: skew(-8deg); } .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 { -webkit-transform: scale(1.2); -ms-transform: scale(1.2); transform: scale(1.2); } .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 { -webkit-transform: scale(0.8); -ms-transform: scale(0.8); transform: scale(0.8); } .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 { -webkit-transform: translateY(-8px); -ms-transform: translateY(-8px); transform: translateY(-8px); } .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 { -webkit-transform: translateY(8px); -ms-transform: translateY(8px); transform: translateY(8px); } .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 { -webkit-transform: rotate(6deg); -ms-transform: rotate(6deg); transform: rotate(6deg); } .hfe-pointer__text.hfe-animation__none, .hfe-pointer__text.hfe-animation__none .menu-item.parent a.hfe-menu-item { -webkit-transition-duration: 0s; transition-duration: 0s; } .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 { -webkit-transition-duration: 0s; transition-duration: 0s; } .hfe-flyout-overlay { display: none; position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 999998; background: url(../images/shade.png) repeat; background: rgba(0,0,0,.6); cursor: pointer; -webkit-backface-visibility: hidden; } /* No link hover effect to last menu item */ .hfe-pointer__underline .menu-item.parent a.hfe-menu-item.elementor-button:after, .hfe-pointer__overline .menu-item.parent a.hfe-menu-item.elementor-button:before, .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:after, .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:before { height: 0px; } .hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:before, .hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:after{ border-width: 0px; } .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:hover, .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:focus { -webkit-transform: none; transform: none; } .hfe-flyout-close { position: absolute; top: 0; right: 0; margin: 5px; width: 23px; height: 23px; line-height: 23px; font-size: 23px; display: block; cursor: pointer; } .hfe-flyout-wrapper .hfe-side.hfe-flyout-left { top: 0; bottom: 0; left: -100%; right: auto; height: 100%; /*height: 100vh;*/ width: 300px; max-width: 100%; max-width: 100vw; } .hfe-flyout-wrapper .hfe-side { display: block; position: fixed; z-index: 999999; padding: 0; margin: 0; -webkit-overflow-scrolling: touch; -webkit-backface-visibility: hidden; } .hfe-flyout-content.push { color: #ffffff; } .hfe-flyout-content ul li { color: #ffffff; } /* =========================================================== * Flyout Location * ======================================================== */ .hfe-flyout-wrapper .hfe-side { /* Allows iframes and google maps to display correctly while still being "hidden" */ display: block; position: fixed; z-index: 999999; padding: 0; margin: 0; -webkit-overflow-scrolling: touch; -webkit-backface-visibility: hidden; } .hfe-flyout-wrapper .hfe-side.hfe-flyout-right { top: 0; bottom: 0; left: auto; right: -100%; /* default */ height: 100%; /*height: 100vh;*/ width: 300px; /* default */ max-width: 100%; } .hfe-flyout-wrapper .hfe-side.hfe-flyout-left { top: 0; bottom: 0; left: -100%; /* default */ right: auto; height: 100%; /*height: 100vh;*/ width: 300px; /* default */ max-width: 100%; max-width: 100vw; } .hfe-flyout-wrapper .hfe-side.top { top: -100%; /* default */ bottom: auto; left: 0; right: 0; width: 100%; width: 100vw; height: 300px; /* default */ max-height: 100%; } .hfe-flyout-wrapper .hfe-side.bottom { top: auto; bottom: -100%; /* default */ left: 0; right: 0; width: 100%; width: 100vw; height: 300px; /* default */ max-height: 100%; } /* =========================================================== * Flyout Container * ======================================================== */ .hfe-flyout-content { height: 100%; overflow-x: hidden; overflow-y: auto; line-height: 1.4em; color: #fff; } /* iOS fix */ @media (max-width:1024px) { .hfe-flyout-content { -webkit-transform: translateZ(0); transform: translateZ(0); } } .hfe-flyout-content::-webkit-scrollbar { display: none; } .admin-bar .hfe-side { margin-top: 32px; } /* Dropdown animation CSS */ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu { -webkit-transform: translateY(20%); -ms-transform: translateY(20%); transform: translateY(20%); opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -webkit-transition: all 0.1s; transition: all 0.1s; } .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children > ul.sub-menu { -webkit-transform: translateY(-20%); -ms-transform: translateY(-20%); transform: translateY(-20%); opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -webkit-transition: all 0.1s; transition: all 0.1s; } .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover > ul.sub-menu { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } a.hfe-menu-item.elementor-button { display: inline-flex; } .hfe-nav-menu li.elementor-button-wrapper { align-self: center; } /* Tablet */ @media only screen and ( max-width: 1023px ) { .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal li, .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu{ width: 100%; margin-right:0px; } .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle, .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle { display: block; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu { visibility: hidden; opacity: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu { visibility: visible; opacity: 1; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical { visibility: hidden; opacity: 0; height: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-vertical { visibility: visible; opacity: 1; height: auto; } .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu { position: relative; } .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical { position: absolute; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu { visibility: hidden; opacity: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu { top: 0; left: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle, .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle { visibility: visible; opacity: 1; display: block; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical { float: none; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu { visibility: hidden; opacity: 0; -webkit-transition: none; transition: none; } .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle:hover { border:1px dotted; } .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle { border:1px dotted transparent; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu { position: relative; height: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu { position: relative; height: 0; top: 0; } .hfe-nav-menu__breakpoint-tablet .saved-content, .hfe-nav-menu__breakpoint-tablet .sub-menu, .hfe-nav-menu__breakpoint-tablet .child { left: 0 !important; width:auto !important; } .hfe-nav-menu .sub-menu { min-width: auto; margin: 0; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow { padding: 10px; } .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{ content: ''; } .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{ content: ''; } .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{ content: ''; } .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{ content: ''; } .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{ content: '-'; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu .sub-menu{ -webkit-box-shadow: none; box-shadow: none; } .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, .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{ content: ''; } .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, .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{ content: '' } .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, .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{ content: ''; } .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, .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{ content: '' } /* Effect 1: Fade in and scale up */ .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu, .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu, .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu, .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu { -webkit-transform: none; -ms-transform: none; transform: none; } /*.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu ul.sub-menu ul.sub-menu li a{ border-left: 16px solid transparent; }*/ .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, .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 { background-color: unset!important; } .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{ border: 0px!important; } .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{ -webkit-transform: none!important; -ms-transform: none!important; transform: none!important; } .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item, .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item, .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.elementor-button-wrapper { -webkit-box-pack: justify; -webkit-justify-content: space-between; -moz-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } } /* Mobile */ @media only screen and ( max-width: 767px ) { .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item, .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.elementor-button-wrapper { -webkit-box-pack: justify; -webkit-justify-content: space-between; -moz-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-horizontal .hfe-nav-menu__toggle, .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal .hfe-nav-menu { visibility: visible; opacity: 1; display: block; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal li.menu-item, .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu { width: 100% } .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle { display: inline-block; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu { position: relative; height: 0; top: 0; } .hfe-nav-menu .sub-menu { min-width: auto; margin: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu, .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu { visibility: hidden; opacity: 0; -webkit-transition: none; transition: none; } .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical { float: none; } .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-layout-vertical .hfe-nav-menu__toggle.hfe-active-menu { display: block; } .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-nav-menu__layout-vertical { visibility: hidden; opacity: 0; height: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-layout-horizontal .hfe-nav-menu__toggle, .hfe-nav-menu__breakpoint-mobile .hfe-layout-vertical .hfe-nav-menu__toggle { visibility: visible; opacity: 1; display: block; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal { visibility: hidden; opacity: 0; height: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical { float: none; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .sub-menu { visibility: hidden; opacity: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu { visibility: hidden; opacity: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu { visibility: visible; opacity: 1; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-vertical { visibility: hidden; opacity: 0; height: 0; } .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-mobile .hfe-active-menu + .hfe-nav-menu__layout-vertical { visibility: visible; opacity: 1; height: auto; } .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu { position: relative; } .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal, .hfe-nav-menu__breakpoint-mobile .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical { position: absolute; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu { top: 0; left: 0; } .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{ content: ''; } .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{ content: ''; } .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{ content: ''; } .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{ content: ''; } .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{ content: '-'; } .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{ content: ''; } .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{ content: '' } .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{ content: ''; } .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{ content: '' } .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle:hover{ border:1px dotted; } .hfe-nav-menu__breakpoint-mobile .hfe-menu-toggle{ border:1px dotted transparent; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu .sub-menu{ -webkit-box-shadow: none; box-shadow: none; } /* Effect 1: Fade in and scale up */ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-1 .hfe-nav-menu { -webkit-transform: scale(0.7); -ms-transform: scale(0.7); transform: scale(0.7); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -webkit-transition: all 0.3s; transition: all 0.3s; } .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow { padding: 10px; } .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-1 .hfe-nav-menu { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } /* Effect 2: Slide from the right */ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-2 .hfe-nav-menu { -webkit-transform: translateX(20%); -ms-transform: translateX(20%); transform: translateX(20%); opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); } .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-2 .hfe-nav-menu { -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } /* Effect 3: Slide from the bottom */ .hfe-nav-menu__breakpoint-mobile.hfe-nav-toggle-yes .hfe-effect-3 .hfe-nav-menu { -webkit-transform: translateY(20%); -ms-transform: translateY(20%); transform: translateY(20%); opacity: 0; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; -webkit-transition: all 0.3s; transition: all 0.3s; } .hfe-nav-menu__breakpoint-mobile .menu-is-active.hfe-effect-3 .hfe-nav-menu { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0); opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } .hfe-nav-menu__breakpoint-mobile .saved-content, .hfe-nav-menu__breakpoint-mobile .sub-menu, .hfe-nav-menu__breakpoint-mobile .child, .hfe-nav-menu__breakpoint-tablet .saved-content, .hfe-nav-menu__breakpoint-tablet .sub-menu, .hfe-nav-menu__breakpoint-tablet .child{ left: 0 !important; width: auto !important; } .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu, .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu, .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu, .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu { -webkit-transform: none; -ms-transform: none; transform: none; } .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, .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, .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, .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 { background-color: unset!important; } .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before, .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-mobile .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{ border: 0px!important; } .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, .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 { -webkit-transform: none!important; -ms-transform: none!important; transform: none!important; } } .hfe-toggle-no .hfe-layout-expandible .hfe-nav-menu__toggle { display: none; } /* Icon common CSS */ .hfe-icon { display: inline-block; } /* Menu Cart CSS */ .hfe-cart-menu-wrap-custom { display: inline-block; line-height: 1; } .hfe-cart-menu-wrap-custom .count, .hfe-cart-menu-wrap-custom .count:after { border-color: #75c32c; color: #75c32c; } .hfe-cart-menu-wrap-custom .count { font-weight: bold; position: relative; display: inline-block; vertical-align: middle; text-align: center; min-width: 2.1em; min-height: 2.1em; font-size: 0.860em; line-height: 1.8; border-radius: 0.3em 0.3em 0.3em 0.3em; border-width: 2px; border-style: solid; padding: 12px 24px; } /* Default skin for cart*/ .hfe-cart-menu-wrap-default { display: inline-block; line-height: 1; } .hfe-cart-menu-wrap-default .count, .hfe-cart-menu-wrap-default .count:after { border-color: #75c32c; color: #75c32c; } .hfe-cart-menu-wrap-default .count { font-weight: bold; position: relative; display: inline-block; vertical-align: middle; text-align: center; min-width: 2.1em; min-height: 2.1em; font-size: 0.860em; line-height: 1.8; border-radius: 0em 0em 0.3em 0.3em; border-width: 2px; border-style: solid; padding: 0 .4em; } .hfe-cart-menu-wrap-default .count:after { bottom: 100%; margin-bottom: 0; height: .8em; width: .8em; left: 50%; transform: translateX(-50%); top: -.6em; content: ' '; position: absolute; pointer-events: none; border-width: 2px; border-style: solid; border-top-left-radius: 10em; border-top-right-radius: 10em; border-bottom: 0; } .elementor-widget-hfe-cart:not(.hfe-menu-cart--show-subtotal-yes) .hfe-menu-cart__toggle .elementor-button-text { display: none; } .elementor-widget-hfe-cart.toggle-icon--bag-light .hfe-menu-cart__toggle .elementor-button-icon i:before { content: '\e8e3'; } .elementor-widget-hfe-cart.toggle-icon--bag-medium .hfe-menu-cart__toggle .elementor-button-icon i:before { content: '\e8e4'; } .elementor-widget-hfe-cart.toggle-icon--bag-solid .hfe-menu-cart__toggle .elementor-button-icon i:before { content: '\e8e5'; } .hfe-menu-cart__toggle .elementor-button { background: transparent; border-radius: 0; color: #818a91; border: 1px solid; border-color: inherit; display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .hfe-menu-cart__toggle .elementor-button-text { margin-right: 0.3em; } .hfe-menu-cart__toggle .elementor-button-icon { position: relative; -webkit-transition: color 0.1s; -o-transition: color 0.1s; transition: color 0.1s; } .hfe-menu-cart--items-indicator-bubble .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before { content: attr(data-counter); display: block; position: absolute; min-width: 1.6em; height: 1.6em; line-height: 1.5em; top: -0.7em; right: -0.7em; border-radius: 100%; color: #fff; background-color: #d9534f; text-align: center; font-size: 10px; } .hfe-menu-cart--items-indicator-plain .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before { content: attr(data-counter); display: inline-block; font-weight: normal; } .hfe-menu-cart--empty-indicator-hide .hfe-menu-cart__toggle .elementor-button .elementor-button-icon[data-counter]:before { content: none; display: none; } .hfe-menu-cart__toggle .elementor-button-icon { -webkit-box-ordinal-group: 16; -webkit-order: 15; -ms-flex-order: 15; order: 15; } .hfe-menu-cart__toggle.elementor-button-wrapper .elementor-button { color:#4d4848; } PK\\](3(3%inc/class-header-footer-elementor.phpnuW+Atemplate = get_template(); if ( defined( 'ELEMENTOR_VERSION' ) && is_callable( 'Elementor\Plugin::instance' ) ) { self::$elementor_instance = Elementor\Plugin::instance(); $this->includes(); $this->load_textdomain(); if ( 'genesis' == $this->template ) { require HFE_DIR . 'themes/genesis/class-hfe-genesis-compat.php'; } elseif ( 'astra' == $this->template ) { require HFE_DIR . 'themes/astra/class-hfe-astra-compat.php'; } elseif ( 'bb-theme' == $this->template || 'beaver-builder-theme' == $this->template ) { $this->template = 'beaver-builder-theme'; require HFE_DIR . 'themes/bb-theme/class-hfe-bb-theme-compat.php'; } elseif ( 'generatepress' == $this->template ) { require HFE_DIR . 'themes/generatepress/class-hfe-generatepress-compat.php'; } elseif ( 'oceanwp' == $this->template ) { require HFE_DIR . 'themes/oceanwp/class-hfe-oceanwp-compat.php'; } elseif ( 'storefront' == $this->template ) { require HFE_DIR . 'themes/storefront/class-hfe-storefront-compat.php'; } elseif ( 'hello-elementor' == $this->template ) { require HFE_DIR . 'themes/hello-elementor/class-hfe-hello-elementor-compat.php'; } else { add_action( 'init', [ $this, 'setup_unsupported_theme' ] ); } // Scripts and styles. add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] ); add_filter( 'body_class', [ $this, 'body_class' ] ); add_action( 'switch_theme', [ $this, 'reset_unsupported_theme_notice' ] ); add_shortcode( 'hfe_template', [ $this, 'render_template' ] ); add_action( 'astra_notice_before_markup_header-footer-elementor-rating', [ $this, 'rating_notice_css' ] ); add_action( 'admin_notices', [ $this, 'register_notices' ] ); } else { add_action( 'admin_notices', [ $this, 'elementor_not_available' ] ); add_action( 'network_admin_notices', [ $this, 'elementor_not_available' ] ); } } /** * Reset the Unsupported theme nnotice after a theme is switched. * * @since 1.0.16 * * @return void */ public function reset_unsupported_theme_notice() { delete_user_meta( get_current_user_id(), 'unsupported-theme' ); } /** * Register Astra Notices. * * @since 1.2.0 * * @return void */ public function register_notices() { $image_path = HFE_URL . 'assets/images/header-footer-elementor-icon.svg'; Astra_Notices::add_notice( [ 'id' => 'header-footer-elementor-rating', 'type' => '', 'message' => sprintf( '
        ', $image_path, __( 'Hello! Seems like you have used Elementor - Header, Footer & Blocks to build this website — Thanks a ton!', 'header-footer-elementor' ), __( 'Could you please do us a BIG favor and give it a 5-star rating on WordPress? This would boost our motivation and help other users make a comfortable decision while choosing the Elementor - Header, Footer & Blocks.', 'header-footer-elementor' ), 'https://wordpress.org/support/plugin/header-footer-elementor/reviews/?filter=5#new-post', __( 'Ok, you deserve it', 'header-footer-elementor' ), MONTH_IN_SECONDS, __( 'Nope, maybe later', 'header-footer-elementor' ), __( 'I already did', 'header-footer-elementor' ) ), 'show_if' => ( hfe_header_enabled() || hfe_footer_enabled() || hfe_is_before_footer_enabled() ) ? true : false, 'repeat-notice-after' => MONTH_IN_SECONDS, 'display-notice-after' => 1296000, // Display notice after 15 days. 'priority' => 18, 'display-with-other-notices' => false, ] ); } /** * Enqueue CSS for the Rating Notice. * * @since 1.2.0 * @return void */ public function rating_notice_css() { wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'assets/css/admin-header-footer-elementor.css', [], HFE_VER ); } /** * Prints the admin notics when Elementor is not installed or activated. */ public function elementor_not_available() { if ( file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ) ) { $url = network_admin_url() . 'plugins.php?s=elementor'; } else { $url = network_admin_url() . 'plugin-install.php?s=elementor'; } echo '
        '; /* Translators: URL to install or activate Elementor plugin. */ echo '

        ' . sprintf( __( 'The Header Footer Elementor plugin requires Elementor plugin installed & activated.', 'header-footer-elementor' ) . '

        ', $url ); echo '
        '; } /** * Loads the globally required files for the plugin. */ public function includes() { require_once HFE_DIR . 'admin/class-hfe-admin.php'; require_once HFE_DIR . 'inc/hfe-functions.php'; // Load Elementor Canvas Compatibility. require_once HFE_DIR . 'inc/class-hfe-elementor-canvas-compat.php'; // Load WPML Compatibility if WPML is installed and activated. if ( defined( 'ICL_SITEPRESS_VERSION' ) ) { require_once HFE_DIR . 'inc/compatibility/class-hfe-wpml-compatibility.php'; } // Load the Admin Notice Class. require_once HFE_DIR . 'inc/lib/notices/class-astra-notices.php'; // Load Target rules. require_once HFE_DIR . 'inc/lib/target-rule/class-astra-target-rules-fields.php'; // Setup upgrade routines. require_once HFE_DIR . 'inc/class-hfe-update.php'; // Load the widgets. require HFE_DIR . 'inc/widgets-manager/class-widgets-loader.php'; } /** * Loads textdomain for the plugin. */ public function load_textdomain() { load_plugin_textdomain( 'header-footer-elementor' ); } /** * Enqueue styles and scripts. */ public function enqueue_scripts() { wp_enqueue_style( 'hfe-style', HFE_URL . 'assets/css/header-footer-elementor.css', [], HFE_VER ); if ( class_exists( '\Elementor\Plugin' ) ) { $elementor = \Elementor\Plugin::instance(); $elementor->frontend->enqueue_styles(); } if ( class_exists( '\ElementorPro\Plugin' ) ) { $elementor_pro = \ElementorPro\Plugin::instance(); $elementor_pro->enqueue_styles(); } if ( hfe_header_enabled() ) { if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) { $css_file = new \Elementor\Core\Files\CSS\Post( get_hfe_header_id() ); } elseif ( class_exists( '\Elementor\Post_CSS_File' ) ) { $css_file = new \Elementor\Post_CSS_File( get_hfe_header_id() ); } $css_file->enqueue(); } if ( hfe_footer_enabled() ) { if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) { $css_file = new \Elementor\Core\Files\CSS\Post( get_hfe_footer_id() ); } elseif ( class_exists( '\Elementor\Post_CSS_File' ) ) { $css_file = new \Elementor\Post_CSS_File( get_hfe_footer_id() ); } $css_file->enqueue(); } if ( hfe_is_before_footer_enabled() ) { if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) { $css_file = new \Elementor\Core\Files\CSS\Post( hfe_get_before_footer_id() ); } elseif ( class_exists( '\Elementor\Post_CSS_File' ) ) { $css_file = new \Elementor\Post_CSS_File( hfe_get_before_footer_id() ); } $css_file->enqueue(); } } /** * Load admin styles on header footer elementor edit screen. */ public function enqueue_admin_scripts() { global $pagenow; $screen = get_current_screen(); if ( ( 'elementor-hf' == $screen->id && ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) || ( 'edit.php' == $pagenow && 'edit-elementor-hf' == $screen->id ) ) { wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER ); wp_enqueue_script( 'hfe-admin-script', HFE_URL . 'admin/assets/js/ehf-admin.js', [], HFE_VER ); } } /** * Adds classes to the body tag conditionally. * * @param Array $classes array with class names for the body tag. * * @return Array array with class names for the body tag. */ public function body_class( $classes ) { if ( hfe_header_enabled() ) { $classes[] = 'ehf-header'; } if ( hfe_footer_enabled() ) { $classes[] = 'ehf-footer'; } $classes[] = 'ehf-template-' . $this->template; $classes[] = 'ehf-stylesheet-' . get_stylesheet(); return $classes; } /** * Display Unsupported theme notice if the current theme does add support for 'header-footer-elementor' * * @since 1.0.3 */ public function setup_unsupported_theme() { if ( ! current_theme_supports( 'header-footer-elementor' ) ) { require_once HFE_DIR . 'themes/default/class-hfe-fallback-theme-support.php'; } } /** * Prints the Header content. */ public static function get_header_content() { echo self::$elementor_instance->frontend->get_builder_content_for_display( get_hfe_header_id() ); } /** * Prints the Footer content. */ public static function get_footer_content() { echo "'; } /** * Prints the Before Footer content. */ public static function get_before_footer_content() { echo "'; } /** * Get option for the plugin settings * * @param mixed $setting Option name. * @param mixed $default Default value to be received if the option value is not stored in the option. * * @return mixed. */ public static function get_settings( $setting = '', $default = '' ) { if ( 'type_header' == $setting || 'type_footer' == $setting || 'type_before_footer' == $setting ) { $templates = self::get_template_id( $setting ); $template = ! is_array( $templates ) ? $templates : $templates[0]; $template = apply_filters( "hfe_get_settings_{$setting}", $template ); return $template; } } /** * Get header or footer template id based on the meta query. * * @param String $type Type of the template header/footer. * * @return Mixed Returns the header or footer template id if found, else returns string ''. */ public static function get_template_id( $type ) { $option = [ 'location' => 'ehf_target_include_locations', 'exclusion' => 'ehf_target_exclude_locations', 'users' => 'ehf_target_user_roles', ]; $hfe_templates = Astra_Target_Rules_Fields::get_instance()->get_posts_by_conditions( 'elementor-hf', $option ); foreach ( $hfe_templates as $template ) { if ( get_post_meta( absint( $template['id'] ), 'ehf_template_type', true ) === $type ) { return $template['id']; } } return ''; } /** * Callback to shortcode. * * @param array $atts attributes for shortcode. */ public function render_template( $atts ) { $atts = shortcode_atts( [ 'id' => '', ], $atts, 'hfe_template' ); $id = ! empty( $atts['id'] ) ? apply_filters( 'hfe_render_template_id', intval( $atts['id'] ) ) : ''; if ( empty( $id ) ) { return ''; } if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) { $css_file = new \Elementor\Core\Files\CSS\Post( $id ); } elseif ( class_exists( '\Elementor\Post_CSS_File' ) ) { // Load elementor styles. $css_file = new \Elementor\Post_CSS_File( $id ); } $css_file->enqueue(); return self::$elementor_instance->frontend->get_builder_content_for_display( $id ); } } PK\RLLadmin/class-hfe-admin.phpnuW+A 2.8 ) { add_action( 'elementor/editor/footer', [ $this, 'register_hfe_epro_script' ], 99 ); } if ( is_admin() ) { add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'column_content' ], 10, 2 ); add_filter( 'manage_elementor-hf_posts_columns', [ $this, 'column_headings' ] ); } } /** * Script for Elementor Pro full site editing support. * * @since 1.4.0 * * @return void */ public function register_hfe_epro_script() { $ids_array = [ [ 'id' => get_hfe_header_id(), 'value' => 'Header', ], [ 'id' => get_hfe_footer_id(), 'value' => 'Footer', ], [ 'id' => hfe_get_before_footer_id(), 'value' => 'Before Footer', ], ]; wp_enqueue_script( 'hfe-elementor-pro-compatibility', HFE_URL . 'inc/js/hfe-elementor-pro-compatibility.js', [ 'jquery' ], HFE_VER, true ); wp_localize_script( 'hfe-elementor-pro-compatibility', 'hfe_admin', [ 'ids_array' => wp_json_encode( $ids_array ), ] ); } /** * Adds or removes list table column headings. * * @param array $columns Array of columns. * @return array */ public function column_headings( $columns ) { unset( $columns['date'] ); $columns['elementor_hf_display_rules'] = __( 'Display Rules', 'header-footer-elementor' ); $columns['date'] = __( 'Date', 'header-footer-elementor' ); return $columns; } /** * Adds the custom list table column content. * * @since 1.2.0 * @param array $column Name of column. * @param int $post_id Post id. * @return void */ public function column_content( $column, $post_id ) { if ( 'elementor_hf_display_rules' == $column ) { $locations = get_post_meta( $post_id, 'ehf_target_include_locations', true ); if ( ! empty( $locations ) ) { echo '
        '; echo 'Display: '; $this->column_display_location_rules( $locations ); echo '
        '; } $locations = get_post_meta( $post_id, 'ehf_target_exclude_locations', true ); if ( ! empty( $locations ) ) { echo '
        '; echo 'Exclusion: '; $this->column_display_location_rules( $locations ); echo '
        '; } $users = get_post_meta( $post_id, 'ehf_target_user_roles', true ); if ( isset( $users ) && is_array( $users ) ) { if ( isset( $users[0] ) && ! empty( $users[0] ) ) { $user_label = []; foreach ( $users as $user ) { $user_label[] = Astra_Target_Rules_Fields::get_user_by_key( $user ); } echo '
        '; echo 'Users: '; echo join( ', ', $user_label ); echo '
        '; } } } } /** * Get Markup of Location rules for Display rule column. * * @param array $locations Array of locations. * @return void */ public function column_display_location_rules( $locations ) { $location_label = []; $index = array_search( 'specifics', $locations['rule'] ); if ( false !== $index && ! empty( $index ) ) { unset( $locations['rule'][ $index ] ); } if ( isset( $locations['rule'] ) && is_array( $locations['rule'] ) ) { foreach ( $locations['rule'] as $location ) { $location_label[] = Astra_Target_Rules_Fields::get_location_by_key( $location ); } } if ( isset( $locations['specific'] ) && is_array( $locations['specific'] ) ) { foreach ( $locations['specific'] as $location ) { $location_label[] = Astra_Target_Rules_Fields::get_location_by_key( $location ); } } echo join( ', ', $location_label ); } /** * Register Post type for header footer templates */ public function header_footer_posttype() { $labels = [ 'name' => __( 'Header Footers Template', 'header-footer-elementor' ), 'singular_name' => __( 'Elementor Header Footer', 'header-footer-elementor' ), 'menu_name' => __( 'Header Footers Template', 'header-footer-elementor' ), 'name_admin_bar' => __( 'Elementor Header Footer', 'header-footer-elementor' ), 'add_new' => __( 'Add New', 'header-footer-elementor' ), 'add_new_item' => __( 'Add New Header Footer', 'header-footer-elementor' ), 'new_item' => __( 'New Header Footers Template', 'header-footer-elementor' ), 'edit_item' => __( 'Edit Header Footers Template', 'header-footer-elementor' ), 'view_item' => __( 'View Header Footers Template', 'header-footer-elementor' ), 'all_items' => __( 'All Elementor Header Footers', 'header-footer-elementor' ), 'search_items' => __( 'Search Header Footers Templates', 'header-footer-elementor' ), 'parent_item_colon' => __( 'Parent Header Footers Templates:', 'header-footer-elementor' ), 'not_found' => __( 'No Header Footers Templates found.', 'header-footer-elementor' ), 'not_found_in_trash' => __( 'No Header Footers Templates found in Trash.', 'header-footer-elementor' ), ]; $args = [ 'labels' => $labels, 'public' => true, 'show_ui' => true, 'show_in_menu' => false, 'show_in_nav_menus' => false, 'exclude_from_search' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_icon' => 'dashicons-editor-kitchensink', 'supports' => [ 'title', 'thumbnail', 'elementor' ], ]; register_post_type( 'elementor-hf', $args ); } /** * Register the admin menu for Header Footer builder. * * @since 1.0.0 * @since 1.0.1 * Moved the menu under Appearance -> Header Footer Builder */ public function register_admin_menu() { add_submenu_page( 'themes.php', __( 'Header Footer Builder', 'header-footer-elementor' ), __( 'Header Footer Builder', 'header-footer-elementor' ), 'edit_pages', 'edit.php?post_type=elementor-hf' ); } /** * Register meta box(es). */ function ehf_register_metabox() { add_meta_box( 'ehf-meta-box', __( 'Elementor Header Footer options', 'header-footer-elementor' ), [ $this, 'efh_metabox_render', ], 'elementor-hf', 'normal', 'high' ); } /** * Render Meta field. * * @param POST $post Currennt post object which is being displayed. */ function efh_metabox_render( $post ) { $values = get_post_custom( $post->ID ); $template_type = isset( $values['ehf_template_type'] ) ? esc_attr( $values['ehf_template_type'][0] ) : ''; $display_on_canvas = isset( $values['display-on-canvas-template'] ) ? true : false; // We'll use this nonce field later on when saving. wp_nonce_field( 'ehf_meta_nounce', 'ehf_meta_nounce' ); ?> display_rules_tab(); ?>
        />
        admin_styles(); $include_locations = get_post_meta( get_the_id(), 'ehf_target_include_locations', true ); $exclude_locations = get_post_meta( get_the_id(), 'ehf_target_exclude_locations', true ); $users = get_post_meta( get_the_id(), 'ehf_target_user_roles', true ); ?> __( 'Display Rules', 'header-footer-elementor' ), 'value' => '[{"type":"basic-global","specific":null}]', 'tags' => 'site,enable,target,pages', 'rule_type' => 'display', 'add_rule_label' => __( 'Add Display Rule', 'header-footer-elementor' ), ], $include_locations ); ?> __( 'Exclude On', 'header-footer-elementor' ), 'value' => '[]', 'tags' => 'site,enable,target,pages', 'add_rule_label' => __( 'Add Exclusion Rule', 'header-footer-elementor' ), 'rule_type' => 'exclude', ], $exclude_locations ); ?> __( 'Users', 'header-footer-elementor' ), 'value' => '[]', 'tags' => 'site,enable,target,pages', 'add_rule_label' => __( 'Add User Rule', 'header-footer-elementor' ), ], $users ); ?> post_type ) { return; } $template_type = get_post_meta( $post->ID, 'ehf_template_type', true ); if ( '' !== $template_type ) { $templates = Header_Footer_Elementor::get_template_id( $template_type ); // Check if more than one template is selected for current template type. if ( is_array( $templates ) && isset( $templates[1] ) && $post->ID != $templates[0] ) { $post_title = '' . get_the_title( $templates[0] ) . ''; $template_location = '' . $this->template_location( $template_type ) . ''; /* Translators: Post title, Template Location */ $message = sprintf( __( 'Template %1$s is already assigned to the location %2$s', 'header-footer-elementor' ), $post_title, $template_location ); echo '

        '; echo $message; echo '

        '; } } } /** * Convert the Template name to be added in the notice. * * @since 1.0.0 * * @param String $template_type Template type name. * * @return String $template_type Template type name. */ public function template_location( $template_type ) { $template_type = ucfirst( str_replace( 'type_', '', $template_type ) ); return $template_type; } /** * Don't display the elementor header footer templates on the frontend for non edit_posts capable users. * * @since 1.0.0 */ public function block_template_frontend() { if ( is_singular( 'elementor-hf' ) && ! current_user_can( 'edit_posts' ) ) { wp_redirect( site_url(), 301 ); die; } } /** * Single template function which will choose our template * * @since 1.0.1 * * @param String $single_template Single template. */ function load_canvas_template( $single_template ) { global $post; if ( 'elementor-hf' == $post->post_type ) { $elementor_2_0_canvas = ELEMENTOR_PATH . '/modules/page-templates/templates/canvas.php'; if ( file_exists( $elementor_2_0_canvas ) ) { return $elementor_2_0_canvas; } else { return ELEMENTOR_PATH . '/includes/page-templates/canvas.php'; } } return $single_template; } /** * Set shortcode column for template list. * * @param array $columns template list columns. */ function set_shortcode_columns( $columns ) { $date_column = $columns['date']; unset( $columns['date'] ); $columns['shortcode'] = __( 'Shortcode', 'header-footer-elementor' ); $columns['date'] = $date_column; return $columns; } /** * Display shortcode in template list column. * * @param array $column template list column. * @param int $post_id post id. */ function render_shortcode_column( $column, $post_id ) { switch ( $column ) { case 'shortcode': ob_start(); ?> input { background: inherit; color: inherit; font-size: 12px; border: none; box-shadow: none; padding: 4px 8px; margin: 0; } input.hfe-large-text{ width: 99%; } .hfe-options-row-heading { border-right: 1px solid #E1E1E1; padding: 15px; width: 45%; vertical-align: middle; } .hfe-options-row td { padding-left: 12px; padding-right: 12px; border-bottom: 1px solid #f0f0f0; zoom: 1; vertical-align: middle; } .hfe-options-table .hfe-options-row-content { padding: 15px 10px; position: relative; width: 55%; } .hfe-options-table.widefat{ border-width: 0; } #ehf-meta-box .inside { margin: 0; padding: 0; } .hfe-options-row-heading label { display: inline-block; font-size: 13px; line-height: 1.4em; font-weight: bold; padding: 0; margin: 0 0 3px; color: #333; } .hfe-options-row-content select { width: 95%; } .hfe-options-row-heading-help{ color: #b3b3b3; cursor: help; float: right; font-size: 18px; } .hfe_radio_options { display: inline-block; } li#toplevel_page_Settings-page { display: none; } .wp-admin #adminmenu .wp-submenu a[href="themes.php?page=hfe-settings"] { display:none; } .appearance_page_hfe-settings #adminmenu .wp-submenu a[href ="edit.php?post_type=elementor-hf" ] { color: white; font-weight: 600; } .hfe-heading-inline{ font-size: 23px; font-weight: 400; margin: 0; padding: 9px 0 4px 0; line-height: 1.3; } .hfe-selected-template-type-custom .bsf-target-rules-row, .hfe-selected-template-type-custom .enable-for-canvas { display: none; } .hfe-selected-template-type-custom .hfe-shortcode { display: table-row; } .hfe-shortcode { display: none; } .hfe-selected-template-type-none .bsf-target-rules-row, .hfe-selected-template-type-none .hfe-shortcode, .hfe-selected-template-type-none .enable-for-canvas { display: none; }PK\j%languages/header-footer-elementor.potnuW+A# Copyright (C) 2020 Brainstorm Force, Nikhil Chavan # This file is distributed under the same license as the Elementor - Header, Footer & Blocks package. msgid "" msgstr "" "Project-Id-Version: Elementor - Header, Footer & Blocks 1.4.0\n" "Report-Msgid-Bugs-To: " "https://wordpress.org/support/plugin/header-footer-elementor\n" "POT-Creation-Date: 2020-04-06 08:51:46+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Country: United States\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-KeywordsList: " "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_" "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n" "X-Poedit-Basepath: ../\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-Bookmarks: \n" "X-Textdomain-Support: yes\n" "X-Generator: grunt-wp-i18n 1.0.3\n" #: admin/class-hfe-admin.php:136 admin/class-hfe-admin.php:369 msgid "Display Rules" msgstr "" #: admin/class-hfe-admin.php:137 msgid "Date" msgstr "" #: admin/class-hfe-admin.php:220 admin/class-hfe-admin.php:222 msgid "Header Footers Template" msgstr "" #: admin/class-hfe-admin.php:221 admin/class-hfe-admin.php:223 msgid "Elementor Header Footer" msgstr "" #: admin/class-hfe-admin.php:224 msgid "Add New" msgstr "" #: admin/class-hfe-admin.php:225 msgid "Add New Header Footer" msgstr "" #: admin/class-hfe-admin.php:226 msgid "New Header Footers Template" msgstr "" #: admin/class-hfe-admin.php:227 msgid "Edit Header Footers Template" msgstr "" #: admin/class-hfe-admin.php:228 msgid "View Header Footers Template" msgstr "" #: admin/class-hfe-admin.php:229 msgid "All Elementor Header Footers" msgstr "" #: admin/class-hfe-admin.php:230 msgid "Search Header Footers Templates" msgstr "" #: admin/class-hfe-admin.php:231 msgid "Parent Header Footers Templates:" msgstr "" #: admin/class-hfe-admin.php:232 msgid "No Header Footers Templates found." msgstr "" #: admin/class-hfe-admin.php:233 msgid "No Header Footers Templates found in Trash." msgstr "" #: admin/class-hfe-admin.php:262 admin/class-hfe-admin.php:263 msgid "Header Footer Builder" msgstr "" #: admin/class-hfe-admin.php:275 msgid "Elementor Header Footer options" msgstr "" #: admin/class-hfe-admin.php:303 msgid "Type of Template" msgstr "" #: admin/class-hfe-admin.php:307 msgid "Select Option" msgstr "" #: admin/class-hfe-admin.php:308 msgid "Header" msgstr "" #: admin/class-hfe-admin.php:309 msgid "Before Footer" msgstr "" #: admin/class-hfe-admin.php:310 msgid "Footer" msgstr "" #: admin/class-hfe-admin.php:311 msgid "Custom Block" msgstr "" #: admin/class-hfe-admin.php:319 admin/class-hfe-admin.php:564 msgid "Shortcode" msgstr "" #: admin/class-hfe-admin.php:320 msgid "" "Copy this shortcode and paste it into your post, page, or text widget " "content." msgstr "" #: admin/class-hfe-admin.php:332 msgid "Enable Layout for Elementor Canvas Template?" msgstr "" #: admin/class-hfe-admin.php:334 msgid "" "Enabling this option will display this layout on pages using Elementor " "Canvas Template." msgstr "" #: admin/class-hfe-admin.php:360 msgid "Display On" msgstr "" #: admin/class-hfe-admin.php:362 msgid "Add locations for where this template should appear." msgstr "" #: admin/class-hfe-admin.php:373 msgid "Add Display Rule" msgstr "" #: admin/class-hfe-admin.php:382 msgid "Do Not Display On" msgstr "" #: admin/class-hfe-admin.php:384 msgid "This Advanced Header will not appear at these locations." msgstr "" #: admin/class-hfe-admin.php:391 msgid "Exclude On" msgstr "" #: admin/class-hfe-admin.php:394 #: inc/lib/target-rule/class-astra-target-rules-fields.php:840 msgid "Add Exclusion Rule" msgstr "" #: admin/class-hfe-admin.php:404 msgid "User Roles" msgstr "" #: admin/class-hfe-admin.php:405 msgid "Display custom template based on user role." msgstr "" #: admin/class-hfe-admin.php:412 msgid "Users" msgstr "" #: admin/class-hfe-admin.php:415 msgid "Add User Rule" msgstr "" #: admin/class-hfe-admin.php:495 #. Translators: Post title, Template Location msgid "Template %1$s is already assigned to the location %2$s" msgstr "" #: inc/class-header-footer-elementor.php:144 msgid "" "Hello! Seems like you have used Elementor - Header, Footer & Blocks to " "build this website — Thanks a ton!" msgstr "" #: inc/class-header-footer-elementor.php:145 msgid "" "Could you please do us a BIG favor and give it a 5-star rating on " "WordPress? This would boost our motivation and help other users make a " "comfortable decision while choosing the Elementor - Header, Footer & Blocks." msgstr "" #: inc/class-header-footer-elementor.php:147 msgid "Ok, you deserve it" msgstr "" #: inc/class-header-footer-elementor.php:149 msgid "Nope, maybe later" msgstr "" #: inc/class-header-footer-elementor.php:150 msgid "I already did" msgstr "" #: inc/class-header-footer-elementor.php:183 #. Translators: URL to install or activate Elementor plugin. msgid "" "The Header Footer Elementor plugin requires Elementor plugin installed & activated." msgstr "" #: inc/lib/notices/class-astra-notices.php:120 msgid "WordPress Nonce not validated." msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:127 msgid "404 Page" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:128 msgid "Search Page" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:129 msgid "Blog / Posts Page" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:130 msgid "Front Page" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:131 msgid "Date Archive" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:132 msgid "Author Archive" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:136 msgid "WooCommerce Shop Page" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:141 #: inc/lib/target-rule/class-astra-target-rules-fields.php:213 msgid "Basic" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:143 msgid "Entire Website" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:144 msgid "All Singulars" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:145 msgid "All Archives" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:150 msgid "Special Pages" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:191 msgid "Specific Target" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:193 msgid "Specific Pages / Posts / Taxanomies, etc." msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:215 msgid "All" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:216 msgid "Logged In" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:217 msgid "Logged Out" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:222 msgid "Advanced" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:619 msgid "Please enter" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:620 msgid "Please delete" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:621 msgid "or more characters" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:622 msgid "character" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:623 msgid "Loading more results…" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:624 msgid "You can only select" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:625 msgid "item" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:626 msgid "s" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:627 msgid "No results found" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:628 msgid "Searching…" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:629 msgid "The results could not be loaded." msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:630 msgid "Search pages / post / categories" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:648 #: inc/lib/target-rule/class-astra-target-rules-fields.php:1057 msgid "Add Rule" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:664 #: inc/lib/target-rule/class-astra-target-rules-fields.php:769 #: inc/lib/target-rule/class-astra-target-rules-fields.php:1073 #: inc/lib/target-rule/class-astra-target-rules-fields.php:1103 #: inc/lib/target-rule/class-astra-target-rules-fields.php:1553 msgid "Select" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:714 #. translators: %s post label msgid "All %s" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:719 #: inc/lib/target-rule/class-astra-target-rules-fields.php:728 #. translators: %s post label #. translators: %s taxonomy label msgid "All %s Archive" msgstr "" #: inc/lib/target-rule/class-astra-target-rules-fields.php:1494 #. translators: %s post title. msgid "The same display setting is already exist in %s post/s." msgstr "" #: inc/widgets-manager/class-widgets-loader.php:151 msgid "Header, Footer & Blocks" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:53 #: inc/widgets-manager/widgets/class-cart.php:592 msgid "Cart" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:110 #: inc/widgets-manager/widgets/class-cart.php:233 msgid "Menu Cart" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:117 msgid "Type" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:121 #: inc/widgets-manager/widgets/class-navigation-menu.php:227 #: inc/widgets-manager/widgets/class-navigation-menu.php:418 #: inc/widgets-manager/widgets/class-page-title.php:170 #: inc/widgets-manager/widgets/class-page-title.php:218 #: inc/widgets-manager/widgets/class-site-logo.php:221 #: inc/widgets-manager/widgets/class-site-logo.php:252 #: inc/widgets-manager/widgets/class-site-title.php:171 #: inc/widgets-manager/widgets/class-site-title.php:202 msgid "Default" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:122 msgid "Custom" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:130 #: inc/widgets-manager/widgets/class-navigation-menu.php:533 #: inc/widgets-manager/widgets/class-page-title.php:340 #: inc/widgets-manager/widgets/class-site-tagline.php:139 #: inc/widgets-manager/widgets/class-site-title.php:139 #: inc/widgets-manager/widgets/class-site-title.php:340 msgid "Icon" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:133 msgid "Bag Light" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:134 msgid "Bag Medium" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:135 msgid "Bag Solid" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:148 #: inc/widgets-manager/widgets/class-cart.php:486 msgid "Items Count" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:151 #: inc/widgets-manager/widgets/class-navigation-menu.php:449 #: inc/widgets-manager/widgets/class-navigation-menu.php:781 #: inc/widgets-manager/widgets/class-navigation-menu.php:1338 #: inc/widgets-manager/widgets/class-retina.php:185 #: inc/widgets-manager/widgets/class-retina.php:216 #: inc/widgets-manager/widgets/class-retina.php:334 #: inc/widgets-manager/widgets/class-site-logo.php:222 #: inc/widgets-manager/widgets/class-site-logo.php:376 msgid "None" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:152 msgid "Bubble" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:165 msgid "Show Total Price" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:167 #: inc/widgets-manager/widgets/class-cart.php:183 #: inc/widgets-manager/widgets/class-navigation-menu.php:501 #: inc/widgets-manager/widgets/class-site-logo.php:126 #: inc/widgets-manager/widgets/class-site-logo.php:191 #: inc/widgets-manager/widgets/class-site-logo.php:253 msgid "Yes" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:168 #: inc/widgets-manager/widgets/class-cart.php:184 #: inc/widgets-manager/widgets/class-navigation-menu.php:502 #: inc/widgets-manager/widgets/class-site-logo.php:127 #: inc/widgets-manager/widgets/class-site-logo.php:190 #: inc/widgets-manager/widgets/class-site-logo.php:254 msgid "No" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:181 msgid "Hide Empty" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:187 msgid "This will hide the items count until the cart is empty" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:198 #: inc/widgets-manager/widgets/class-copyright.php:130 #: inc/widgets-manager/widgets/class-navigation-menu.php:261 #: inc/widgets-manager/widgets/class-navigation-menu.php:462 #: inc/widgets-manager/widgets/class-page-title.php:231 #: inc/widgets-manager/widgets/class-retina.php:156 #: inc/widgets-manager/widgets/class-site-logo.php:161 #: inc/widgets-manager/widgets/class-site-tagline.php:167 #: inc/widgets-manager/widgets/class-site-title.php:232 msgid "Alignment" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:202 #: inc/widgets-manager/widgets/class-copyright.php:134 #: inc/widgets-manager/widgets/class-navigation-menu.php:265 #: inc/widgets-manager/widgets/class-navigation-menu.php:296 #: inc/widgets-manager/widgets/class-navigation-menu.php:331 #: inc/widgets-manager/widgets/class-navigation-menu.php:367 #: inc/widgets-manager/widgets/class-navigation-menu.php:466 #: inc/widgets-manager/widgets/class-page-title.php:235 #: inc/widgets-manager/widgets/class-retina.php:160 #: inc/widgets-manager/widgets/class-site-logo.php:165 #: inc/widgets-manager/widgets/class-site-tagline.php:171 #: inc/widgets-manager/widgets/class-site-title.php:236 msgid "Left" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:206 #: inc/widgets-manager/widgets/class-copyright.php:138 #: inc/widgets-manager/widgets/class-navigation-menu.php:269 #: inc/widgets-manager/widgets/class-navigation-menu.php:335 #: inc/widgets-manager/widgets/class-navigation-menu.php:371 #: inc/widgets-manager/widgets/class-navigation-menu.php:470 #: inc/widgets-manager/widgets/class-page-title.php:239 #: inc/widgets-manager/widgets/class-retina.php:164 #: inc/widgets-manager/widgets/class-site-logo.php:169 #: inc/widgets-manager/widgets/class-site-tagline.php:175 #: inc/widgets-manager/widgets/class-site-title.php:240 msgid "Center" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:210 #: inc/widgets-manager/widgets/class-copyright.php:142 #: inc/widgets-manager/widgets/class-navigation-menu.php:273 #: inc/widgets-manager/widgets/class-navigation-menu.php:297 #: inc/widgets-manager/widgets/class-navigation-menu.php:339 #: inc/widgets-manager/widgets/class-navigation-menu.php:375 #: inc/widgets-manager/widgets/class-navigation-menu.php:474 #: inc/widgets-manager/widgets/class-page-title.php:243 #: inc/widgets-manager/widgets/class-retina.php:168 #: inc/widgets-manager/widgets/class-site-logo.php:173 #: inc/widgets-manager/widgets/class-site-tagline.php:179 #: inc/widgets-manager/widgets/class-site-title.php:244 msgid "Right" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:252 #: inc/widgets-manager/widgets/class-page-title.php:214 #: inc/widgets-manager/widgets/class-site-title.php:198 msgid "Size" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:271 #: inc/widgets-manager/widgets/class-navigation-menu.php:1371 #: inc/widgets-manager/widgets/class-navigation-menu.php:1489 #: inc/widgets-manager/widgets/class-retina.php:348 #: inc/widgets-manager/widgets/class-site-logo.php:390 msgid "Border Width" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:290 #: inc/widgets-manager/widgets/class-navigation-menu.php:1198 #: inc/widgets-manager/widgets/class-navigation-menu.php:1505 #: inc/widgets-manager/widgets/class-navigation-menu.php:1633 #: inc/widgets-manager/widgets/class-retina.php:389 #: inc/widgets-manager/widgets/class-site-logo.php:431 msgid "Border Radius" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:310 #: inc/widgets-manager/widgets/class-navigation-menu.php:1573 #: inc/widgets-manager/widgets/class-retina.php:573 #: inc/widgets-manager/widgets/class-site-logo.php:615 msgid "Padding" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:327 #: inc/widgets-manager/widgets/class-navigation-menu.php:880 #: inc/widgets-manager/widgets/class-navigation-menu.php:1084 #: inc/widgets-manager/widgets/class-navigation-menu.php:1408 #: inc/widgets-manager/widgets/class-navigation-menu.php:1587 #: inc/widgets-manager/widgets/class-page-title.php:315 #: inc/widgets-manager/widgets/class-retina.php:414 #: inc/widgets-manager/widgets/class-site-logo.php:456 #: inc/widgets-manager/widgets/class-site-title.php:315 msgid "Normal" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:334 #: inc/widgets-manager/widgets/class-cart.php:390 #: inc/widgets-manager/widgets/class-cart.php:499 #: inc/widgets-manager/widgets/class-copyright.php:155 #: inc/widgets-manager/widgets/class-navigation-menu.php:887 #: inc/widgets-manager/widgets/class-navigation-menu.php:927 #: inc/widgets-manager/widgets/class-navigation-menu.php:997 #: inc/widgets-manager/widgets/class-navigation-menu.php:1091 #: inc/widgets-manager/widgets/class-navigation-menu.php:1134 #: inc/widgets-manager/widgets/class-navigation-menu.php:1594 #: inc/widgets-manager/widgets/class-navigation-menu.php:1662 #: inc/widgets-manager/widgets/class-retina.php:529 #: inc/widgets-manager/widgets/class-site-logo.php:571 msgid "Text Color" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:345 #: inc/widgets-manager/widgets/class-cart.php:401 #: inc/widgets-manager/widgets/class-page-title.php:351 #: inc/widgets-manager/widgets/class-site-tagline.php:221 #: inc/widgets-manager/widgets/class-site-title.php:350 msgid "Icon Color" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:359 #: inc/widgets-manager/widgets/class-cart.php:415 #: inc/widgets-manager/widgets/class-cart.php:513 #: inc/widgets-manager/widgets/class-navigation-menu.php:762 #: inc/widgets-manager/widgets/class-navigation-menu.php:903 #: inc/widgets-manager/widgets/class-navigation-menu.php:946 #: inc/widgets-manager/widgets/class-navigation-menu.php:1009 #: inc/widgets-manager/widgets/class-navigation-menu.php:1108 #: inc/widgets-manager/widgets/class-navigation-menu.php:1151 #: inc/widgets-manager/widgets/class-navigation-menu.php:1426 #: inc/widgets-manager/widgets/class-navigation-menu.php:1457 #: inc/widgets-manager/widgets/class-navigation-menu.php:1607 #: inc/widgets-manager/widgets/class-navigation-menu.php:1674 #: inc/widgets-manager/widgets/class-retina.php:545 #: inc/widgets-manager/widgets/class-site-logo.php:360 #: inc/widgets-manager/widgets/class-site-logo.php:587 msgid "Background Color" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:370 #: inc/widgets-manager/widgets/class-cart.php:426 #: inc/widgets-manager/widgets/class-navigation-menu.php:1354 #: inc/widgets-manager/widgets/class-retina.php:370 #: inc/widgets-manager/widgets/class-site-logo.php:412 msgid "Border Color" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:383 #: inc/widgets-manager/widgets/class-navigation-menu.php:920 #: inc/widgets-manager/widgets/class-navigation-menu.php:1127 #: inc/widgets-manager/widgets/class-navigation-menu.php:1439 #: inc/widgets-manager/widgets/class-navigation-menu.php:1655 #: inc/widgets-manager/widgets/class-retina.php:449 #: inc/widgets-manager/widgets/class-site-logo.php:491 msgid "Hover" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:440 #: inc/widgets-manager/widgets/class-navigation-menu.php:1472 msgid "Icon Size" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:462 #: inc/widgets-manager/widgets/class-page-title.php:147 #: inc/widgets-manager/widgets/class-site-tagline.php:148 #: inc/widgets-manager/widgets/class-site-title.php:148 msgid "Icon Spacing" msgstr "" #: inc/widgets-manager/widgets/class-cart.php:527 msgid "Distance" msgstr "" #: inc/widgets-manager/widgets/class-copyright.php:52 #: inc/widgets-manager/widgets/class-copyright.php:102 msgid "Copyright" msgstr "" #: inc/widgets-manager/widgets/class-copyright.php:109 msgid "Copyright Text" msgstr "" #: inc/widgets-manager/widgets/class-copyright.php:114 msgid "" "Copyright © [hfe_current_year] [hfe_site_title] | Powered by " "[hfe_site_title]" msgstr "" #: inc/widgets-manager/widgets/class-copyright.php:121 #: inc/widgets-manager/widgets/class-page-title.php:166 #: inc/widgets-manager/widgets/class-page-title.php:179 #: inc/widgets-manager/widgets/class-retina.php:212 #: inc/widgets-manager/widgets/class-retina.php:225 #: inc/widgets-manager/widgets/class-site-logo.php:217 #: inc/widgets-manager/widgets/class-site-logo.php:232 #: inc/widgets-manager/widgets/class-site-title.php:167 #: inc/widgets-manager/widgets/class-site-title.php:180 msgid "Link" msgstr "" #: inc/widgets-manager/widgets/class-copyright.php:123 #: inc/widgets-manager/widgets/class-page-title.php:181 #: inc/widgets-manager/widgets/class-retina.php:230 #: inc/widgets-manager/widgets/class-site-logo.php:237 #: inc/widgets-manager/widgets/class-site-title.php:182 msgid "https://your-link.com" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:63 msgid "Navigation Menu" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:188 #: inc/widgets-manager/widgets/class-navigation-menu.php:198 msgid "Menu" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:205 #. translators: %s Nav menu URL msgid "" "Go to the Menus screen to manage your " "menus." msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:214 #. translators: %s Nav menu URL msgid "" "There are no menus in your site.
        Go to the Menus screen to create one." msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:224 msgid "Last Menu Item" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:228 #: inc/widgets-manager/widgets/class-navigation-menu.php:1553 msgid "Button" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:239 #: inc/widgets-manager/widgets/class-navigation-menu.php:246 msgid "Layout" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:250 msgid "Horizontal" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:251 msgid "Vertical" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:252 msgid "Expanded" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:253 msgid "Flyout" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:277 #: inc/widgets-manager/widgets/class-navigation-menu.php:379 #: inc/widgets-manager/widgets/class-site-tagline.php:183 #: inc/widgets-manager/widgets/class-site-title.php:248 msgid "Justify" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:292 msgid "Flyout Orientation" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:308 msgid "Appear Effect" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:313 msgid "Slide" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:314 msgid "Push" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:326 msgid "Hamburger Align" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:363 msgid "Menu Items Align" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:399 msgid "Submenu Icon" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:403 msgid "Arrows" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:404 msgid "Plus Sign" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:405 msgid "Classic" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:414 msgid "Submenu Animation" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:419 msgid "Slide Up" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:432 msgid "Responsive" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:443 msgid "Breakpoint" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:447 msgid "Mobile (767px >)" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:448 msgid "Tablet (1023px >)" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:479 msgid "This is the alignement of menu icon on selected responsive breakpoints." msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:498 msgid "Full Width" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:499 msgid "Enable this option to stretch the Sub Menu to Full Width." msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:517 msgid "Menu Icon" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:548 #: inc/widgets-manager/widgets/class-navigation-menu.php:564 msgid "Close Icon" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:589 msgid "Main Menu" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:600 msgid "Flyout Box Width" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:627 msgid "Flyout Box Padding" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:650 #: inc/widgets-manager/widgets/class-navigation-menu.php:1256 msgid "Horizontal Padding" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:675 #: inc/widgets-manager/widgets/class-navigation-menu.php:1278 msgid "Vertical Padding" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:696 msgid "Space Between" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:722 msgid "Row Spacing" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:742 msgid "Menu Item Top Spacing" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:777 msgid "Link Hover Effect" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:782 msgid "Underline" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:783 msgid "Overline" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:784 msgid "Double Line" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:785 msgid "Framed" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:786 msgid "Text" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:797 #: inc/widgets-manager/widgets/class-navigation-menu.php:839 msgid "Animation" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:818 msgid "Frame Animation" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:964 #: inc/widgets-manager/widgets/class-navigation-menu.php:1024 msgid "Link Hover Effect Color" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:990 msgid "Active" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1059 msgid "Dropdown" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1067 msgid "" "Note: On desktop, below style options will apply to the submenu. On " "mobile, this will apply to the entire menu." msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1232 msgid "Dropdown Width (px)" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1303 msgid "Top Distance" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1324 msgid "Divider" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1333 #: inc/widgets-manager/widgets/class-retina.php:329 #: inc/widgets-manager/widgets/class-site-logo.php:371 msgid "Border Style" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1339 #: inc/widgets-manager/widgets/class-retina.php:335 #: inc/widgets-manager/widgets/class-site-logo.php:377 msgid "Solid" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1340 #: inc/widgets-manager/widgets/class-retina.php:336 #: inc/widgets-manager/widgets/class-site-logo.php:378 msgid "Double" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1341 #: inc/widgets-manager/widgets/class-retina.php:337 #: inc/widgets-manager/widgets/class-site-logo.php:379 msgid "Dotted" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1342 #: inc/widgets-manager/widgets/class-retina.php:338 #: inc/widgets-manager/widgets/class-site-logo.php:380 msgid "Dashed" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1398 msgid "Menu Trigger & Close Icon" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1415 #: inc/widgets-manager/widgets/class-navigation-menu.php:1446 #: inc/widgets-manager/widgets/class-page-title.php:287 #: inc/widgets-manager/widgets/class-site-tagline.php:204 #: inc/widgets-manager/widgets/class-site-title.php:287 msgid "Color" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1517 msgid "Close Icon Color" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1533 msgid "Close Icon Size" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1565 msgid "Typography" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1625 msgid "Border" msgstr "" #: inc/widgets-manager/widgets/class-navigation-menu.php:1691 msgid "Border Hover Color" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:54 msgid "Page Title" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:109 #: inc/widgets-manager/widgets/class-page-title.php:270 #: inc/widgets-manager/widgets/class-site-title.php:272 msgid "Title" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:116 #: inc/widgets-manager/widgets/class-site-tagline.php:115 #: inc/widgets-manager/widgets/class-site-title.php:117 msgid "Before Title Text" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:127 #: inc/widgets-manager/widgets/class-site-tagline.php:127 #: inc/widgets-manager/widgets/class-site-title.php:128 msgid "After Title Text" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:138 msgid "Select Icon" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:169 #: inc/widgets-manager/widgets/class-retina.php:217 #: inc/widgets-manager/widgets/class-site-logo.php:224 #: inc/widgets-manager/widgets/class-site-title.php:170 msgid "Custom URL" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:197 #: inc/widgets-manager/widgets/class-site-title.php:215 msgid "HTML Tag" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:200 #: inc/widgets-manager/widgets/class-site-title.php:218 msgid "H1" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:201 #: inc/widgets-manager/widgets/class-site-title.php:219 msgid "H2" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:202 #: inc/widgets-manager/widgets/class-site-title.php:220 msgid "H3" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:203 #: inc/widgets-manager/widgets/class-site-title.php:221 msgid "H4" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:204 #: inc/widgets-manager/widgets/class-site-title.php:222 msgid "H5" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:205 #: inc/widgets-manager/widgets/class-site-title.php:223 msgid "H6" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:219 #: inc/widgets-manager/widgets/class-site-title.php:203 msgid "Small" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:220 #: inc/widgets-manager/widgets/class-site-title.php:204 msgid "Medium" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:221 #: inc/widgets-manager/widgets/class-site-title.php:205 msgid "Large" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:222 #: inc/widgets-manager/widgets/class-site-title.php:206 msgid "XL" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:223 #: inc/widgets-manager/widgets/class-site-title.php:207 msgid "XXL" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:247 msgid "Justified" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:312 #: inc/widgets-manager/widgets/class-site-title.php:312 msgid "Blend Mode" msgstr "" #: inc/widgets-manager/widgets/class-page-title.php:370 #: inc/widgets-manager/widgets/class-site-tagline.php:240 #: inc/widgets-manager/widgets/class-site-title.php:369 msgid "Icon Hover Color" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:59 #: inc/widgets-manager/widgets/class-retina.php:116 #: inc/widgets-manager/widgets/class-retina.php:249 msgid "Retina Image" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:122 msgid "Choose Default Image" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:135 msgid "Choose Retina Image" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:149 #: inc/widgets-manager/widgets/class-site-logo.php:154 msgid "Image Size" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:182 #: inc/widgets-manager/widgets/class-retina.php:518 #: inc/widgets-manager/widgets/class-site-logo.php:187 #: inc/widgets-manager/widgets/class-site-logo.php:560 msgid "Caption" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:186 #: inc/widgets-manager/widgets/class-retina.php:195 #: inc/widgets-manager/widgets/class-site-logo.php:200 msgid "Custom Caption" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:198 msgid "Enter your image caption" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:257 #: inc/widgets-manager/widgets/class-site-logo.php:290 msgid "Width" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:293 #: inc/widgets-manager/widgets/class-site-logo.php:325 msgid "Max Width" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:421 #: inc/widgets-manager/widgets/class-retina.php:455 #: inc/widgets-manager/widgets/class-site-logo.php:463 #: inc/widgets-manager/widgets/class-site-logo.php:497 msgid "Opacity" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:481 #: inc/widgets-manager/widgets/class-site-logo.php:539 msgid "Hover Animation" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:488 #: inc/widgets-manager/widgets/class-site-logo.php:514 msgid "Transition Duration" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:584 msgid "Caption Top Spacing" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:615 msgid "Helpful Information" msgstr "" #: inc/widgets-manager/widgets/class-retina.php:624 #. translators: %1$s doc link msgid "%1$s Getting started article » %2$s" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:61 #: inc/widgets-manager/widgets/class-site-logo.php:117 msgid "Site Logo" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:124 msgid "Custom Image" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:136 msgid "Add Image" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:203 msgid "Enter caption" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:223 msgid "Media File" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:248 msgid "Lightbox" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:265 msgid "View" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:282 msgid "Site logo" msgstr "" #: inc/widgets-manager/widgets/class-site-logo.php:626 msgid "Spacing" msgstr "" #: inc/widgets-manager/widgets/class-site-tagline.php:53 msgid "Site Tagline" msgstr "" #: inc/widgets-manager/widgets/class-site-tagline.php:108 msgid "Style" msgstr "" #: inc/widgets-manager/widgets/class-site-title.php:53 msgid "Site Title" msgstr "" #: inc/widgets-manager/widgets/class-site-title.php:110 msgid "General" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:65 msgid "Add Theme Support" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:78 msgid "" "The Elementor - Header, Footer & Blocks plugin need compatibility with your " "current theme to work smoothly.

        Following are two methods that " "enable theme support for the plugin.

        Method 1 is selected by " "default and that works fine almost will all themes. In case, you face any " "issue with the header or footer template, try choosing Method 2." msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:95 msgid " Method 1 (Recommended)" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:96 msgid "" "This method replaces your theme's header (header.php) & footer (footer.php) " "template with plugin's custom templates." msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:99 msgid "Method 2" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:112 msgid "" "Sometimes above methods might not work well with your theme, in this case, " "contact your theme author and request them to add support for the plugin." msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:147 #: themes/default/class-hfe-fallback-theme-support.php:148 msgid "Settings" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:164 msgid "Elementor - Header, Footer & Blocks " msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:172 #: themes/default/class-hfe-fallback-theme-support.php:213 msgid "All templates" msgstr "" #: themes/default/class-hfe-fallback-theme-support.php:176 #: themes/default/class-hfe-fallback-theme-support.php:217 msgid "Theme Support" msgstr "" #. Plugin Name of the plugin/theme msgid "Elementor - Header, Footer & Blocks" msgstr "" #. Plugin URI of the plugin/theme msgid "https://github.com/Nikschavan/header-footer-elementor" msgstr "" #. Description of the plugin/theme msgid "" "This powerful plugin allows creating a custom header, footer with Elementor " "and display them on selected locations. You can also create custom " "Elementor blocks and place them anywhere on the website with a shortcode." msgstr "" #. Author of the plugin/theme msgid "Brainstorm Force, Nikhil Chavan" msgstr "" #. Author URI of the plugin/theme msgid "https://www.brainstormforce.com/" msgstr ""PK\<header-footer-elementor.phpnuW+Authemes/astra/class-hfe-astra-compat.phpnuW+APK\TJJ-zthemes/bb-theme/class-hfe-bb-theme-compat.phpnuW+APK\E"m+mthemes/oceanwp/class-hfe-oceanwp-compat.phpnuW+APK\=E E +themes/genesis/class-hfe-genesis-compat.phpnuW+APK\thTT;;themes/hello-elementor/class-hfe-hello-elementor-compat.phpnuW+APK\ Ң7themes/generatepress/class-hfe-generatepress-compat.phpnuW+APK\@qthemes/default/hfe-footer.phpnuW+APK\ 3themes/default/class-global-theme-compatibility.phpnuW+APK\knXX+ܧthemes/default/class-hfe-default-compat.phpnuW+APK\#3themes/default/class-hfe-fallback-theme-support.phpnuW+APK\65ddthemes/default/hfe-header.phpnuW+APK\%77 readme.txtnuW+APK\l )oinc/class-hfe-elementor-canvas-compat.phpnuW+APK\ 1inc/widgets-manager/widgets/class-menu-walker.phpnuW+APK\Ay((2inc/widgets-manager/widgets/class-site-tagline.phpnuW+APK\5220g=inc/widgets-manager/widgets/class-page-title.phpnuW+APK\%1G))/pinc/widgets-manager/widgets/class-copyright.phpnuW+APK\ A A*7inc/widgets-manager/widgets/class-cart.phpnuW+APK\>b2b20inc/widgets-manager/widgets/class-site-title.phpnuW+APK\inc/lib/target-rule/i18n/id.jsnuW+APK\$g*""5inc/lib/target-rule/i18n/hu.jsnuW+APK\xinc/lib/target-rule/i18n/is.jsnuW+APK\~K;; inc/lib/target-rule/i18n/en.jsnuW+APK\M&++# inc/lib/target-rule/i18n/sr-Cyrl.jsnuW+APK\kC!inc/lib/target-rule/i18n/zh-CN.jsnuW+APK\ *NNQinc/lib/target-rule/i18n/af.jsnuW+APK\HVVinc/lib/target-rule/i18n/ko.jsnuW+APK\4c!inc/lib/target-rule/i18n/zh-TW.jsnuW+APK\  inc/lib/target-rule/i18n/vi.jsnuW+APK\ZBͪ#inc/lib/target-rule/i18n/sr.jsnuW+APK\Է 'inc/lib/target-rule/i18n/he.jsnuW+APK\Qj+inc/lib/target-rule/i18n/tr.jsnuW+APK\r Hd.inc/lib/target-rule/i18n/nb.jsnuW+APK\;))1inc/lib/target-rule/i18n/km.jsnuW+APK\hu+06inc/lib/target-rule/i18n/pl.jsnuW+APK\)Cdgg:inc/lib/target-rule/i18n/ru.jsnuW+APK\^Yll>inc/lib/target-rule/i18n/it.jsnuW+APK\q_*ssBinc/lib/target-rule/i18n/fr.jsnuW+APK\~ddKFinc/lib/target-rule/i18n/ar.jsnuW+APK\U=llIinc/lib/target-rule/i18n/el.jsnuW+APK\4t_GGNinc/lib/target-rule/i18n/hr.jsnuW+APK\LRinc/lib/target-rule/i18n/mk.jsnuW+APK\Ʌ]]mVinc/lib/target-rule/i18n/uk.jsnuW+APK\F5||[inc/lib/target-rule/i18n/es.jsnuW+APK\Ώ^inc/lib/target-rule/i18n/bs.jsnuW+APK\pzzzbinc/lib/target-rule/i18n/sl.jsnuW+APK\)3bfinc/lib/target-rule/i18n/ps.jsnuW+APK\Rjinc/lib/target-rule/i18n/az.jsnuW+APK\ Y&((minc/lib/target-rule/i18n/da.jsnuW+APK\6 llnqinc/lib/target-rule/i18n/ca.jsnuW+APK\PP(uinc/lib/target-rule/i18n/ja.jsnuW+APK\jlĊxinc/lib/target-rule/i18n/bg.jsnuW+APK\]~5|inc/lib/target-rule/i18n/hy.jsnuW+APK\U Qvvـinc/lib/target-rule/i18n/gl.jsnuW+APK\F{LLinc/lib/target-rule/i18n/eu.jsnuW+APK\+:R[[7inc/lib/target-rule/i18n/pt.jsnuW+APK\gg<inc/lib/target-rule/i18n/nl.jsnuW+APK\Tinc/lib/target-rule/i18n/lt.jsnuW+APK\Uvinc/lib/target-rule/i18n/cs.jsnuW+APK\ languages/header-footer-elementor.potnuW+APK\<< header-footer-elementor.phpnuW+APKllV)