Version Description
Download this release
Release Info
Developer | pross |
Plugin | WordPress Page Builder – Beaver Builder |
Version | 2.2.5.3 |
Comparing to | |
See all releases |
Code changes from version 2.2.4.3 to 2.2.5.3
- changelog.txt +80 -0
- classes/class-fl-builder-admin-posts.php +14 -2
- classes/class-fl-builder-art.php +6 -0
- classes/class-fl-builder-debug.php +20 -0
- classes/class-fl-builder-loader.php +1 -1
- classes/class-fl-builder-model.php +9 -2
- classes/class-fl-builder-update.php +5 -0
- classes/class-fl-builder-wpml.php +1 -1
- classes/class-fl-builder.php +21 -8
- css/fl-builder-layout-medium.css +6 -1
- css/fl-builder-layout-responsive.css +5 -2
- css/fl-builder-layout.css +9 -0
- css/fl-builder.css +1 -1
- css/fl-builder.min.css +1 -1
- extensions/fl-builder-cache-helper/plugins/nginxhelper.php +14 -0
- extensions/fl-builder-seo-plugins/classes/class-fl-builder-seo-plugins.php +2 -0
- fl-builder.php +1 -1
- includes/admin-settings-post-types.php +1 -1
- includes/compatibility.php +29 -0
- includes/global-settings.php +11 -1
- includes/row-settings.php +14 -1
- includes/row-video.php +5 -2
- includes/ui-field-link.php +6 -2
- includes/ui-field-textarea.php +1 -0
- includes/updater-config.php +1 -1
- includes/vendor/infusionsoft/xmlrpc/lib/xmlrpc.inc +11 -11
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Client.php +1284 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Encoder.php +321 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Charset.php +275 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Date.php +63 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Http.php +257 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Logger.php +59 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/XMLParser.php +561 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/PhpXmlRpc.php +150 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Request.php +388 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Response.php +158 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Value.php +600 -0
- includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Wrapper.php +1118 -0
- js/build/builder.bundle.js +3 -12
- js/build/builder.bundle.min.js +14 -6
- js/build/components.bundle.min.js +1 -1
- js/build/wp-editor.bundle.min.js +1 -1
- js/fl-builder-layout.js +23 -16
- js/fl-builder.js +29 -2
- js/fl-builder.min.js +1 -6
changelog.txt
CHANGED
@@ -1,3 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<h4>2.2.4.3 - 07/31/2019</h4>
|
2 |
<p><strong>Bug Fixes</strong></p>
|
3 |
<ul>
|
1 |
+
<h4>2.2.5.3 - 09/25/2019</h4>
|
2 |
+
<p><strong>Hot Fix</strong></p>
|
3 |
+
<ul>
|
4 |
+
<li>Fixed Content Slider: Style tab disappears once slides are edited.</li>
|
5 |
+
<li>Fixed another equal heights column with responsive visibility issue.</li>
|
6 |
+
<li>Fixed issue on with ace code editor on SiteGround if their ForceSSL option is enabled.</li>
|
7 |
+
</ul>
|
8 |
+
|
9 |
+
<h4>2.2.5.2 - 09/11/2019</h4>
|
10 |
+
<p><strong>Hot Fix</strong></p>
|
11 |
+
<ul>
|
12 |
+
<li>Fixed unescaped alt tag in slideshow javascript.</li>
|
13 |
+
<li>Fixed row content layout when margin-top is set to negative value.</li>
|
14 |
+
</ul>
|
15 |
+
|
16 |
+
<h4>2.2.5.1 - 09/05/2019</h4>
|
17 |
+
<p><strong>Hot Fix</strong></p>
|
18 |
+
<ul>
|
19 |
+
<li>Fixed background video issues.</li>
|
20 |
+
<li>Fixed responsive visibility issue with equal heights column.</li>
|
21 |
+
<li>Fixed vertical tabs display issue.</li>
|
22 |
+
</ul>
|
23 |
+
|
24 |
+
<h4>2.2.5 - 09/04/2019</h4>
|
25 |
+
<p><strong>Enhancements</strong></p>
|
26 |
+
<ul>
|
27 |
+
<li>Accessibility: Added title attribute setting for iframe in Map module.</li>
|
28 |
+
<li>Accessibility: Added TAB functionaility to Menu module.</li>
|
29 |
+
<li>Accessibility: Improved accessibility of Tabs and Accordion modules.</li>
|
30 |
+
<li>Accessibility: Added alt attribute to slideshow images.</li>
|
31 |
+
<li>Accessibility: Always show label setting as it is also used for aria attribute in Menu module.</li>
|
32 |
+
<li>Added maxlength setting for Textarea fields.</li>
|
33 |
+
<li>Row videos can now use shortcodes for url.</li>
|
34 |
+
<li>Added an option to enable video background in mobile.</li>
|
35 |
+
<li>Added Collection Schema to Posts module when not post post-type.</li>
|
36 |
+
<li>Added new filter <code>fl_builder_get_asset_info_post_id</code>.</li>
|
37 |
+
<li>Added new filter <code>fl_render_featured_image_fallback</code>.</li>
|
38 |
+
<li>Added global option to disable column max-width on responsive layout.</li>
|
39 |
+
<li>Added preload="none" to self hosted videos.</li>
|
40 |
+
</ul>
|
41 |
+
<p><strong>Bug Fixes</strong></p>
|
42 |
+
<ul>
|
43 |
+
<li>Fixed issue with settings lightbox if off the screen last time it was saved.</li>
|
44 |
+
<li>Fixed template post type links showing as results in Gutenberg suggested links.</li>
|
45 |
+
<li>Fixed PHP notice when post types option is not empty in the network admin settings.</li>
|
46 |
+
<li>Fixed updater logic clearing caches for all subsites when not needed on multisites.</li>
|
47 |
+
<li>Fixed bullet point css issue in Pricing module.</li>
|
48 |
+
<li>Fixed equal height issue on columns when visibility is set to medium.</li>
|
49 |
+
<li>Fixed FireFox bug for row with negative margins not working on equal height columns.</li>
|
50 |
+
<li>Fixed circle cut-off on Number Counter when the Stroke Size value is large.</li>
|
51 |
+
<li>Fixed saved column settings update/save error.</li>
|
52 |
+
<li>Fixed Mobile Menu not closing when clicked outside the toggle button.</li>
|
53 |
+
<li>Fixed row bg disappearing with ACF field connection and Yoast active</li>
|
54 |
+
<li>Fixed inline editor issues when WPML is enabled.</li>
|
55 |
+
<li>Fixed responsive issue in post carousel when equal height is enabled and parent row is set to full height or custom.</li>
|
56 |
+
</ul>
|
57 |
+
|
58 |
+
<h4>2.2.4.5 - 08/28/2019</h4>
|
59 |
+
<p><strong>Enhancements</strong></p>
|
60 |
+
<ul>
|
61 |
+
<li>New filter added <code>fl_builder_art_register_shape</code>.</li>
|
62 |
+
<li>Added support for Nginx Helper plugin in cache extension.</li>
|
63 |
+
</ul>
|
64 |
+
<p><strong>Bug Fixes</strong></p>
|
65 |
+
<ul>
|
66 |
+
<li>Fixed Infusionsoft fatal error due to missing library folder.</li>
|
67 |
+
<li>Fixed jQuery Validate issue if no messages object is setup in settings.js</li>
|
68 |
+
</ul>
|
69 |
+
|
70 |
+
<h4>2.2.4.4 - 08/21/2019</h4>
|
71 |
+
<p><strong>Bug Fixes</strong></p>
|
72 |
+
<ul>
|
73 |
+
<li>Fixed fallback image and text alignment on Posts module List Layout.</li>
|
74 |
+
<li>Fixed Numbers Module if float value is used.</li>
|
75 |
+
<li>Fixed Subscribe Form module's URL Redirect.</li>
|
76 |
+
<li>Fixed Editor tab missing when using Classic Editor and Yoast plugins.</li>
|
77 |
+
<li>Fixed Beaver Builder sorting link appearing in EDD main settings.</li>
|
78 |
+
</ul>
|
79 |
+
|
80 |
+
|
81 |
<h4>2.2.4.3 - 07/31/2019</h4>
|
82 |
<p><strong>Bug Fixes</strong></p>
|
83 |
<ul>
|
classes/class-fl-builder-admin-posts.php
CHANGED
@@ -102,11 +102,23 @@ final class FLBuilderAdminPosts {
|
|
102 |
add_action( 'edit_form_after_title', __CLASS__ . '::render' );
|
103 |
}
|
104 |
}
|
105 |
-
|
|
|
|
|
|
|
106 |
if ( 'edit.php' == $pagenow && true === apply_filters( 'fl_builder_admin_edit_sort_bb_enabled', true ) ) {
|
107 |
$post_types = FLBuilderModel::get_post_types();
|
108 |
$post_type = self::get_post_type();
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
wp_enqueue_script( 'fl-builder-admin-posts-list', FL_BUILDER_URL . 'js/fl-builder-admin-posts-list.js', array( 'jquery' ), FL_BUILDER_VERSION );
|
111 |
$args = array(
|
112 |
'post_type' => $post_type,
|
102 |
add_action( 'edit_form_after_title', __CLASS__ . '::render' );
|
103 |
}
|
104 |
}
|
105 |
+
/**
|
106 |
+
* Enable/disable sorting by BB enabled.
|
107 |
+
* @see fl_builder_admin_edit_sort_bb_enabled
|
108 |
+
*/
|
109 |
if ( 'edit.php' == $pagenow && true === apply_filters( 'fl_builder_admin_edit_sort_bb_enabled', true ) ) {
|
110 |
$post_types = FLBuilderModel::get_post_types();
|
111 |
$post_type = self::get_post_type();
|
112 |
+
$block = array(
|
113 |
+
'fl-builder-template',
|
114 |
+
'fl-theme-layout',
|
115 |
+
);
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Array of types to not show filtering on.
|
119 |
+
* @see fl_builder_admin_edit_sort_blocklist
|
120 |
+
*/
|
121 |
+
if ( ! in_array( $post_type, apply_filters( 'fl_builder_admin_edit_sort_blocklist', $block ) ) && in_array( $post_type, $post_types ) ) {
|
122 |
wp_enqueue_script( 'fl-builder-admin-posts-list', FL_BUILDER_URL . 'js/fl-builder-admin-posts-list.js', array( 'jquery' ), FL_BUILDER_VERSION );
|
123 |
$args = array(
|
124 |
'post_type' => $post_type,
|
classes/class-fl-builder-art.php
CHANGED
@@ -135,6 +135,12 @@ class FLBuilderArt {
|
|
135 |
);
|
136 |
|
137 |
$args = wp_parse_args( $args, $defaults );
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
$key = $args['name'];
|
139 |
|
140 |
/**
|
135 |
);
|
136 |
|
137 |
$args = wp_parse_args( $args, $defaults );
|
138 |
+
/**
|
139 |
+
* Filter shape args during shape_register()
|
140 |
+
* @see fl_builder_art_register_shape
|
141 |
+
* @since 2.2.5
|
142 |
+
*/
|
143 |
+
$args = apply_filters( 'fl_builder_art_register_shape', $args );
|
144 |
$key = $args['name'];
|
145 |
|
146 |
/**
|
classes/class-fl-builder-debug.php
CHANGED
@@ -310,6 +310,26 @@ final class FL_Debug {
|
|
310 |
);
|
311 |
self::register( 'recursion', $args );
|
312 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
$args = array(
|
314 |
'name' => 'BB Products',
|
315 |
'data' => self::divider(),
|
310 |
);
|
311 |
self::register( 'recursion', $args );
|
312 |
|
313 |
+
$zlib = self::safe_ini_get( 'zlib.output_compression' );
|
314 |
+
|
315 |
+
if ( $zlib ) {
|
316 |
+
$args = array(
|
317 |
+
'name' => 'ZLIB Output Compression',
|
318 |
+
'data' => $zlib,
|
319 |
+
);
|
320 |
+
self::register( 'zlib', $args );
|
321 |
+
}
|
322 |
+
|
323 |
+
$zlib_handler = self::safe_ini_get( 'zlib.output_handler' );
|
324 |
+
|
325 |
+
if ( $zlib_handler ) {
|
326 |
+
$args = array(
|
327 |
+
'name' => 'ZLIB Handler',
|
328 |
+
'data' => $zlib,
|
329 |
+
);
|
330 |
+
self::register( 'zlib_handler', $zlib_handler );
|
331 |
+
}
|
332 |
+
|
333 |
$args = array(
|
334 |
'name' => 'BB Products',
|
335 |
'data' => self::divider(),
|
classes/class-fl-builder-loader.php
CHANGED
@@ -46,7 +46,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
|
|
46 |
* @return void
|
47 |
*/
|
48 |
static private function define_constants() {
|
49 |
-
define( 'FL_BUILDER_VERSION', '2.2.
|
50 |
define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
|
51 |
define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
|
52 |
define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
|
46 |
* @return void
|
47 |
*/
|
48 |
static private function define_constants() {
|
49 |
+
define( 'FL_BUILDER_VERSION', '2.2.5.3' );
|
50 |
define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
|
51 |
define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
|
52 |
define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
|
classes/class-fl-builder-model.php
CHANGED
@@ -784,6 +784,13 @@ final class FLBuilderModel {
|
|
784 |
$active = self::is_builder_active();
|
785 |
$preview = self::is_builder_draft_preview();
|
786 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
if ( isset( $post_data['node_preview'] ) ) {
|
788 |
$suffix = '-layout-preview';
|
789 |
} elseif ( $active || $preview ) {
|
@@ -2098,8 +2105,8 @@ final class FLBuilderModel {
|
|
2098 |
static public function process_col_settings( $col, $new_settings ) {
|
2099 |
$post_data = self::get_post_data();
|
2100 |
|
2101 |
-
// Don't process for preview nodes.
|
2102 |
-
if ( isset( $post_data['node_preview'] ) ) {
|
2103 |
return $new_settings;
|
2104 |
}
|
2105 |
|
784 |
$active = self::is_builder_active();
|
785 |
$preview = self::is_builder_draft_preview();
|
786 |
|
787 |
+
/**
|
788 |
+
*
|
789 |
+
* @see fl_builder_get_asset_info_post_id
|
790 |
+
* @since 2.2.5
|
791 |
+
*/
|
792 |
+
$post_id = apply_filters( 'fl_builder_get_asset_info_post_id', $post_id, $post_data, $active, $preview );
|
793 |
+
|
794 |
if ( isset( $post_data['node_preview'] ) ) {
|
795 |
$suffix = '-layout-preview';
|
796 |
} elseif ( $active || $preview ) {
|
2105 |
static public function process_col_settings( $col, $new_settings ) {
|
2106 |
$post_data = self::get_post_data();
|
2107 |
|
2108 |
+
// Don't process for preview nodes or if column is parent.
|
2109 |
+
if ( isset( $post_data['node_preview'] ) || empty( $col->parent ) ) {
|
2110 |
return $new_settings;
|
2111 |
}
|
2112 |
|
classes/class-fl-builder-update.php
CHANGED
@@ -36,6 +36,11 @@ final class FLBuilderUpdate {
|
|
36 |
return;
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
39 |
// Get the saved version.
|
40 |
$saved_version = get_site_option( '_fl_builder_version' );
|
41 |
|
36 |
return;
|
37 |
}
|
38 |
|
39 |
+
// Only run on the main site for multisite installs.
|
40 |
+
if ( is_multisite() && ! is_main_site() ) {
|
41 |
+
return;
|
42 |
+
}
|
43 |
+
|
44 |
// Get the saved version.
|
45 |
$saved_version = get_site_option( '_fl_builder_version' );
|
46 |
|
classes/class-fl-builder-wpml.php
CHANGED
@@ -15,7 +15,7 @@ final class FLBuilderWPML {
|
|
15 |
if ( ! defined( 'ICL_SITEPRESS_VERSION' ) ) {
|
16 |
return;
|
17 |
}
|
18 |
-
|
19 |
add_filter( 'fl_get_wp_widgets_exclude', __CLASS__ . '::filter_wp_widgets_exclude' );
|
20 |
add_filter( 'fl_builder_node_template_post_id', __CLASS__ . '::filter_node_template_post_id' );
|
21 |
add_filter( 'fl_builder_parent_template_node_id', __CLASS__ . '::filter_parent_template_node_id', 10, 3 );
|
15 |
if ( ! defined( 'ICL_SITEPRESS_VERSION' ) ) {
|
16 |
return;
|
17 |
}
|
18 |
+
add_filter( 'fl_inline_editing_enabled', '__return_false' );
|
19 |
add_filter( 'fl_get_wp_widgets_exclude', __CLASS__ . '::filter_wp_widgets_exclude' );
|
20 |
add_filter( 'fl_builder_node_template_post_id', __CLASS__ . '::filter_node_template_post_id' );
|
21 |
add_filter( 'fl_builder_parent_template_node_id', __CLASS__ . '::filter_parent_template_node_id', 10, 3 );
|
classes/class-fl-builder.php
CHANGED
@@ -485,7 +485,7 @@ final class FLBuilder {
|
|
485 |
wp_enqueue_script( 'imagesloaded' );
|
486 |
if ( 'video_service' == $row->settings->bg_video_source ) {
|
487 |
|
488 |
-
$video_data = FLBuilderUtils::get_video_data( $row->settings->bg_video_service_url );
|
489 |
|
490 |
if ( 'youtube' == $video_data['type'] ) {
|
491 |
wp_enqueue_script( 'youtube-player' );
|
@@ -2004,6 +2004,10 @@ final class FLBuilder {
|
|
2004 |
if ( isset( $row->settings->content_alignment ) ) {
|
2005 |
$attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
|
2006 |
}
|
|
|
|
|
|
|
|
|
2007 |
}
|
2008 |
if ( ! empty( $row->settings->full_height ) && 'custom' == $row->settings->full_height ) {
|
2009 |
|
@@ -2012,6 +2016,10 @@ final class FLBuilder {
|
|
2012 |
if ( isset( $row->settings->content_alignment ) ) {
|
2013 |
$attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
|
2014 |
}
|
|
|
|
|
|
|
|
|
2015 |
}
|
2016 |
if ( in_array( $row->settings->bg_type, $overlay_bgs ) ) {
|
2017 |
if ( 'color' === $row->settings->bg_overlay_type && ! empty( $row->settings->bg_overlay_color ) ) {
|
@@ -2223,13 +2231,13 @@ final class FLBuilder {
|
|
2223 |
* @see fl_builder_column_custom_class
|
2224 |
* @link https://kb.wpbeaverbuilder.com/article/117-plugin-filter-reference
|
2225 |
*/
|
2226 |
-
$custom_class
|
2227 |
-
$overlay_bgs
|
2228 |
-
$nested
|
2229 |
-
$active
|
2230 |
-
$visible
|
2231 |
-
$has_rules
|
2232 |
-
$attrs
|
2233 |
'id' => $col->settings->id,
|
2234 |
'class' => array(
|
2235 |
'fl-col',
|
@@ -2238,10 +2246,15 @@ final class FLBuilder {
|
|
2238 |
'data-node' => $col->node,
|
2239 |
'style' => array(),
|
2240 |
);
|
|
|
2241 |
|
2242 |
// Classes
|
2243 |
if ( $col->settings->size <= 50 ) {
|
2244 |
$attrs['class'][] = 'fl-col-small';
|
|
|
|
|
|
|
|
|
2245 |
}
|
2246 |
if ( count( $nested ) > 0 ) {
|
2247 |
$attrs['class'][] = 'fl-col-has-cols';
|
485 |
wp_enqueue_script( 'imagesloaded' );
|
486 |
if ( 'video_service' == $row->settings->bg_video_source ) {
|
487 |
|
488 |
+
$video_data = FLBuilderUtils::get_video_data( do_shortcode( $row->settings->bg_video_service_url ) );
|
489 |
|
490 |
if ( 'youtube' == $video_data['type'] ) {
|
491 |
wp_enqueue_script( 'youtube-player' );
|
2004 |
if ( isset( $row->settings->content_alignment ) ) {
|
2005 |
$attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
|
2006 |
}
|
2007 |
+
|
2008 |
+
if ( isset( $row->settings->margin_top ) && (int) $row->settings->margin_top < 0 ) {
|
2009 |
+
$attrs['class'][] = 'fl-row-overlap-top';
|
2010 |
+
}
|
2011 |
}
|
2012 |
if ( ! empty( $row->settings->full_height ) && 'custom' == $row->settings->full_height ) {
|
2013 |
|
2016 |
if ( isset( $row->settings->content_alignment ) ) {
|
2017 |
$attrs['class'][] = 'fl-row-align-' . $row->settings->content_alignment;
|
2018 |
}
|
2019 |
+
|
2020 |
+
if ( isset( $row->settings->margin_top ) && (int) $row->settings->margin_top < 0 ) {
|
2021 |
+
$attrs['class'][] = 'fl-row-overlap-top';
|
2022 |
+
}
|
2023 |
}
|
2024 |
if ( in_array( $row->settings->bg_type, $overlay_bgs ) ) {
|
2025 |
if ( 'color' === $row->settings->bg_overlay_type && ! empty( $row->settings->bg_overlay_color ) ) {
|
2231 |
* @see fl_builder_column_custom_class
|
2232 |
* @link https://kb.wpbeaverbuilder.com/article/117-plugin-filter-reference
|
2233 |
*/
|
2234 |
+
$custom_class = apply_filters( 'fl_builder_column_custom_class', $col->settings->class, $col );
|
2235 |
+
$overlay_bgs = array( 'photo' );
|
2236 |
+
$nested = FLBuilderModel::get_nodes( 'column-group', $col );
|
2237 |
+
$active = FLBuilderModel::is_builder_active();
|
2238 |
+
$visible = FLBuilderModel::is_node_visible( $col );
|
2239 |
+
$has_rules = FLBuilderModel::node_has_visibility_rules( $col );
|
2240 |
+
$attrs = array(
|
2241 |
'id' => $col->settings->id,
|
2242 |
'class' => array(
|
2243 |
'fl-col',
|
2246 |
'data-node' => $col->node,
|
2247 |
'style' => array(),
|
2248 |
);
|
2249 |
+
$global_settings = FLBuilderModel::get_global_settings();
|
2250 |
|
2251 |
// Classes
|
2252 |
if ( $col->settings->size <= 50 ) {
|
2253 |
$attrs['class'][] = 'fl-col-small';
|
2254 |
+
|
2255 |
+
if ( $global_settings->responsive_enabled && ! $global_settings->responsive_col_max_width ) {
|
2256 |
+
$attrs['class'][] = 'fl-col-small-full-width';
|
2257 |
+
}
|
2258 |
}
|
2259 |
if ( count( $nested ) > 0 ) {
|
2260 |
$attrs['class'][] = 'fl-col-has-cols';
|
css/fl-builder-layout-medium.css
CHANGED
@@ -14,4 +14,9 @@
|
|
14 |
.fl-col-group .fl-visible-medium.fl-col,
|
15 |
.fl-col-group .fl-visible-medium-mobile.fl-col {
|
16 |
display: block;
|
17 |
-
}
|
|
|
|
|
|
|
|
|
|
14 |
.fl-col-group .fl-visible-medium.fl-col,
|
15 |
.fl-col-group .fl-visible-medium-mobile.fl-col {
|
16 |
display: block;
|
17 |
+
}
|
18 |
+
.fl-col-group-equal-height .fl-visible-desktop-medium.fl-col,
|
19 |
+
.fl-col-group-equal-height .fl-visible-medium.fl-col,
|
20 |
+
.fl-col-group-equal-height .fl-visible-medium-mobile.fl-col {
|
21 |
+
display: flex;
|
22 |
+
}
|
css/fl-builder-layout-responsive.css
CHANGED
@@ -6,9 +6,12 @@
|
|
6 |
.fl-visible-medium,
|
7 |
.fl-col-group .fl-visible-desktop.fl-col,
|
8 |
.fl-col-group .fl-visible-desktop-medium.fl-col,
|
9 |
-
.fl-col-group .fl-visible-medium.fl-col
|
|
|
|
|
10 |
display: none;
|
11 |
}
|
|
|
12 |
.fl-visible-medium-mobile,
|
13 |
.fl-visible-mobile,
|
14 |
.fl-col-group .fl-visible-medium-mobile.fl-col,
|
@@ -156,7 +159,7 @@
|
|
156 |
margin-right: auto;
|
157 |
width: auto !important;
|
158 |
}
|
159 |
-
.fl-col-small {
|
160 |
max-width: 400px;
|
161 |
}
|
162 |
.fl-block-col-resize {
|
6 |
.fl-visible-medium,
|
7 |
.fl-col-group .fl-visible-desktop.fl-col,
|
8 |
.fl-col-group .fl-visible-desktop-medium.fl-col,
|
9 |
+
.fl-col-group .fl-visible-medium.fl-col,
|
10 |
+
.fl-col-group-equal-height .fl-visible-desktop-medium.fl-col,
|
11 |
+
.fl-col-group-equal-height .fl-visible-medium.fl-col {
|
12 |
display: none;
|
13 |
}
|
14 |
+
|
15 |
.fl-visible-medium-mobile,
|
16 |
.fl-visible-mobile,
|
17 |
.fl-col-group .fl-visible-medium-mobile.fl-col,
|
159 |
margin-right: auto;
|
160 |
width: auto !important;
|
161 |
}
|
162 |
+
.fl-col-small:not(.fl-col-small-full-width) {
|
163 |
max-width: 400px;
|
164 |
}
|
165 |
.fl-block-col-resize {
|
css/fl-builder-layout.css
CHANGED
@@ -183,6 +183,14 @@
|
|
183 |
min-height: 100vh;
|
184 |
|
185 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
.fl-row-custom-height .fl-row-content-wrap {
|
187 |
min-height: 0;
|
188 |
}
|
@@ -313,6 +321,7 @@
|
|
313 |
-webkit-flex-wrap: wrap;
|
314 |
-ms-flex-wrap: wrap;
|
315 |
flex-wrap: wrap;
|
|
|
316 |
}
|
317 |
.fl-col-group-equal-height.fl-col-group-has-child-loading {
|
318 |
-webkit-flex-wrap: nowrap;
|
183 |
min-height: 100vh;
|
184 |
|
185 |
}
|
186 |
+
.fl-row-overlap-top .fl-row-content-wrap {
|
187 |
+
display: -webkit-inline-box;
|
188 |
+
display: -webkit-inline-flex;
|
189 |
+
display: -moz-inline-box;
|
190 |
+
display: -ms-inline-flexbox;
|
191 |
+
display: inline-flex;
|
192 |
+
width: 100%;
|
193 |
+
}
|
194 |
.fl-row-custom-height .fl-row-content-wrap {
|
195 |
min-height: 0;
|
196 |
}
|
321 |
-webkit-flex-wrap: wrap;
|
322 |
-ms-flex-wrap: wrap;
|
323 |
flex-wrap: wrap;
|
324 |
+
width: 100%;
|
325 |
}
|
326 |
.fl-col-group-equal-height.fl-col-group-has-child-loading {
|
327 |
-webkit-flex-wrap: nowrap;
|
css/fl-builder.css
CHANGED
@@ -4911,7 +4911,7 @@ span.select2-container.select2-container--open {
|
|
4911 |
}
|
4912 |
|
4913 |
.fl-field[data-type="link"] .fl-field-connection {
|
4914 |
-
bottom:
|
4915 |
}
|
4916 |
.fl-field-connections-menu[data-field="fl-field-text"] {
|
4917 |
margin-top:30px
|
4911 |
}
|
4912 |
|
4913 |
.fl-field[data-type="link"] .fl-field-connection {
|
4914 |
+
bottom: 20px;
|
4915 |
}
|
4916 |
.fl-field-connections-menu[data-field="fl-field-text"] {
|
4917 |
margin-top:30px
|
css/fl-builder.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.fl-color-picker-ui{width:300px}.fl-color-picker-ui.fl-color-alpha-enabled{width:334px}.fl-color-picker-ui .iris-picker{float:left;width:100%;height:224px;display:block;position:relative;border-top:1px solid rgba(0,0,0,.1)}.fl-color-picker-ui .iris-picker .iris-square-inner,.fl-color-picker-ui .iris-picker-inner{position:absolute;left:0;top:0;bottom:0;right:0}.fl-color-picker-ui .iris-picker,.iris-picker *{box-sizing:content-box}.fl-color-picker-ui .iris-error{background-color:#ffafaf}.fl-color-picker-ui .iris-picker .iris-square{width:300px;height:200px}.fl-color-picker-ui .iris-picker .iris-palette,.fl-color-picker-ui .iris-picker .iris-slider,.fl-color-picker-ui .iris-picker .iris-square-inner{height:100%;width:12.5%}.fl-color-picker-ui .iris-picker .iris-placeholder,.fl-color-picker-ui .iris-picker .iris-square{position:relative}.fl-color-picker-ui .iris-picker .iris-square-inner{width:auto;margin:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square,.fl-color-picker-ui .iris-ie-9 .iris-square-inner{box-shadow:none;border-radius:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square{outline:rgba(0,0,0,.1) solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-palette,.fl-color-picker-ui .iris-ie-lt9 .iris-slider,.fl-color-picker-ui .iris-ie-lt9 .iris-square,.fl-color-picker-ui .iris-ie-lt9 .iris-square-inner{outline:#999 solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-square .ui-slider-handle{outline:#999 solid 1px;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.fl-color-picker-ui .iris-ie-lt9 .iris-square .iris-square-handle{background:0 0;border:3px solid #fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.fl-color-picker-ui .iris-picker .iris-strip{box-sizing:border-box;width:calc(300px - 12px);margin:5px 6px 6px;border-radius:4px;position:relative;height:22px;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle{width:6px;position:absolute;right:0;top:-2px;bottom:-2px;margin:0;border-radius:3px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.5);z-index:5;cursor:ew-resize}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle:focus{outline:#00a0d2 solid 2px}.fl-color-picker-ui .iris-picker .iris-slider-offset{position:absolute;top:0;left:6px;right:0;bottom:0;width:auto;height:auto;background:0 0;border:none;border-radius:0;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-square-handle{background:0 0;border:5px solid #999;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.fl-color-picker-ui .iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover{border-color:#999}.fl-color-picker-ui .iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover::after{border-color:#fff}.fl-color-picker-ui .iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.fl-color-picker-ui .iris-picker .iris-square-value{width:0;height:0;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.fl-color-picker-wrapper{position:relative;width:48px;height:32px}.fl-color-picker{box-shadow:0 2px 4px 0 rgba(0,0,0,.12);background:url(../img/transp_bg.png) #fff;border-radius:4px;width:120px;height:36px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-color-picker-color{-ms-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box!important;position:relative;border-radius:4px;background-color:transparent;cursor:pointer;border:2px solid transparent;padding:0;-ms-flex-pack:center;justify-content:center;display:-ms-flexbox;display:flex}.fl-color-picker-clear:hover,.fl-color-picker-color:hover{background:0 0;border:2px solid transparent}.fl-color-picker-clear:focus,.fl-color-picker-color.fl-color-picker-empty:focus,.fl-color-picker-color:focus{outline:0;top:0;border:2px solid #00a0d2;background:0 0}.fl-color-picker.fl-color-picker-has-reset .fl-color-picker-color:not(.fl-color-picker-empty){border-top-right-radius:0;border-bottom-right-radius:0}.fl-color-picker-icon{display:none;margin:auto}.fl-color-picker-color.fl-color-picker-empty{border-color:transparent}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon{display:block}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon path{fill:inherit}.fl-color-picker-clear{box-sizing:border-box;position:relative;display:-ms-flexbox;display:flex;-ms-flex:0 0 36px;flex:0 0 36px;-ms-flex-pack:center;justify-content:center;padding:0;border:2px solid transparent;fill:#A2AABE;background-color:#E7EBEF;cursor:pointer;border-radius:0 4px 4px 0}.fl-color-picker-clear:hover{fill:#6B6E75;background-color:#E7EBEF}.fl-color-picker-color.fl-color-picker-empty+.fl-color-picker-clear{display:none}.fl-color-picker-ui{display:inline-block;font-family:Helvetica,Verdana,sans-serif;z-index:1;position:fixed;overflow:hidden;padding-bottom:45px;border:1px solid rgba(0,0,0,.1);color:#999;background-color:#FAFAFA;border-radius:3px;box-shadow:0 9px 20px rgba(0,0,0,.17);transition:opacity .2s,visibility .2s;visibility:hidden;opacity:0;-webkit-transform:translate3d(0,0,0)}.fl-color-picker-ui.fl-color-picker-active{visibility:visible;opacity:1;z-index:999999}.fl-color-picker-ui .fl-color-picker-input,.fl-color-picker-ui .fl-color-picker-input:focus{width:100%;height:30px;border:none!important;font-size:14px!important;padding:0 8px;vertical-align:middle;color:#656c6e;background-color:#fff;border-radius:0;box-shadow:none}.fl-color-picker-ui .iris-square-value{transition:none}.fl-color-picker-preset-add{position:absolute;top:8px;right:8px;width:14px;height:14px;background-color:#656c6e;border-radius:50%;cursor:pointer;transition:all .2s}.fl-color-picker-preset-add:hover{background-color:#333}.fl-color-picker-preset-add:after,.fl-color-picker-preset-add:before{content:'';display:block;position:relative;background-color:#fff}.fl-color-picker-preset-add:before{top:6px;left:3px;width:8px;height:2px}.fl-color-picker-preset-add:after{left:6px;top:1px;width:2px;height:8px}.fl-color-picker-presets{position:absolute;left:0;bottom:0;width:100%;z-index:15;overflow:auto;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA}.fl-color-picker-presets-list .fl-color-picker-preset:hover,.fl-color-picker-presets-toggle:hover{background-color:#EDEDED}.fl-color-picker-presets-toggle{position:relative;overflow:hidden;width:100%;height:35px;text-align:center;line-height:35px;font-size:12px;font-weight:700;cursor:pointer;transition:all .1s}.fl-color-picker-presets-close-label,.fl-color-picker-presets-open-label{position:absolute;top:50%;left:50%;visibility:hidden;color:#999;transition:all .5s;transform:translate(-50%,-50%);opacity:0;width:100%}.fl-color-picker-presets-close-label.fl-color-picker-active,.fl-color-picker-presets-open-label.fl-color-picker-active{color:#656c6e;visibility:visible;opacity:1;z-index:999999}.fl-color-picker-presets-list{width:100%;list-style:none;margin:0;padding:0;overflow:auto}.fl-color-picker-presets-list .fl-color-picker-no-preset,.fl-color-picker-presets-list .fl-color-picker-preset{position:relative;padding:5px;font-size:12px;border-top:1px solid rgba(0,0,0,.1);transition:all .1s}.fl-color-picker-presets-list .fl-color-picker-no-preset{padding:18px 5px;text-align:center}.fl-color-picker-presets-list .fl-color-picker-preset-color{display:inline-block;width:40px;height:20px;margin-right:3px;vertical-align:middle;border:1px solid rgba(0,0,0,.1);border-radius:2px;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-label{vertical-align:middle;color:#333;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-remove{position:absolute;top:50%;cursor:pointer;transform:translateY(-50%)}.fl-color-picker-clear .fl-color-picker-icon-remove{right:auto;top:auto;margin:auto}.fl-color-picker-presets-list .fl-color-picker-preset-remove{right:5px}.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:after,.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:before{background-color:#333}.fl-color-picker-added{position:absolute;width:100%;top:0;left:0;right:0;bottom:35px;z-index:10;color:#fff;text-align:center;background-color:rgba(0,0,0,.8)}.fl-color-picker-added-text{position:absolute;top:50%;left:50%;width:80%;font-size:14px;color:#fff!important;transform:translate(-50%,-50%)}.fl-color-picker-icon-check{position:relative;width:50px;height:50px;margin:5px auto}.fl-color-picker-icon-check:before{content:'';display:block;position:relative;width:15px;height:30px;margin-left:14px;border:7px solid #fff;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-down,.fl-color-picker-icon-arrow-up{display:inline-block;position:relative;width:10px;height:10px;margin-left:5px}.fl-color-picker-icon-arrow-down:before,.fl-color-picker-icon-arrow-up:before{content:'';display:block;position:relative;width:6px;height:6px;border:2px solid #999;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-up{top:2px;transform:rotate(180deg)}.fl-color-picker-icon-remove{width:15px;height:15px}.fl-color-picker-icon-remove:after,.fl-color-picker-icon-remove:before{content:'';display:block;position:relative;background-color:#6f7881}.fl-color-picker-icon-remove:before{left:6px;width:2px;height:10px;margin-top:3px;transform:rotate(-45deg)}.fl-color-picker-icon-remove:after{left:6px;width:2px;height:10px;margin-top:-10px;transform:rotate(45deg)}.fl-alpha-wrap{position:absolute;width:32px;height:215px;padding:0 5px;right:4px;border-top:none}.fl-alpha-slider{height:190px;position:absolute;top:12px;width:28px}.fl-alpha-slider .ui-slider-handle{background:rgba(0,0,0,0);border-color:#aaa;border-radius:4px;border-style:solid;border-width:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);cursor:ns-resize;height:12px;left:0;opacity:.9;position:absolute;right:0;width:30px;z-index:14}.fl-alpha-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.fl-theme-builder-preview-select-title i:before,body .fl-theme-builder-preview-select .fa-caret-down i:before,body .fl-theme-builder-preview-select-item-title i:before{content:"\f078"}.fl-alpha-slider-offset{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAASCAYAAAAe/ZHXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkNEQUQ0ODM4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkNEQUQ0ODQ4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Q0RBRDQ4MThFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Q0RBRDQ4MjhFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/r/N8AAAWYSURBVHjarFvvR3VBEN45JZGIPkREHyIiIhJJf3qUSERE9CGiDxERkcg9z9u92uucvTszz5z7xnHPj93Z2d359cxscn5+jpTS+EoiMr3/+51cZ2dn4+e29i2/u7y8RKf/pO3vc+o+n5ycoNK31+f6+jrfZ37yuG2mf3R01H3fa5N/b29vU6dP5qft0G4PDg5MGuPr/v4+jz1t27mfvN/b21P75+fHx8eZfiV/Ozs7rUJnSu/5+RlFv+m6ZJpbW1s1PnrvXl9fZ/qX89zY2LB4mfy+v7/nsdV1XltbK/dr5vnz87OcV5bJabuVlRVLBifjfX9/l/xkGtM+S0tLNXnu0szfU/P3IMn/k0678h6ddqjQFGccVL6hoCsVfsq+NZ5QtCv5rfFS41sq37W+UPhMyhxEWTetvce3NR8oewqD39qalXuGAK/WPltjajIC4x2c9Ye1f43SGcqGwRBeTZjhMNntL4pCWZMQYhE05RVl02EovRgC4RkCbUNSQAGhGB/GsKG4h6FQoigDa2i8fRBy3uLMXYIG3Vr3aZvRaCRdBYlYIMZywhBGCVhgzzOlgRuUSOvC0GMEWxOM/+EtQFh1OIIXtfwg1tRaayGjg5px0jyZKEaTle3e+AsLCygVRAh3FlEgKbReE3oYGj9EgIR00QiEgKw3ZBQbRGjBeAMtDETQmHiKDsezJNLgCTFGItZXlAgCSiQggblP+9c8SDI0lXWlFv5g3K63KZ51FOcZzthQ3LomoNHwJmKIQISI3vqzSpwIQ8liSjGMFQjDpoVgaQ6cWgvLhOC7qiAwiHrWbEg4JMSmeUrBuHoYwioOQNXmhmAcrs096s1gJCGi3hSEVU8DQxYElYHhKwUUGAa+NqOBMsSSAQJuhQhCAH4vxozExsxiihPuaIrjCVYKWlYEsjSM52G8Kxxryngl5j0j+EyGTIiED4s1Itm0ZGWxMFCLJaBAcEI6OBkmFgNBoc8Cait2ZnENE/6wQN8LJSJeSMNAjKVm+LUMAIt3PR5AQgIGp1Z5zxhE8PtXUYReYeXi4mKmOPNXBMzt2tPT07LIUtJqr66uusXEbkFnWiQ6Pj72ikrtzc1NKopuvbbj58PDwxqNHp27u7tuYWumUDV+v7+/Xyu6pc59+/DwUCsC9ujt7u6qRbt8//T01C3elbyN70fb29uZ/1FSincvLy/lPGb42tzc9IqJeHt7q61Pr2C6vr7u7tfHx8fMPhV0sLq6WhZtU0n36+uru8elPE7aLi8v1wqJPXn++fmZKYgX8ozFxcXJb0NaQTHClZT8+gBjsYdaFc+zWcUkGTCWENY66ta92oSVzo3WI6IZKGtukeyfBLFKBNAj6bUOBgaoe9wE4n04IBNkLMoC7+Skj630ZlTJMYdyMsU2T8AwpzALkVFilZgJcT2l9PCWDDSAMBSjVlJgZNk0lE1AIby0qCiCnBQNj6aBGQslZIZJ5hB6D/AzQHto5Z9Nk8tARdN4q2ExBnsyIJ311EymShyjan2rKk0zh1Ay1oQVWAZQRnkUA8RFw7TahjBnmNgMVMQrsCGZJezRtGlU0cUZ1zuaxGZPpbhApM+ZpFQqQ6xadoMtBrEKpBVo4GRXvNSxpaRixKiR+TChCYhsDwZkfFj8IkErjAHejcUI0XQrgwehhNSMHAz21E0wZ23FcCAmj8Sd/PXy2xLYLAuwRw4IMsqjFaWYOpMEhDySAPFCWyFkgAHrEcA+BNeJ4UE8HCzJPpCrerUmQIx1pWJkjqxJD8EikUo2c5aI8ZYgsAkM4WQtnHd0ns0ORgVTBghy5ISy928SGsbTMqYg523RUY8oNYG4FIYiyRyZCnFCJC87IoRAIMVOqQ7BKexxCS2hYVl9JhvlpYjnAe4MhmRPMWhhvLfXINaI9WKM0Zu0+SfAAFLE1EgfVSv7AAAAAElFTkSuQmCC) center;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;width:200px;height:22px;transform:rotate(-90deg);bottom:48%;left:-80px;position:absolute}.fl-alpha-text{width:30px;font-size:12px;text-align:center;color:#999;position:absolute;bottom:-5px}.fl-lightbox-mask,.fl-lightbox-wrap{bottom:0;left:0;position:fixed;right:0;z-index:100010}@keyframes fl-lightbox-zoom{from{transform:scale(.4)}to{transform:scale(1)}}.fl-lightbox-wrap{display:none;overflow:auto;padding:0;top:43px;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);pointer-events:none}.fl-builder-draggable-is-dragging .fl-lightbox-wrap,.fl-builder-resizable-is-resizing .fl-lightbox-wrap,.fl-lightbox,.fl-lightbox-mask{pointer-events:auto}.fl-lightbox-mask{background:#000;opacity:.7;filter:alpha(opacity=70);top:0}.fl-lightbox{background:#F5F7F9;border-radius:4px;box-shadow:rgba(0,0,0,1) 0 4px 30px;-moz-box-shadow:rgba(0,0,0,1) 0 4px 30px;-webkit-box-shadow:rgba(0,0,0,1) 0 4px 30px;position:relative;display:-ms-flexbox;display:flex;z-index:100011;transform-origin:center;animation-name:fl-lightbox-zoom;animation-duration:.25s}.fl-lightbox.fl-lightbox-prevent-animation{animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-lightbox :not(i){color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:12px;line-height:14px;text-decoration:none;text-transform:none}.fl-lightbox *,.fl-lightbox :after,.fl-lightbox :before{box-sizing:content-box}#fl-ui-root .fl-nanoscroller-pane,.fl-builder--content-library-panel .fl-nanoscroller-pane,.fl-lightbox .fl-nanoscroller-pane{bottom:2px;right:2px;width:6px}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#bac0ca;transition-property:height,background-color;transition-duration:.25s}#wpadminbar,html{transition-duration:.35s}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider:hover{background-color:#c8cdd4}.fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#029fd2}.fl-lightbox .dashicons{font-family:dashicons}.fl-lightbox.ui-draggable{box-shadow:rgba(0,0,0,.2) 0 7px 30px;-moz-box-shadow:rgba(0,0,0,.2) 0 7px 30px;-webkit-box-shadow:rgba(0,0,0,.2) 0 7px 30px}#wpadminbar,.fl-builder-bar.is-hidden{pointer-events:none}.fl-lightbox-resizable{height:500px;width:380px}@media (max-width:500px){.fl-lightbox-resizable{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-resizable .ui-resizable-handle{display:none!important}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:default!important}.fl-lightbox-controls{display:none}}.fl-lightbox-width-full{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-width-full .fl-lightbox-header{cursor:inherit!important}.fl-lightbox-controls{position:absolute;right:10px;top:10px;z-index:5}.fl-lightbox-controls .fa{color:#bdbdbd;font-size:14px;padding:5px}.fl-lightbox-controls .fa:hover{color:#aaa;cursor:pointer}.fl-lightbox-header-wrap{border-top-left-radius:4px;border-top-right-radius:4px}.fl-lightbox-header{position:relative}.fl-lightbox-header h1{color:#333!important;font-size:16px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-weight:400!important;margin:0!important;padding:14px 34px 15px 28px!important;text-align:left!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;line-height:1}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:move}.fl-lightbox-header h1 .fl-builder-badge{margin-left:10px;color:#fff;background-color:#F7A408}.fl-lightbox-content,.fl-lightbox-content-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 100%;flex:1 100%;max-width:100%}.fl-lightbox-footer{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;-ms-flex:0 0;flex:0 0;-ms-flex-preferred-size:44px;flex-basis:44px;padding:4px;text-align:right}.fl-lightbox-footer .fl-builder-button{height:36px;margin-left:5px!important;-ms-flex:0 0 0%;flex:0 0 0%;-ms-flex-pack:center;justify-content:center}.fl-lightbox-width-slim .fl-lightbox-footer{-ms-flex-pack:stretch;justify-content:stretch;padding:4px 5px}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button{-ms-flex:1 1 100%;flex:1 1 100%;display:block;text-align:center}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button:first-child{margin-left:0!important}.fl-lightbox table,.fl-lightbox td,.fl-lightbox th,.fl-lightbox tr{border:none}.fl-lightbox-wrap.fl-icon-selector{z-index:1000111}.fl-icon-selector .fl-lightbox{height:100%}.fl-icons-filter{height:auto!important;margin:0!important;position:absolute!important;right:0;top:0;padding:10px 16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-icons-filter select{vertical-align:middle;width:195px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#000;border:2px solid #e4e7ea!important;border-right:none!important;margin:0;padding:2px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;-ms-flex:1 1 195px;flex:1 1 195px;border-radius:0}.fl-icons-filter input[type=text]{line-height:18px;vertical-align:middle;width:160px;-ms-flex:1 1 160px;flex:1 1 160px;border:2px solid #e4e7ea!important;border-radius:0!important;padding:2px 10px!important}.fl-icons-filter input[type=text]:focus,.fl-icons-filter select:focus{border:2px solid #00A0D2!important}.fl-icons-list{bottom:52px;left:0;overflow:auto;padding:20px;position:absolute;right:0;top:48px}.fl-icons-list::-webkit-scrollbar{background-color:#ccc;-webkit-appearance:none;width:10px}.fl-icons-list::-webkit-scrollbar-thumb{background-color:#666;border:1px solid #ccc}.fl-icons-section{text-align:center}.fl-icons-section h2{border-bottom:1px solid #dfdfdf;color:#333!important;font-family:Helvetica,Verdana,sans-serif!important;font-size:16px!important;font-weight:700!important;margin:0 0 20px!important;padding:0 0 10px!important;text-align:left}.fl-icons-list i,.fl-icons-list i:before{cursor:pointer;display:inline-block;font-size:40px;height:100px;line-height:100px;width:100px;background:0 0}.fl-icons-list i:hover{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.15);border-radius:4px}.fl-icon-selector-footer{bottom:0;left:0;position:absolute;right:0}html{transition-property:margin}html.fl-builder-is-showing-toolbar{margin-top:calc(44px + 1px)!important}.fl-builder-edit body{position:static!important}.fl-builder-edit:after,.fl-builder-edit:before{z-index:0!important}.fl-builder-edit .fl-builder-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}#wpadminbar{transition-property:transform,opacity;transform-origin:bottom;transform-style:preserve-3d;transform:rotateX(89deg) translateY(46px);opacity:0;will-change:transform}html.fl-builder-show-admin-bar{margin-top:32px}html.fl-builder-show-admin-bar #wpadminbar{transform:rotateX(0) translateY(0);pointer-events:auto;opacity:1}@media screen and (max-width:782px){html.fl-builder-show-admin-bar{margin-top:46px}}.fl-clear{clear:both}.screen-reader-text{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}.fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(240,240,240,.8);bottom:0;display:none;left:0;position:fixed;right:0;text-align:center;top:0;z-index:12000000}.fl-builder-settings .fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(255,255,255,.8);display:block;position:absolute}.fl-field-loader{color:#B3B3B3!important;font-style:italic}.fl-builder-node-loading{opacity:.35!important}.fl-builder-node-loading-placeholder{background:url(../img/ajax-loader.svg) center center no-repeat;height:50px}.fl-col-group-has-child-loading{display:-ms-flexbox;display:flex}.fl-col-group-has-child-loading>.fl-builder-node-loading-placeholder{width:50px}.fl-node-hidden{display:none}.fl-builder-edit .fl-node-hidden{display:block}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile{display:block!important}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-mobile{display:-ms-flexbox!important;display:flex!important}.fl-responsive-preview-enabled body{overflow:hidden!important}.fl-responsive-preview-mask{background:#F7F7F7;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99999}.fl-responsive-preview{bottom:0;left:0;position:fixed;right:0;top:0;margin-top:50px;z-index:100000}.fl-builder-preview .fl-responsive-preview{margin:0!important}.fl-responsive-preview-content{background:#F5F7F9;padding:20px 20px 45px;overflow:scroll;position:absolute;top:45px;right:0;bottom:0;left:0}.fl-responsive-preview-content .fl-builder-content-editing{overflow:visible!important}.fl-responsive-preview-message{background:#F5F7F9;color:#b3b3b3;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-size:14px;font-weight:400;padding:15px;text-align:center;position:absolute;top:0;left:0;right:0;z-index:999999}.fl-responsive-preview-message span{display:inline-block;margin-right:8px}.fl-responsive-preview-message .fl-builder-button{display:inline-block;margin-left:2px;padding:0 10px}.fl-responsive-preview-message .fl-builder-button i{font-size:14px;height:14px;width:14px}.fl-responsive-preview .fl-builder-content{box-shadow:0 0 8px rgba(0,0,0,.2);margin-left:auto;margin-right:auto;max-width:100%;overflow:visible;position:relative}#fl-builder-preview-frame,#fl-builder-preview-mask{bottom:0;height:100%;position:fixed;top:0;width:100%;right:0}.fl-responsive-preview .fl-block-col-resize{display:none}.fl-builder-button,body .fl-builder-bar .fl-builder-bar-content{display:-ms-flexbox;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}#fl-builder-preview-mask{background:url(../img/ajax-loader.svg) center center no-repeat #F7F7F7;left:0;z-index:999999}#fl-builder-preview-frame{left:50%;transform:translateX(-50%);-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);z-index:1000000}body button[class*=fl-builder],body button[class*=fl-builder]:focus,body button[class*=fl-builder]:hover{box-shadow:none;max-height:none;max-width:none;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none}.fl-builder-button{-webkit-appearance:none;-ms-flex-align:center;align-items:center;background:#e7ebef;border:2px solid transparent;border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;color:#676F7A!important;cursor:pointer;display:flex;fill:#676F7A!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:33px;letter-spacing:normal!important;line-height:1!important;margin:0;padding:0 12px;text-align:center;transition-property:background-color,width;transition-duration:.2s;white-space:nowrap;width:auto;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder--search-results-panel,.fl-builder-bar,.fl-builder-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.fl-builder-button:hover{background:#dadfe5;color:#222;border:2px solid transparent!important}.fl-builder-button:active{background:#DCDCDC}button.fl-builder-button:focus{position:static;top:auto;outline:0;background:#E4E7EA;border:2px solid #00A0D0!important}.fl-builder-bar .fl-builder-button{height:auto}.fl-builder-button-primary,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button{background:#00A0D2;color:#fff!important;text-decoration:none;border:2px solid transparent!important}.fl-builder-button.fl-builder-button-primary:focus,body.fl-builder--layout-has-drafted-changes .fl-builder-button.fl-builder-done-button:focus{background:#00A0D2;border:2px solid #ffc217!important}.fl-builder-button-primary:hover,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:hover{background:#0197C6;color:#fff!important}.fl-builder-button-primary:active,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:active{background:#0484AC}.fl-builder-button-large{height:30px}.fl-builder-button-small{font-size:11px!important;line-height:1!important}.fl-builder-help-button{color:#b3b3b3;font-size:16px!important}.fl-builder-help-button i{position:relative;top:-1px}.fl-builder-help-button:hover{color:#666}.fl-builder-publish-button{line-height:45px!important}.fl-builder-content-panel-button,.fl-builder-content-panel-button:hover{fill:#00A0D2!important;font-size:30px!important;padding-bottom:4px}.fl-builder-button-silent,.fl-builder-button-silent:hover{padding:0 12px;background:0 0!important;border:2px solid transparent!important;box-shadow:none!important}.fl-builder-done-button,.fl-builder-done-button:hover{font-weight:600}.fl-field .fl-builder-button{display:inline-block;height:auto;padding:11px 12px;vertical-align:middle;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)}.fl-builder-badge{background:#333;border-radius:2px;color:#fff!important;display:inline;font-size:11px!important;font-weight:400;letter-spacing:1px;margin-left:2px;padding:2px 4px;vertical-align:middle}.fl-builder-badge-global{background:#ff9600;transform:translateY(0);transition-duration:.25s;transition-property:transform}.fl-builder-blocks-node-template .fl-builder-badge-global{position:absolute;right:0;top:0}.fl-builder-block:hover .fl-builder-badge-global{display:none}.fl-builder-bar{left:0;position:fixed;right:0;top:0;z-index:999999;user-select:none;transition-property:transform opacity;transition-duration:.35s;transform-style:preserve-3d;perspective:1100px}.fl-builder-bar.is-hidden .fl-builder-bar-content{transform:translateY(-100%) rotateX(90deg)}body .fl-builder-bar .fl-builder-bar-content{display:flex;box-sizing:border-box;background:#fff;border-bottom:1px solid #eceef1;color:#999;font-size:14px!important;height:calc(44px + 1px);transition-property:background-color,opacity,transform;transition-duration:.35s;pointer-events:auto}.fl-builder-draggable-is-dragging .fl-builder-content,.fl-builder-draggable-is-dragging .fl-builder-panel .fl-lightbox,.fl-builder-resizable-is-resizing .fl-builder-content,.fl-builder-resizable-is-resizing .fl-builder-panel .fl-lightbox,body .fl-builder-bar .fl-builder-bar-content.is-muted{pointer-events:none}body .fl-builder-bar .fl-builder-bar-content.is-muted>:not(.fl-builder-publish-actions){-webkit-filter:saturate(20%) blur(1px);filter:saturate(20%) blur(1px);opacity:.4}.fl-builder-bar-title{box-sizing:border-box;color:#333;display:-ms-flexbox;display:flex;-ms-flex:0 0 380px;flex:0 0 380px;max-width:380px;border-right:1px solid #eceef1;cursor:pointer}.fl-builder-bar-title:hover{background:#fff}.fl-builder-bar-title.is-showing-menu .fl-builder-bar-title-caret>svg{transform:rotate(180deg)}.fl-builder-simple .fl-builder-bar-title{cursor:auto}.fl-builder-simple .fl-builder-bar-title:hover{cursor:auto;background:0 0}.fl-builder-bar-title span{vertical-align:middle}.fl-builder-bar-title-icon{box-sizing:border-box;background:0 0;-ms-flex:0 0 46px;flex:0 0 46px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:4px}.fl-builder-bar-title-icon img{max-width:100%!important;height:auto!important}.fl-builder-bar-title.fl-builder-bar-title-no-icon{padding-left:12px}.fl-builder-bar-title-area{box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:4px}.fl-builder-layout-title,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{font-size:16px;font-weight:400;line-height:1.3;color:#161B20;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret,.fl-builder-layout-pretitle,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{font-size:12px;font-weight:500;line-height:1.3;color:#656d77;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret i,.fl-theme-builder-preview-select-title i{color:inherit!important;font-size:14px}.fl-builder-bar-title-caret{margin-left:auto!important;-ms-flex:0 0 46px;flex:0 0 46px}.fl-theme-builder-preview-select-title i{padding:12px}.fl-theme-builder-preview-select.fl-builder-button{position:relative;border-radius:0;background:0 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex:0 0 360px;flex:0 0 360px;max-width:360px;margin:0!important;padding:4px 10px;border:none!important;border-right:2px solid #d5dadd!important;box-shadow:none}.fl-theme-builder-preview-select.fl-builder-button:hover{border:none!important;border-right:2px solid #d5dadd!important}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fl-theme-builder-preview-select-title div{-ms-flex:1;flex:1}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{display:block}.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items{position:absolute;top:calc(48px + 10px);left:10px;width:calc(100% - 20px)!important;background:#fff;border-radius:4px;border:2px solid #D5DADD;border-top:3px solid #00a0d2;box-shadow:0 15px 45px 8px rgba(0,0,0,.04);margin:0!important;padding:0;z-index:-1;font-size:16px;overflow-y:scroll;height:auto!important;max-height:calc(100vh - 66px);min-height:300px;display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.fl-theme-builder-preview-select-item{padding:4px 0!important;border-bottom:none!important;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;text-align:initial}.fl-theme-builder-preview-select-item:hover{text-decoration:none;color:#111;background:0 0!important}body .fl-theme-builder-preview-select .fa-caret-down{float:none}body .fl-theme-builder-preview-select-item-title{padding:10px 15px;color:#222;font-size:14px}body .fl-theme-builder-preview-select-item-children{overflow:auto}body .fl-theme-builder-preview-select-item-child{overflow:hidden;text-overflow:ellipsis;line-height:1.1;margin:0 10px;border:2px solid transparent;border-radius:4px;padding:8px 10px 10px;font-size:14px;font-weight:400;color:#222}body .fl-theme-builder-preview-select-item-child:hover{background:#e6eaed!important}.fl-theme-builder-preview-select-item .fa-caret-down{color:#606D77}.fl-builder-bar-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex:1 1 100%;flex:1 1 100%;padding:4px}.fl-builder-bar .fl-builder-button{margin:0 0 0 4px}.fl-builder-bar-actions .fl-builder-button:last-child{margin:0}.fl-builder-bar-actions:after{clear:both}.fl-builder-bar .fl-builder-content-panel-button{-ms-flex-align:baseline!important;align-items:baseline!important;padding-top:1px;font-weight:400}.fl-builder-content-panel-button svg{transition-property:transform;transition-duration:.25s;transform:rotate(0) scale(1);transform-origin:center}.fl-builder-content-panel-is-showing .fl-builder-content-panel-button svg{transform:rotate(135deg) scale(1.1) translate(.5px,-.5px)}.fl-builder--saving-indicator{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;padding:0 10px;font-size:12px;font-style:italic;color:#676f7a;-ms-flex-align:center;align-items:center;line-height:1.2;min-width:180px;-ms-flex-pack:end;justify-content:flex-end}.fl-builder--saving-indicator:hover{color:#676f7a}.fl-builder--saving-indicator .fa-question-circle{font-size:13px;margin:3px 0 3px 5px}.fl-builder-buy-button,.fl-builder-feedback-button,.fl-builder-upgrade-button{background:#F7A407;color:#fff!important;text-decoration:none}.fl-builder-buy-button i.fa-external-link-alt,.fl-builder-feedback-button i.fa-external-link-alt,.fl-builder-upgrade-button i.fa-external-link-alt{color:#FFC733;margin:0 0 0 6px}.fl-builder-buy-button:hover,.fl-builder-feedback-button:hover,.fl-builder-upgrade-button:hover{background:#EE8E0D;color:#fff!important}@media (max-width:980px){.fl-builder--main-menu-panel{width:calc(100% - 20px)!important}.fl-builder--main-menu-panel:before{right:auto;left:20px}.fl-builder-bar-title,.fl-theme-builder-preview-select{-ms-flex:1 .5 380px!important;flex:1 .5 380px!important}}@media (max-width:620px){.fl-theme-builder-preview-select.fl-builder-button{display:none}}@media (max-width:500px){#fl-builder-toggle-notifications,.fl-builder--main-menu-panel:before,.fl-builder--panel-arrow,.fl-builder-bar-title-area,.fl-builder-panel-drag-handle,.fl-builder-panel:before{display:none}.fl-builder--main-menu-panel,.fl-builder-panel{width:auto!important;top:44px!important;left:0!important;right:0!important;bottom:0!important;border-radius:0!important;box-shadow:none!important}.fl-builder--main-menu-panel{border-left:transparent!important;border-right:transparent!important;border-bottom:transparent!important;max-height:calc(100% - 44px)!important}.fl-builder-bar-title{-ms-flex:0 0 80px!important;flex:0 0 80px!important}.fl-builder-bar-title-caret{padding-left:0;padding-right:0;max-width:24px}.fl-builder-bar-actions{max-width:calc(100% - 80px);overflow:hidden}.fl-builder--panel-header{border-radius:0!important;cursor:default!important}.fl-builder--panel-header .fl-builder--tabs{cursor:default!important}.fl-builder-publish-actions{width:100%!important;padding-left:4px!important}.fl-builder-bar-actions .fl-builder-button{padding:0 8px!important}}.fl-builder--preview-actions{display:none;position:fixed;top:4px;left:4px;z-index:10000001;padding:4px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder-preview .fl-builder--preview-actions{display:-ms-flexbox;display:flex}.fl-builder--preview-actions .device-icons{color:#555;background:#e4e4e4;border:none!important;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;text-decoration:none;font-size:14px!important;line-height:1!important;margin:0 4px 0 0;padding:0 6px;cursor:pointer;-webkit-border-radius:3px;-webkit-appearance:none;border-radius:3px}.fl-builder--preview-actions .device-icons i{margin:0 6px}@keyframes fl-builder-ui-pin-zone-pulse{0%,100%{opacity:1;filter:alpha( opacity=1 )}50%{opacity:.5;filter:alpha( opacity=35 )}}.fl-builder-ui-pin-zone{animation:fl-builder-ui-pin-zone-pulse 2s infinite;transition:width .3s ease;background:rgba(0,160,210,.5);bottom:0;top:0;position:fixed;width:35px;z-index:100001}.fl-builder-ui-show-pin-zone-left .fl-builder-ui-pin-zone-left,.fl-builder-ui-show-pin-zone-right .fl-builder-ui-pin-zone-right{width:75px}.fl-builder-ui-pin-zone-left{left:0}.fl-builder-ui-pin-zone-right{right:0}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button{display:-ms-flexbox!important;display:flex!important;background:rgba(0,160,210,.5)!important;padding:2px 4px;width:80px;animation:fl-builder-ui-pin-zone-pulse 2s infinite}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button svg{display:none}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button{width:120px}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button svg{display:none!important;width:100%;transform:none!important;fill:#00A0D2!important;border-radius:3px}.fl-builder-ui-is-pinned .fl-builder-content-panel-button,.fl-builder-ui-pinned-container .fl-lightbox-controls{display:none}.fl-builder-content-panel-pin-zone .fl-builder-done-button{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.fl-builder-panel.fl-builder-ui-pinned{top:45px!important;bottom:0!important;height:auto!important;border-radius:0;border:none;box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s;z-index:11}.fl-builder-panel.fl-builder-ui-pinned-right{left:auto!important;right:0;border-left:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned-left{left:0;right:auto;border-right:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-radius:0!important}.fl-builder-ui-pinned-container .fl-lightbox-wrap{position:absolute;z-index:11}.fl-builder-ui-pinned-container .fl-lightbox{position:absolute;top:0;bottom:0;left:0;right:0;width:auto!important;height:auto;border-radius:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-builder-ui-pinned-container .fl-lightbox-header-wrap{border-radius:0}.fl-builder-ui-pinned-container .fl-lightbox.ui-draggable .fl-lightbox-header{cursor:auto}.fl-builder-ui-pinned-container .fl-lightbox-header h1{padding:12px 20px 10px!important}.fl-builder-ui-pinned-content-transform{transform:scale(1);transform-origin:center top 0}.fl-builder-ui-pinned-collapse{cursor:pointer;display:none;position:absolute!important;bottom:2px;padding:5px;border:2px solid transparent;background:0 0;width:36px;height:36px;border-radius:4px;fill:#778794;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}.fl-builder-ui-pinned-collapse:focus,.fl-builder-ui-pinned-collapse:hover{top:auto!important;background:0 0;border:2px solid transparent;outline:0;fill:#00A0D2}.fl-builder-ui-pinned-collapse:focus{background:#E4E7EA}.fl-builder-ui-pinned-collapse>*{margin:auto;line-height:1}.fl-builder-ui-pinned-collapse svg g{fill:inherit}.fl-builder-ui-is-pinned-right .fl-builder-ui-pinned-right-collapse{display:-ms-flexbox;display:flex;left:-40px}.fl-builder-ui-is-pinned-left .fl-builder-ui-pinned-left-collapse{display:-ms-flexbox;display:flex;right:-40px}.fl-builder-ui-pinned-collapse i[data-toggle=show],.fl-builder-ui-pinned-is-collapsed i[data-toggle=hide]{display:none}.fl-builder-ui-pinned-is-collapsed i[data-toggle=show]{display:block}.fl-builder--panel-no-settings,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-content,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-controls,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--tab-wrap,.fl-builder-ui-pinned-is-collapsed .fl-builder--panel-header{display:none}.fl-builder-ui-is-pinned-left [data-toggle=hide],.fl-builder-ui-is-pinned-right [data-toggle=show]{transform:rotateY(180deg)}.fl-builder-ui-pinned-is-collapsed .fl-lightbox{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-header{background:0 0;border:none;z-index:10}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-wrap{top:0}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-header h1{padding:14px 28px 15px!important}.fl-builder-simple-pinned .fl-builder--panel-no-settings{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:0;left:0;right:0;bottom:0}@keyframes fl-builder-show-panel{from{transform:scale(.8)}to{transform:scale(1)}}.fl-builder--search-results-panel,.fl-builder-panel{box-sizing:border-box;position:fixed!important;right:20px;top:calc(43px + 10px);width:380px;bottom:20px;background:#F5F7F9;color:#676F7A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;border-radius:4px;box-shadow:0 8px 40px 4px rgba(0,0,0,.3);z-index:10000007;will-change:transform;user-select:none}.fl-builder-panel{transform-origin:top right;animation-name:fl-builder-show-panel;animation-duration:.15s;animation-fill-mode:both;-ms-flex:1;flex:1;display:none}.fl-builder--search-results-panel{display:none;position:absolute;right:0;top:93px;left:0;bottom:0;width:auto!important;border:none;border-radius:0;box-shadow:none;min-height:100px;max-height:calc(100vh - 54px);overflow:auto;z-index:1}.fl-builder-content-panel-is-showing .fl-builder-panel,.fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-panel .fl-lightbox .fl-builder-panel-drag-handle,.fl-builder-ui-is-pinned .fl-builder--panel-arrow,.fl-lightbox-width-full .fl-builder-panel-drag-handle,body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow{display:none}.fl-builder--search-results-panel .fl-builder--no-results{text-align:center;padding:50px 20px}.fl-builder--panel-arrow{position:absolute;top:-13px;right:10px}.fl-builder--panel-arrow polygon{fill:#00a0d2}.fl-builder--panel-header{border-top:3px solid #00a0d2;border-top-right-radius:4px;border-top-left-radius:4px}.fl-builder-ui-is-pinned .fl-builder--panel-header{border-top:none}.fl-builder-panel-drag-handle{position:absolute;top:7px;left:10px;fill:#ccd4da;width:6px}.fl-builder-ui-is-pinned-left .fl-builder-panel-drag-handle{left:auto;right:10px}.fl-builder--panel-header .fl-builder--panel-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-content-group-select{-ms-flex:1 1;flex:1 1}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-panel-search{-ms-flex:0 0;flex:0 0;padding:0 10px 6px 0;margin-left:-4px}.fl-builder--panel-controls .fl-builder-panel-search button{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;background:0 0!important;border:2px solid transparent!important;font-size:inherit;height:36px;margin:0;padding:0}.fl-builder--panel-controls .fl-builder-panel-search button:active,.fl-builder--panel-controls .fl-builder-panel-search button:focus{top:0;outline:0}.fl-builder-panel-search button svg{height:auto;width:20px}.fl-builder-panel-search button.fl-builder-dismiss-panel-search svg{width:16px}.fl-builder-panel-search button svg .filled-shape{fill:#000}.fl-builder--panel-controls .fl-builder-panel-search button:active svg .filled-shape,.fl-builder--panel-controls .fl-builder-panel-search button:focus svg .filled-shape{fill:#00A0D2}.fl-builder-panel-search .fl-builder-panel-search-input{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:#f5f7f9}.fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:0 10px 6px}.fl-builder-panel-search-input input{-ms-flex:1 1 100%;flex:1 1 100%;border:2px solid #e6eaed;background:#fff;border-radius:4px;margin:0 4px 0 0;padding:10px;color:#333}.fl-builder-panel-search-input input:focus{border-color:#0197C6;outline:0}.fl-builder-panel-content-wrap{bottom:0;height:auto;left:0;overflow:hidden;position:absolute;right:0;top:43px}.fl-builder-panel-content{padding-bottom:60px}.fl-builder--panel-view .fl-builder-blocks-section:first-child{border-top:none}.fl-builder-blocks-group:first-child{padding:20px 0 0}.fl-builder-blocks-group .fl-builder-blocks-section-group-name{display:block;padding:0 30px 15px;color:#000;font-size:20px;font-weight:600;line-height:1.4}.fl-builder-blocks-section .fl-builder-block{display:block;line-height:1.1;padding:15px 20px}.fl-builder--template-collection-section-header,.fl-builder-blocks-section .fl-builder-blocks-section-header{line-height:1.2;color:#333;margin:0!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e7ebef;border-top:4px solid #e7ebef;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-blocks-section .fl-builder-blocks-section-title{background:#F5F7F9;color:#353535;padding:2px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-builder-blocks-section .fl-builder-blocks-section-title i{color:#bfbfbf;float:right}.fl-builder-blocks-section-content{overflow:auto;padding:10px 10px 20px}.fl-builder-blocks-section-content:before{content:none}.fl-builder-blocks-section-content:after{float:none;clear:both}.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@supports (display:grid){.fl-builder--template-collection-section-content,.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.fl-builder--template-collection-section-content>*,.fl-builder-blocks-section-content.fl-builder-modules>*,.fl-builder-blocks-section-content.fl-builder-rows>*,.fl-builder-blocks-section-content.fl-builder-widgets>*{width:auto!important}}.fl-builder-blocks-section-content .fl-builder-block-module,.fl-builder-blocks-section-content .fl-builder-block-row{-ms-flex:1 1 50%;flex:1 1 50%;width:50%;box-sizing:border-box}.fl-builder--search-results-panel .fl-builder-blocks-section-content .fl-builder-block-module{-ms-flex:1 1 100%;flex:1 1 100%;width:100%}.fl-builder-blocks-section.fl-active .fl-builder-blocks-section-content{display:block}.fl-builder-blocks-section-content .fl-builder-block{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:13px;line-height:1.1;font-weight:400;color:#38404a}.fl-builder-block{position:relative;height:47px}.fl-builder-block.fl-builder-block-col-group{height:84px}.fl-builder-block.fl-builder-block-has-thumbnail{height:auto!important;padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover{padding:0!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-content{position:relative!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover .fl-builder-block-content{padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-details{margin:0 10px 4px!important}.fl-builder-block:hover{overflow:visible;z-index:1}.fl-builder-block:hover .fl-builder-block-content{display:block;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;padding:15px 20px;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);text-decoration:none;color:#111;cursor:move;overflow:hidden}.fl-builder-blocks-node-template .fl-builder-block,.fl-builder-blocks-section-content .fl-builder-block .fl-builder-block-details{position:relative}.fl-builder-block-module:hover .fl-builder-block-content{width:auto;min-width:100%}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual{display:block;margin-bottom:7px}.fl-builder-block-drag-helper .fl-builder-block-content .fl-builder-block-visual{display:none!important}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual.fl-cols-visual{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:30px}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{-ms-flex:1 100%;flex:1 100%;background:#464a4c;height:30px;margin:0 2px;border-radius:2px}.fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#000}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child{margin-left:0!important}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:last-child{margin-right:0!important}.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:last-child,.fl-cols-visual.left-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.right-sidebar .fl-cols-visual-col:last-child{-ms-flex-preferred-size:60px;flex-basis:60px}.fl-builder-block-saved-column.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-column:hover .fl-builder-block-title,.fl-builder-block-saved-module.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-module:hover .fl-builder-block-title,.fl-builder-block-saved-row.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-row:hover .fl-builder-block-title{margin-right:70px}.fl-builder-block-module:nth-child(even):hover .fl-builder-block-content{left:auto;right:0}.fl-builder-block-thumbnail{border-radius:4px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:rgba(0,0,0,.06);margin-bottom:10px;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder-block:hover .fl-builder-block-thumbnail{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder-block .fl-builder-block-icon{margin-right:7px;fill:#000;display:inline-block;width:20px;height:20px;vertical-align:middle}.fl-builder-block-thumbnail:before{content:"";display:block;padding-top:50%}.fl-builder-block-thumbnail img{max-width:100%;max-height:160px;margin:0;-o-object-fit:cover;object-fit:cover}.fl-builder-blocks-section-content .fl-builder-block{box-shadow:0 0 0 transparent;transition-property:box-shadow;transition-duration:.15s}.fl-builder-blocks-section-content .fl-builder-block i,.fl-user-template-actions i{color:#000;margin-right:10px}.fl-builder-blocks-separator{background:#f1f1f1;height:6px}.fl-builder-block:hover .fl-builder-badge{background:#2ea2cc}.ui-sortable-helper .fl-builder-badge{display:none!important}.fl-builder-modules-cta a{color:#999!important;display:block!important;font-size:12px!important;font-style:italic!important;padding:15px 20px!important;line-height:16px!important}.fl-builder-modules-cta a:hover{background:#e5e5e5!important;color:#666!important;text-decoration:none!important}.fl-builder-modules-cta a:focus{text-decoration:none!important}.fl-builder-modules-cta .fa{float:right!important;font-size:14px!important;margin:3px 0 0 9px!important}.fl-builder--panel-message{text-align:center;padding:40px 20px;font-size:16px}.fl-builder--panel-message .fl-builder-button{display:inline-block;padding:10px}.fl-builder--panel-cta{padding:20px 30px;font-size:16px;text-align:center}.fl-builder--panel-cta a{color:inherit;text-decoration:none}.fl-builder--panel-cta a:hover{text-decoration:none}.fl-builder-block-template-image{margin:5px 0 10px;max-width:100%;border:1px solid #dfdfdf}.fl-builder-block .fl-builder-block-title{overflow:hidden;text-overflow:ellipsis;vertical-align:middle;line-height:1.3}.ui-sortable-helper .fl-builder-block-template-image{display:none!important}@keyframes fl-builder-template-item-enter{from{transform:translateY(100px) scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.fl-builder--template-collection{clear:both;padding:10px 0}.fl-builder--template-collection-section-content{padding:0 10px}.fl-builder--template-collection-item{box-sizing:border-box;width:50%;float:left;padding:10px;cursor:pointer;font-size:13px;transform-origin:center;opacity:1}.fl-builder--template-thumbnail{background-size:cover;background-clip:content-box;background-position:center top;background-color:#fff;border:2px solid transparent;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder--template-collection-item[data-id="0"] .fl-builder--template-thumbnail,.fl-user-template .fl-builder--template-thumbnail{border-color:#e4e7ea}.fl-builder--template-thumbnail:before{display:block;content:"";padding-top:120%}.fl-builder--template-thumbnail:hover{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder--template-name{text-align:center;padding:4px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fl-builder--template-collection-section{padding-bottom:10px;border-bottom:1px solid #dfdfdf}.fl-builder--template-collection-section:last-child{border-bottom:none}.fl-builder--template-collection-section:after,.fl-builder--template-collection-section:before{content:"";display:block;clear:both}.fl-builder--template-collection-section-name{padding:15px 10px 10px}span.fl-builder-block-no-node-templates{display:block;padding:15px 20px;text-align:center}span.fl-builder-block-no-node-templates:hover{cursor:default}.fl-builder-blocks-section-content .fl-builder-node-template-actions{bottom:0;cursor:default;display:none;position:absolute;right:0;top:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete,.fl-builder-blocks-section-content .fl-builder-node-template-edit{display:inline;cursor:pointer;margin:0;padding:15px 10px;text-align:center;width:30px}.fl-builder-block-details .fl-builder-node-template-delete,.fl-builder-block-details .fl-builder-node-template-edit{padding-top:0!important}.fl-builder-blocks-section-content .fl-builder-node-template-delete i,.fl-builder-blocks-section-content .fl-builder-node-template-edit i{margin:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete:hover i,.fl-builder-blocks-section-content .fl-builder-node-template-edit:hover i{color:#444}.fl-builder-blocks-node-template .fl-builder-block:hover .fl-builder-node-template-actions{display:block}.ui-sortable-helper .fl-builder-node-template-delete,.ui-sortable-helper .fl-builder-node-template-edit{display:none!important}.fl-builder--tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.fl-builder-panel .fl-builder--panel-header{cursor:move}.fl-builder-panel .fl-builder--tabs{-ms-flex-pack:distribute;justify-content:space-around;padding:4px 24px;cursor:pointer}.fl-builder--tab-wrap{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;margin:auto;max-width:400px}.fl-builder--tabs button,.fl-builder--tabs button:active,.fl-builder--tabs button:focus,.fl-builder--tabs button:hover{-ms-flex:1 1 100%;flex:1 1 100%;display:inline-block;text-decoration:none;text-transform:none;color:inherit;text-align:center;letter-spacing:normal!important;margin:0;padding:5px;cursor:pointer;font-size:13px!important;font-weight:500!important;line-height:1.3!important;background:0 0!important;outline:0!important;border:2px solid transparent;border-radius:4px;min-height:36px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;top:0;transition-property:background,color;transition-duration:.25s}.fl-builder--tabs button:focus{background:#e6eaed!important}.fl-builder--tabs button.is-showing{color:#0086b0}.fl-builder--panel-content{-ms-flex:1;flex:1}.fl-builder--panel-view{display:none;overflow:hidden}.fl-builder--panel-view.is-showing{display:block}.fl-builder--content-library-panel.ui-draggable-dragging{height:500px!important}.fl-builder--content-library-panel .fl-builder-drop-zone{display:none!important}.fl-builder--panel-header .fl-builder--tabs{cursor:move}.fl-builder--category-select{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.fl-builder--selector-display{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:justify;justify-content:space-between;color:#161B20;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;cursor:pointer;font-size:13px;font-weight:700;line-height:16px;border-radius:4px;-ms-flex-align:stretch;align-items:stretch}.fl-builder--selector-display-label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;font-size:inherit;line-height:inherit;width:100%;margin:0!important;padding:0!important;color:#6D6D6D;background:0 0;border:2px solid transparent;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;border-radius:4px;font-family:inherit;text-transform:none}.fl-builder--selector-display-label:hover{top:0;color:inherit;background:0 0;border:2px solid transparent;border-radius:4px}.fl-builder--selector-display-label:active{top:0;color:inherit;background:0 0;border:2px solid #e4e7ea;border-radius:4px}.fl-builder--selector-display-label:focus{top:0;color:inherit;background:0 0;border:2px solid #00A0D2;outline:0}.fl-builder--group-label{color:inherit;-ms-flex:0 0 0%;flex:0 0 0%;padding:4px 12px 4px 10px;background:#e7ebef;border-radius:3px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-builder--current-view-name{-ms-flex:1 1 100%;flex:1 1 100%;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;padding:8px 10px;text-align:left}.fl-builder--selector-menu{display:none;color:#293138;position:absolute;top:46px;left:0;width:100%;background:#fff;border-radius:4px;box-shadow:0 0 20px 2px rgba(0,0,0,.2);overflow:visible;z-index:2}.fl-builder--selector-menu:before{bottom:100%;right:8px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}.fl-builder--category-select.is-showing .fl-builder--selector-menu{display:-ms-flexbox;display:flex;max-height:calc(100vh - 150px)}.fl-builder--category-select.is-showing .fl-builder--selector-menu .fl-builder--menu{margin:10px 0;-ms-flex:1 100%;flex:1 100%;overflow:auto}button.fl-builder-button.fl-builder-bar-title-caret{margin:4px}button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#e6eaed!important;border-color:transparent!important}.fl-builder--category-select.is-showing .fl-builder-bar-title-caret i{transform:rotate(180deg)}.fl-builder--menu{margin-bottom:2px}.fl-builder--menu>a,.fl-builder--menu>button,.fl-builder--menu>span{display:block;padding:8px 10px 10px;border-radius:4px;color:inherit;text-decoration:none;background:0 0!important;border:2px solid transparent!important;font-weight:400;font-family:inherit}.fl-builder--menu>a:active,.fl-builder--menu>a:focus,.fl-builder--menu>a:hover,.fl-builder--menu>button:active,.fl-builder--menu>button:focus,.fl-builder--menu>button:hover{background:#e6eaed!important;border:2px solid transparent!important;top:0}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging,.fl-builder-drop-zone,.fl-builder-empty{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder--menu>a:focus,.fl-builder--menu>button:focus{outline:0;color:inherit;text-decoration:none}.fl-builder--menu .fl-has-children>svg{float:right;margin:0 7px 0 0;height:16px;width:9px;transition-property:transform;transition-duration:.15s;transform:rotate(-90deg)}.fl-builder--menu .fl-has-children.fl-has-children-showing>svg{transform:rotate(0)}.fl-builder--menu .fl-inset{display:none;padding-left:35px;font-size:14px;line-height:1.25}.fl-builder--menu a.fl-template-collection{color:#161B20}.fl-builder--menu>:after{clear:both}.fl-builder--menu * .fl-builder--menu-item-accessory{float:right;color:#000;text-transform:uppercase;text-align:center;min-width:20px;letter-spacing:2px}.fl-builder--menu * .fl-builder--menu-item-accessory i{font-size:1em;margin-top:2px}.fl-builder--menu .fl-builder-video-wrap iframe{display:block;margin:4px 0;width:100%}.fl-builder-publish-actions{display:-ms-flexbox;display:flex;box-sizing:border-box;position:absolute;top:0;right:0;width:380px;max-width:100%;height:44px;padding:4px 4px 4px 0;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;opacity:1;pointer-events:auto;transform:scaleX(1) translateX(0);transform-origin:right;transition-property:transform,opacity;transition-duration:.15s}.fl-builder-publish-actions.is-hidden{transform:scaleX(.23) translateX(68px);opacity:0;pointer-events:none}.fl-builder-bar .fl-builder-button-group{display:-ms-flexbox;display:flex;-ms-flex-preferred-size:100%;flex-basis:100%}.fl-builder-bar .fl-builder-button-group>.fl-builder-button{border-radius:0;margin-left:0;-ms-flex-preferred-size:100%;flex-basis:100%;text-align:center;-ms-flex-pack:distribute;justify-content:space-around;box-shadow:none}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:first-child{margin-left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-builder-publish-actions-click-away-mask{display:none;position:fixed;top:0;left:0;right:0;height:100vh;background:0 0}.fl-builder-dragging .fl-builder-content:not(.fl-builder-empty){padding:16px 0}.fl-builder-empty{display:none;border:2px dashed #969696;border-radius:8px;color:#909090;font-size:20px;font-weight:700;margin:10px;padding:250px 20px;position:relative;text-align:center;text-transform:uppercase}.fl-builder-drop-zone,.fl-builder-has-submenu>ul.fl-builder-submenu li a{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-builder-edit .fl-builder-empty{display:block}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging{background:rgba(255,255,255,.95)!important;border:2px solid #000;border-radius:4px;box-shadow:0 0 8px rgba(0,0,0,.2);-moz-box-shadow:0 0 8px rgba(0,0,0,.2);-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);color:#333!important;font-size:13px!important;height:47px!important;line-height:40px!important;overflow:hidden;padding:0 20px;position:fixed!important;text-overflow:ellipsis;white-space:nowrap;width:180px!important;z-index:100010!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:flex-start}.fl-builder-block.fl-builder-block-drag-helper:hover{padding:0;box-shadow:none}.fl-builder-block-drag-helper:hover .fl-builder-block-content{position:static;padding:0 20px}.fl-col-has-highlight-guide .fl-col-content,.fl-col-highlight,.fl-row-highlight .fl-col-group{position:relative}.fl-builder-block-saved-column.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-module.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-row.fl-builder-block-drag-helper:hover .fl-builder-block-content{padding:14px 20px}.fl-builder-block-drag-helper .fl-builder-block-icon{fill:#000;margin-top:-10px}.fl-builder-drop-zone{animation:fl-builder-drop-zone-pulse 2s infinite;background:#00A2D7;border-radius:4px;color:#fff!important;display:block;font-size:12px;letter-spacing:1px;line-height:14px;margin:10px;padding:6px 8px 5px;position:relative;text-align:left;text-shadow:none;text-transform:none;z-index:10}@keyframes fl-builder-drop-zone-pulse{0%,100%{background-color:#00A2D7}50%{background-color:#79DEFF}}.fl-builder-drop-zone-global{animation:fl-builder-drop-zone-global-pulse 2s infinite;background:#ff9600}@keyframes fl-builder-drop-zone-global-pulse{0%,100%{background-color:#FFBC5C}50%{background-color:#ff9600}}.fl-builder-content>.fl-builder-drop-zone{margin:10px 20px}.fl-row-content>.fl-builder-drop-zone{margin:3px 7px}.fl-col-has-cols>.fl-col-content>.fl-builder-drop-zone{margin:3px 10px}.fl-sortable-disabled>.fl-builder-drop-zone{display:none!important}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content>.fl-builder-drop-zone{width:100%}.fl-row-highlight{padding:16px 0}.fl-row-highlight .fl-row-content{border:2px dashed rgba(203,205,206,.5);padding:8px;border-radius:6px}.fl-row-highlight.fl-node-global .fl-row-content{border-color:#ff9600}.fl-col-highlight{padding:8px}.fl-col-highlight .fl-col-content{border-style:dashed!important;border-color:#00a0d2!important;border-radius:4px;min-height:100px;overflow-x:hidden;border-width:2px!important}.fl-col-has-cols.fl-col-highlight>.fl-col-content{padding:8px}.fl-col-highlight.fl-node-global .fl-col-content{border-color:#ff9600!important}.fl-builder-simple .fl-col-highlight .fl-col-content{border:none!important}.fl-col-highlight-guide{background:rgba(0,160,210,.05);border:2px solid #00A0D2;border-radius:4px;bottom:4px;left:4px;position:absolute;right:4px;top:4px;z-index:1}.fl-node-global .fl-col-highlight-guide{border-color:#ff9600!important;background-color:rgba(255,150,0,.06)!important}.fl-col-has-highlight-guide .fl-block-overlay{background:0 0;border-color:transparent}.fl-col-has-highlight-guide .fl-block-col-resize{display:none}.fl-col-has-highlight-guide .fl-col-highlight .fl-col-content{border-color:transparent!important}.fl-col-drop-target{bottom:8px;display:none;left:-9px;position:absolute;top:8px;width:18px;z-index:1}.fl-col-highlight .fl-col-drop-target{display:block}.fl-col-drop-target-last{left:auto;right:-9px}.fl-col-drop-target .fl-builder-drop-zone{bottom:0;left:2px;margin:0;padding:0;position:absolute;right:2px;top:0}.fl-col-group-drop-target{display:none;left:8px;height:18px;position:absolute;right:8px;top:-9px;z-index:1}.fl-row-highlight .fl-col-group-drop-target{display:block}.fl-col-group-drop-target-last{top:auto;bottom:-9px}.fl-col-group-drop-target .fl-builder-drop-zone{bottom:2px;left:0;margin:0;padding:0;position:absolute;right:0;top:2px}.fl-row-content>.fl-col-group-drop-target{position:static}.fl-row-content>.fl-col-group-drop-target .fl-builder-drop-zone{height:18px;position:static}.fl-row-drop-target{display:none;left:0;height:24px;margin-top:-28px;position:absolute;right:0;z-index:1}.fl-row-highlight .fl-row-drop-target{display:block}.fl-row-drop-target-last{margin-top:4px}.fl-row .fl-row-drop-target .fl-builder-drop-zone{bottom:0;left:4px;margin:0;position:absolute;right:4px;top:0}.fl-builder-content>.fl-row-drop-target{margin:0;position:static}.fl-builder-dragging .fl-builder-content.fl-builder-empty>.fl-row-drop-target{bottom:10px;display:block;height:auto;left:0;position:absolute;right:0;top:10px}.fl-builder-content .fl-row-drop-target .fl-builder-drop-zone{margin-bottom:0;margin-top:0}.fl-col-group:focus,.fl-col:focus,.fl-module:focus,.fl-row:focus{outline:0}.fl-sortable-proxy{display:none}.fl-block-overlay,.fl-block-overlay *{text-shadow:none;-webkit-touch-callout:none;transition-property:border-color;transition-duration:.3s}.fl-block-overlay-active{position:relative}.fl-block-overlay-actions{background:#00A0D2;float:left;height:30px;margin:-1px -1px 0;padding:0 4px;text-shadow:none;border-bottom-right-radius:5px;border-top-left-radius:3px;transition-property:background-color;transition-duration:.3s}.fl-row-overlay-header-bottom .fl-block-overlay-actions{border-radius:0 5px 0 3px}.fl-builder-col-resizing .fl-block-overlay-actions,.fl-builder-row-resizing .fl-block-overlay-actions{overflow:hidden}.fl-block-overlay-actions>span{display:block;float:left}.fl-block-overlay-actions i{color:#fff!important;cursor:pointer;display:block!important;float:left;font-size:16px!important;height:28px!important;line-height:28px!important;opacity:.8;filter:alpha(opacity=80);text-align:center;width:32px!important}.fl-block-overlay-actions i:hover{opacity:1;filter:alpha(opacity=100)}.fl-block-overlay-actions>i:first-child{padding-left:4px}.fl-block-overlay-actions>i:last-child{padding-right:2px}.fl-block-overlay-actions .fl-block-move{cursor:move}.fl-block-has-rules{color:#00A0D2!important;cursor:pointer;padding:7px;position:absolute;right:0;top:0}.fl-block-overlay-title,.fl-builder-has-submenu>ul.fl-builder-submenu li a{color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-block-overlay-title{float:left;font-size:14px;height:30px;line-height:29px;margin-right:2px;padding:0 12px 0 8px}.fl-col-overlay,.fl-module-overlay,.fl-row-overlay{background:rgba(190,239,255,0);color:#fff}.fl-row-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:0;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;left:0;position:absolute;top:-33px;right:0;z-index:100006}.fl-row-overlay.fl-row-menu-active,.fl-row-overlay.fl-row-menu-active.fl-block-overlay.fl-block-overlay-global{z-index:100007}.fl-row-full-width .fl-row-overlay{left:2px;right:2px;bottom:2px}.fl-row-overlay-header-bottom{bottom:-32px!important;top:0}.fl-row-overlay-header-bottom .fl-block-overlay-header{position:absolute;bottom:0}.fl-block-overlay-active .fl-row-content-wrap{position:relative}.fl-block-overlay-active .fl-row-content{position:relative;z-index:100007!important}.fl-builder-row-resizing .fl-col.fl-block-overlay-active,.fl-builder-row-resizing .fl-module.fl-block-overlay-active{position:static}.fl-col-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:8px;cursor:pointer;left:8px;position:absolute;right:8px;top:8px;z-index:100008}.fl-module-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:4px;cursor:pointer;left:4px;min-height:32px;position:absolute;right:4px;top:4px;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-module-overlay{cursor:default}.fl-module-adjust-height{padding-bottom:15px;padding-top:15px}.fl-col-bg-overlay .fl-block-overlay-active.fl-module{z-index:100008}.fl-block-overlay-global{background:rgba(255,150,0,0);border:2px solid #F7A407;border-radius:4px}.fl-block-overlay-global .fl-block-overlay-actions{background:#F7A407}.fl-block-overlay-title-global{background:#fff;color:#ff9600!important;font-size:11px;letter-spacing:1px;margin-left:4px;padding:2px 4px;vertical-align:top}.fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:pointer;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-row-overlay{cursor:default}.fl-builder-row-template .fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:default;z-index:100006}.fl-block-overlay-global.fl-row-overlay .fl-block-col-resize{display:none}.fl-block-overlay-muted .fl-row-overlay{background:rgba(85,93,102,0);border:2px solid #555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-overlay-actions{background:#555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-has-rules{color:#555D66!important}.fl-block-overlay-muted .fl-row-overlay .fl-block-col-resize{display:none}.fl-node-disabled .fl-row-content-wrap,.fl-node-disabled>.fl-col-content{opacity:.3}.fl-block-col-resize{bottom:0!important;position:absolute;top:0!important;width:6px}.fl-block-col-resize-e{cursor:ew-resize;left:auto!important;right:-2px!important}.fl-block-col-resize-w{cursor:ew-resize;left:-7px!important}.fl-block-col-resize-handle-wrap{margin:-4px 0 0 -5px;padding:0 5px;position:absolute;top:50%!important}.fl-block-col-resize-e .fl-block-col-resize-handle-wrap{margin-left:-6px}.fl-block-col-resize-handle{background:#fff;border:2px solid #00A0D2;border-radius:50%;height:12px;width:12px}.fl-node-global .fl-block-col-resize-handle{border-color:#ff9600}.fl-block-col-resize-feedback{color:#333!important;display:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:11px!important;position:absolute}.fl-block-col-resize-feedback-left,.fl-block-col-resize-feedback-right{background:#fff;border:1px solid #3ba0ff;padding:2px 4px}.fl-block-col-resize-feedback-left{right:20px;top:-7px}.fl-block-col-resize-feedback-right{left:20px;top:-7px}.fl-builder-has-submenu{position:relative}.fl-builder-has-submenu>ul.fl-builder-submenu{background:#00A0D2;box-shadow:0 0 20px rgba(0,0,0,.2);border-radius:0 4px 4px;display:none;left:0;list-style:none;margin:0;padding:6px 0;position:absolute;text-align:left;top:100%;width:165px;z-index:100008}.fl-builder-has-submenu>ul.fl-builder-submenu li{list-style:none;margin:0;padding:0}.fl-builder-submenu-right ul.fl-builder-submenu{left:auto;right:0}.fl-builder-has-submenu.fl-builder-submenu-open>ul.fl-builder-submenu{display:block}.fl-builder-has-submenu>ul.fl-builder-submenu li a{border-bottom:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;display:block;line-height:13px;font-size:13px;opacity:.8;filter:alpha(opacity=80);padding:6px 12px;text-decoration:none}.fl-builder-has-submenu>ul.fl-builder-submenu li a:hover{background:#0197C6;color:#fff;opacity:1;filter:alpha(opacity=100);text-decoration:none}.fl-builder-actions-title,.fl-builder-alert-lightbox .fl-lightbox-message,.fl-builder-alert-lightbox .fl-lightbox-message-info{color:#333!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px!important}.fl-builder-has-submenu .fl-builder-submenu .fa,.fl-builder-has-submenu .fl-builder-submenu .far,.fl-builder-has-submenu .fl-builder-submenu .fas{float:right;height:12px!important;line-height:12px!important;position:relative;right:-5px;width:14px!important}.fl-builder-has-submenu .fl-builder-has-submenu .fl-builder-submenu{display:none;left:100%;top:0}.fl-builder-has-submenu .fl-builder-submenu-right.fl-builder-has-submenu .fl-builder-submenu{left:auto;right:100%}.fl-builder-has-submenu .fl-builder-has-submenu:hover .fl-builder-submenu{display:block}.fl-builder-submenu-sep{padding:7px 0!important}.fl-builder-submenu-sep div{border-bottom:1px solid rgba(255,255,255,.4)}.fl-block-col-move,.fl-block-col-move-parent{cursor:move;position:relative}.fl-builder-submenu .fa-arrows-alt{cursor:move;display:none!important}.fl-builder-submenu a:hover .fa-arrows-alt{display:block!important;float:right;line-height:12px!important;height:12px!important}.fl-block-overlay-global ul.fl-builder-submenu{background:#ff9600!important}.fl-block-overlay-global ul.fl-builder-submenu li a:hover{background:#fa3}.fl-builder-actions-lightbox .fl-lightbox{display:block;width:300px;border-radius:4px}.fl-builder-actions-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-actions-lightbox .fl-builder-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:25px;text-align:center}.fl-builder-actions-title{display:block;margin-bottom:20px}.fl-builder-actions .fl-builder-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-bottom:7px;min-height:36px}.fl-builder-alert-lightbox{padding:20px;z-index:30000000;top:0;pointer-events:auto}.fl-builder-alert-lightbox .fl-lightbox{max-width:440px;width:auto}.fl-builder-alert-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-alert-lightbox .fl-lightbox-message,.fl-builder-alert-lightbox .fl-lightbox-message-info{line-height:24px;padding:30px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox{max-width:60%}.fl-lightbox-width-slim .fl-compound-field,.fl-lightbox-width-slim .fl-dimension-field-units{max-width:none}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-content{padding:20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message{padding:10px 20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message h1{font-size:20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message p{font-size:14px;padding-top:5px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .link{color:#428bca;text-decoration:underline}.fl-builder-alert-lightbox .fl-lightbox-message-info{padding:0 20px;font-size:14px!important}.fl-builder-alert-lightbox .fl-lightbox-message-info p{line-height:20px;padding:10px 0 0 10px}.fl-builder-alert-lightbox .fl-lightbox-message-info a{font-size:14px}@keyframes fl-builder-content-section-entry{from{transform:translateY(150px) translateX(100px) scale(.3);opacity:0}to{transform:translateY(0) translateX(0) scale(1);opacity:1}}.fl-template-category-select{width:180px!important}.fl-template-selector .fl-builder-settings-section{margin:0 0 10px}.fl-template-selector .fl-builder-settings-fields{height:470px}.fl-template-selector .fl-builder-settings-tab{width:560px}.fl-template-selector .fl-builder-settings-tab-description{font-size:15px!important;margin:0!important;padding:10px 0 25px;text-align:center}.fl-template-preview{float:left;margin:0 25px 30px 0;position:relative;text-align:center;width:170px}.fl-template-preview.fl-last{margin-right:0}.fl-template-image{border:1px solid #d9d9d9;cursor:pointer;margin-bottom:12px;height:164px;overflow:hidden}.fl-template-image:hover{border-color:red}.fl-template-image img{max-height:none;width:100%}.fl-template-preview span{display:block;text-align:center}.fl-user-template-category-name{background:#f2f2f2;border-bottom:3px solid #dfdfdf;border-top:2px solid #dfdfdf;font-weight:700;padding:8px 15px}.fl-user-templates{border-bottom:1px solid #dfdfdf;padding:10px 0 20px}.fl-builder--user-templates-section-content{border-bottom:2px solid #e6eaed;padding:10px}.fl-builder--user-templates-section-content:first-child{padding-top:0}.fl-builder--user-templates-section-content:last-child,.fl-user-templates:last-child{border-bottom:none}.fl-builder--user-templates-section-name{font-weight:700;font-size:16px;color:#333;z-index:9999;padding:15px 10px;margin:0 10px}@keyframes fl-list-item-entry{from{opacity:0;transform:scale(.5) translateY(100px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-builder--save-new-user-template,.fl-user-template{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:16px;font-weight:200;line-height:1.1;padding:10px 20px;color:#6d6d6d}.fl-user-template:hover{cursor:pointer;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08);text-decoration:none;color:#111;padding-right:68px}.fl-user-template-name{overflow:hidden;text-overflow:ellipsis;-ms-flex:1;flex:1}.fl-user-template-actions{display:none;bottom:0;position:absolute;right:0;top:0}.fl-user-template:hover .fl-user-template-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-user-template-actions a{display:inline-block;padding:15px 0;width:30px}.fl-user-template:hover a:hover i{color:#444!important}.fl-user-templates-message{display:none}.fl-user-template-thumbnail{-ms-flex:0;flex:0;margin-right:20px}.fl-user-template-thumbnail .fl-builder--template-thumbnail{background-size:cover;background-position:center top;width:45px}.fl-user-template-thumbnail .fl-builder--template-thumbnail:hover{box-shadow:none;transform:scale(1);transition-property:none}.fl-builder--save-new-user-template .fl-user-template-thumbnail .fl-builder--template-thumbnail{border-style:dashed;border-width:2px;border-color:#ccd4da}.fl-builder--save-new-user-template .fl-save-control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1}.fl-builder--save-new-user-template .fl-save-control input{background:0 0;border:none!important;-ms-flex:1;flex:1;font-size:16px;margin-right:10px;margin-left:-12px;color:#000}.fl-builder--save-new-user-template .fl-save-control input::-webkit-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input::-moz-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-ms-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-moz-placeholder{color:#777}@keyframes fl-slide-in-right{from{transform:translateX(50px)}to{transform:translateX(0)}}.fl-builder--save-new-user-template .fl-save-control button{display:none;animation-name:fl-slide-in-right;animation-duration:.25s;background-color:#00a0d2;border:none;padding:0 15px}.fl-save-control-mask{display:none;background:0 0;position:absolute;top:-50px;left:0;bottom:0;right:0;z-index:-1;min-height:80vh}.fl-builder-templates-cta{margin-bottom:20px}.fl-builder-templates-cta p{display:inline-block!important;width:75%!important;font-size:14px!important;line-height:1.5!important;margin-bottom:0!important}.fl-builder-templates-cta .fl-builder-upgrade-button{font-size:13px!important;line-height:13px!important;position:relative;top:8px;left:15px;padding:1px 12px}.fl-builder-settings-message,.fl-builder-settings-message *{font-size:15px!important;line-height:23px!important}.single-fl-builder-template .fl-content{width:100%!important}form.fl-builder-settings{height:100%;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-settings-message{padding:20px 25px!important;background:#f2f2f2!important}.fl-builder-preview-loader{position:relative;top:-2px;margin-left:3px}.fl-lightbox-header .fl-builder-preview-loader{margin:0;position:absolute;right:40px;top:15px}@keyframes fl-grab-attention{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.fl-lightbox-width-slim .fl-form-table{margin:10px 12px 10px 10px!important;width:calc(100% - 40px)}.fl-lightbox-width-slim .fl-form-table th{display:block;position:relative;padding:10px 0 0 12px!important;width:auto!important}.fl-lightbox-width-slim .fl-form-table td{display:block}.fl-lightbox-width-slim .fl-form-table .fl-field[data-type=editor] td:first-child,.fl-lightbox-width-slim .fl-form-table td:first-child{padding-left:0!important}.fl-field-label .fl-field-responsive-toggle,.fl-lightbox-width-slim .fl-field-control-wrapper .fl-field-responsive-toggle{display:none}.fl-lightbox-width-slim .fl-field-label .fl-field-responsive-toggle{display:inline-block;padding:0 5px!important}.fl-lightbox-width-slim input.text-full+.fl-field-description,.fl-lightbox-width-slim select+.fl-field-description{display:block;padding:8px 10px;margin:0}.fl-lightbox-width-slim .fl-builder-settings-fields select{width:100%}.fl-lightbox-width-slim .fl-color-picker{display:-ms-flexbox;display:flex;width:auto}.fl-lightbox-width-slim .fl-color-picker-clear{-ms-flex:0 0 40px;flex:0 0 40px}.fl-lightbox-width-slim .fl-field[data-type=dimension] .fl-field-responsive-setting{width:100%}.fl-lightbox-width-slim .fl-dimension-field-unit-select select{width:auto!important}.fl-lightbox-width-slim .fl-gradient-picker-color-row{width:50%}.fl-lightbox-width-slim .fl-color-picker.fl-gradient-picker-color,.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-option{width:100%}.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-options{float:none}.fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button{width:72px!important}.fl-lightbox-width-slim .fl-builder-settings-tab-description{margin:20px 10px}.fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button{width:38px!important}.fl-lightbox-width-micro .mce-btn[aria-label=Fullscreen],.fl-lightbox-width-micro .mce-btn[aria-label=Blockquote]{display:none}.fl-lightbox-width-micro .mce-toolbar i.mce-ico{width:18px}.fl-lightbox-width-slim .fl-field[data-type=editor] .fl-field-control-wrapper,.fl-lightbox-width-slim .fl-field[data-type=code] .fl-field-control-wrapper{margin-left:-10px;margin-right:-30px}.fl-lightbox .wp-editor-tools{padding-left:6px;padding-right:28px}.fl-lightbox .mce-top-part::before{box-shadow:none!important}.mce-container .mce-stack-layout span{color:initial}.fl-lightbox div.mce-toolbar-grp{background:0 0;border:none}.fl-lightbox div.mce-toolbar-grp>div{padding:0 3px}.fl-lightbox .fl-builder-settings .wp-switch-editor{background:#e7ebef;border:1px solid transparent}.fl-lightbox .html-active .switch-html,.fl-lightbox .quicktags-toolbar,.fl-lightbox .tmce-active .switch-tmce{background:#fff}.fl-lightbox .quicktags-toolbar,.fl-lightbox .wp-editor-container{border:none}.fl-lightbox .mce-toolbar .mce-container-body{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-lightbox-width-slim .mce-toolbar .mce-container-body{-ms-flex-pack:center;justify-content:center}.fl-lightbox textarea.wp-editor-area{line-height:1.5;padding:20px;width:calc(100% - 10px)}.fl-lightbox .wp-core-ui .button,.fl-lightbox .wp-core-ui .button-secondary{border:none;box-shadow:none;background:#e7ebef}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units{width:auto}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units input{max-width:none;width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control,.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-label{width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-form-field-preview-text{max-width:225px}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions{position:absolute!important;top:0;right:0;width:70px;z-index:1}.fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy{float:right!important;margin-right:5px}.fl-lightbox-width-slim .fl-field[data-type=time] select{width:auto}.fl-builder-settings-tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;overflow:hidden;height:32px;background:#e7ebef}.fl-builder-content-group-select{padding:0 10px 6px;display:none}.fl-builder-content-group-select select{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;padding:8px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;border:2px solid #e4e7ea;color:#161B20}select:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;outline:0!important}.fl-legacy-settings-tab{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings-tab:first-child .fl-legacy-settings-tab{background:0 0;height:auto}body .fl-builder-settings-tabs>*{box-sizing:border-box;color:#676F7A!important;fill:#676F7A!important;background:0 0;border:2px solid transparent;border-radius:0;margin:0;outline:0;padding:1px 16px;text-decoration:none!important;font-size:13px;font-weight:400!important;-ms-flex:0 0 auto;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}body .fl-lightbox-width-slim .fl-builder-settings-tabs>*{-ms-flex:1 1 auto;flex:1 1 auto}body .fl-builder-settings-tabs>.fl-builder-settings-tabs-more{-ms-flex:0 0 60px;flex:0 0 60px;display:none;margin-left:auto;-ms-flex-pack:center;justify-content:center}.fl-builder-settings-tabs-more svg{width:16px;height:auto;margin:auto}.fl-builder-settings-tabs-more g,.fl-builder-settings-tabs-more path,.fl-builder-settings-tabs-more svg{fill:inherit}body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more{display:-ms-flexbox;display:flex}.fl-builder-settings-tabs>:active,.fl-builder-settings-tabs>:hover{top:0;color:#333;background:0 0;border:2px solid transparent}.fl-builder-settings-tabs>:focus{top:0;outline:0;border:2px solid transparent;background:0 0;color:#0086b0;fill:#0086b0}.fl-builder-settings-tabs .fl-active,.fl-builder-settings-tabs-more.fl-contains-active,.fl-builder-settings-tabs-overflow-menu .fl-active{color:#0086b0!important;fill:#0086b0!important;position:relative;background:#fff}.fl-builder-settings-tabs .fl-active.fl-overflowed,.fl-builder-settings-tabs .fl-overflowed{display:none!important}.fl-builder-settings-tabs .error{color:#d03436;padding-right:10px}.fl-builder-settings-tabs .error .fl-error-icon,.fl-builder-settings-tabs-overflow-menu .error .fl-error-icon{background:url(../img/sprite.png) -148px -5px no-repeat;display:inline-block;height:16px;margin-left:7px;position:relative;top:3px;width:16px}.fl-builder-settings-tabs-more.fl-contains-errors{fill:#d03436!important}.fl-builder-settings-tab{display:none;width:auto!important}.fl-builder-settings-tab.fl-active{display:block}.fl-builder-settings-tab-description{background:#e4e7ea;padding:10px 15px;border-radius:4px;margin:20px}.fl-builder-settings-tab-description a{text-decoration:underline!important}.fl-builder-settings-tab-description a:hover{color:#333}.fl-builder-settings-tabs-overflow-menu{display:none;position:absolute;left:0;right:0;border:2px solid #e6eaed;border-top:3px solid #00a0d2;border-radius:4px;background:#fff;z-index:9999;margin:0 6px;padding:10px;-ms-flex-direction:column;flex-direction:column;box-shadow:0 0 20px 2px rgba(0,0,0,.2)}.fl-builder-settings-tabs-overflow-menu:before{bottom:100%;right:20px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:10px;margin-left:-10px}.fl-builder-settings-tabs-overflow-menu>a{display:block;padding:10px 15px;font-size:14px;font-weight:600!important;border:2px solid transparent;border-radius:4px;outline:0}.fl-builder-settings-tabs-overflow-menu>a:hover{background:#e6eaed;text-decoration:none}.fl-builder-settings-tabs-overflow-click-mask{display:none;position:fixed;top:0;bottom:0;left:0;right:0;background:0 0;z-index:11}.fl-form-table{background:none;border:none;width:calc(100% - 35px)}.fl-form-table tbody{border:none}.fl-form-table tr,.fl-form-table tr:nth-child(even){background:0 0}.fl-form-table td,.fl-form-table th{background:0 0!important;border:none!important;font-weight:400!important;text-align:left!important}.fl-form-table th{padding:10px 15px 10px 30px!important;vertical-align:top!important;width:200px!important}.fl-form-table td:first-child{padding-left:30px!important}.fl-form-table th label{color:#333;width:auto;max-width:100%}.fl-form-table th label i{color:grey}.fl-form-table th label i:hover{color:#555}.fl-form-table td{padding:8px 10px}.fl-lightbox-width-slim .fl-form-table td{padding:4px 0 5px}.fl-builder-settings-fields{margin:0;overflow:hidden;position:relative;-ms-flex:1 100%;flex:1 100%;visibility:hidden}.fl-lightbox-header .fl-builder-settings-fields{height:auto;margin:0;position:absolute;right:10px;top:10px}.fl-builder-settings-fields .fl-nanoscroller-content{padding:4px 0 0}.fl-builder-settings-fields .fl-field-control-wrapper{position:relative}.fl-field{animation-duration:.25s;animation-delay:.1s}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select,.fl-builder-settings-fields textarea{background:#fff!important;border-color:transparent!important;border-style:solid;border-width:2px;border-radius:4px!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);color:#333!important;display:inline;font-size:13px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px 6px;width:auto;box-sizing:border-box}i.fl-dimension-field-link,i.fl-field-responsive-toggle{line-height:18px!important;cursor:pointer;vertical-align:middle}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select:not(multiple){height:36px!important}.fl-builder-settings-fields select,.fl-builder-settings-fields select[multiple]{height:auto!important}.fl-builder-settings-fields input[type=number]{width:70px}.fl-builder-lightbox .fl-builder-settings-fields input[type=date]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=email]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=file]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=number]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=password]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=text]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,.fl-builder-lightbox .fl-builder-settings-fields select:focus,.fl-builder-lightbox .fl-builder-settings-fields textarea:not(.wp-editor-area):focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)!important}.fl-builder-settings-fields ::-webkit-input-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-moz-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields ::-moz-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-ms-input-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields label{display:inline-block;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:3px;font-size:12px}.fl-builder-settings-fields select{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;color:#000;margin:0 0 2px;padding:2px 10px;padding-right:30px!important;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important}.fl-dimension-field-unit input[type=number],.fl-unit-field-inputs input[type=number]{-moz-appearance:textfield}.fl-builder-settings-fields select[multiple]{height:60px;background-image:none!important}.fl-builder-custom-field select,.fl-photo-field select{box-shadow:none;border-color:#e6eaed!important}.fl-builder-settings-section:first-child{border-top:none!important}.fl-builder-settings-section-header{background-color:#e7ebef;border-top:4px solid #e7ebef;cursor:pointer;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-settings-description{padding:0 10px 10px;margin:0;font-style:italic;opacity:.75}.fl-builder-settings-fields table{margin:20px 0}.fl-builder-settings-fields .fl-builder-settings-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#F5F7F9;color:#353535;padding:2px 10px;margin:0;font-size:13px!important;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:2px solid transparent;border-radius:0}.fl-builder-settings-fields .fl-builder-settings-title:active,.fl-builder-settings-fields .fl-builder-settings-title:hover{top:0}.fl-builder-settings-fields .fl-builder-settings-title:focus{top:0;border-color:#e0e4ea}.fl-builder-settings-fields .fl-builder-settings-title>svg{height:6px;width:9px;margin-right:7px;transition-property:transform;transition-duration:.15s}.fl-builder-settings-section-collapsed{margin-bottom:4px}.fl-builder-settings-section-collapsed .fl-builder-settings-section-content{display:none}.fl-builder-settings-section-collapsed .fl-builder-settings-title{background:0 0;-ms-flex:1 1 100%;flex:1 1 100%}.fl-builder-settings-section-collapsed .fl-builder-settings-title>svg{transform:rotate(-90deg)}.wp-core-ui h1,.wp-core-ui h2,.wp-core-ui h3,.wp-core-ui h4,.wp-core-ui h5,.wp-core-ui h6,.wp-core-ui p{color:#333;font-family:inherit}.wp-core-ui #media-attachment-date-filters{width:auto}.wp-core-ui input[type=search]::-webkit-input-placeholder{color:#333}.wp-core-ui input[type=search]:-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::placeholder{color:#333}.wp-core-ui .submitbox .submitdelete{color:#a00}.wp-core-ui button{font-weight:400}.wp-core-ui input[type=date],.wp-core-ui input[type=email],.wp-core-ui input[type=file],.wp-core-ui input[type=number],.wp-core-ui input[type=password],.wp-core-ui input[type=search],.wp-core-ui input[type=tel],.wp-core-ui input[type=text],.wp-core-ui input[type=url],.wp-core-ui select,.wp-core-ui textarea{background-color:#fff;border-color:#dfdfdf;border-style:solid;border-width:1px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;color:#333;font-weight:400}.wp-core-ui input[type=date]:focus,.wp-core-ui input[type=email]:focus,.wp-core-ui input[type=file]:focus,.wp-core-ui input[type=number]:focus,.wp-core-ui input[type=password]:focus,.wp-core-ui input[type=search]:focus,.wp-core-ui input[type=tel]:focus,.wp-core-ui input[type=text]:focus,.wp-core-ui input[type=url]:focus,.wp-core-ui select:focus,.wp-core-ui textarea:focus{background:0 0;border-color:#aaa}.wp-core-ui input[type=search]{background-image:none;padding:6px}.fl-field-responsive-setting{display:inline-block;width:100%}.fl-field-responsive-setting-medium,.fl-field-responsive-setting-responsive{display:none}.fl-field-control-wrapper i.fl-field-responsive-toggle{padding:9px 0 0;position:absolute;left:-25px}i.fl-field-responsive-toggle{color:grey;display:inline-block;font-size:15px!important;height:auto;text-align:left;width:20px}.fl-builder-settings-fields input.text-full,.fl-builder-settings-fields textarea{width:100%}i.fl-field-responsive-toggle:hover{color:#000}.fl-builder-settings-fields .fl-text-field-add-value{min-width:50%;margin-top:.62em}.fl-field[data-type=shadow] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-shadow-field .fl-color-picker{margin-bottom:15px;width:100%}.fl-color-picker{cursor:pointer}.fl-color-picker .fl-color-picker-clear{box-sizing:border-box;display:inline-block}.fl-color-picker .fl-color-picker-clear:hover{background-color:#ededed}.colorpicker input{padding:0!important;font-size:11px!important;color:#fff!important;width:29px!important;height:auto!important;background:0 0!important;border:none!important}.colorpicker .colorpicker_hex input{width:45px!important}.fl-gradient-picker-type{display:-ms-flexbox;display:flex;margin-bottom:15px}.fl-gradient-picker-type input{margin:0!important}.fl-gradient-picker-type select{margin-bottom:0!important}.fl-gradient-picker-type-select{margin-right:10px!important}.fl-gradient-picker-colors{display:-ms-flexbox;display:flex}.fl-gradient-picker-color-row{display:-ms-flexbox;display:flex;margin-right:15px}.fl-color-picker.fl-gradient-picker-color,.fl-gradient-picker-color-row:last-child{margin-right:0}.fl-color-picker.fl-gradient-picker-color .fl-color-picker-color{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-gradient-picker .fl-gradient-picker-stop input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;margin:0!important}.fl-field[data-type=dimension] .fl-field-label label{padding-right:35px}.fl-field[data-type=dimension] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=dimension] .fl-field-description{padding:9px 0 0 5px}.fl-field[data-type=dimension] .fl-field-responsive-setting{width:auto}.fl-dimension-field-units{border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;height:36px;margin:1px 1px 20px;position:relative;max-width:350px}.fl-dimension-field-units>*{border-right:1px solid #e6eaed;width:100%}body .fl-dimension-field-units>:last-child{border-right:none!important}body .fl-dimension-field-units>:first-child>input[type]{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}body .fl-dimension-field-units>:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-dimension-field-unit input[type],.fl-dimension-field-units .fl-field-unit-select{box-shadow:none!important;margin:0!important;border-radius:0!important}.fl-dimension-field-unit input{width:100%!important}.fl-dimension-field-unit input::-webkit-inner-spin-button,.fl-dimension-field-unit input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-dimension-field-unit label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-dimension-field-unit .fl-field-popup-slider{margin-top:27px}i.fl-dimension-field-link{color:grey;font-size:15px!important;height:auto;text-align:left;width:20px}i.fl-dimension-field-link:hover{color:#000}i.fl-dimension-field-link.dashicons-editor-unlink,i.fl-dimension-field-link.dashicons-editor-unlink:hover{color:#0086b0}.fl-field-label .fl-dimension-field-link,.fl-lightbox-width-slim .fl-dimension-field-link{display:none}.fl-lightbox-width-slim .fl-field-label .fl-dimension-field-link{display:inline-block}.fl-field-control-wrapper .fl-dimension-field-link{padding:9px 0 0;left:-50px;position:absolute}.fl-dimension-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}.fl-field[data-type=unit] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=unit] .fl-field-description{margin-left:7px!important;padding-top:9px}.fl-field[data-type=unit] .fl-field-responsive-setting{width:auto}.fl-unit-field-inputs{background:0 0;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex}.fl-unit-field-inputs .fl-field-unit-select,.fl-unit-field-inputs input[type]{box-shadow:none!important;margin:0!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-unit-field-inputs .fl-field-unit-select{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.fl-unit-field-inputs input::-webkit-inner-spin-button,.fl-unit-field-inputs input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-unit-field-input{border-right:1px solid #e6eaed!important}body .fl-unit-field-input:last-child{border-right:none!important}body .fl-unit-field-input:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-unit-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}select.fl-field-unit-select{background-color:#E7EBEF!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}div.fl-field-unit-select{background-color:#E7EBEF!important;padding:9px 7px!important;width:100%}.fl-field-popup-slider{background:#fff;border-radius:4px;box-shadow:0 4px 25px 0 rgba(0,0,0,.18);display:none;margin-top:10px;padding:15px;position:absolute;left:0;right:0;z-index:9999}.fl-field-popup-slider-top{margin-top:0!important;top:-100%;transform:translateY(-10px)}.fl-field-popup-slider-input{background:#E7EBEF;cursor:pointer;height:4px;text-align:left;position:relative;border-radius:3px}.fl-field-popup-slider-input .ui-slider-handle{background:#fff;border:2px solid #3AA4CC;border-radius:100%;cursor:pointer;height:12px;width:12px;position:absolute;top:-6px;margin-left:-7px}.fl-field-popup-slider-input .ui-slider-handle:focus{outline:0}.fl-field-popup-slider-arrow{position:absolute;top:-22px}.fl-field-popup-slider-arrow:after{content:' ';border-color:transparent transparent #fff;border-style:solid;border-width:0 8px 8px;width:0;height:0}.fl-field-popup-slider-top .fl-field-popup-slider-arrow{top:auto;bottom:-24px}.fl-field-popup-slider-top .fl-field-popup-slider-arrow:after{border-bottom-width:0;border-top-width:8px;border-top-color:#fff}input[type=number].fl-field-popup-slider-focus{border:2px solid #00a0d2!important}.fl-font-field{display:-ms-flexbox;display:flex}.fl-font-field label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-font-field .fl-font-field-font-wrapper{margin-right:8px;width:70%!important}.fl-font-field .fl-font-field-weight-wrapper{width:30%!important}.fl-compound-field{max-width:350px}.fl-compound-field-section-toggle{background:#E7EAEF;border-radius:4px;border-top:2px solid transparent;border-bottom:2px solid transparent;cursor:pointer;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:32px;margin-bottom:8px;padding:0 12px}.fl-compound-field-section-toggle:hover{background:#dadfe5}.fl-compound-field-section-toggle .dashicons{font-size:15px;height:15px;margin-right:5px;width:15px}.fl-compound-field-section:last-child .fl-compound-field-section-toggle{margin-bottom:0}.fl-compound-field-section.fl-compound-field-section-visible{padding-bottom:12px}.fl-compound-field-section.fl-compound-field-section-visible:last-child{padding-bottom:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle{background:0 0;border-top:2px solid #E7EBEF;border-radius:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle:hover{background:0 0}.fl-compound-field-section-visible .fl-compound-field-section-toggle .dashicons:before{content:'\f347'}.fl-compound-field-row{display:none;padding-bottom:12px}.fl-compound-field-section-visible .fl-compound-field-row{display:-ms-flexbox;display:flex}.fl-compound-field-label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-compound-field-label-bottom{padding:6px 0 0 12px}.fl-compound-field-label .fl-dimension-field-link{display:inline-block;padding:0 0 0 2px;position:relative;left:auto;top:-1px}.fl-compound-field-setting{padding-right:8px;width:100%}.fl-compound-field-setting:last-child{padding-right:0}.fl-compound-field-setting select{margin:0!important;width:100%}.fl-compound-field-setting .fl-unit-field-input input{width:100%!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-compound-field-setting .fl-unit-field-input{width:50%!important}.fl-compound-field-setting .fl-unit-field-input select.fl-field-unit-select{background-position:center right 2px!important;padding:2px 5px!important;width:100%;font-size:11px}.fl-typography-field .fl-font-field-font-wrapper{margin-right:8px!important}.fl-typography-field-spacing{width:calc(33.33% - 8px)}.fl-typography-field-transform{width:66.66%}.fl-typography-field-transform .fl-button-group-field-options{float:none}.fl-typography-field-transform .fl-button-group-field-option{width:100%;padding:0 7px}.fl-typography-field .fl-shadow-field{display:-ms-flexbox;display:flex}.fl-typography-field .fl-shadow-field .fl-color-picker{margin:0 8px 0 0;width:calc(33.33% - 8px)}.fl-typography-field .fl-shadow-field .fl-dimension-field-units{margin-left:0;margin-top:0;margin-right:0;width:66.66%}.fl-button-group-field-options{background:#E7EBEF;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;float:left;height:36px;overflow:hidden}.fl-button-group-field-option{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:0 5px;border-radius:0;border:2px solid transparent;background:0 0}.fl-button-group-field-option:hover{top:0;background-color:transparent;color:#000;border:2px solid transparent}.fl-button-group-field-option:focus{top:0;background-color:transparent;border:2px solid #00a0d2;color:#333}.fl-button-group-field-option:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-button-group-field-option:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-button-group-field-option[data-selected="1"]{background-color:#fff;color:#000}.fl-button-group-field-option i{color:#6B6E75}.fl-button-group-field-option:hover i{color:#333}.fl-compound-field-cell{width:50%;display:block;float:left;padding-top:13px}.fl-compound-field-cell:first-child{padding-right:4px}.fl-compound-field-cell:last-child{padding-left:4px}.fl-compound-field-cell label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-shape-transform-field .fl-compound-field-row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-compound-field-row>*{width:auto;-ms-flex:1 1 auto;flex:1 1 auto}.fl-shape-transform-field .fl-compound-field-row>:first-child{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-shape-orientation-controls>*{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>*,.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>* button{border-radius:0}.fl-shape-orientation-controls .fl-button-group-field:first-child>*,.fl-shape-orientation-controls .fl-button-group-field:first-child>* button{border-top-left-radius:4px;border-bottom-left-radius:4px}.fl-shape-orientation-controls .fl-button-group-field:last-child>*,.fl-shape-orientation-controls .fl-button-group-field:last-child>* button{border-top-right-radius:4px;border-bottom-right-radius:4px}.fl-builder-custom-field{background:#fff;border:2px solid transparent;border-radius:4px;padding:7px 10px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);min-height:36px;box-sizing:border-box}.fl-builder-field-multiple .fl-builder-custom-field{cursor:move}.fl-builder-custom-field a{color:#21759b!important;text-decoration:underline!important}.fl-builder-custom-field a:hover{color:#d54e21!important}.fl-builder-custom-field label.error{margin-top:5px}.fl-photo-field .fl-photo-preview{display:-ms-flexbox;display:flex}.fl-photo-field .fl-photo-select,.fl-photo-field.fl-photo-empty .fl-photo-preview{display:none}.fl-photo-field.fl-photo-empty .fl-photo-select{display:block}.fl-photo-field .fl-photo-preview-img{line-height:0;margin:5px 0}.fl-photo-field .fl-photo-preview-img img{max-width:60px}.fl-photo-field .fl-photo-preview select{margin:8px 0 8px 10px;width:calc(100% - 10px)}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview select{display:none}.fl-photo-field .fl-photo-preview-filename{display:none;font-size:13px;font-weight:700;margin:5px 0 9px 11px}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename{display:inline-block;word-break:break-all}.fl-multiple-photos-field .fl-multiple-photos-select,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-add,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-count,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-edit,.fl-multiple-photos-lightbox .gallery-settings,.fl-photo-field.fl-photo-no-attachment .fl-photo-edit{display:none}.fl-photo-field .fl-photo-edit{margin:0 0 0 11px}.fl-photo-field .fl-photo-remove,.fl-photo-field .fl-photo-replace{margin:0 0 0 8px}.fl-builder-edit .media-modal{z-index:9999991}.fl-builder-edit .media-modal-backdrop{z-index:999999}.fl-builder-edit .media-frame{-webkit-backface-visibility:hidden;backface-visibility:hidden}.fl-builder-edit .media-modal-content h1{font-family:inherit}.fl-builder-edit form#wp-link,.popover[class*=tour-],ul.as-list{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder-edit .media-modal-content .thumbnail{padding:0;border:none;border-radius:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail{margin-bottom:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail img{max-width:none}.fl-builder-edit button.media-modal-close{position:absolute;box-shadow:none;-webkit-box-shadow:none}.fl-builder-edit .media-frame.hide-menu{visibility:visible}span.select2-container.select2-container--open{z-index:9999999}.fl-multiple-photos-field .fl-multiple-photos-add{margin:0 0 0 8px}.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-select{display:inline}.fl-multiple-photos-count{font-weight:700;margin-bottom:3px}.fl-video-field .fl-video-select,.fl-video-field.fl-video-empty .fl-video-preview{display:none}.fl-video-field.fl-video-empty .fl-video-select{display:block}.fl-video-field .fl-video-preview-img{float:left;line-height:0;margin:5px 0}.fl-video-field .fl-video-preview-img img{max-width:60px}.fl-video-field .fl-video-preview-img .dashicons.dashicons-media-video{display:block;font-size:60px;height:60px;line-height:60px;width:60px}.fl-video-field .fl-video-preview-filename{display:inline-block;font-size:14px;font-weight:700;margin:7px 0 5px 11px}.fl-video-field .fl-video-remove,.fl-video-field .fl-video-replace{margin:0 0 0 11px}.fl-multiple-audios-field .fl-multiple-audios-select,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-add,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-edit{display:none}.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-select{display:block}.fl-multiple-audios-field .fl-multiple-audios-add{margin:0 0 0 8px}.fl-icon-field .fl-icon-select,.fl-icon-field.fl-icon-empty .fl-icon-preview{display:none}.fl-icon-field.fl-icon-empty .fl-icon-select{display:block}.fl-icon-field .fl-icon-preview i{display:inline-block;font-size:28px;margin:10px 10px 9px;vertical-align:middle}.fl-icon-field .fl-icon-remove{margin:0 0 0 8px}.fl-builder-hidden-editor{display:none}.fl-builder-settings .wp-switch-editor{border-radius:0;color:#333;margin-top:2px}.fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn{margin:2px 0}.fl-builder-settings .mce-menubtn.mce-fixed-width button{width:100px}.fl-builder-settings .mce-menubtn.mce-fixed-width span{width:100%}.mce-close:active,.mce-close:hover,.mce-toolbar .mce-btn button:active,.mce-toolbar .mce-btn button:hover,.mce-window .mce-btn button:active,.mce-window .mce-btn button:hover{background:0 0;border:none}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:1px!important}.wp-editor-container textarea.wp-editor-area{background:0 0;border:none;padding:10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.fl-builder-edit form#wp-link{color:#000;font-size:13px}.fl-builder-edit form#wp-link #link-options label{display:block;margin-bottom:2px}.fl-builder-edit form#wp-link #link-options label span{padding-right:10px;vertical-align:middle}.fl-builder-edit form#wp-link #link-options input[type=text]{display:inline-block;height:auto;margin:5px 0 0;padding:3px 5px;width:80%}.fl-builder-edit form#wp-link .query-results{top:225px}.fl-code-field{border:1px solid #E6E6E6;border-left:none}.ace_editor,.ace_editor *{font-family:Monaco,Menlo,"Ubuntu Mono","Droid Sans Mono",Consolas,monospace!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important}.fl-layout-field-option{border:2px solid #d9d9d9;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;cursor:pointer;float:left;line-height:0;max-width:23%;margin:0 1% 2%;padding:5px}.fl-layout-field-option-selected,.fl-layout-field-option:hover{border-color:red}.fl-layout-field-option img{max-width:100%}.fl-link-field .fl-link-field-input-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-link-field-input{width:auto!important;-ms-flex:1 1 100%;flex:1 1 100%}.fl-link-field .fl-link-field-input-wrap button{-ms-flex:0 0 0%;flex:0 0 0%;height:36px;margin:1px 1px 1px 5px}.fl-link-field-options-wrap{padding:7px 0 0 12px}.fl-link-field-options-wrap label{margin-right:7px}.fl-link-field-options-wrap span{font-size:11px;font-weight:700;color:inherit!important;text-align:center;opacity:.5}.fl-link-field-search{display:none;border:2px solid #e6eaed;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;margin:4px 0 0;padding:10px}.fl-link-field-search-title{display:block;margin:0 0 3px 2px}.fl-link-field-search-cancel{margin-top:6px}.fl-link-field-search input{box-shadow:none!important;width:100%!important;padding:3px 9px!important}.fl-link-field-search #as-original-link-search{width:100%}.fl-field-connections-toggle{padding:10px 0}.fl-field[data-type=editor] .fl-field-connections-toggle{-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connections-toggle{height:24px;margin-top:1px;-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connection{bottom:25px}.fl-field-connections-menu[data-field=fl-field-text]{margin-top:30px}.fl-help-tooltip{display:inline-block;position:relative}.fl-lightbox-width-slim .fl-help-tooltip{position:static}.fl-help-tooltip-icon{color:#999!important;cursor:pointer;font-size:15px!important;padding:5px;vertical-align:middle}.fl-help-tooltip-text{box-sizing:border-box;background:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ccc;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;display:none;font-weight:400;left:23px;padding:10px 13px;position:absolute;top:-6px;width:250px;z-index:1000;border-radius:4px}.fl-lightbox-width-slim .fl-help-tooltip-text{top:30px;left:0;width:100%}.fl-field-control .fl-form-field{margin-bottom:0}.fl-form-field[data-preview-text=icon]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-form-field-preview-text i{display:inline-block;font-size:18px;line-height:22px;margin-right:10px}.fl-builder-field-actions{padding-left:0!important;padding-right:0!important;text-align:center;width:85px}.fl-builder-field-actions i{color:#999!important;cursor:pointer;font-size:13px!important;line-height:29px!important;width:16px}.fl-builder-field-actions i:hover{color:#000!important}.fl-builder-field-actions i.fl-builder-field-copy,.fl-builder-field-actions i.fl-builder-field-delete{margin-left:5px}.fl-builder-field-actions i.fl-builder-field-move{cursor:move}.fl-builder-field-dd-helper{background:#ccc;height:30px!important;float:left;width:130px!important}.fl-builder-field-dd-zone{border:1px dashed #ccc;height:30px}.fl-builder-field-actions-single .fl-builder-field-delete,.fl-builder-field-actions-single .fl-builder-field-move{display:none!important}.fl-builder-field-multiple .fl-builder-field-actions,.fl-builder-field-multiple .fl-field-control,.fl-builder-field-multiple .fl-field-label{padding-top:2px!important;padding-bottom:2px!important}.fl-builder-field-multiple .fl-builder-field-actions{min-width:70px!important}.fl-builder-field-multiple[data-field=icons] .fl-builder-field-actions{width:70px!important}.fl-builder-field-multiple.ui-sortable-helper .fl-field-control{width:60%}.fl-builder-field-multiple.ui-sortable-helper .fl-builder-field-actions{display:none}.fl-builder-widget-settings input{display:inline-block!important;margin:5px 10px 8px!important}.fl-builder-lightbox-loading{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings .error,.fl-builder-settings input.error{color:#d03436!important}.fl-builder-settings label.error,.fl-builder-settings p.error{color:#d03436;display:block;margin-top:5px}.fl-builder-settings .fl-form-table .fl-field-description{color:#464646;font-style:normal;margin-left:2px}.fl-lightbox .fl-field-connection{right:-1px}.fl-lightbox .fl-field-connection-content{border:2px solid transparent!important;background:#e7ebef!important}.fl-field-connection-content .fl-field-connection-label{color:#676f7a!important}.fl-field-connections-toggle{pointer-events:none;width:20px;right:-25px}.has-scrollbar .fl-field-connections-toggle{right:-22px}.fl-lightbox-width-slim tr[data-type=code] .fl-field-connections-toggle{right:10px}.fl-lightbox-width-slim .fl-code-field{width:90%}.fl-field-connections-toggle-open{transform:none!important}.fl-field-connections-toggle i{pointer-events:auto;color:#abb1ba;font-size:13px!important;transition-property:transform;transition-duration:.15s}.fl-field-connections-toggle-open i{transform:rotate(-45deg)}ul.as-selections{background-color:#fff;border:none;border-radius:4px;box-shadow:none;color:#333;font-size:12px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px;width:auto}ul.as-selections.loading{background:url(../img/ajax-loader-small.svg) 98% center no-repeat}ul.as-selections li.as-selection-item{background:#d4eaf6;border:none;font-size:11px;line-height:14px;padding:8px 15px;border-radius:4px;margin:2px}ul.as-selections li.as-selection-item.blur{background:#f4f4f4}ul.as-selections li.as-selection-item a.as-close{line-height:12px}ul.as-selections li.as-original{margin:0}ul.as-selections li.as-original input{height:auto;font-size:12px;margin:0;padding:0;box-shadow:none}ul.as-list{margin:0;font-size:13px;color:#000;background-color:#fff;background-color:rgba(255,255,255,.95);z-index:2;box-shadow:0 0 10px rgba(0,0,0,.1);border:none;border:1px solid #dfdfdf;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}li.as-message,li.as-result-item{border:none}li.as-result-item.active{background:#e5e5e5;border-radius:0;color:#333;text-shadow:none}li.as-result-item em{background:0 0!important;color:#333!important;font-size:12px;padding:0!important;font-weight:700}.fl-custom-query-filter{display:none}.fl-custom-query .fl-field[data-type=suggest] select{margin-bottom:5px;width:100%}.fl-builder-service-settings{position:relative}.fl-builder-service-error{color:red!important;padding:15px 0 0}.fl-builder-service-account-delete{color:red!important;margin-left:10px;position:relative;top:2px}.fl-lightbox-width-slim .fl-builder-service-account-delete{display:block;padding-top:7px}#fl-field-visibility_user_capability .fl-field-description,.fl-builder-service-connect-row .fl-field-description{background:#f0f0f0;color:#333!important;display:block;float:none;margin:10px 0 0;padding:10px}#fl-field-visibility_user_capability .fl-field-description a,.fl-builder-service-connect-row .fl-field-description a{color:#21759b!important;text-decoration:underline!important}.fl-ordering-field-option{background:#fff;border:1px solid #dfdfdf;border-radius:3px;cursor:move;margin-bottom:5px;padding:5px 10px}.fl-ordering-field-option .fa{color:#ccc;float:right;line-height:16px}#tiptip_holder{z-index:1000000}#tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#333}#tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#333}#tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#333}#tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#333}#tiptip_content{background:#333;box-shadow:none}.fl-builder-getting-started-video{line-height:0!important;padding:10px}.fl-builder-getting-started-video iframe{border:none;height:326px;width:100%}.fl-builder-tour-actions .fl-builder-actions-title{font-size:14px!important;line-height:19px}.fl-builder-tour-mask{bottom:0;left:0;position:fixed;right:0;top:0;z-index:100000000}.fl-builder-tour-dimmed{background:rgba(0,0,0,.7);bottom:0;left:0;position:absolute;right:0;top:0}body>.fl-builder-tour-dimmed{position:fixed}.tour-backdrop{z-index:110000}.popover[class*=tour-]{border:1px solid #ccc;border-radius:0;box-shadow:0 0 40px rgba(0,0,0,.3);color:#666;font-size:13px;font-weight:400;line-height:18px;max-width:none;padding:0;width:300px;z-index:100000001}.popover[class*=tour-].bottom>.arrow{border-bottom-color:#ccc}.popover[class*=tour-].bottom>.arrow:after{border-bottom-color:#f7f7f7}.popover[class*=tour-] .popover-title{border-radius:0;color:#333;letter-spacing:normal;text-transform:none}.popover[class*=tour-] .fa-times{color:#b3b3b3;cursor:pointer;font-size:16px;padding:5px;position:absolute;right:3px;top:2px}.popover[class*=tour-] .fa-times:hover{color:#666}.popover[class*=tour-] .popover-content{border-bottom:1px solid #d9d9d9;padding:13px 15px}.popover[class*=tour-] .fl-builder-tour-next{display:block;float:none;width:100%}.popover-navigation button{min-height:36px}.fl-builder-shortcode-mask-wrap{position:relative;pointer-events:none}.fl-builder-shortcode-mask{bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fl-builder--search{border:2px solid transparent;position:relative;padding:0;width:54px;transition-property:width;transition-delay:.1s;transition-duration:.15s}.fl-builder--search.is-expanded{border:2px solid #00A0D0}.fl-builder--search input[type=text],.fl-builder--search input[type=text]:focus{background-color:transparent;border:none!important;box-sizing:border-box;width:100%;font-size:16px;text-align:center}.fl-builder--search:before{display:-ms-flexbox;display:flex;top:0;left:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;content:"\f002";font:normal normal normal 14px/1 Font Awesome\ 5 Free;text-align:center;width:100%;height:100%;position:absolute;pointer-events:none;color:rgba(128,128,128,.6);font-size:17px;opacity:1;transition-property:opacity;transition-duration:.15s}.fl-builder--main-menu-panel,.fl-builder-ui-keyboard-shortcuts{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}.fl-builder--search.has-text:before,.fl-builder--search.is-expanded:before{opacity:0}.fl-builder--search input::-webkit-input-placeholder{color:rgba(128,128,128,0)!important;transition:color .25s}.fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(128,128,128,.4)!important}.fl-builder--search .search-label{cursor:text}.fl-builder--search .search-clear{display:none;padding:10px 10px 10px 30px;color:#a7a7a7;font-size:12px;position:absolute;right:0;top:0;background-color:#eff1f2;background:linear-gradient(to left,#e4e7ea,#e4e7ea 75%,rgba(228,231,234,0))}.fl-builder--search.has-text .search-clear,.fl-builder--search.is-expanded input{display:inline-block}.fl-builder--search:hover .search-clear{color:#888;background-color:#eff1f2;background:linear-gradient(to left,#dadfe5,#dadfe5 75%,rgba(218,223,229,0))}.fl-builder--search.is-expanded{width:246px}@keyframes fl-builder-show-menu-item{from{transform:translateY(10px) scale(.8);opacity:0}to{transform:translateX(0) translateY(0) scale(1);opacity:1}}.fl-builder--main-menu-panel{display:none;box-sizing:border-box;position:fixed;top:calc(45px + 10px);left:10px;width:360px;color:#222;max-height:calc(100% - 66px);border-radius:4px;background:#fff;border:none;border-top:3px solid #00a0d2;box-shadow:0 11px 45px 8px rgba(0,0,0,.1);font-size:14px!important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000009;pointer-events:auto}.fl-builder--main-menu-panel.is-showing{display:-ms-flexbox;display:flex}.fl-builder--main-menu-panel:before,.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items:before{bottom:100%;right:6px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:13px;margin-left:-13px}.fl-builder--main-menu-panel-views{-ms-flex:1 1 100%;flex:1 1 100%;overflow:auto}.fl-builder--main-menu-panel-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000119}.fl-builder--main-menu-panel .fl-builder--tabs{padding-left:20px;padding-top:15px}.fl-builder--main-menu-panel-view{display:none}.fl-builder--main-menu-panel-view.is-showing{display:block}.fl-builder--main-menu-panel-view-title{font-size:24px;font-weight:600;padding:25px 22px 0;line-height:1;white-space:nowrap}.fl-builder--main-menu-panel-view-title .title-accessory{float:right;color:#b1b1b1}.fl-builder--main-menu-panel-view-title .title-accessory>i{font-size:20px!important;width:25px!important}.fl-builder--main-menu-panel-view-title .title-accessory>i:hover{color:#222}.fl-builder--main-menu-panel-view-title .pop-view{padding:10px;margin-left:-10px;opacity:.5;font-size:25px;font-weight:400;cursor:pointer;background:0 0;outline:0;border:none;color:inherit}.fl-builder--main-menu-panel-view-title .pop-view:focus{outline:0;top:0;background:#E5EAED!important}.fl-builder--menu-item:before{display:block;content:"";float:none;clear:both}.fl-builder--menu-item{color:inherit;text-align:left;box-sizing:border-box;display:block;padding:10px 15px;margin:0 10px;width:calc(100% - 20px);background:0 0;border:none;border-radius:4px;font-size:14px;line-height:1.1;cursor:pointer;opacity:1;text-transform:none}.fl-builder--menu-item .menu-view.view-revisions{opacity:.5;padding-left:5px}.fl-builder--menu-item .menu-event.event-showGlobalSettings,.fl-builder--menu-item .menu-event.event-showLayoutSettings{color:#6bc373;padding-left:5px}.fl-builder--menu-item:hover{background:#eaf1f8;border:none;text-decoration:none;color:#000}.fl-builder--selector-menu .fl-builder--menu-item:hover{background:#fff}.fl-builder--menu-item-accessory{float:right;text-align:center;display:inline-block;min-width:40px;font-size:14px}.fl-builder--menu-item-accessory.view-arrow{font-size:18px}.fl-builder--menu{padding:0;margin:20px 0}.fl-builder--menu hr{margin:8px 0;background:#e6eaed!important;height:1px;border:none}.fl-builder--menu .fl-builder-video-wrap{padding:0 10px 10px}.fl-revision-list-item{display:-ms-flexbox;display:flex}.fl-revision-list-item-text{padding-left:15px}.fl-revision-list-item-date{padding-bottom:5px}.fl-builder--revision-actions{display:none;position:fixed;top:4px;left:4px;z-index:100008;padding:4px 4px 6px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder--revision-actions *{margin-right:5px}.fl-builder--revision-actions :last-child{margin:0}.fl-builder--menu-item[data-event=noRevisionsMessage]:hover{background:0 0;box-shadow:none;cursor:default}.fl-no-revisions-message-title{font-weight:700;margin-bottom:10px}.fl-no-revisions-message-text{line-height:22px}.fl-builder-module-placeholder-message{border:1px dashed #ccc;overflow:hidden;padding:20px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fl-field-connections-menu{z-index:999999}.fl-field[data-type=editor] .fl-field-connections-toggle{right:5px!important}.fl-field-connections-inline-toggle{display:inline;color:#9a9b9c;margin-left:6px}.fl-field-connections-inline-toggle i{transition-property:transform;transition-duration:.15s}.fl-field-connections-inline-toggle.fl-field-connections-toggle-open i{transform:rotate(45deg)}.fl-builder-add-ultimate-presets-button,.fl-builder-add-ultimate-rows-button,.fl-builder-pp-add-template-button,.pp-preview-button,.uabb-live-preview-button{display:none!important}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;background:0 0;transition-property:background;transition-duration:.15s}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-ne,.ui-resizable-nw,.ui-resizable-se,.ui-resizable-sw{width:12px;height:12px}.ui-resizable-se{cursor:se-resize;right:-4px;bottom:-4px}.ui-resizable-sw{cursor:sw-resize;left:-4px;bottom:-4px}.ui-resizable-nw{cursor:nw-resize;left:-4px;top:-4px}.ui-resizable-ne{cursor:ne-resize;right:-4px;top:-4px}.fl-builder-resizable-iframe-fix{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100000000}.fl-builder-panel .ui-resizable-handle:active,.fl-builder-panel .ui-resizable-handle:hover,.fl-lightbox .ui-resizable-handle:active,.fl-lightbox .ui-resizable-handle:hover{background:#00a0d2}.fl-builder-panel .ui-resizable-n,.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-n,.fl-lightbox .ui-resizable-s{height:6px}.fl-builder-panel .ui-resizable-n,.fl-lightbox .ui-resizable-n{top:-3px}.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-s{bottom:-3px}.fl-builder-panel .ui-resizable-e,.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-e,.fl-lightbox .ui-resizable-w{width:6px}.fl-builder-panel .ui-resizable-e,.fl-lightbox .ui-resizable-e{right:-3px}.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-w{left:-3px}.fl-lightbox .ui-resizable-ne,.fl-lightbox .ui-resizable-nw,.fl-lightbox .ui-resizable-se,.fl-lightbox .ui-resizable-sw{background:0 0;border:6px solid transparent}.fl-lightbox .ui-resizable-ne:active,.fl-lightbox .ui-resizable-ne:hover,.fl-lightbox .ui-resizable-nw:active,.fl-lightbox .ui-resizable-nw:hover,.fl-lightbox .ui-resizable-se:active,.fl-lightbox .ui-resizable-se:hover,.fl-lightbox .ui-resizable-sw:active,.fl-lightbox .ui-resizable-sw:hover{background:0 0;border-color:#00a0d2}.fl-lightbox .ui-resizable-ne{border-bottom:none;border-left:none;border-top-right-radius:4px}.fl-lightbox .ui-resizable-nw{border-bottom:none;border-right:none;border-top-left-radius:4px}.fl-lightbox .ui-resizable-se{border-top:none;border-left:none;border-bottom-right-radius:4px}.fl-lightbox .ui-resizable-sw{border-top:none;border-right:none;border-bottom-left-radius:4px}.fl-builder-ui-keyboard-shortcuts{display:none;position:fixed;top:0;left:0;bottom:0;right:0;z-index:999999;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background:rgba(50,50,50,.88);font-size:15px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder-ui-keyboard-shortcuts.is-showing{display:-ms-flexbox;display:flex}.fl-builder-ui-keyboard-shortcuts-content{box-sizing:border-box;width:500px;background:#f5f7f9;border-radius:4px;padding:30px 0 0;box-shadow:0 10px 30px rgba(0,0,0,.15)}.fl-builder-ui-keyboard-shortcut-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:12px 40px}.fl-builder-ui-keyboard-shortcut-item:nth-child(even){background:#eef2f5}.fl-builder-ui-shortcut-keycode{margin-left:auto;text-transform:uppercase;letter-spacing:2px}.fl-builder-ui-keyboard-shortcust-footer{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;padding:10px}.dismiss-shortcut-ui{padding:10px;border-radius:4px;background:#fff;color:#000;font-size:14px;border:2px solid #fff}.dismiss-shortcut-ui:focus,.dismiss-shortcut-ui:hover{top:0;color:#000;background:#eef2f5;border:2px solid #eef2f5}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel,.fl-builder-ui-skin--dark .fl-builder--preview-actions,.fl-builder-ui-skin--dark .fl-builder--search-results-panel,.fl-builder-ui-skin--dark .fl-builder-panel,.fl-builder-ui-skin--dark .fl-lightbox,body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content{background:#23282d;color:#b4b9be;border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-header{color:#b4b9be;border-bottom-color:#1d1d1d;border-top-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-top-color:#1d2227}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel:before{border-bottom-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-arrow polygon{fill:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input{background:#24282e}.fl-builder-ui-skin--dark .fl-responsive-preview-content{background:#131619}.fl-builder-ui-skin--dark .fl-form-table th{background:#23282d!important;color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons,.fl-builder-ui-skin--dark .fl-builder-button{background:#2c333a}.fl-builder-ui-skin--dark .fl-builder-button:focus{background:#131a22}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-primary{color:#fff!important;fill:#fff!important;background:#00A0D2}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-buy-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-feedback-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-upgrade-button{background-color:#F7A407;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus{border:2px solid #00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{color:#00A0D2!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:hover,.fl-builder-ui-skin--dark .fl-builder--menu>button:hover{background:#101215!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:focus,.fl-builder-ui-skin--dark .fl-builder--menu>button:focus{background:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-bar-title{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:#181b1f}.fl-builder-simple.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:transparent}.fl-builder-ui-skin--dark .fl-builder-layout-title{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-bar-title-caret i,.fl-builder-ui-skin--dark .fl-builder-layout-pretitle,.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{color:#7d8690}.fl-builder-ui-skin--dark button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#101215!important}.fl-builder-ui-skin--dark .fl-builder--search:before{color:rgba(162,173,184,.73)}.fl-builder-ui-skin--dark .fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(162,173,184,.73)!important}.fl-builder-ui-skin--dark .fl-builder--search .search-clear{color:rgba(162,173,184,.5);background-color:#e4e4e4;background:linear-gradient(to left,#383f46,#383f46 75%,rgba(56,63,70,0))}.fl-builder-ui-skin--dark .fl-builder--menu hr{background-color:#23282d!important;border:none}.fl-builder-ui-skin--dark .fl-builder--tabs{border-color:#383f46!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing,.fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active{color:#fff!important;fill:#fff!important;background:#181b20!important}.fl-builder-ui-skin--dark .fl-builder--tabs :focus{background-color:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing:focus{color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder--menu-item:hover{background:#383f46;color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--menu * .fl-builder--menu-item-accessory,.fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name{color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--selector-display{color:#c6cdd6;background:url(../img/svg/select-arrow-down-alt2-light.svg) center right 10px no-repeat #1a1b22!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label{color:#b5becb}.fl-builder-ui-skin--dark .fl-builder-panel-search-input input{border-color:#5b656f;color:#b8c2ce;background:#171b1f!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label:focus,.fl-builder-ui-skin--dark .fl-builder-panel-search-input input:focus{border-color:#00a0d2}.fl-builder-ui-skin--dark .fl-builder--group-label{color:#aaafb5!important;background:#24282e}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu{border-color:#101215!important;color:#7c858e;background-color:#101215}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu:before{border-bottom-color:#101215}.fl-builder-ui-skin--dark .fl-builder--menu>a,.fl-builder-ui-skin--dark .fl-builder--menu>button,.fl-builder-ui-skin--dark .fl-builder--menu>span{color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:hover{background:#23282d!important;color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:focus{background:#23282d!important;color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-panel-drag-handle{fill:#5b656f}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-header,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-header,.fl-builder-ui-skin--dark .fl-builder-settings-section-header{background-color:#191b21;border-color:#191b21}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,.fl-builder-ui-skin--dark .fl-builder--user-templates-section-name,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title,.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title{color:#7d8690!important;fill:#7d8690;background:#24282e}.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title:focus{border-color:#7d8690}.fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,.fl-builder-ui-skin--dark .fl-user-template{color:#b8c2ce}.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-content,.fl-builder-ui-skin--dark .fl-user-template:hover{background:#171b1f;color:#fff}.fl-builder-ui-skin--dark .fl-builder-block:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover i{color:#6d7782!important}.fl-builder-ui-skin--dark .fl-builder-block:hover a:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover a:hover i{color:#9eacbb!important}.fl-builder-ui-skin--dark .fl-builder-block .fl-builder-block-icon{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col,.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#7d8690}.fl-builder-ui-skin--dark .fl-user-templates{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder--template-thumbnail{border-color:#393f44}.fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1{color:#fff!important}.fl-builder-ui-skin--dark .fl-form-table th label{color:#a8b3bf!important}.fl-builder-ui-skin--dark .fl-builder-settings-tabs{background-color:#2c333a!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title{background:#24282e}.fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap{color:#a8b3bf;background-color:#1b2025}.fl-builder-ui-skin--dark .fl-lightbox :not(i){color:#a7b1bb!important}.fl-builder-ui-skin--dark .fl-builder-button{color:#c6cdd6!important;fill:#c6cdd6!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{fill:#00A0D2!important}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary{color:#fff!important}.fl-builder-ui-skin--dark .fl-color-picker-color.fl-color-picker-empty{background:#1a1b22}.fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon{fill:#6f7881}.fl-builder-ui-skin--dark .fl-color-picker-clear{background-color:#121a23}.fl-builder-ui-skin--dark .fl-color-picker-clear:hover{background-color:#373f46}.fl-builder-ui-skin--dark span.fl-builder-block-no-node-templates:hover{background:#1d2025}.fl-builder-ui-skin--dark .fl-builder-settings-tab-description{background:#1d2227}.fl-builder-ui-skin--dark .fl-builder-panel-search button svg .filled-shape{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-custom-field,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],.fl-builder-ui-skin--dark .fl-builder-settings-fields select,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields select:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus{border-color:#00a0d2!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields select{background-image:url(../img/svg/select-arrow-down-alt2-light.svg)!important}.fl-builder-ui-skin--dark .fl-builder-custom-field select,.fl-builder-ui-skin--dark .fl-photo-field select{border-color:#7d8690!important}.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle{color:#6b747d}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel-view-title,.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle:hover{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--saving-indicator{color:#858f99}.fl-builder-ui-skin--dark .fl-icons-list i:hover{background-color:#16191d;color:#fff}.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:after,.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:before{background:#6f7881}.fl-builder-ui-skin--dark .fl-builder--user-templates-section-content{border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button{background:0 0;border-right-color:#101215!important}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button:hover{background:#181b1f}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu{background:#131a22;border-color:#353c43 #131a22 #131a22}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu:before{border-bottom-color:#353c43}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:focus,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover{background:#383f46}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover.fl-active{color:#fff!important;background:#383f46}.fl-builder-ui-skin--dark ul.as-selections{background-color:#121a23}.fl-builder-ui-skin--dark .fl-custom-query .fl-builder-settings-section{border-top:2px solid #1b2026!important}.fl-builder-ui-skin--dark div.fl-field-unit-select{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-dimension-field-units>*{border-right:1px solid #383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider,.fl-builder-ui-skin--dark .fl-field-popup-slider-input .ui-slider-handle{background:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-arrow:after{border-bottom-color:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-input{background-color:#121a23}.fl-builder-ui-skin--dark .fl-unit-field-input{border-right:1px solid #383f46!important}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"]{background-color:#383f46;color:#fff}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"] i{color:#fff!important}.fl-builder-ui-skin--dark .fl-button-group-field-options{background:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle{background-color:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle:hover{background-color:#383f46}.fl-builder-ui-skin--dark .fl-compound-field-section-visible .fl-compound-field-section-toggle{border-top-color:#121a23!important;background-color:transparent}.fl-builder-ui-skin--dark .fl-field-connections-toggle i{color:#7c8590}.fl-builder-ui-skin--dark .fl-lightbox .fl-field-connection-content{background-color:#191b20!important}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#181b20}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane:hover>.fl-nanoscroller-slider{background-color:#5a646f}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#00A0D2}.fl-builder-ui-skin--dark .fl-lightbox div.mce-panel{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox .mce-toolbar .mce-ico{color:#a7b1bb}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary{background:#383f46;border:none;box-shadow:none}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-settings .wp-switch-editor{background:#23282d}.fl-builder-ui-skin--dark .fl-lightbox .html-active .switch-html,.fl-builder-ui-skin--dark .fl-lightbox .quicktags-toolbar,.fl-builder-ui-skin--dark .fl-lightbox .tmce-active .switch-tmce{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox textarea.wp-editor-area{background:0 0!important}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:hover{background:#191b20}
|
1 |
+
.fl-color-picker-ui{width:300px}.fl-color-picker-ui.fl-color-alpha-enabled{width:334px}.fl-color-picker-ui .iris-picker{float:left;width:100%;height:224px;display:block;position:relative;border-top:1px solid rgba(0,0,0,.1)}.fl-color-picker-ui .iris-picker .iris-square-inner,.fl-color-picker-ui .iris-picker-inner{position:absolute;left:0;top:0;bottom:0;right:0}.fl-color-picker-ui .iris-picker,.iris-picker *{box-sizing:content-box}.fl-color-picker-ui .iris-error{background-color:#ffafaf}.fl-color-picker-ui .iris-picker .iris-square{width:300px;height:200px}.fl-color-picker-ui .iris-picker .iris-palette,.fl-color-picker-ui .iris-picker .iris-slider,.fl-color-picker-ui .iris-picker .iris-square-inner{height:100%;width:12.5%}.fl-color-picker-ui .iris-picker .iris-placeholder,.fl-color-picker-ui .iris-picker .iris-square{position:relative}.fl-color-picker-ui .iris-picker .iris-square-inner{width:auto;margin:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square,.fl-color-picker-ui .iris-ie-9 .iris-square-inner{box-shadow:none;border-radius:0}.fl-color-picker-ui .iris-ie-9 .iris-palette,.fl-color-picker-ui .iris-ie-9 .iris-slider,.fl-color-picker-ui .iris-ie-9 .iris-square{outline:rgba(0,0,0,.1) solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-palette,.fl-color-picker-ui .iris-ie-lt9 .iris-slider,.fl-color-picker-ui .iris-ie-lt9 .iris-square,.fl-color-picker-ui .iris-ie-lt9 .iris-square-inner{outline:#999 solid 1px}.fl-color-picker-ui .iris-ie-lt9 .iris-square .ui-slider-handle{outline:#999 solid 1px;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.fl-color-picker-ui .iris-ie-lt9 .iris-square .iris-square-handle{background:0 0;border:3px solid #fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.fl-color-picker-ui .iris-picker .iris-strip{box-sizing:border-box;width:calc(300px - 12px);margin:5px 6px 6px;border-radius:4px;position:relative;height:22px;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle{width:6px;position:absolute;right:0;top:-2px;bottom:-2px;margin:0;border-radius:3px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.5);z-index:5;cursor:ew-resize}.fl-color-picker-ui .iris-picker .iris-strip .ui-slider-handle:focus{outline:#00a0d2 solid 2px}.fl-color-picker-ui .iris-picker .iris-slider-offset{position:absolute;top:0;left:6px;right:0;bottom:0;width:auto;height:auto;background:0 0;border:none;border-radius:0;transform:rotate(180deg)}.fl-color-picker-ui .iris-picker .iris-square-handle{background:0 0;border:5px solid #999;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.fl-color-picker-ui .iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover{border-color:#999}.fl-color-picker-ui .iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.fl-color-picker-ui .iris-picker .iris-square-handle:hover::after{border-color:#fff}.fl-color-picker-ui .iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.fl-color-picker-ui .iris-picker .iris-square-value{width:0;height:0;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.fl-color-picker-wrapper{position:relative;width:48px;height:32px}.fl-color-picker{box-shadow:0 2px 4px 0 rgba(0,0,0,.12);background:url(../img/transp_bg.png) #fff;border-radius:4px;width:120px;height:36px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-color-picker-color{-ms-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box!important;position:relative;border-radius:4px;background-color:transparent;cursor:pointer;border:2px solid transparent;padding:0;-ms-flex-pack:center;justify-content:center;display:-ms-flexbox;display:flex}.fl-color-picker-clear:hover,.fl-color-picker-color:hover{background:0 0;border:2px solid transparent}.fl-color-picker-clear:focus,.fl-color-picker-color.fl-color-picker-empty:focus,.fl-color-picker-color:focus{outline:0;top:0;border:2px solid #00a0d2;background:0 0}.fl-color-picker.fl-color-picker-has-reset .fl-color-picker-color:not(.fl-color-picker-empty){border-top-right-radius:0;border-bottom-right-radius:0}.fl-color-picker-icon{display:none;margin:auto}.fl-color-picker-color.fl-color-picker-empty{border-color:transparent}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon{display:block}.fl-color-picker-color.fl-color-picker-empty svg.fl-color-picker-icon path{fill:inherit}.fl-color-picker-clear{box-sizing:border-box;position:relative;display:-ms-flexbox;display:flex;-ms-flex:0 0 36px;flex:0 0 36px;-ms-flex-pack:center;justify-content:center;padding:0;border:2px solid transparent;fill:#A2AABE;background-color:#E7EBEF;cursor:pointer;border-radius:0 4px 4px 0}.fl-color-picker-clear:hover{fill:#6B6E75;background-color:#E7EBEF}.fl-color-picker-color.fl-color-picker-empty+.fl-color-picker-clear{display:none}.fl-color-picker-ui{display:inline-block;font-family:Helvetica,Verdana,sans-serif;z-index:1;position:fixed;overflow:hidden;padding-bottom:45px;border:1px solid rgba(0,0,0,.1);color:#999;background-color:#FAFAFA;border-radius:3px;box-shadow:0 9px 20px rgba(0,0,0,.17);transition:opacity .2s,visibility .2s;visibility:hidden;opacity:0;-webkit-transform:translate3d(0,0,0)}.fl-color-picker-ui.fl-color-picker-active{visibility:visible;opacity:1;z-index:999999}.fl-color-picker-ui .fl-color-picker-input,.fl-color-picker-ui .fl-color-picker-input:focus{width:100%;height:30px;border:none!important;font-size:14px!important;padding:0 8px;vertical-align:middle;color:#656c6e;background-color:#fff;border-radius:0;box-shadow:none}.fl-color-picker-ui .iris-square-value{transition:none}.fl-color-picker-preset-add{position:absolute;top:8px;right:8px;width:14px;height:14px;background-color:#656c6e;border-radius:50%;cursor:pointer;transition:all .2s}.fl-color-picker-preset-add:hover{background-color:#333}.fl-color-picker-preset-add:after,.fl-color-picker-preset-add:before{content:'';display:block;position:relative;background-color:#fff}.fl-color-picker-preset-add:before{top:6px;left:3px;width:8px;height:2px}.fl-color-picker-preset-add:after{left:6px;top:1px;width:2px;height:8px}.fl-color-picker-presets{position:absolute;left:0;bottom:0;width:100%;z-index:15;overflow:auto;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA}.fl-color-picker-presets-list .fl-color-picker-preset:hover,.fl-color-picker-presets-toggle:hover{background-color:#EDEDED}.fl-color-picker-presets-toggle{position:relative;overflow:hidden;width:100%;height:35px;text-align:center;line-height:35px;font-size:12px;font-weight:700;cursor:pointer;transition:all .1s}.fl-color-picker-presets-close-label,.fl-color-picker-presets-open-label{position:absolute;top:50%;left:50%;visibility:hidden;color:#999;transition:all .5s;transform:translate(-50%,-50%);opacity:0;width:100%}.fl-color-picker-presets-close-label.fl-color-picker-active,.fl-color-picker-presets-open-label.fl-color-picker-active{color:#656c6e;visibility:visible;opacity:1;z-index:999999}.fl-color-picker-presets-list{width:100%;list-style:none;margin:0;padding:0;overflow:auto}.fl-color-picker-presets-list .fl-color-picker-no-preset,.fl-color-picker-presets-list .fl-color-picker-preset{position:relative;padding:5px;font-size:12px;border-top:1px solid rgba(0,0,0,.1);transition:all .1s}.fl-color-picker-presets-list .fl-color-picker-no-preset{padding:18px 5px;text-align:center}.fl-color-picker-presets-list .fl-color-picker-preset-color{display:inline-block;width:40px;height:20px;margin-right:3px;vertical-align:middle;border:1px solid rgba(0,0,0,.1);border-radius:2px;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-label{vertical-align:middle;color:#333;cursor:pointer}.fl-color-picker-presets-list .fl-color-picker-preset-remove{position:absolute;top:50%;cursor:pointer;transform:translateY(-50%)}.fl-color-picker-clear .fl-color-picker-icon-remove{right:auto;top:auto;margin:auto}.fl-color-picker-presets-list .fl-color-picker-preset-remove{right:5px}.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:after,.fl-color-picker-presets-list .fl-color-picker-preset-remove:hover:before{background-color:#333}.fl-color-picker-added{position:absolute;width:100%;top:0;left:0;right:0;bottom:35px;z-index:10;color:#fff;text-align:center;background-color:rgba(0,0,0,.8)}.fl-color-picker-added-text{position:absolute;top:50%;left:50%;width:80%;font-size:14px;color:#fff!important;transform:translate(-50%,-50%)}.fl-color-picker-icon-check{position:relative;width:50px;height:50px;margin:5px auto}.fl-color-picker-icon-check:before{content:'';display:block;position:relative;width:15px;height:30px;margin-left:14px;border:7px solid #fff;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-down,.fl-color-picker-icon-arrow-up{display:inline-block;position:relative;width:10px;height:10px;margin-left:5px}.fl-color-picker-icon-arrow-down:before,.fl-color-picker-icon-arrow-up:before{content:'';display:block;position:relative;width:6px;height:6px;border:2px solid #999;border-left:none;border-top:none;transform:rotate(45deg)}.fl-color-picker-icon-arrow-up{top:2px;transform:rotate(180deg)}.fl-color-picker-icon-remove{width:15px;height:15px}.fl-color-picker-icon-remove:after,.fl-color-picker-icon-remove:before{content:'';display:block;position:relative;background-color:#6f7881}.fl-color-picker-icon-remove:before{left:6px;width:2px;height:10px;margin-top:3px;transform:rotate(-45deg)}.fl-color-picker-icon-remove:after{left:6px;width:2px;height:10px;margin-top:-10px;transform:rotate(45deg)}.fl-alpha-wrap{position:absolute;width:32px;height:215px;padding:0 5px;right:4px;border-top:none}.fl-alpha-slider{height:190px;position:absolute;top:12px;width:28px}.fl-alpha-slider .ui-slider-handle{background:rgba(0,0,0,0);border-color:#aaa;border-radius:4px;border-style:solid;border-width:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);-moz-box-shadow:0 1px 2px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);cursor:ns-resize;height:12px;left:0;opacity:.9;position:absolute;right:0;width:30px;z-index:14}.fl-alpha-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.fl-theme-builder-preview-select-title i:before,body .fl-theme-builder-preview-select .fa-caret-down i:before,body .fl-theme-builder-preview-select-item-title i:before{content:"\f078"}.fl-alpha-slider-offset{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAASCAYAAAAe/ZHXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkNEQUQ0ODM4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkNEQUQ0ODQ4RUE0MTFFNEExOEJFN0E5M0VFOTg0QUQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2Q0RBRDQ4MThFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2Q0RBRDQ4MjhFQTQxMUU0QTE4QkU3QTkzRUU5ODRBRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/r/N8AAAWYSURBVHjarFvvR3VBEN45JZGIPkREHyIiIhJJf3qUSERE9CGiDxERkcg9z9u92uucvTszz5z7xnHPj93Z2d359cxscn5+jpTS+EoiMr3/+51cZ2dn4+e29i2/u7y8RKf/pO3vc+o+n5ycoNK31+f6+jrfZ37yuG2mf3R01H3fa5N/b29vU6dP5qft0G4PDg5MGuPr/v4+jz1t27mfvN/b21P75+fHx8eZfiV/Ozs7rUJnSu/5+RlFv+m6ZJpbW1s1PnrvXl9fZ/qX89zY2LB4mfy+v7/nsdV1XltbK/dr5vnz87OcV5bJabuVlRVLBifjfX9/l/xkGtM+S0tLNXnu0szfU/P3IMn/k0678h6ddqjQFGccVL6hoCsVfsq+NZ5QtCv5rfFS41sq37W+UPhMyhxEWTetvce3NR8oewqD39qalXuGAK/WPltjajIC4x2c9Ye1f43SGcqGwRBeTZjhMNntL4pCWZMQYhE05RVl02EovRgC4RkCbUNSQAGhGB/GsKG4h6FQoigDa2i8fRBy3uLMXYIG3Vr3aZvRaCRdBYlYIMZywhBGCVhgzzOlgRuUSOvC0GMEWxOM/+EtQFh1OIIXtfwg1tRaayGjg5px0jyZKEaTle3e+AsLCygVRAh3FlEgKbReE3oYGj9EgIR00QiEgKw3ZBQbRGjBeAMtDETQmHiKDsezJNLgCTFGItZXlAgCSiQggblP+9c8SDI0lXWlFv5g3K63KZ51FOcZzthQ3LomoNHwJmKIQISI3vqzSpwIQ8liSjGMFQjDpoVgaQ6cWgvLhOC7qiAwiHrWbEg4JMSmeUrBuHoYwioOQNXmhmAcrs096s1gJCGi3hSEVU8DQxYElYHhKwUUGAa+NqOBMsSSAQJuhQhCAH4vxozExsxiihPuaIrjCVYKWlYEsjSM52G8Kxxryngl5j0j+EyGTIiED4s1Itm0ZGWxMFCLJaBAcEI6OBkmFgNBoc8Cait2ZnENE/6wQN8LJSJeSMNAjKVm+LUMAIt3PR5AQgIGp1Z5zxhE8PtXUYReYeXi4mKmOPNXBMzt2tPT07LIUtJqr66uusXEbkFnWiQ6Pj72ikrtzc1NKopuvbbj58PDwxqNHp27u7tuYWumUDV+v7+/Xyu6pc59+/DwUCsC9ujt7u6qRbt8//T01C3elbyN70fb29uZ/1FSincvLy/lPGb42tzc9IqJeHt7q61Pr2C6vr7u7tfHx8fMPhV0sLq6WhZtU0n36+uru8elPE7aLi8v1wqJPXn++fmZKYgX8ozFxcXJb0NaQTHClZT8+gBjsYdaFc+zWcUkGTCWENY66ta92oSVzo3WI6IZKGtukeyfBLFKBNAj6bUOBgaoe9wE4n04IBNkLMoC7+Skj630ZlTJMYdyMsU2T8AwpzALkVFilZgJcT2l9PCWDDSAMBSjVlJgZNk0lE1AIby0qCiCnBQNj6aBGQslZIZJ5hB6D/AzQHto5Z9Nk8tARdN4q2ExBnsyIJ311EymShyjan2rKk0zh1Ay1oQVWAZQRnkUA8RFw7TahjBnmNgMVMQrsCGZJezRtGlU0cUZ1zuaxGZPpbhApM+ZpFQqQ6xadoMtBrEKpBVo4GRXvNSxpaRixKiR+TChCYhsDwZkfFj8IkErjAHejcUI0XQrgwehhNSMHAz21E0wZ23FcCAmj8Sd/PXy2xLYLAuwRw4IMsqjFaWYOpMEhDySAPFCWyFkgAHrEcA+BNeJ4UE8HCzJPpCrerUmQIx1pWJkjqxJD8EikUo2c5aI8ZYgsAkM4WQtnHd0ns0ORgVTBghy5ISy928SGsbTMqYg523RUY8oNYG4FIYiyRyZCnFCJC87IoRAIMVOqQ7BKexxCS2hYVl9JhvlpYjnAe4MhmRPMWhhvLfXINaI9WKM0Zu0+SfAAFLE1EgfVSv7AAAAAElFTkSuQmCC) center;box-shadow:0 0 5px rgba(0,0,0,.4) inset;-moz-box-shadow:0 0 5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 5px rgba(0,0,0,.4) inset;width:200px;height:22px;transform:rotate(-90deg);bottom:48%;left:-80px;position:absolute}.fl-alpha-text{width:30px;font-size:12px;text-align:center;color:#999;position:absolute;bottom:-5px}.fl-lightbox-mask,.fl-lightbox-wrap{bottom:0;left:0;position:fixed;right:0;z-index:100010}@keyframes fl-lightbox-zoom{from{transform:scale(.4)}to{transform:scale(1)}}.fl-lightbox-wrap{display:none;overflow:auto;padding:0;top:43px;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);pointer-events:none}.fl-builder-draggable-is-dragging .fl-lightbox-wrap,.fl-builder-resizable-is-resizing .fl-lightbox-wrap,.fl-lightbox,.fl-lightbox-mask{pointer-events:auto}.fl-lightbox-mask{background:#000;opacity:.7;filter:alpha(opacity=70);top:0}.fl-lightbox{background:#F5F7F9;border-radius:4px;box-shadow:rgba(0,0,0,1) 0 4px 30px;-moz-box-shadow:rgba(0,0,0,1) 0 4px 30px;-webkit-box-shadow:rgba(0,0,0,1) 0 4px 30px;position:relative;display:-ms-flexbox;display:flex;z-index:100011;transform-origin:center;animation-name:fl-lightbox-zoom;animation-duration:.25s}.fl-lightbox.fl-lightbox-prevent-animation{animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-lightbox :not(i){color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:12px;line-height:14px;text-decoration:none;text-transform:none}.fl-lightbox *,.fl-lightbox :after,.fl-lightbox :before{box-sizing:content-box}#fl-ui-root .fl-nanoscroller-pane,.fl-builder--content-library-panel .fl-nanoscroller-pane,.fl-lightbox .fl-nanoscroller-pane{bottom:2px;right:2px;width:6px}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#bac0ca;transition-property:height,background-color;transition-duration:.25s}#wpadminbar,html{transition-duration:.35s}.fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider:hover{background-color:#c8cdd4}.fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#029fd2}.fl-lightbox .dashicons{font-family:dashicons}.fl-lightbox.ui-draggable{box-shadow:rgba(0,0,0,.2) 0 7px 30px;-moz-box-shadow:rgba(0,0,0,.2) 0 7px 30px;-webkit-box-shadow:rgba(0,0,0,.2) 0 7px 30px}#wpadminbar,.fl-builder-bar.is-hidden{pointer-events:none}.fl-lightbox-resizable{height:500px;width:380px}@media (max-width:500px){.fl-lightbox-resizable{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-resizable .ui-resizable-handle{display:none!important}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:default!important}.fl-lightbox-controls{display:none}}.fl-lightbox-width-full{left:0!important;right:0!important;top:0!important;height:100%!important;width:100%!important}.fl-lightbox-width-full .fl-lightbox-header{cursor:inherit!important}.fl-lightbox-controls{position:absolute;right:10px;top:10px;z-index:5}.fl-lightbox-controls .fa{color:#bdbdbd;font-size:14px;padding:5px}.fl-lightbox-controls .fa:hover{color:#aaa;cursor:pointer}.fl-lightbox-header-wrap{border-top-left-radius:4px;border-top-right-radius:4px}.fl-lightbox-header{position:relative}.fl-lightbox-header h1{color:#333!important;font-size:16px!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-weight:400!important;margin:0!important;padding:14px 34px 15px 28px!important;text-align:left!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;line-height:1}.fl-lightbox.ui-draggable .fl-lightbox-header{cursor:move}.fl-lightbox-header h1 .fl-builder-badge{margin-left:10px;color:#fff;background-color:#F7A408}.fl-lightbox-content,.fl-lightbox-content-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 100%;flex:1 100%;max-width:100%}.fl-lightbox-footer{box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;-ms-flex:0 0;flex:0 0;-ms-flex-preferred-size:44px;flex-basis:44px;padding:4px;text-align:right}.fl-lightbox-footer .fl-builder-button{height:36px;margin-left:5px!important;-ms-flex:0 0 0%;flex:0 0 0%;-ms-flex-pack:center;justify-content:center}.fl-lightbox-width-slim .fl-lightbox-footer{-ms-flex-pack:stretch;justify-content:stretch;padding:4px 5px}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button{-ms-flex:1 1 100%;flex:1 1 100%;display:block;text-align:center}.fl-lightbox-width-slim .fl-lightbox-footer .fl-builder-button:first-child{margin-left:0!important}.fl-lightbox table,.fl-lightbox td,.fl-lightbox th,.fl-lightbox tr{border:none}.fl-lightbox-wrap.fl-icon-selector{z-index:1000111}.fl-icon-selector .fl-lightbox{height:100%}.fl-icons-filter{height:auto!important;margin:0!important;position:absolute!important;right:0;top:0;padding:10px 16px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-icons-filter select{vertical-align:middle;width:195px;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;color:#000;border:2px solid #e4e7ea!important;border-right:none!important;margin:0;padding:2px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;-ms-flex:1 1 195px;flex:1 1 195px;border-radius:0}.fl-icons-filter input[type=text]{line-height:18px;vertical-align:middle;width:160px;-ms-flex:1 1 160px;flex:1 1 160px;border:2px solid #e4e7ea!important;border-radius:0!important;padding:2px 10px!important}.fl-icons-filter input[type=text]:focus,.fl-icons-filter select:focus{border:2px solid #00A0D2!important}.fl-icons-list{bottom:52px;left:0;overflow:auto;padding:20px;position:absolute;right:0;top:48px}.fl-icons-list::-webkit-scrollbar{background-color:#ccc;-webkit-appearance:none;width:10px}.fl-icons-list::-webkit-scrollbar-thumb{background-color:#666;border:1px solid #ccc}.fl-icons-section{text-align:center}.fl-icons-section h2{border-bottom:1px solid #dfdfdf;color:#333!important;font-family:Helvetica,Verdana,sans-serif!important;font-size:16px!important;font-weight:700!important;margin:0 0 20px!important;padding:0 0 10px!important;text-align:left}.fl-icons-list i,.fl-icons-list i:before{cursor:pointer;display:inline-block;font-size:40px;height:100px;line-height:100px;width:100px;background:0 0}.fl-icons-list i:hover{background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.15);border-radius:4px}.fl-icon-selector-footer{bottom:0;left:0;position:absolute;right:0}html{transition-property:margin}html.fl-builder-is-showing-toolbar{margin-top:calc(44px + 1px)!important}.fl-builder-edit body{position:static!important}.fl-builder-edit:after,.fl-builder-edit:before{z-index:0!important}.fl-builder-edit .fl-builder-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}#wpadminbar{transition-property:transform,opacity;transform-origin:bottom;transform-style:preserve-3d;transform:rotateX(89deg) translateY(46px);opacity:0;will-change:transform}html.fl-builder-show-admin-bar{margin-top:32px}html.fl-builder-show-admin-bar #wpadminbar{transform:rotateX(0) translateY(0);pointer-events:auto;opacity:1}@media screen and (max-width:782px){html.fl-builder-show-admin-bar{margin-top:46px}}.fl-clear{clear:both}.screen-reader-text{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}.fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(240,240,240,.8);bottom:0;display:none;left:0;position:fixed;right:0;text-align:center;top:0;z-index:12000000}.fl-builder-settings .fl-builder-loading{background:url(../img/ajax-loader.svg) center center no-repeat rgba(255,255,255,.8);display:block;position:absolute}.fl-field-loader{color:#B3B3B3!important;font-style:italic}.fl-builder-node-loading{opacity:.35!important}.fl-builder-node-loading-placeholder{background:url(../img/ajax-loader.svg) center center no-repeat;height:50px}.fl-col-group-has-child-loading{display:-ms-flexbox;display:flex}.fl-col-group-has-child-loading>.fl-builder-node-loading-placeholder{width:50px}.fl-node-hidden{display:none}.fl-builder-edit .fl-node-hidden{display:block}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-visible-mobile{display:block!important}html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-desktop-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-medium-mobile,html:not(.fl-responsive-preview-enabled) .fl-builder-content-editing .fl-col-group-equal-height .fl-col.fl-visible-mobile{display:-ms-flexbox!important;display:flex!important}.fl-responsive-preview-enabled body{overflow:hidden!important}.fl-responsive-preview-mask{background:#F7F7F7;bottom:0;left:0;position:fixed;right:0;top:0;z-index:99999}.fl-responsive-preview{bottom:0;left:0;position:fixed;right:0;top:0;margin-top:50px;z-index:100000}.fl-builder-preview .fl-responsive-preview{margin:0!important}.fl-responsive-preview-content{background:#F5F7F9;padding:20px 20px 45px;overflow:scroll;position:absolute;top:45px;right:0;bottom:0;left:0}.fl-responsive-preview-content .fl-builder-content-editing{overflow:visible!important}.fl-responsive-preview-message{background:#F5F7F9;color:#b3b3b3;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;font-size:14px;font-weight:400;padding:15px;text-align:center;position:absolute;top:0;left:0;right:0;z-index:999999}.fl-responsive-preview-message span{display:inline-block;margin-right:8px}.fl-responsive-preview-message .fl-builder-button{display:inline-block;margin-left:2px;padding:0 10px}.fl-responsive-preview-message .fl-builder-button i{font-size:14px;height:14px;width:14px}.fl-responsive-preview .fl-builder-content{box-shadow:0 0 8px rgba(0,0,0,.2);margin-left:auto;margin-right:auto;max-width:100%;overflow:visible;position:relative}#fl-builder-preview-frame,#fl-builder-preview-mask{bottom:0;height:100%;position:fixed;top:0;width:100%;right:0}.fl-responsive-preview .fl-block-col-resize{display:none}.fl-builder-button,body .fl-builder-bar .fl-builder-bar-content{display:-ms-flexbox;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}#fl-builder-preview-mask{background:url(../img/ajax-loader.svg) center center no-repeat #F7F7F7;left:0;z-index:999999}#fl-builder-preview-frame{left:50%;transform:translateX(-50%);-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);z-index:1000000}body button[class*=fl-builder],body button[class*=fl-builder]:focus,body button[class*=fl-builder]:hover{box-shadow:none;max-height:none;max-width:none;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none}.fl-builder-button{-webkit-appearance:none;-ms-flex-align:center;align-items:center;background:#e7ebef;border:2px solid transparent;border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;color:#676F7A!important;cursor:pointer;display:flex;fill:#676F7A!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:33px;letter-spacing:normal!important;line-height:1!important;margin:0;padding:0 12px;text-align:center;transition-property:background-color,width;transition-duration:.2s;white-space:nowrap;width:auto;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder--search-results-panel,.fl-builder-bar,.fl-builder-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.fl-builder-button:hover{background:#dadfe5;color:#222;border:2px solid transparent!important}.fl-builder-button:active{background:#DCDCDC}button.fl-builder-button:focus{position:static;top:auto;outline:0;background:#E4E7EA;border:2px solid #00A0D0!important}.fl-builder-bar .fl-builder-button{height:auto}.fl-builder-button-primary,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button{background:#00A0D2;color:#fff!important;text-decoration:none;border:2px solid transparent!important}.fl-builder-button.fl-builder-button-primary:focus,body.fl-builder--layout-has-drafted-changes .fl-builder-button.fl-builder-done-button:focus{background:#00A0D2;border:2px solid #ffc217!important}.fl-builder-button-primary:hover,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:hover{background:#0197C6;color:#fff!important}.fl-builder-button-primary:active,body.fl-builder--layout-has-drafted-changes .fl-builder-done-button:active{background:#0484AC}.fl-builder-button-large{height:30px}.fl-builder-button-small{font-size:11px!important;line-height:1!important}.fl-builder-help-button{color:#b3b3b3;font-size:16px!important}.fl-builder-help-button i{position:relative;top:-1px}.fl-builder-help-button:hover{color:#666}.fl-builder-publish-button{line-height:45px!important}.fl-builder-content-panel-button,.fl-builder-content-panel-button:hover{fill:#00A0D2!important;font-size:30px!important;padding-bottom:4px}.fl-builder-button-silent,.fl-builder-button-silent:hover{padding:0 12px;background:0 0!important;border:2px solid transparent!important;box-shadow:none!important}.fl-builder-done-button,.fl-builder-done-button:hover{font-weight:600}.fl-field .fl-builder-button{display:inline-block;height:auto;padding:11px 12px;vertical-align:middle;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)}.fl-builder-badge{background:#333;border-radius:2px;color:#fff!important;display:inline;font-size:11px!important;font-weight:400;letter-spacing:1px;margin-left:2px;padding:2px 4px;vertical-align:middle}.fl-builder-badge-global{background:#ff9600;transform:translateY(0);transition-duration:.25s;transition-property:transform}.fl-builder-blocks-node-template .fl-builder-badge-global{position:absolute;right:0;top:0}.fl-builder-block:hover .fl-builder-badge-global{display:none}.fl-builder-bar{left:0;position:fixed;right:0;top:0;z-index:999999;user-select:none;transition-property:transform opacity;transition-duration:.35s;transform-style:preserve-3d;perspective:1100px}.fl-builder-bar.is-hidden .fl-builder-bar-content{transform:translateY(-100%) rotateX(90deg)}body .fl-builder-bar .fl-builder-bar-content{display:flex;box-sizing:border-box;background:#fff;border-bottom:1px solid #eceef1;color:#999;font-size:14px!important;height:calc(44px + 1px);transition-property:background-color,opacity,transform;transition-duration:.35s;pointer-events:auto}.fl-builder-draggable-is-dragging .fl-builder-content,.fl-builder-draggable-is-dragging .fl-builder-panel .fl-lightbox,.fl-builder-resizable-is-resizing .fl-builder-content,.fl-builder-resizable-is-resizing .fl-builder-panel .fl-lightbox,body .fl-builder-bar .fl-builder-bar-content.is-muted{pointer-events:none}body .fl-builder-bar .fl-builder-bar-content.is-muted>:not(.fl-builder-publish-actions){-webkit-filter:saturate(20%) blur(1px);filter:saturate(20%) blur(1px);opacity:.4}.fl-builder-bar-title{box-sizing:border-box;color:#333;display:-ms-flexbox;display:flex;-ms-flex:0 0 380px;flex:0 0 380px;max-width:380px;border-right:1px solid #eceef1;cursor:pointer}.fl-builder-bar-title:hover{background:#fff}.fl-builder-bar-title.is-showing-menu .fl-builder-bar-title-caret>svg{transform:rotate(180deg)}.fl-builder-simple .fl-builder-bar-title{cursor:auto}.fl-builder-simple .fl-builder-bar-title:hover{cursor:auto;background:0 0}.fl-builder-bar-title span{vertical-align:middle}.fl-builder-bar-title-icon{box-sizing:border-box;background:0 0;-ms-flex:0 0 46px;flex:0 0 46px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:4px}.fl-builder-bar-title-icon img{max-width:100%!important;height:auto!important}.fl-builder-bar-title.fl-builder-bar-title-no-icon{padding-left:12px}.fl-builder-bar-title-area{box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:4px}.fl-builder-layout-title,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{font-size:16px;font-weight:400;line-height:1.3;color:#161B20;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret,.fl-builder-layout-pretitle,.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{font-size:12px;font-weight:500;line-height:1.3;color:#656d77;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fl-builder-bar-title-caret i,.fl-theme-builder-preview-select-title i{color:inherit!important;font-size:14px}.fl-builder-bar-title-caret{margin-left:auto!important;-ms-flex:0 0 46px;flex:0 0 46px}.fl-theme-builder-preview-select-title i{padding:12px}.fl-theme-builder-preview-select.fl-builder-button{position:relative;border-radius:0;background:0 0;min-width:0;display:-ms-flexbox;display:flex;-ms-flex:0 0 360px;flex:0 0 360px;max-width:360px;margin:0!important;padding:4px 10px;border:none!important;border-right:2px solid #d5dadd!important;box-shadow:none}.fl-theme-builder-preview-select.fl-builder-button:hover{border:none!important;border-right:2px solid #d5dadd!important}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fl-theme-builder-preview-select-title div{-ms-flex:1;flex:1}.fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{display:block}.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items{position:absolute;top:calc(48px + 10px);left:10px;width:calc(100% - 20px)!important;background:#fff;border-radius:4px;border:2px solid #D5DADD;border-top:3px solid #00a0d2;box-shadow:0 15px 45px 8px rgba(0,0,0,.04);margin:0!important;padding:0;z-index:-1;font-size:16px;overflow-y:scroll;height:auto!important;max-height:calc(100vh - 66px);min-height:300px;display:-ms-flexbox!important;display:flex!important;-ms-flex-direction:column;flex-direction:column}.fl-theme-builder-preview-select-item{padding:4px 0!important;border-bottom:none!important;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;text-align:initial}.fl-theme-builder-preview-select-item:hover{text-decoration:none;color:#111;background:0 0!important}body .fl-theme-builder-preview-select .fa-caret-down{float:none}body .fl-theme-builder-preview-select-item-title{padding:10px 15px;color:#222;font-size:14px}body .fl-theme-builder-preview-select-item-children{overflow:auto}body .fl-theme-builder-preview-select-item-child{overflow:hidden;text-overflow:ellipsis;line-height:1.1;margin:0 10px;border:2px solid transparent;border-radius:4px;padding:8px 10px 10px;font-size:14px;font-weight:400;color:#222}body .fl-theme-builder-preview-select-item-child:hover{background:#e6eaed!important}.fl-theme-builder-preview-select-item .fa-caret-down{color:#606D77}.fl-builder-bar-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex:1 1 100%;flex:1 1 100%;padding:4px}.fl-builder-bar .fl-builder-button{margin:0 0 0 4px}.fl-builder-bar-actions .fl-builder-button:last-child{margin:0}.fl-builder-bar-actions:after{clear:both}.fl-builder-bar .fl-builder-content-panel-button{-ms-flex-align:baseline!important;align-items:baseline!important;padding-top:1px;font-weight:400}.fl-builder-content-panel-button svg{transition-property:transform;transition-duration:.25s;transform:rotate(0) scale(1);transform-origin:center}.fl-builder-content-panel-is-showing .fl-builder-content-panel-button svg{transform:rotate(135deg) scale(1.1) translate(.5px,-.5px)}.fl-builder--saving-indicator{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;padding:0 10px;font-size:12px;font-style:italic;color:#676f7a;-ms-flex-align:center;align-items:center;line-height:1.2;min-width:180px;-ms-flex-pack:end;justify-content:flex-end}.fl-builder--saving-indicator:hover{color:#676f7a}.fl-builder--saving-indicator .fa-question-circle{font-size:13px;margin:3px 0 3px 5px}.fl-builder-buy-button,.fl-builder-feedback-button,.fl-builder-upgrade-button{background:#F7A407;color:#fff!important;text-decoration:none}.fl-builder-buy-button i.fa-external-link-alt,.fl-builder-feedback-button i.fa-external-link-alt,.fl-builder-upgrade-button i.fa-external-link-alt{color:#FFC733;margin:0 0 0 6px}.fl-builder-buy-button:hover,.fl-builder-feedback-button:hover,.fl-builder-upgrade-button:hover{background:#EE8E0D;color:#fff!important}@media (max-width:980px){.fl-builder--main-menu-panel{width:calc(100% - 20px)!important}.fl-builder--main-menu-panel:before{right:auto;left:20px}.fl-builder-bar-title,.fl-theme-builder-preview-select{-ms-flex:1 .5 380px!important;flex:1 .5 380px!important}}@media (max-width:620px){.fl-theme-builder-preview-select.fl-builder-button{display:none}}@media (max-width:500px){#fl-builder-toggle-notifications,.fl-builder--main-menu-panel:before,.fl-builder--panel-arrow,.fl-builder-bar-title-area,.fl-builder-panel-drag-handle,.fl-builder-panel:before{display:none}.fl-builder--main-menu-panel,.fl-builder-panel{width:auto!important;top:44px!important;left:0!important;right:0!important;bottom:0!important;border-radius:0!important;box-shadow:none!important}.fl-builder--main-menu-panel{border-left:transparent!important;border-right:transparent!important;border-bottom:transparent!important;max-height:calc(100% - 44px)!important}.fl-builder-bar-title{-ms-flex:0 0 80px!important;flex:0 0 80px!important}.fl-builder-bar-title-caret{padding-left:0;padding-right:0;max-width:24px}.fl-builder-bar-actions{max-width:calc(100% - 80px);overflow:hidden}.fl-builder--panel-header{border-radius:0!important;cursor:default!important}.fl-builder--panel-header .fl-builder--tabs{cursor:default!important}.fl-builder-publish-actions{width:100%!important;padding-left:4px!important}.fl-builder-bar-actions .fl-builder-button{padding:0 8px!important}}.fl-builder--preview-actions{display:none;position:fixed;top:4px;left:4px;z-index:10000001;padding:4px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder-preview .fl-builder--preview-actions{display:-ms-flexbox;display:flex}.fl-builder--preview-actions .device-icons{color:#555;background:#e4e4e4;border:none!important;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;text-decoration:none;font-size:14px!important;line-height:1!important;margin:0 4px 0 0;padding:0 6px;cursor:pointer;-webkit-border-radius:3px;-webkit-appearance:none;border-radius:3px}.fl-builder--preview-actions .device-icons i{margin:0 6px}@keyframes fl-builder-ui-pin-zone-pulse{0%,100%{opacity:1;filter:alpha( opacity=1 )}50%{opacity:.5;filter:alpha( opacity=35 )}}.fl-builder-ui-pin-zone{animation:fl-builder-ui-pin-zone-pulse 2s infinite;transition:width .3s ease;background:rgba(0,160,210,.5);bottom:0;top:0;position:fixed;width:35px;z-index:100001}.fl-builder-ui-show-pin-zone-left .fl-builder-ui-pin-zone-left,.fl-builder-ui-show-pin-zone-right .fl-builder-ui-pin-zone-right{width:75px}.fl-builder-ui-pin-zone-left{left:0}.fl-builder-ui-pin-zone-right{right:0}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button{display:-ms-flexbox!important;display:flex!important;background:rgba(0,160,210,.5)!important;padding:2px 4px;width:80px;animation:fl-builder-ui-pin-zone-pulse 2s infinite}.fl-builder-content-panel-pin-zone .fl-builder-content-panel-button svg{display:none}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button{width:120px}.fl-builder-content-panel-pin-zone-hover .fl-builder-content-panel-button svg{display:none!important;width:100%;transform:none!important;fill:#00A0D2!important;border-radius:3px}.fl-builder-ui-is-pinned .fl-builder-content-panel-button,.fl-builder-ui-pinned-container .fl-lightbox-controls{display:none}.fl-builder-content-panel-pin-zone .fl-builder-done-button{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.fl-builder-panel.fl-builder-ui-pinned{top:45px!important;bottom:0!important;height:auto!important;border-radius:0;border:none;box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s;z-index:11}.fl-builder-panel.fl-builder-ui-pinned-right{left:auto!important;right:0;border-left:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned-left{left:0;right:auto;border-right:1px solid #eceef1}.fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-radius:0!important}.fl-builder-ui-pinned-container .fl-lightbox-wrap{position:absolute;z-index:11}.fl-builder-ui-pinned-container .fl-lightbox{position:absolute;top:0;bottom:0;left:0;right:0;width:auto!important;height:auto;border-radius:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;animation-duration:0s;-moz-animation-duration:0s;-webkit-animation-duration:0s;-o-animation-duration:0s}.fl-builder-ui-pinned-container .fl-lightbox-header-wrap{border-radius:0}.fl-builder-ui-pinned-container .fl-lightbox.ui-draggable .fl-lightbox-header{cursor:auto}.fl-builder-ui-pinned-container .fl-lightbox-header h1{padding:12px 20px 10px!important}.fl-builder-ui-pinned-content-transform{transform:scale(1);transform-origin:center top 0}.fl-builder-ui-pinned-collapse{cursor:pointer;display:none;position:absolute!important;bottom:2px;padding:5px;border:2px solid transparent;background:0 0;width:36px;height:36px;border-radius:4px;fill:#778794;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center}.fl-builder-ui-pinned-collapse:focus,.fl-builder-ui-pinned-collapse:hover{top:auto!important;background:0 0;border:2px solid transparent;outline:0;fill:#00A0D2}.fl-builder-ui-pinned-collapse:focus{background:#E4E7EA}.fl-builder-ui-pinned-collapse>*{margin:auto;line-height:1}.fl-builder-ui-pinned-collapse svg g{fill:inherit}.fl-builder-ui-is-pinned-right .fl-builder-ui-pinned-right-collapse{display:-ms-flexbox;display:flex;left:-40px}.fl-builder-ui-is-pinned-left .fl-builder-ui-pinned-left-collapse{display:-ms-flexbox;display:flex;right:-40px}.fl-builder-ui-pinned-collapse i[data-toggle=show],.fl-builder-ui-pinned-is-collapsed i[data-toggle=hide]{display:none}.fl-builder-ui-pinned-is-collapsed i[data-toggle=show]{display:block}.fl-builder--panel-no-settings,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-content,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-controls,.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--tab-wrap,.fl-builder-ui-pinned-is-collapsed .fl-builder--panel-header{display:none}.fl-builder-ui-is-pinned-left [data-toggle=hide],.fl-builder-ui-is-pinned-right [data-toggle=show]{transform:rotateY(180deg)}.fl-builder-ui-pinned-is-collapsed .fl-lightbox{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-builder--panel-header{background:0 0;border:none;z-index:10}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-wrap{top:0}.fl-builder-simple-pinned .fl-builder--content-library-panel .fl-lightbox-header h1{padding:14px 28px 15px!important}.fl-builder-simple-pinned .fl-builder--panel-no-settings{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:0;left:0;right:0;bottom:0}@keyframes fl-builder-show-panel{from{transform:scale(.8)}to{transform:scale(1)}}.fl-builder--search-results-panel,.fl-builder-panel{box-sizing:border-box;position:fixed!important;right:20px;top:calc(43px + 10px);width:380px;bottom:20px;background:#F5F7F9;color:#676F7A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;border-radius:4px;box-shadow:0 8px 40px 4px rgba(0,0,0,.3);z-index:10000007;will-change:transform;user-select:none}.fl-builder-panel{transform-origin:top right;animation-name:fl-builder-show-panel;animation-duration:.15s;animation-fill-mode:both;-ms-flex:1;flex:1;display:none}.fl-builder--search-results-panel{display:none;position:absolute;right:0;top:93px;left:0;bottom:0;width:auto!important;border:none;border-radius:0;box-shadow:none;min-height:100px;max-height:calc(100vh - 54px);overflow:auto;z-index:1}.fl-builder-content-panel-is-showing .fl-builder-panel,.fl-builder-search-results-panel-is-showing .fl-builder--search-results-panel{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-panel .fl-lightbox .fl-builder-panel-drag-handle,.fl-builder-ui-is-pinned .fl-builder--panel-arrow,.fl-lightbox-width-full .fl-builder-panel-drag-handle,body.fl-builder-draggable-is-dragging .fl-builder--panel-arrow{display:none}.fl-builder--search-results-panel .fl-builder--no-results{text-align:center;padding:50px 20px}.fl-builder--panel-arrow{position:absolute;top:-13px;right:10px}.fl-builder--panel-arrow polygon{fill:#00a0d2}.fl-builder--panel-header{border-top:3px solid #00a0d2;border-top-right-radius:4px;border-top-left-radius:4px}.fl-builder-ui-is-pinned .fl-builder--panel-header{border-top:none}.fl-builder-panel-drag-handle{position:absolute;top:7px;left:10px;fill:#ccd4da;width:6px}.fl-builder-ui-is-pinned-left .fl-builder-panel-drag-handle{left:auto;right:10px}.fl-builder--panel-header .fl-builder--panel-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-content-group-select{-ms-flex:1 1;flex:1 1}.fl-builder--panel-header .fl-builder--panel-controls .fl-builder-panel-search{-ms-flex:0 0;flex:0 0;padding:0 10px 6px 0;margin-left:-4px}.fl-builder--panel-controls .fl-builder-panel-search button{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:30px;background:0 0!important;border:2px solid transparent!important;font-size:inherit;height:36px;margin:0;padding:0}.fl-builder--panel-controls .fl-builder-panel-search button:active,.fl-builder--panel-controls .fl-builder-panel-search button:focus{top:0;outline:0}.fl-builder-panel-search button svg{height:auto;width:20px}.fl-builder-panel-search button.fl-builder-dismiss-panel-search svg{width:16px}.fl-builder-panel-search button svg .filled-shape{fill:#000}.fl-builder--panel-controls .fl-builder-panel-search button:active svg .filled-shape,.fl-builder--panel-controls .fl-builder-panel-search button:focus svg .filled-shape{fill:#00A0D2}.fl-builder-panel-search .fl-builder-panel-search-input{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:#f5f7f9}.fl-builder-panel-search.is-showing-input .fl-builder-panel-search-input{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:0 10px 6px}.fl-builder-panel-search-input input{-ms-flex:1 1 100%;flex:1 1 100%;border:2px solid #e6eaed;background:#fff;border-radius:4px;margin:0 4px 0 0;padding:10px;color:#333}.fl-builder-panel-search-input input:focus{border-color:#0197C6;outline:0}.fl-builder-panel-content-wrap{bottom:0;height:auto;left:0;overflow:hidden;position:absolute;right:0;top:43px}.fl-builder-panel-content{padding-bottom:60px}.fl-builder--panel-view .fl-builder-blocks-section:first-child{border-top:none}.fl-builder-blocks-group:first-child{padding:20px 0 0}.fl-builder-blocks-group .fl-builder-blocks-section-group-name{display:block;padding:0 30px 15px;color:#000;font-size:20px;font-weight:600;line-height:1.4}.fl-builder-blocks-section .fl-builder-block{display:block;line-height:1.1;padding:15px 20px}.fl-builder--template-collection-section-header,.fl-builder-blocks-section .fl-builder-blocks-section-header{line-height:1.2;color:#333;margin:0!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e7ebef;border-top:4px solid #e7ebef;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-blocks-section .fl-builder-blocks-section-title{background:#F5F7F9;color:#353535;padding:2px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-builder-blocks-section .fl-builder-blocks-section-title i{color:#bfbfbf;float:right}.fl-builder-blocks-section-content{overflow:auto;padding:10px 10px 20px}.fl-builder-blocks-section-content:before{content:none}.fl-builder-blocks-section-content:after{float:none;clear:both}.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}@supports (display:grid){.fl-builder--template-collection-section-content,.fl-builder-blocks-section-content.fl-builder-modules,.fl-builder-blocks-section-content.fl-builder-rows,.fl-builder-blocks-section-content.fl-builder-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.fl-builder--template-collection-section-content>*,.fl-builder-blocks-section-content.fl-builder-modules>*,.fl-builder-blocks-section-content.fl-builder-rows>*,.fl-builder-blocks-section-content.fl-builder-widgets>*{width:auto!important}}.fl-builder-blocks-section-content .fl-builder-block-module,.fl-builder-blocks-section-content .fl-builder-block-row{-ms-flex:1 1 50%;flex:1 1 50%;width:50%;box-sizing:border-box}.fl-builder--search-results-panel .fl-builder-blocks-section-content .fl-builder-block-module{-ms-flex:1 1 100%;flex:1 1 100%;width:100%}.fl-builder-blocks-section.fl-active .fl-builder-blocks-section-content{display:block}.fl-builder-blocks-section-content .fl-builder-block{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:13px;line-height:1.1;font-weight:400;color:#38404a}.fl-builder-block{position:relative;height:47px}.fl-builder-block.fl-builder-block-col-group{height:84px}.fl-builder-block.fl-builder-block-has-thumbnail{height:auto!important;padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover{padding:0!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-content{position:relative!important}.fl-builder-block.fl-builder-block-has-thumbnail:hover .fl-builder-block-content{padding:10px!important}.fl-builder-block.fl-builder-block-has-thumbnail .fl-builder-block-details{margin:0 10px 4px!important}.fl-builder-block:hover{overflow:visible;z-index:1}.fl-builder-block:hover .fl-builder-block-content{display:block;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;padding:15px 20px;border-radius:4px;background:#fff;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);text-decoration:none;color:#111;cursor:move;overflow:hidden}.fl-builder-blocks-node-template .fl-builder-block,.fl-builder-blocks-section-content .fl-builder-block .fl-builder-block-details{position:relative}.fl-builder-block-module:hover .fl-builder-block-content{width:auto;min-width:100%}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual{display:block;margin-bottom:7px}.fl-builder-block-drag-helper .fl-builder-block-content .fl-builder-block-visual{display:none!important}.fl-builder-block .fl-builder-block-content .fl-builder-block-visual.fl-cols-visual{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:30px}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{-ms-flex:1 100%;flex:1 100%;background:#464a4c;height:30px;margin:0 2px;border-radius:2px}.fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#000}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:first-child{margin-left:0!important}.fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col:last-child{margin-right:0!important}.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.left-right-sidebar .fl-cols-visual-col:last-child,.fl-cols-visual.left-sidebar .fl-cols-visual-col:first-child,.fl-cols-visual.right-sidebar .fl-cols-visual-col:last-child{-ms-flex-preferred-size:60px;flex-basis:60px}.fl-builder-block-saved-column.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-column:hover .fl-builder-block-title,.fl-builder-block-saved-module.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-module:hover .fl-builder-block-title,.fl-builder-block-saved-row.fl-builder-block-global .fl-builder-block-title,.fl-builder-block-saved-row:hover .fl-builder-block-title{margin-right:70px}.fl-builder-block-module:nth-child(even):hover .fl-builder-block-content{left:auto;right:0}.fl-builder-block-thumbnail{border-radius:4px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:rgba(0,0,0,.06);margin-bottom:10px;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder-block:hover .fl-builder-block-thumbnail{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder-block .fl-builder-block-icon{margin-right:7px;fill:#000;display:inline-block;width:20px;height:20px;vertical-align:middle}.fl-builder-block-thumbnail:before{content:"";display:block;padding-top:50%}.fl-builder-block-thumbnail img{max-width:100%;max-height:160px;margin:0;-o-object-fit:cover;object-fit:cover}.fl-builder-blocks-section-content .fl-builder-block{box-shadow:0 0 0 transparent;transition-property:box-shadow;transition-duration:.15s}.fl-builder-blocks-section-content .fl-builder-block i,.fl-user-template-actions i{color:#000;margin-right:10px}.fl-builder-blocks-separator{background:#f1f1f1;height:6px}.fl-builder-block:hover .fl-builder-badge{background:#2ea2cc}.ui-sortable-helper .fl-builder-badge{display:none!important}.fl-builder-modules-cta a{color:#999!important;display:block!important;font-size:12px!important;font-style:italic!important;padding:15px 20px!important;line-height:16px!important}.fl-builder-modules-cta a:hover{background:#e5e5e5!important;color:#666!important;text-decoration:none!important}.fl-builder-modules-cta a:focus{text-decoration:none!important}.fl-builder-modules-cta .fa{float:right!important;font-size:14px!important;margin:3px 0 0 9px!important}.fl-builder--panel-message{text-align:center;padding:40px 20px;font-size:16px}.fl-builder--panel-message .fl-builder-button{display:inline-block;padding:10px}.fl-builder--panel-cta{padding:20px 30px;font-size:16px;text-align:center}.fl-builder--panel-cta a{color:inherit;text-decoration:none}.fl-builder--panel-cta a:hover{text-decoration:none}.fl-builder-block-template-image{margin:5px 0 10px;max-width:100%;border:1px solid #dfdfdf}.fl-builder-block .fl-builder-block-title{overflow:hidden;text-overflow:ellipsis;vertical-align:middle;line-height:1.3}.ui-sortable-helper .fl-builder-block-template-image{display:none!important}@keyframes fl-builder-template-item-enter{from{transform:translateY(100px) scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.fl-builder--template-collection{clear:both;padding:10px 0}.fl-builder--template-collection-section-content{padding:0 10px}.fl-builder--template-collection-item{box-sizing:border-box;width:50%;float:left;padding:10px;cursor:pointer;font-size:13px;transform-origin:center;opacity:1}.fl-builder--template-thumbnail{background-size:cover;background-clip:content-box;background-position:center top;background-color:#fff;border:2px solid transparent;transform-origin:bottom;transition-property:transform,box-shadow;transition-duration:.15s}.fl-builder--template-collection-item[data-id="0"] .fl-builder--template-thumbnail,.fl-user-template .fl-builder--template-thumbnail{border-color:#e4e7ea}.fl-builder--template-thumbnail:before{display:block;content:"";padding-top:120%}.fl-builder--template-thumbnail:hover{transform:scale(1.05);box-shadow:0 20px 40px rgba(0,0,0,.08)}.fl-builder--template-name{text-align:center;padding:4px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fl-builder--template-collection-section{padding-bottom:10px;border-bottom:1px solid #dfdfdf}.fl-builder--template-collection-section:last-child{border-bottom:none}.fl-builder--template-collection-section:after,.fl-builder--template-collection-section:before{content:"";display:block;clear:both}.fl-builder--template-collection-section-name{padding:15px 10px 10px}span.fl-builder-block-no-node-templates{display:block;padding:15px 20px;text-align:center}span.fl-builder-block-no-node-templates:hover{cursor:default}.fl-builder-blocks-section-content .fl-builder-node-template-actions{bottom:0;cursor:default;display:none;position:absolute;right:0;top:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete,.fl-builder-blocks-section-content .fl-builder-node-template-edit{display:inline;cursor:pointer;margin:0;padding:15px 10px;text-align:center;width:30px}.fl-builder-block-details .fl-builder-node-template-delete,.fl-builder-block-details .fl-builder-node-template-edit{padding-top:0!important}.fl-builder-blocks-section-content .fl-builder-node-template-delete i,.fl-builder-blocks-section-content .fl-builder-node-template-edit i{margin:0}.fl-builder-blocks-section-content .fl-builder-node-template-delete:hover i,.fl-builder-blocks-section-content .fl-builder-node-template-edit:hover i{color:#444}.fl-builder-blocks-node-template .fl-builder-block:hover .fl-builder-node-template-actions{display:block}.ui-sortable-helper .fl-builder-node-template-delete,.ui-sortable-helper .fl-builder-node-template-edit{display:none!important}.fl-builder--tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.fl-builder-panel .fl-builder--panel-header{cursor:move}.fl-builder-panel .fl-builder--tabs{-ms-flex-pack:distribute;justify-content:space-around;padding:4px 24px;cursor:pointer}.fl-builder--tab-wrap{-ms-flex:1 1 100%;flex:1 1 100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;margin:auto;max-width:400px}.fl-builder--tabs button,.fl-builder--tabs button:active,.fl-builder--tabs button:focus,.fl-builder--tabs button:hover{-ms-flex:1 1 100%;flex:1 1 100%;display:inline-block;text-decoration:none;text-transform:none;color:inherit;text-align:center;letter-spacing:normal!important;margin:0;padding:5px;cursor:pointer;font-size:13px!important;font-weight:500!important;line-height:1.3!important;background:0 0!important;outline:0!important;border:2px solid transparent;border-radius:4px;min-height:36px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;top:0;transition-property:background,color;transition-duration:.25s}.fl-builder--tabs button:focus{background:#e6eaed!important}.fl-builder--tabs button.is-showing{color:#0086b0}.fl-builder--panel-content{-ms-flex:1;flex:1}.fl-builder--panel-view{display:none;overflow:hidden}.fl-builder--panel-view.is-showing{display:block}.fl-builder--content-library-panel.ui-draggable-dragging{height:500px!important}.fl-builder--content-library-panel .fl-builder-drop-zone{display:none!important}.fl-builder--panel-header .fl-builder--tabs{cursor:move}.fl-builder--category-select{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.fl-builder--selector-display{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;-ms-flex-pack:justify;justify-content:space-between;color:#161B20;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;cursor:pointer;font-size:13px;font-weight:700;line-height:16px;border-radius:4px;-ms-flex-align:stretch;align-items:stretch}.fl-builder--selector-display-label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;font-size:inherit;line-height:inherit;width:100%;margin:0!important;padding:0!important;color:#6D6D6D;background:0 0;border:2px solid transparent;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;border-radius:4px;font-family:inherit;text-transform:none}.fl-builder--selector-display-label:hover{top:0;color:inherit;background:0 0;border:2px solid transparent;border-radius:4px}.fl-builder--selector-display-label:active{top:0;color:inherit;background:0 0;border:2px solid #e4e7ea;border-radius:4px}.fl-builder--selector-display-label:focus{top:0;color:inherit;background:0 0;border:2px solid #00A0D2;outline:0}.fl-builder--group-label{color:inherit;-ms-flex:0 0 0%;flex:0 0 0%;padding:4px 12px 4px 10px;background:#e7ebef;border-radius:3px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-builder--current-view-name{-ms-flex:1 1 100%;flex:1 1 100%;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;padding:8px 10px;text-align:left}.fl-builder--selector-menu{display:none;color:#293138;position:absolute;top:46px;left:0;width:100%;background:#fff;border-radius:4px;box-shadow:0 0 20px 2px rgba(0,0,0,.2);overflow:visible;z-index:2}.fl-builder--selector-menu:before{bottom:100%;right:8px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}.fl-builder--category-select.is-showing .fl-builder--selector-menu{display:-ms-flexbox;display:flex;max-height:calc(100vh - 150px)}.fl-builder--category-select.is-showing .fl-builder--selector-menu .fl-builder--menu{margin:10px 0;-ms-flex:1 100%;flex:1 100%;overflow:auto}button.fl-builder-button.fl-builder-bar-title-caret{margin:4px}button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#e6eaed!important;border-color:transparent!important}.fl-builder--category-select.is-showing .fl-builder-bar-title-caret i{transform:rotate(180deg)}.fl-builder--menu{margin-bottom:2px}.fl-builder--menu>a,.fl-builder--menu>button,.fl-builder--menu>span{display:block;padding:8px 10px 10px;border-radius:4px;color:inherit;text-decoration:none;background:0 0!important;border:2px solid transparent!important;font-weight:400;font-family:inherit}.fl-builder--menu>a:active,.fl-builder--menu>a:focus,.fl-builder--menu>a:hover,.fl-builder--menu>button:active,.fl-builder--menu>button:focus,.fl-builder--menu>button:hover{background:#e6eaed!important;border:2px solid transparent!important;top:0}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging,.fl-builder-drop-zone,.fl-builder-empty{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder--menu>a:focus,.fl-builder--menu>button:focus{outline:0;color:inherit;text-decoration:none}.fl-builder--menu .fl-has-children>svg{float:right;margin:0 7px 0 0;height:16px;width:9px;transition-property:transform;transition-duration:.15s;transform:rotate(-90deg)}.fl-builder--menu .fl-has-children.fl-has-children-showing>svg{transform:rotate(0)}.fl-builder--menu .fl-inset{display:none;padding-left:35px;font-size:14px;line-height:1.25}.fl-builder--menu a.fl-template-collection{color:#161B20}.fl-builder--menu>:after{clear:both}.fl-builder--menu * .fl-builder--menu-item-accessory{float:right;color:#000;text-transform:uppercase;text-align:center;min-width:20px;letter-spacing:2px}.fl-builder--menu * .fl-builder--menu-item-accessory i{font-size:1em;margin-top:2px}.fl-builder--menu .fl-builder-video-wrap iframe{display:block;margin:4px 0;width:100%}.fl-builder-publish-actions{display:-ms-flexbox;display:flex;box-sizing:border-box;position:absolute;top:0;right:0;width:380px;max-width:100%;height:44px;padding:4px 4px 4px 0;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;opacity:1;pointer-events:auto;transform:scaleX(1) translateX(0);transform-origin:right;transition-property:transform,opacity;transition-duration:.15s}.fl-builder-publish-actions.is-hidden{transform:scaleX(.23) translateX(68px);opacity:0;pointer-events:none}.fl-builder-bar .fl-builder-button-group{display:-ms-flexbox;display:flex;-ms-flex-preferred-size:100%;flex-basis:100%}.fl-builder-bar .fl-builder-button-group>.fl-builder-button{border-radius:0;margin-left:0;-ms-flex-preferred-size:100%;flex-basis:100%;text-align:center;-ms-flex-pack:distribute;justify-content:space-around;box-shadow:none}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:first-child{margin-left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-builder-bar .fl-builder-button-group>.fl-builder-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-builder-publish-actions-click-away-mask{display:none;position:fixed;top:0;left:0;right:0;height:100vh;background:0 0}.fl-builder-dragging .fl-builder-content:not(.fl-builder-empty){padding:16px 0}.fl-builder-empty{display:none;border:2px dashed #969696;border-radius:8px;color:#909090;font-size:20px;font-weight:700;margin:10px;padding:250px 20px;position:relative;text-align:center;text-transform:uppercase}.fl-builder-drop-zone,.fl-builder-has-submenu>ul.fl-builder-submenu li a{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-builder-edit .fl-builder-empty{display:block}.fl-builder-block-drag-helper,.fl-builder-block.ui-draggable-dragging{background:rgba(255,255,255,.95)!important;border:2px solid #000;border-radius:4px;box-shadow:0 0 8px rgba(0,0,0,.2);-moz-box-shadow:0 0 8px rgba(0,0,0,.2);-webkit-box-shadow:0 0 8px rgba(0,0,0,.2);color:#333!important;font-size:13px!important;height:47px!important;line-height:40px!important;overflow:hidden;padding:0 20px;position:fixed!important;text-overflow:ellipsis;white-space:nowrap;width:180px!important;z-index:100010!important;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:flex-start}.fl-builder-block.fl-builder-block-drag-helper:hover{padding:0;box-shadow:none}.fl-builder-block-drag-helper:hover .fl-builder-block-content{position:static;padding:0 20px}.fl-col-has-highlight-guide .fl-col-content,.fl-col-highlight,.fl-row-highlight .fl-col-group{position:relative}.fl-builder-block-saved-column.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-module.fl-builder-block-drag-helper:hover .fl-builder-block-content,.fl-builder-block-saved-row.fl-builder-block-drag-helper:hover .fl-builder-block-content{padding:14px 20px}.fl-builder-block-drag-helper .fl-builder-block-icon{fill:#000;margin-top:-10px}.fl-builder-drop-zone{animation:fl-builder-drop-zone-pulse 2s infinite;background:#00A2D7;border-radius:4px;color:#fff!important;display:block;font-size:12px;letter-spacing:1px;line-height:14px;margin:10px;padding:6px 8px 5px;position:relative;text-align:left;text-shadow:none;text-transform:none;z-index:10}@keyframes fl-builder-drop-zone-pulse{0%,100%{background-color:#00A2D7}50%{background-color:#79DEFF}}.fl-builder-drop-zone-global{animation:fl-builder-drop-zone-global-pulse 2s infinite;background:#ff9600}@keyframes fl-builder-drop-zone-global-pulse{0%,100%{background-color:#FFBC5C}50%{background-color:#ff9600}}.fl-builder-content>.fl-builder-drop-zone{margin:10px 20px}.fl-row-content>.fl-builder-drop-zone{margin:3px 7px}.fl-col-has-cols>.fl-col-content>.fl-builder-drop-zone{margin:3px 10px}.fl-sortable-disabled>.fl-builder-drop-zone{display:none!important}.fl-col-group-equal-height.fl-col-group-align-center .fl-col-content>.fl-builder-drop-zone{width:100%}.fl-row-highlight{padding:16px 0}.fl-row-highlight .fl-row-content{border:2px dashed rgba(203,205,206,.5);padding:8px;border-radius:6px}.fl-row-highlight.fl-node-global .fl-row-content{border-color:#ff9600}.fl-col-highlight{padding:8px}.fl-col-highlight .fl-col-content{border-style:dashed!important;border-color:#00a0d2!important;border-radius:4px;min-height:100px;overflow-x:hidden;border-width:2px!important}.fl-col-has-cols.fl-col-highlight>.fl-col-content{padding:8px}.fl-col-highlight.fl-node-global .fl-col-content{border-color:#ff9600!important}.fl-builder-simple .fl-col-highlight .fl-col-content{border:none!important}.fl-col-highlight-guide{background:rgba(0,160,210,.05);border:2px solid #00A0D2;border-radius:4px;bottom:4px;left:4px;position:absolute;right:4px;top:4px;z-index:1}.fl-node-global .fl-col-highlight-guide{border-color:#ff9600!important;background-color:rgba(255,150,0,.06)!important}.fl-col-has-highlight-guide .fl-block-overlay{background:0 0;border-color:transparent}.fl-col-has-highlight-guide .fl-block-col-resize{display:none}.fl-col-has-highlight-guide .fl-col-highlight .fl-col-content{border-color:transparent!important}.fl-col-drop-target{bottom:8px;display:none;left:-9px;position:absolute;top:8px;width:18px;z-index:1}.fl-col-highlight .fl-col-drop-target{display:block}.fl-col-drop-target-last{left:auto;right:-9px}.fl-col-drop-target .fl-builder-drop-zone{bottom:0;left:2px;margin:0;padding:0;position:absolute;right:2px;top:0}.fl-col-group-drop-target{display:none;left:8px;height:18px;position:absolute;right:8px;top:-9px;z-index:1}.fl-row-highlight .fl-col-group-drop-target{display:block}.fl-col-group-drop-target-last{top:auto;bottom:-9px}.fl-col-group-drop-target .fl-builder-drop-zone{bottom:2px;left:0;margin:0;padding:0;position:absolute;right:0;top:2px}.fl-row-content>.fl-col-group-drop-target{position:static}.fl-row-content>.fl-col-group-drop-target .fl-builder-drop-zone{height:18px;position:static}.fl-row-drop-target{display:none;left:0;height:24px;margin-top:-28px;position:absolute;right:0;z-index:1}.fl-row-highlight .fl-row-drop-target{display:block}.fl-row-drop-target-last{margin-top:4px}.fl-row .fl-row-drop-target .fl-builder-drop-zone{bottom:0;left:4px;margin:0;position:absolute;right:4px;top:0}.fl-builder-content>.fl-row-drop-target{margin:0;position:static}.fl-builder-dragging .fl-builder-content.fl-builder-empty>.fl-row-drop-target{bottom:10px;display:block;height:auto;left:0;position:absolute;right:0;top:10px}.fl-builder-content .fl-row-drop-target .fl-builder-drop-zone{margin-bottom:0;margin-top:0}.fl-col-group:focus,.fl-col:focus,.fl-module:focus,.fl-row:focus{outline:0}.fl-sortable-proxy{display:none}.fl-block-overlay,.fl-block-overlay *{text-shadow:none;-webkit-touch-callout:none;transition-property:border-color;transition-duration:.3s}.fl-block-overlay-active{position:relative}.fl-block-overlay-actions{background:#00A0D2;float:left;height:30px;margin:-1px -1px 0;padding:0 4px;text-shadow:none;border-bottom-right-radius:5px;border-top-left-radius:3px;transition-property:background-color;transition-duration:.3s}.fl-row-overlay-header-bottom .fl-block-overlay-actions{border-radius:0 5px 0 3px}.fl-builder-col-resizing .fl-block-overlay-actions,.fl-builder-row-resizing .fl-block-overlay-actions{overflow:hidden}.fl-block-overlay-actions>span{display:block;float:left}.fl-block-overlay-actions i{color:#fff!important;cursor:pointer;display:block!important;float:left;font-size:16px!important;height:28px!important;line-height:28px!important;opacity:.8;filter:alpha(opacity=80);text-align:center;width:32px!important}.fl-block-overlay-actions i:hover{opacity:1;filter:alpha(opacity=100)}.fl-block-overlay-actions>i:first-child{padding-left:4px}.fl-block-overlay-actions>i:last-child{padding-right:2px}.fl-block-overlay-actions .fl-block-move{cursor:move}.fl-block-has-rules{color:#00A0D2!important;cursor:pointer;padding:7px;position:absolute;right:0;top:0}.fl-block-overlay-title,.fl-builder-has-submenu>ul.fl-builder-submenu li a{color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-block-overlay-title{float:left;font-size:14px;height:30px;line-height:29px;margin-right:2px;padding:0 12px 0 8px}.fl-col-overlay,.fl-module-overlay,.fl-row-overlay{background:rgba(190,239,255,0);color:#fff}.fl-row-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:0;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;left:0;position:absolute;top:-33px;right:0;z-index:100006}.fl-row-overlay.fl-row-menu-active,.fl-row-overlay.fl-row-menu-active.fl-block-overlay.fl-block-overlay-global{z-index:100007}.fl-row-full-width .fl-row-overlay{left:2px;right:2px;bottom:2px}.fl-row-overlay-header-bottom{bottom:-32px!important;top:0}.fl-row-overlay-header-bottom .fl-block-overlay-header{position:absolute;bottom:0}.fl-block-overlay-active .fl-row-content-wrap{position:relative}.fl-block-overlay-active .fl-row-content{position:relative;z-index:100007!important}.fl-builder-row-resizing .fl-col.fl-block-overlay-active,.fl-builder-row-resizing .fl-module.fl-block-overlay-active{position:static}.fl-col-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:8px;cursor:pointer;left:8px;position:absolute;right:8px;top:8px;z-index:100008}.fl-module-overlay{border:2px solid #00A0D2;border-radius:4px;bottom:4px;cursor:pointer;left:4px;min-height:32px;position:absolute;right:4px;top:4px;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-module-overlay{cursor:default}.fl-module-adjust-height{padding-bottom:15px;padding-top:15px}.fl-col-bg-overlay .fl-block-overlay-active.fl-module{z-index:100008}.fl-block-overlay-global{background:rgba(255,150,0,0);border:2px solid #F7A407;border-radius:4px}.fl-block-overlay-global .fl-block-overlay-actions{background:#F7A407}.fl-block-overlay-title-global{background:#fff;color:#ff9600!important;font-size:11px;letter-spacing:1px;margin-left:4px;padding:2px 4px;vertical-align:top}.fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:pointer;z-index:100007}.fl-builder-global-templates-locked .fl-block-overlay-global.fl-row-overlay{cursor:default}.fl-builder-row-template .fl-block-overlay-global.fl-row-overlay{background:rgba(255,150,0,0);cursor:default;z-index:100006}.fl-block-overlay-global.fl-row-overlay .fl-block-col-resize{display:none}.fl-block-overlay-muted .fl-row-overlay{background:rgba(85,93,102,0);border:2px solid #555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-overlay-actions{background:#555D66}.fl-block-overlay-muted .fl-row-overlay .fl-block-has-rules{color:#555D66!important}.fl-block-overlay-muted .fl-row-overlay .fl-block-col-resize{display:none}.fl-node-disabled .fl-row-content-wrap,.fl-node-disabled>.fl-col-content{opacity:.3}.fl-block-col-resize{bottom:0!important;position:absolute;top:0!important;width:6px}.fl-block-col-resize-e{cursor:ew-resize;left:auto!important;right:-2px!important}.fl-block-col-resize-w{cursor:ew-resize;left:-7px!important}.fl-block-col-resize-handle-wrap{margin:-4px 0 0 -5px;padding:0 5px;position:absolute;top:50%!important}.fl-block-col-resize-e .fl-block-col-resize-handle-wrap{margin-left:-6px}.fl-block-col-resize-handle{background:#fff;border:2px solid #00A0D2;border-radius:50%;height:12px;width:12px}.fl-node-global .fl-block-col-resize-handle{border-color:#ff9600}.fl-block-col-resize-feedback{color:#333!important;display:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:11px!important;position:absolute}.fl-block-col-resize-feedback-left,.fl-block-col-resize-feedback-right{background:#fff;border:1px solid #3ba0ff;padding:2px 4px}.fl-block-col-resize-feedback-left{right:20px;top:-7px}.fl-block-col-resize-feedback-right{left:20px;top:-7px}.fl-builder-has-submenu{position:relative}.fl-builder-has-submenu>ul.fl-builder-submenu{background:#00A0D2;box-shadow:0 0 20px rgba(0,0,0,.2);border-radius:0 4px 4px;display:none;left:0;list-style:none;margin:0;padding:6px 0;position:absolute;text-align:left;top:100%;width:165px;z-index:100008}.fl-builder-has-submenu>ul.fl-builder-submenu li{list-style:none;margin:0;padding:0}.fl-builder-submenu-right ul.fl-builder-submenu{left:auto;right:0}.fl-builder-has-submenu.fl-builder-submenu-open>ul.fl-builder-submenu{display:block}.fl-builder-has-submenu>ul.fl-builder-submenu li a{border-bottom:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;display:block;line-height:13px;font-size:13px;opacity:.8;filter:alpha(opacity=80);padding:6px 12px;text-decoration:none}.fl-builder-has-submenu>ul.fl-builder-submenu li a:hover{background:#0197C6;color:#fff;opacity:1;filter:alpha(opacity=100);text-decoration:none}.fl-builder-actions-title,.fl-builder-alert-lightbox .fl-lightbox-message,.fl-builder-alert-lightbox .fl-lightbox-message-info{color:#333!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px!important}.fl-builder-has-submenu .fl-builder-submenu .fa,.fl-builder-has-submenu .fl-builder-submenu .far,.fl-builder-has-submenu .fl-builder-submenu .fas{float:right;height:12px!important;line-height:12px!important;position:relative;right:-5px;width:14px!important}.fl-builder-has-submenu .fl-builder-has-submenu .fl-builder-submenu{display:none;left:100%;top:0}.fl-builder-has-submenu .fl-builder-submenu-right.fl-builder-has-submenu .fl-builder-submenu{left:auto;right:100%}.fl-builder-has-submenu .fl-builder-has-submenu:hover .fl-builder-submenu{display:block}.fl-builder-submenu-sep{padding:7px 0!important}.fl-builder-submenu-sep div{border-bottom:1px solid rgba(255,255,255,.4)}.fl-block-col-move,.fl-block-col-move-parent{cursor:move;position:relative}.fl-builder-submenu .fa-arrows-alt{cursor:move;display:none!important}.fl-builder-submenu a:hover .fa-arrows-alt{display:block!important;float:right;line-height:12px!important;height:12px!important}.fl-block-overlay-global ul.fl-builder-submenu{background:#ff9600!important}.fl-block-overlay-global ul.fl-builder-submenu li a:hover{background:#fa3}.fl-builder-actions-lightbox .fl-lightbox{display:block;width:300px;border-radius:4px}.fl-builder-actions-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-actions-lightbox .fl-builder-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:25px;text-align:center}.fl-builder-actions-title{display:block;margin-bottom:20px}.fl-builder-actions .fl-builder-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-bottom:7px;min-height:36px}.fl-builder-alert-lightbox{padding:20px;z-index:30000000;top:0;pointer-events:auto}.fl-builder-alert-lightbox .fl-lightbox{max-width:440px;width:auto}.fl-builder-alert-lightbox .fl-lightbox-content-wrap{display:block}.fl-builder-alert-lightbox .fl-lightbox-message,.fl-builder-alert-lightbox .fl-lightbox-message-info{line-height:24px;padding:30px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox{max-width:60%}.fl-lightbox-width-slim .fl-compound-field,.fl-lightbox-width-slim .fl-dimension-field-units{max-width:none}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-content{padding:20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message{padding:10px 20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message h1{font-size:20px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .fl-lightbox-message p{font-size:14px;padding-top:5px}.fl-builder-alert-lightbox.fl-builder-crash-lightbox .link{color:#428bca;text-decoration:underline}.fl-builder-alert-lightbox .fl-lightbox-message-info{padding:0 20px;font-size:14px!important}.fl-builder-alert-lightbox .fl-lightbox-message-info p{line-height:20px;padding:10px 0 0 10px}.fl-builder-alert-lightbox .fl-lightbox-message-info a{font-size:14px}@keyframes fl-builder-content-section-entry{from{transform:translateY(150px) translateX(100px) scale(.3);opacity:0}to{transform:translateY(0) translateX(0) scale(1);opacity:1}}.fl-template-category-select{width:180px!important}.fl-template-selector .fl-builder-settings-section{margin:0 0 10px}.fl-template-selector .fl-builder-settings-fields{height:470px}.fl-template-selector .fl-builder-settings-tab{width:560px}.fl-template-selector .fl-builder-settings-tab-description{font-size:15px!important;margin:0!important;padding:10px 0 25px;text-align:center}.fl-template-preview{float:left;margin:0 25px 30px 0;position:relative;text-align:center;width:170px}.fl-template-preview.fl-last{margin-right:0}.fl-template-image{border:1px solid #d9d9d9;cursor:pointer;margin-bottom:12px;height:164px;overflow:hidden}.fl-template-image:hover{border-color:red}.fl-template-image img{max-height:none;width:100%}.fl-template-preview span{display:block;text-align:center}.fl-user-template-category-name{background:#f2f2f2;border-bottom:3px solid #dfdfdf;border-top:2px solid #dfdfdf;font-weight:700;padding:8px 15px}.fl-user-templates{border-bottom:1px solid #dfdfdf;padding:10px 0 20px}.fl-builder--user-templates-section-content{border-bottom:2px solid #e6eaed;padding:10px}.fl-builder--user-templates-section-content:first-child{padding-top:0}.fl-builder--user-templates-section-content:last-child,.fl-user-templates:last-child{border-bottom:none}.fl-builder--user-templates-section-name{font-weight:700;font-size:16px;color:#333;z-index:9999;padding:15px 10px;margin:0 10px}@keyframes fl-list-item-entry{from{opacity:0;transform:scale(.5) translateY(100px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-builder--save-new-user-template,.fl-user-template{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;font-size:16px;font-weight:200;line-height:1.1;padding:10px 20px;color:#6d6d6d}.fl-user-template:hover{cursor:pointer;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08);text-decoration:none;color:#111;padding-right:68px}.fl-user-template-name{overflow:hidden;text-overflow:ellipsis;-ms-flex:1;flex:1}.fl-user-template-actions{display:none;bottom:0;position:absolute;right:0;top:0}.fl-user-template:hover .fl-user-template-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.fl-user-template-actions a{display:inline-block;padding:15px 0;width:30px}.fl-user-template:hover a:hover i{color:#444!important}.fl-user-templates-message{display:none}.fl-user-template-thumbnail{-ms-flex:0;flex:0;margin-right:20px}.fl-user-template-thumbnail .fl-builder--template-thumbnail{background-size:cover;background-position:center top;width:45px}.fl-user-template-thumbnail .fl-builder--template-thumbnail:hover{box-shadow:none;transform:scale(1);transition-property:none}.fl-builder--save-new-user-template .fl-user-template-thumbnail .fl-builder--template-thumbnail{border-style:dashed;border-width:2px;border-color:#ccd4da}.fl-builder--save-new-user-template .fl-save-control{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1}.fl-builder--save-new-user-template .fl-save-control input{background:0 0;border:none!important;-ms-flex:1;flex:1;font-size:16px;margin-right:10px;margin-left:-12px;color:#000}.fl-builder--save-new-user-template .fl-save-control input::-webkit-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input::-moz-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-ms-input-placeholder{color:#777}.fl-builder--save-new-user-template .fl-save-control input:-moz-placeholder{color:#777}@keyframes fl-slide-in-right{from{transform:translateX(50px)}to{transform:translateX(0)}}.fl-builder--save-new-user-template .fl-save-control button{display:none;animation-name:fl-slide-in-right;animation-duration:.25s;background-color:#00a0d2;border:none;padding:0 15px}.fl-save-control-mask{display:none;background:0 0;position:absolute;top:-50px;left:0;bottom:0;right:0;z-index:-1;min-height:80vh}.fl-builder-templates-cta{margin-bottom:20px}.fl-builder-templates-cta p{display:inline-block!important;width:75%!important;font-size:14px!important;line-height:1.5!important;margin-bottom:0!important}.fl-builder-templates-cta .fl-builder-upgrade-button{font-size:13px!important;line-height:13px!important;position:relative;top:8px;left:15px;padding:1px 12px}.fl-builder-settings-message,.fl-builder-settings-message *{font-size:15px!important;line-height:23px!important}.single-fl-builder-template .fl-content{width:100%!important}form.fl-builder-settings{height:100%;margin:0;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.fl-builder-settings-message{padding:20px 25px!important;background:#f2f2f2!important}.fl-builder-preview-loader{position:relative;top:-2px;margin-left:3px}.fl-lightbox-header .fl-builder-preview-loader{margin:0;position:absolute;right:40px;top:15px}@keyframes fl-grab-attention{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.fl-lightbox-width-slim .fl-form-table{margin:10px 12px 10px 10px!important;width:calc(100% - 40px)}.fl-lightbox-width-slim .fl-form-table th{display:block;position:relative;padding:10px 0 0 12px!important;width:auto!important}.fl-lightbox-width-slim .fl-form-table td{display:block}.fl-lightbox-width-slim .fl-form-table .fl-field[data-type=editor] td:first-child,.fl-lightbox-width-slim .fl-form-table td:first-child{padding-left:0!important}.fl-field-label .fl-field-responsive-toggle,.fl-lightbox-width-slim .fl-field-control-wrapper .fl-field-responsive-toggle{display:none}.fl-lightbox-width-slim .fl-field-label .fl-field-responsive-toggle{display:inline-block;padding:0 5px!important}.fl-lightbox-width-slim input.text-full+.fl-field-description,.fl-lightbox-width-slim select+.fl-field-description{display:block;padding:8px 10px;margin:0}.fl-lightbox-width-slim .fl-builder-settings-fields select{width:100%}.fl-lightbox-width-slim .fl-color-picker{display:-ms-flexbox;display:flex;width:auto}.fl-lightbox-width-slim .fl-color-picker-clear{-ms-flex:0 0 40px;flex:0 0 40px}.fl-lightbox-width-slim .fl-field[data-type=dimension] .fl-field-responsive-setting{width:100%}.fl-lightbox-width-slim .fl-dimension-field-unit-select select{width:auto!important}.fl-lightbox-width-slim .fl-gradient-picker-color-row{width:50%}.fl-lightbox-width-slim .fl-color-picker.fl-gradient-picker-color,.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-option{width:100%}.fl-lightbox-width-slim .fl-typography-field-align .fl-button-group-field-options{float:none}.fl-lightbox-width-slim .mce-menubtn.mce-fixed-width button{width:72px!important}.fl-lightbox-width-slim .fl-builder-settings-tab-description{margin:20px 10px}.fl-lightbox-width-micro .mce-menubtn.mce-fixed-width button{width:38px!important}.fl-lightbox-width-micro .mce-btn[aria-label=Fullscreen],.fl-lightbox-width-micro .mce-btn[aria-label=Blockquote]{display:none}.fl-lightbox-width-micro .mce-toolbar i.mce-ico{width:18px}.fl-lightbox-width-slim .fl-field[data-type=editor] .fl-field-control-wrapper,.fl-lightbox-width-slim .fl-field[data-type=code] .fl-field-control-wrapper{margin-left:-10px;margin-right:-30px}.fl-lightbox .wp-editor-tools{padding-left:6px;padding-right:28px}.fl-lightbox .mce-top-part::before{box-shadow:none!important}.mce-container .mce-stack-layout span{color:initial}.fl-lightbox div.mce-toolbar-grp{background:0 0;border:none}.fl-lightbox div.mce-toolbar-grp>div{padding:0 3px}.fl-lightbox .fl-builder-settings .wp-switch-editor{background:#e7ebef;border:1px solid transparent}.fl-lightbox .html-active .switch-html,.fl-lightbox .quicktags-toolbar,.fl-lightbox .tmce-active .switch-tmce{background:#fff}.fl-lightbox .quicktags-toolbar,.fl-lightbox .wp-editor-container{border:none}.fl-lightbox .mce-toolbar .mce-container-body{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-lightbox-width-slim .mce-toolbar .mce-container-body{-ms-flex-pack:center;justify-content:center}.fl-lightbox textarea.wp-editor-area{line-height:1.5;padding:20px;width:calc(100% - 10px)}.fl-lightbox .wp-core-ui .button,.fl-lightbox .wp-core-ui .button-secondary{border:none;box-shadow:none;background:#e7ebef}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units{width:auto}.fl-lightbox-width-slim .fl-shadow-field .fl-dimension-field-units input{max-width:none;width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;position:relative}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-control,.fl-lightbox-width-slim .fl-builder-field-multiple .fl-field-label{width:100%!important}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-form-field-preview-text{max-width:225px}.fl-lightbox-width-slim .fl-builder-field-multiple .fl-builder-field-actions{position:absolute!important;top:0;right:0;width:70px;z-index:1}.fl-lightbox-width-slim .fl-builder-field-actions-single .fl-builder-field-copy{float:right!important;margin-right:5px}.fl-lightbox-width-slim .fl-field[data-type=time] select{width:auto}.fl-builder-settings-tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:stretch;align-items:stretch;overflow:hidden;height:32px;background:#e7ebef}.fl-builder-content-group-select{padding:0 10px 6px;display:none}.fl-builder-content-group-select select{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;padding:8px 10px;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important;border:2px solid #e4e7ea;color:#161B20}select:focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;outline:0!important}.fl-legacy-settings-tab{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings-tab:first-child .fl-legacy-settings-tab{background:0 0;height:auto}body .fl-builder-settings-tabs>*{box-sizing:border-box;color:#676F7A!important;fill:#676F7A!important;background:0 0;border:2px solid transparent;border-radius:0;margin:0;outline:0;padding:1px 16px;text-decoration:none!important;font-size:13px;font-weight:400!important;-ms-flex:0 0 auto;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}body .fl-lightbox-width-slim .fl-builder-settings-tabs>*{-ms-flex:1 1 auto;flex:1 1 auto}body .fl-builder-settings-tabs>.fl-builder-settings-tabs-more{-ms-flex:0 0 60px;flex:0 0 60px;display:none;margin-left:auto;-ms-flex-pack:center;justify-content:center}.fl-builder-settings-tabs-more svg{width:16px;height:auto;margin:auto}.fl-builder-settings-tabs-more g,.fl-builder-settings-tabs-more path,.fl-builder-settings-tabs-more svg{fill:inherit}body .fl-lightbox-has-tab-overflow .fl-builder-settings-tabs-more{display:-ms-flexbox;display:flex}.fl-builder-settings-tabs>:active,.fl-builder-settings-tabs>:hover{top:0;color:#333;background:0 0;border:2px solid transparent}.fl-builder-settings-tabs>:focus{top:0;outline:0;border:2px solid transparent;background:0 0;color:#0086b0;fill:#0086b0}.fl-builder-settings-tabs .fl-active,.fl-builder-settings-tabs-more.fl-contains-active,.fl-builder-settings-tabs-overflow-menu .fl-active{color:#0086b0!important;fill:#0086b0!important;position:relative;background:#fff}.fl-builder-settings-tabs .fl-active.fl-overflowed,.fl-builder-settings-tabs .fl-overflowed{display:none!important}.fl-builder-settings-tabs .error{color:#d03436;padding-right:10px}.fl-builder-settings-tabs .error .fl-error-icon,.fl-builder-settings-tabs-overflow-menu .error .fl-error-icon{background:url(../img/sprite.png) -148px -5px no-repeat;display:inline-block;height:16px;margin-left:7px;position:relative;top:3px;width:16px}.fl-builder-settings-tabs-more.fl-contains-errors{fill:#d03436!important}.fl-builder-settings-tab{display:none;width:auto!important}.fl-builder-settings-tab.fl-active{display:block}.fl-builder-settings-tab-description{background:#e4e7ea;padding:10px 15px;border-radius:4px;margin:20px}.fl-builder-settings-tab-description a{text-decoration:underline!important}.fl-builder-settings-tab-description a:hover{color:#333}.fl-builder-settings-tabs-overflow-menu{display:none;position:absolute;left:0;right:0;border:2px solid #e6eaed;border-top:3px solid #00a0d2;border-radius:4px;background:#fff;z-index:9999;margin:0 6px;padding:10px;-ms-flex-direction:column;flex-direction:column;box-shadow:0 0 20px 2px rgba(0,0,0,.2)}.fl-builder-settings-tabs-overflow-menu:before{bottom:100%;right:20px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:10px;margin-left:-10px}.fl-builder-settings-tabs-overflow-menu>a{display:block;padding:10px 15px;font-size:14px;font-weight:600!important;border:2px solid transparent;border-radius:4px;outline:0}.fl-builder-settings-tabs-overflow-menu>a:hover{background:#e6eaed;text-decoration:none}.fl-builder-settings-tabs-overflow-click-mask{display:none;position:fixed;top:0;bottom:0;left:0;right:0;background:0 0;z-index:11}.fl-form-table{background:none;border:none;width:calc(100% - 35px)}.fl-form-table tbody{border:none}.fl-form-table tr,.fl-form-table tr:nth-child(even){background:0 0}.fl-form-table td,.fl-form-table th{background:0 0!important;border:none!important;font-weight:400!important;text-align:left!important}.fl-form-table th{padding:10px 15px 10px 30px!important;vertical-align:top!important;width:200px!important}.fl-form-table td:first-child{padding-left:30px!important}.fl-form-table th label{color:#333;width:auto;max-width:100%}.fl-form-table th label i{color:grey}.fl-form-table th label i:hover{color:#555}.fl-form-table td{padding:8px 10px}.fl-lightbox-width-slim .fl-form-table td{padding:4px 0 5px}.fl-builder-settings-fields{margin:0;overflow:hidden;position:relative;-ms-flex:1 100%;flex:1 100%;visibility:hidden}.fl-lightbox-header .fl-builder-settings-fields{height:auto;margin:0;position:absolute;right:10px;top:10px}.fl-builder-settings-fields .fl-nanoscroller-content{padding:4px 0 0}.fl-builder-settings-fields .fl-field-control-wrapper{position:relative}.fl-field{animation-duration:.25s;animation-delay:.1s}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select,.fl-builder-settings-fields textarea{background:#fff!important;border-color:transparent!important;border-style:solid;border-width:2px;border-radius:4px!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);color:#333!important;display:inline;font-size:13px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px 6px;width:auto;box-sizing:border-box}i.fl-dimension-field-link,i.fl-field-responsive-toggle{line-height:18px!important;cursor:pointer;vertical-align:middle}.fl-builder-settings-fields input[type=date],.fl-builder-settings-fields input[type=email],.fl-builder-settings-fields input[type=file],.fl-builder-settings-fields input[type=number],.fl-builder-settings-fields input[type=password],.fl-builder-settings-fields input[type=search],.fl-builder-settings-fields input[type=tel],.fl-builder-settings-fields input[type=text],.fl-builder-settings-fields input[type=url],.fl-builder-settings-fields select:not(multiple){height:36px!important}.fl-builder-settings-fields select,.fl-builder-settings-fields select[multiple]{height:auto!important}.fl-builder-settings-fields input[type=number]{width:70px}.fl-builder-lightbox .fl-builder-settings-fields input[type=date]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=email]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=file]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=number]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=password]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=search]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=text]:focus,.fl-builder-lightbox .fl-builder-settings-fields input[type=url]:focus,.fl-builder-lightbox .fl-builder-settings-fields select:focus,.fl-builder-lightbox .fl-builder-settings-fields textarea:not(.wp-editor-area):focus{border-width:2px!important;border-style:solid!important;border-color:#00a0d2!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.12)!important}.fl-builder-settings-fields ::-webkit-input-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-moz-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields ::-moz-placeholder{color:#999!important;font-size:13px}.fl-builder-settings-fields input:-ms-input-placeholder{color:#999;font-size:13px}.fl-builder-settings-fields label{display:inline-block;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-bottom:3px;font-size:12px}.fl-builder-settings-fields select{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;color:#000;margin:0 0 2px;padding:2px 10px;padding-right:30px!important;background:url(../img/svg/select-arrow-down-alt2.svg) center right 10px no-repeat #fff!important}.fl-dimension-field-unit input[type=number],.fl-unit-field-inputs input[type=number]{-moz-appearance:textfield}.fl-builder-settings-fields select[multiple]{height:60px;background-image:none!important}.fl-builder-custom-field select,.fl-photo-field select{box-shadow:none;border-color:#e6eaed!important}.fl-builder-settings-section:first-child{border-top:none!important}.fl-builder-settings-section-header{background-color:#e7ebef;border-top:4px solid #e7ebef;cursor:pointer;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-builder-settings-description{padding:0 10px 10px;margin:0;font-style:italic;opacity:.75}.fl-builder-settings-fields table{margin:20px 0}.fl-builder-settings-fields .fl-builder-settings-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#F5F7F9;color:#353535;padding:2px 10px;margin:0;font-size:13px!important;font-weight:400;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:2px solid transparent;border-radius:0}.fl-builder-settings-fields .fl-builder-settings-title:active,.fl-builder-settings-fields .fl-builder-settings-title:hover{top:0}.fl-builder-settings-fields .fl-builder-settings-title:focus{top:0;border-color:#e0e4ea}.fl-builder-settings-fields .fl-builder-settings-title>svg{height:6px;width:9px;margin-right:7px;transition-property:transform;transition-duration:.15s}.fl-builder-settings-section-collapsed{margin-bottom:4px}.fl-builder-settings-section-collapsed .fl-builder-settings-section-content{display:none}.fl-builder-settings-section-collapsed .fl-builder-settings-title{background:0 0;-ms-flex:1 1 100%;flex:1 1 100%}.fl-builder-settings-section-collapsed .fl-builder-settings-title>svg{transform:rotate(-90deg)}.wp-core-ui h1,.wp-core-ui h2,.wp-core-ui h3,.wp-core-ui h4,.wp-core-ui h5,.wp-core-ui h6,.wp-core-ui p{color:#333;font-family:inherit}.wp-core-ui #media-attachment-date-filters{width:auto}.wp-core-ui input[type=search]::-webkit-input-placeholder{color:#333}.wp-core-ui input[type=search]:-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::-ms-input-placeholder{color:#333}.wp-core-ui input[type=search]::placeholder{color:#333}.wp-core-ui .submitbox .submitdelete{color:#a00}.wp-core-ui button{font-weight:400}.wp-core-ui input[type=date],.wp-core-ui input[type=email],.wp-core-ui input[type=file],.wp-core-ui input[type=number],.wp-core-ui input[type=password],.wp-core-ui input[type=search],.wp-core-ui input[type=tel],.wp-core-ui input[type=text],.wp-core-ui input[type=url],.wp-core-ui select,.wp-core-ui textarea{background-color:#fff;border-color:#dfdfdf;border-style:solid;border-width:1px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;color:#333;font-weight:400}.wp-core-ui input[type=date]:focus,.wp-core-ui input[type=email]:focus,.wp-core-ui input[type=file]:focus,.wp-core-ui input[type=number]:focus,.wp-core-ui input[type=password]:focus,.wp-core-ui input[type=search]:focus,.wp-core-ui input[type=tel]:focus,.wp-core-ui input[type=text]:focus,.wp-core-ui input[type=url]:focus,.wp-core-ui select:focus,.wp-core-ui textarea:focus{background:0 0;border-color:#aaa}.wp-core-ui input[type=search]{background-image:none;padding:6px}.fl-field-responsive-setting{display:inline-block;width:100%}.fl-field-responsive-setting-medium,.fl-field-responsive-setting-responsive{display:none}.fl-field-control-wrapper i.fl-field-responsive-toggle{padding:9px 0 0;position:absolute;left:-25px}i.fl-field-responsive-toggle{color:grey;display:inline-block;font-size:15px!important;height:auto;text-align:left;width:20px}.fl-builder-settings-fields input.text-full,.fl-builder-settings-fields textarea{width:100%}i.fl-field-responsive-toggle:hover{color:#000}.fl-builder-settings-fields .fl-text-field-add-value{min-width:50%;margin-top:.62em}.fl-field[data-type=shadow] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-shadow-field .fl-color-picker{margin-bottom:15px;width:100%}.fl-color-picker{cursor:pointer}.fl-color-picker .fl-color-picker-clear{box-sizing:border-box;display:inline-block}.fl-color-picker .fl-color-picker-clear:hover{background-color:#ededed}.colorpicker input{padding:0!important;font-size:11px!important;color:#fff!important;width:29px!important;height:auto!important;background:0 0!important;border:none!important}.colorpicker .colorpicker_hex input{width:45px!important}.fl-gradient-picker-type{display:-ms-flexbox;display:flex;margin-bottom:15px}.fl-gradient-picker-type input{margin:0!important}.fl-gradient-picker-type select{margin-bottom:0!important}.fl-gradient-picker-type-select{margin-right:10px!important}.fl-gradient-picker-colors{display:-ms-flexbox;display:flex}.fl-gradient-picker-color-row{display:-ms-flexbox;display:flex;margin-right:15px}.fl-color-picker.fl-gradient-picker-color,.fl-gradient-picker-color-row:last-child{margin-right:0}.fl-color-picker.fl-gradient-picker-color .fl-color-picker-color{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-gradient-picker .fl-gradient-picker-stop input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;margin:0!important}.fl-field[data-type=dimension] .fl-field-label label{padding-right:35px}.fl-field[data-type=dimension] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=dimension] .fl-field-description{padding:9px 0 0 5px}.fl-field[data-type=dimension] .fl-field-responsive-setting{width:auto}.fl-dimension-field-units{border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;height:36px;margin:1px 1px 20px;position:relative;max-width:350px}.fl-dimension-field-units>*{border-right:1px solid #e6eaed;width:100%}body .fl-dimension-field-units>:last-child{border-right:none!important}body .fl-dimension-field-units>:first-child>input[type]{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}body .fl-dimension-field-units>:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-dimension-field-unit input[type],.fl-dimension-field-units .fl-field-unit-select{box-shadow:none!important;margin:0!important;border-radius:0!important}.fl-dimension-field-unit input{width:100%!important}.fl-dimension-field-unit input::-webkit-inner-spin-button,.fl-dimension-field-unit input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-dimension-field-unit label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-dimension-field-unit .fl-field-popup-slider{margin-top:27px}i.fl-dimension-field-link{color:grey;font-size:15px!important;height:auto;text-align:left;width:20px}i.fl-dimension-field-link:hover{color:#000}i.fl-dimension-field-link.dashicons-editor-unlink,i.fl-dimension-field-link.dashicons-editor-unlink:hover{color:#0086b0}.fl-field-label .fl-dimension-field-link,.fl-lightbox-width-slim .fl-dimension-field-link{display:none}.fl-lightbox-width-slim .fl-field-label .fl-dimension-field-link{display:inline-block}.fl-field-control-wrapper .fl-dimension-field-link{padding:9px 0 0;left:-50px;position:absolute}.fl-dimension-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}.fl-field[data-type=unit] .fl-field-control-wrapper{display:-ms-flexbox;display:flex}.fl-field[data-type=unit] .fl-field-description{margin-left:7px!important;padding-top:9px}.fl-field[data-type=unit] .fl-field-responsive-setting{width:auto}.fl-unit-field-inputs{background:0 0;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex}.fl-unit-field-inputs .fl-field-unit-select,.fl-unit-field-inputs input[type]{box-shadow:none!important;margin:0!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-unit-field-inputs .fl-field-unit-select{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.fl-unit-field-inputs input::-webkit-inner-spin-button,.fl-unit-field-inputs input::-webkit-outer-spin-button{-webkit-appearance:none}.fl-unit-field-input{border-right:1px solid #e6eaed!important}body .fl-unit-field-input:last-child{border-right:none!important}body .fl-unit-field-input:last-child>*{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.fl-unit-field-unit-select{display:-ms-flexbox;display:flex;width:auto!important}select.fl-field-unit-select{background-color:#E7EBEF!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}div.fl-field-unit-select{background-color:#E7EBEF!important;padding:9px 7px!important;width:100%}.fl-field-popup-slider{background:#fff;border-radius:4px;box-shadow:0 4px 25px 0 rgba(0,0,0,.18);display:none;margin-top:10px;padding:15px;position:absolute;left:0;right:0;z-index:9999}.fl-field-popup-slider-top{margin-top:0!important;top:-100%;transform:translateY(-10px)}.fl-field-popup-slider-input{background:#E7EBEF;cursor:pointer;height:4px;text-align:left;position:relative;border-radius:3px}.fl-field-popup-slider-input .ui-slider-handle{background:#fff;border:2px solid #3AA4CC;border-radius:100%;cursor:pointer;height:12px;width:12px;position:absolute;top:-6px;margin-left:-7px}.fl-field-popup-slider-input .ui-slider-handle:focus{outline:0}.fl-field-popup-slider-arrow{position:absolute;top:-22px}.fl-field-popup-slider-arrow:after{content:' ';border-color:transparent transparent #fff;border-style:solid;border-width:0 8px 8px;width:0;height:0}.fl-field-popup-slider-top .fl-field-popup-slider-arrow{top:auto;bottom:-24px}.fl-field-popup-slider-top .fl-field-popup-slider-arrow:after{border-bottom-width:0;border-top-width:8px;border-top-color:#fff}input[type=number].fl-field-popup-slider-focus{border:2px solid #00a0d2!important}.fl-font-field{display:-ms-flexbox;display:flex}.fl-font-field label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-font-field .fl-font-field-font-wrapper{margin-right:8px;width:70%!important}.fl-font-field .fl-font-field-weight-wrapper{width:30%!important}.fl-compound-field{max-width:350px}.fl-compound-field-section-toggle{background:#E7EAEF;border-radius:4px;border-top:2px solid transparent;border-bottom:2px solid transparent;cursor:pointer;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:32px;margin-bottom:8px;padding:0 12px}.fl-compound-field-section-toggle:hover{background:#dadfe5}.fl-compound-field-section-toggle .dashicons{font-size:15px;height:15px;margin-right:5px;width:15px}.fl-compound-field-section:last-child .fl-compound-field-section-toggle{margin-bottom:0}.fl-compound-field-section.fl-compound-field-section-visible{padding-bottom:12px}.fl-compound-field-section.fl-compound-field-section-visible:last-child{padding-bottom:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle{background:0 0;border-top:2px solid #E7EBEF;border-radius:0}.fl-compound-field-section-visible .fl-compound-field-section-toggle:hover{background:0 0}.fl-compound-field-section-visible .fl-compound-field-section-toggle .dashicons:before{content:'\f347'}.fl-compound-field-row{display:none;padding-bottom:12px}.fl-compound-field-section-visible .fl-compound-field-row{display:-ms-flexbox;display:flex}.fl-compound-field-label{display:block!important;margin:0!important;padding:0 0 6px 12px}.fl-compound-field-label-bottom{padding:6px 0 0 12px}.fl-compound-field-label .fl-dimension-field-link{display:inline-block;padding:0 0 0 2px;position:relative;left:auto;top:-1px}.fl-compound-field-setting{padding-right:8px;width:100%}.fl-compound-field-setting:last-child{padding-right:0}.fl-compound-field-setting select{margin:0!important;width:100%}.fl-compound-field-setting .fl-unit-field-input input{width:100%!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.fl-compound-field-setting .fl-unit-field-input{width:50%!important}.fl-compound-field-setting .fl-unit-field-input select.fl-field-unit-select{background-position:center right 2px!important;padding:2px 5px!important;width:100%;font-size:11px}.fl-typography-field .fl-font-field-font-wrapper{margin-right:8px!important}.fl-typography-field-spacing{width:calc(33.33% - 8px)}.fl-typography-field-transform{width:66.66%}.fl-typography-field-transform .fl-button-group-field-options{float:none}.fl-typography-field-transform .fl-button-group-field-option{width:100%;padding:0 7px}.fl-typography-field .fl-shadow-field{display:-ms-flexbox;display:flex}.fl-typography-field .fl-shadow-field .fl-color-picker{margin:0 8px 0 0;width:calc(33.33% - 8px)}.fl-typography-field .fl-shadow-field .fl-dimension-field-units{margin-left:0;margin-top:0;margin-right:0;width:66.66%}.fl-button-group-field-options{background:#E7EBEF;border-radius:4px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);display:-ms-flexbox;display:flex;float:left;height:36px;overflow:hidden}.fl-button-group-field-option{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:0 5px;border-radius:0;border:2px solid transparent;background:0 0}.fl-button-group-field-option:hover{top:0;background-color:transparent;color:#000;border:2px solid transparent}.fl-button-group-field-option:focus{top:0;background-color:transparent;border:2px solid #00a0d2;color:#333}.fl-button-group-field-option:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.fl-button-group-field-option:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.fl-button-group-field-option[data-selected="1"]{background-color:#fff;color:#000}.fl-button-group-field-option i{color:#6B6E75}.fl-button-group-field-option:hover i{color:#333}.fl-compound-field-cell{width:50%;display:block;float:left;padding-top:13px}.fl-compound-field-cell:first-child{padding-right:4px}.fl-compound-field-cell:last-child{padding-left:4px}.fl-compound-field-cell label{padding:5px 0 0;font-size:11px;font-weight:700;color:inherit!important;display:block;text-align:center;opacity:.5}.fl-shape-transform-field .fl-compound-field-row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-compound-field-row>*{width:auto;-ms-flex:1 1 auto;flex:1 1 auto}.fl-shape-transform-field .fl-compound-field-row>:first-child{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-shape-transform-field .fl-shape-orientation-controls>*{-ms-flex:0 0 auto;flex:0 0 auto}.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>*,.fl-shape-transform-field .fl-shape-orientation-controls .fl-button-group-field>* button{border-radius:0}.fl-shape-orientation-controls .fl-button-group-field:first-child>*,.fl-shape-orientation-controls .fl-button-group-field:first-child>* button{border-top-left-radius:4px;border-bottom-left-radius:4px}.fl-shape-orientation-controls .fl-button-group-field:last-child>*,.fl-shape-orientation-controls .fl-button-group-field:last-child>* button{border-top-right-radius:4px;border-bottom-right-radius:4px}.fl-builder-custom-field{background:#fff;border:2px solid transparent;border-radius:4px;padding:7px 10px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);min-height:36px;box-sizing:border-box}.fl-builder-field-multiple .fl-builder-custom-field{cursor:move}.fl-builder-custom-field a{color:#21759b!important;text-decoration:underline!important}.fl-builder-custom-field a:hover{color:#d54e21!important}.fl-builder-custom-field label.error{margin-top:5px}.fl-photo-field .fl-photo-preview{display:-ms-flexbox;display:flex}.fl-photo-field .fl-photo-select,.fl-photo-field.fl-photo-empty .fl-photo-preview{display:none}.fl-photo-field.fl-photo-empty .fl-photo-select{display:block}.fl-photo-field .fl-photo-preview-img{line-height:0;margin:5px 0}.fl-photo-field .fl-photo-preview-img img{max-width:60px}.fl-photo-field .fl-photo-preview select{margin:8px 0 8px 10px;width:calc(100% - 10px)}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview select{display:none}.fl-photo-field .fl-photo-preview-filename{display:none;font-size:13px;font-weight:700;margin:5px 0 9px 11px}.fl-photo-field.fl-photo-no-attachment .fl-photo-preview-filename{display:inline-block;word-break:break-all}.fl-multiple-photos-field .fl-multiple-photos-select,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-add,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-count,.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-edit,.fl-multiple-photos-lightbox .gallery-settings,.fl-photo-field.fl-photo-no-attachment .fl-photo-edit{display:none}.fl-photo-field .fl-photo-edit{margin:0 0 0 11px}.fl-photo-field .fl-photo-remove,.fl-photo-field .fl-photo-replace{margin:0 0 0 8px}.fl-builder-edit .media-modal{z-index:9999991}.fl-builder-edit .media-modal-backdrop{z-index:999999}.fl-builder-edit .media-frame{-webkit-backface-visibility:hidden;backface-visibility:hidden}.fl-builder-edit .media-modal-content h1{font-family:inherit}.fl-builder-edit form#wp-link,.popover[class*=tour-],ul.as-list{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl-builder-edit .media-modal-content .thumbnail{padding:0;border:none;border-radius:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail{margin-bottom:0}.fl-builder-edit .media-modal-content .attachment-preview .thumbnail img{max-width:none}.fl-builder-edit button.media-modal-close{position:absolute;box-shadow:none;-webkit-box-shadow:none}.fl-builder-edit .media-frame.hide-menu{visibility:visible}span.select2-container.select2-container--open{z-index:9999999}.fl-multiple-photos-field .fl-multiple-photos-add{margin:0 0 0 8px}.fl-multiple-photos-field.fl-multiple-photos-empty .fl-multiple-photos-select{display:inline}.fl-multiple-photos-count{font-weight:700;margin-bottom:3px}.fl-video-field .fl-video-select,.fl-video-field.fl-video-empty .fl-video-preview{display:none}.fl-video-field.fl-video-empty .fl-video-select{display:block}.fl-video-field .fl-video-preview-img{float:left;line-height:0;margin:5px 0}.fl-video-field .fl-video-preview-img img{max-width:60px}.fl-video-field .fl-video-preview-img .dashicons.dashicons-media-video{display:block;font-size:60px;height:60px;line-height:60px;width:60px}.fl-video-field .fl-video-preview-filename{display:inline-block;font-size:14px;font-weight:700;margin:7px 0 5px 11px}.fl-video-field .fl-video-remove,.fl-video-field .fl-video-replace{margin:0 0 0 11px}.fl-multiple-audios-field .fl-multiple-audios-select,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-add,.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-edit{display:none}.fl-multiple-audios-field.fl-multiple-audios-empty .fl-multiple-audios-select{display:block}.fl-multiple-audios-field .fl-multiple-audios-add{margin:0 0 0 8px}.fl-icon-field .fl-icon-select,.fl-icon-field.fl-icon-empty .fl-icon-preview{display:none}.fl-icon-field.fl-icon-empty .fl-icon-select{display:block}.fl-icon-field .fl-icon-preview i{display:inline-block;font-size:28px;margin:10px 10px 9px;vertical-align:middle}.fl-icon-field .fl-icon-remove{margin:0 0 0 8px}.fl-builder-hidden-editor{display:none}.fl-builder-settings .wp-switch-editor{border-radius:0;color:#333;margin-top:2px}.fl-builder-settings .mce-toolbar .mce-btn-group .mce-btn{margin:2px 0}.fl-builder-settings .mce-menubtn.mce-fixed-width button{width:100px}.fl-builder-settings .mce-menubtn.mce-fixed-width span{width:100%}.mce-close:active,.mce-close:hover,.mce-toolbar .mce-btn button:active,.mce-toolbar .mce-btn button:hover,.mce-window .mce-btn button:active,.mce-window .mce-btn button:hover{background:0 0;border:none}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:1px!important}.wp-editor-container textarea.wp-editor-area{background:0 0;border:none;padding:10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.fl-builder-edit form#wp-link{color:#000;font-size:13px}.fl-builder-edit form#wp-link #link-options label{display:block;margin-bottom:2px}.fl-builder-edit form#wp-link #link-options label span{padding-right:10px;vertical-align:middle}.fl-builder-edit form#wp-link #link-options input[type=text]{display:inline-block;height:auto;margin:5px 0 0;padding:3px 5px;width:80%}.fl-builder-edit form#wp-link .query-results{top:225px}.fl-code-field{border:1px solid #E6E6E6;border-left:none}.ace_editor,.ace_editor *{font-family:Monaco,Menlo,"Ubuntu Mono","Droid Sans Mono",Consolas,monospace!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important}.fl-layout-field-option{border:2px solid #d9d9d9;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-sizing:border-box!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;cursor:pointer;float:left;line-height:0;max-width:23%;margin:0 1% 2%;padding:5px}.fl-layout-field-option-selected,.fl-layout-field-option:hover{border-color:red}.fl-layout-field-option img{max-width:100%}.fl-link-field .fl-link-field-input-wrap{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.fl-link-field-input{width:auto!important;-ms-flex:1 1 100%;flex:1 1 100%}.fl-link-field .fl-link-field-input-wrap button{-ms-flex:0 0 0%;flex:0 0 0%;height:36px;margin:1px 1px 1px 5px}.fl-link-field-options-wrap{padding:7px 0 0 12px}.fl-link-field-options-wrap label{margin-right:7px}.fl-link-field-options-wrap span{font-size:11px;font-weight:700;color:inherit!important;text-align:center;opacity:.5}.fl-link-field-search{display:none;border:2px solid #e6eaed;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;margin:4px 0 0;padding:10px}.fl-link-field-search-title{display:block;margin:0 0 3px 2px}.fl-link-field-search-cancel{margin-top:6px}.fl-link-field-search input{box-shadow:none!important;width:100%!important;padding:3px 9px!important}.fl-link-field-search #as-original-link-search{width:100%}.fl-field-connections-toggle{padding:10px 0}.fl-field[data-type=editor] .fl-field-connections-toggle{-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connections-toggle{height:24px;margin-top:1px;-ms-flex-align:start;align-items:flex-start}.fl-field[data-type=link] .fl-field-connection{bottom:20px}.fl-field-connections-menu[data-field=fl-field-text]{margin-top:30px}.fl-help-tooltip{display:inline-block;position:relative}.fl-lightbox-width-slim .fl-help-tooltip{position:static}.fl-help-tooltip-icon{color:#999!important;cursor:pointer;font-size:15px!important;padding:5px;vertical-align:middle}.fl-help-tooltip-text{box-sizing:border-box;background:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ccc;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;display:none;font-weight:400;left:23px;padding:10px 13px;position:absolute;top:-6px;width:250px;z-index:1000;border-radius:4px}.fl-lightbox-width-slim .fl-help-tooltip-text{top:30px;left:0;width:100%}.fl-field-control .fl-form-field{margin-bottom:0}.fl-form-field[data-preview-text=icon]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.fl-form-field-preview-text i{display:inline-block;font-size:18px;line-height:22px;margin-right:10px}.fl-builder-field-actions{padding-left:0!important;padding-right:0!important;text-align:center;width:85px}.fl-builder-field-actions i{color:#999!important;cursor:pointer;font-size:13px!important;line-height:29px!important;width:16px}.fl-builder-field-actions i:hover{color:#000!important}.fl-builder-field-actions i.fl-builder-field-copy,.fl-builder-field-actions i.fl-builder-field-delete{margin-left:5px}.fl-builder-field-actions i.fl-builder-field-move{cursor:move}.fl-builder-field-dd-helper{background:#ccc;height:30px!important;float:left;width:130px!important}.fl-builder-field-dd-zone{border:1px dashed #ccc;height:30px}.fl-builder-field-actions-single .fl-builder-field-delete,.fl-builder-field-actions-single .fl-builder-field-move{display:none!important}.fl-builder-field-multiple .fl-builder-field-actions,.fl-builder-field-multiple .fl-field-control,.fl-builder-field-multiple .fl-field-label{padding-top:2px!important;padding-bottom:2px!important}.fl-builder-field-multiple .fl-builder-field-actions{min-width:70px!important}.fl-builder-field-multiple[data-field=icons] .fl-builder-field-actions{width:70px!important}.fl-builder-field-multiple.ui-sortable-helper .fl-field-control{width:60%}.fl-builder-field-multiple.ui-sortable-helper .fl-builder-field-actions{display:none}.fl-builder-widget-settings input{display:inline-block!important;margin:5px 10px 8px!important}.fl-builder-lightbox-loading{background:url(../img/ajax-loader.svg) center center no-repeat;height:100px}.fl-builder-settings .error,.fl-builder-settings input.error{color:#d03436!important}.fl-builder-settings label.error,.fl-builder-settings p.error{color:#d03436;display:block;margin-top:5px}.fl-builder-settings .fl-form-table .fl-field-description{color:#464646;font-style:normal;margin-left:2px}.fl-lightbox .fl-field-connection{right:-1px}.fl-lightbox .fl-field-connection-content{border:2px solid transparent!important;background:#e7ebef!important}.fl-field-connection-content .fl-field-connection-label{color:#676f7a!important}.fl-field-connections-toggle{pointer-events:none;width:20px;right:-25px}.has-scrollbar .fl-field-connections-toggle{right:-22px}.fl-lightbox-width-slim tr[data-type=code] .fl-field-connections-toggle{right:10px}.fl-lightbox-width-slim .fl-code-field{width:90%}.fl-field-connections-toggle-open{transform:none!important}.fl-field-connections-toggle i{pointer-events:auto;color:#abb1ba;font-size:13px!important;transition-property:transform;transition-duration:.15s}.fl-field-connections-toggle-open i{transform:rotate(-45deg)}ul.as-selections{background-color:#fff;border:none;border-radius:4px;box-shadow:none;color:#333;font-size:12px;height:auto;line-height:15px;margin:1px;outline:0;padding:3px;width:auto}ul.as-selections.loading{background:url(../img/ajax-loader-small.svg) 98% center no-repeat}ul.as-selections li.as-selection-item{background:#d4eaf6;border:none;font-size:11px;line-height:14px;padding:8px 15px;border-radius:4px;margin:2px}ul.as-selections li.as-selection-item.blur{background:#f4f4f4}ul.as-selections li.as-selection-item a.as-close{line-height:12px}ul.as-selections li.as-original{margin:0}ul.as-selections li.as-original input{height:auto;font-size:12px;margin:0;padding:0;box-shadow:none}ul.as-list{margin:0;font-size:13px;color:#000;background-color:#fff;background-color:rgba(255,255,255,.95);z-index:2;box-shadow:0 0 10px rgba(0,0,0,.1);border:none;border:1px solid #dfdfdf;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}li.as-message,li.as-result-item{border:none}li.as-result-item.active{background:#e5e5e5;border-radius:0;color:#333;text-shadow:none}li.as-result-item em{background:0 0!important;color:#333!important;font-size:12px;padding:0!important;font-weight:700}.fl-custom-query-filter{display:none}.fl-custom-query .fl-field[data-type=suggest] select{margin-bottom:5px;width:100%}.fl-builder-service-settings{position:relative}.fl-builder-service-error{color:red!important;padding:15px 0 0}.fl-builder-service-account-delete{color:red!important;margin-left:10px;position:relative;top:2px}.fl-lightbox-width-slim .fl-builder-service-account-delete{display:block;padding-top:7px}#fl-field-visibility_user_capability .fl-field-description,.fl-builder-service-connect-row .fl-field-description{background:#f0f0f0;color:#333!important;display:block;float:none;margin:10px 0 0;padding:10px}#fl-field-visibility_user_capability .fl-field-description a,.fl-builder-service-connect-row .fl-field-description a{color:#21759b!important;text-decoration:underline!important}.fl-ordering-field-option{background:#fff;border:1px solid #dfdfdf;border-radius:3px;cursor:move;margin-bottom:5px;padding:5px 10px}.fl-ordering-field-option .fa{color:#ccc;float:right;line-height:16px}#tiptip_holder{z-index:1000000}#tiptip_holder.tip_top #tiptip_arrow_inner{border-top-color:#333}#tiptip_holder.tip_bottom #tiptip_arrow_inner{border-bottom-color:#333}#tiptip_holder.tip_right #tiptip_arrow_inner{border-right-color:#333}#tiptip_holder.tip_left #tiptip_arrow_inner{border-left-color:#333}#tiptip_content{background:#333;box-shadow:none}.fl-builder-getting-started-video{line-height:0!important;padding:10px}.fl-builder-getting-started-video iframe{border:none;height:326px;width:100%}.fl-builder-tour-actions .fl-builder-actions-title{font-size:14px!important;line-height:19px}.fl-builder-tour-mask{bottom:0;left:0;position:fixed;right:0;top:0;z-index:100000000}.fl-builder-tour-dimmed{background:rgba(0,0,0,.7);bottom:0;left:0;position:absolute;right:0;top:0}body>.fl-builder-tour-dimmed{position:fixed}.tour-backdrop{z-index:110000}.popover[class*=tour-]{border:1px solid #ccc;border-radius:0;box-shadow:0 0 40px rgba(0,0,0,.3);color:#666;font-size:13px;font-weight:400;line-height:18px;max-width:none;padding:0;width:300px;z-index:100000001}.popover[class*=tour-].bottom>.arrow{border-bottom-color:#ccc}.popover[class*=tour-].bottom>.arrow:after{border-bottom-color:#f7f7f7}.popover[class*=tour-] .popover-title{border-radius:0;color:#333;letter-spacing:normal;text-transform:none}.popover[class*=tour-] .fa-times{color:#b3b3b3;cursor:pointer;font-size:16px;padding:5px;position:absolute;right:3px;top:2px}.popover[class*=tour-] .fa-times:hover{color:#666}.popover[class*=tour-] .popover-content{border-bottom:1px solid #d9d9d9;padding:13px 15px}.popover[class*=tour-] .fl-builder-tour-next{display:block;float:none;width:100%}.popover-navigation button{min-height:36px}.fl-builder-shortcode-mask-wrap{position:relative;pointer-events:none}.fl-builder-shortcode-mask{bottom:-1px;left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fl-builder--search{border:2px solid transparent;position:relative;padding:0;width:54px;transition-property:width;transition-delay:.1s;transition-duration:.15s}.fl-builder--search.is-expanded{border:2px solid #00A0D0}.fl-builder--search input[type=text],.fl-builder--search input[type=text]:focus{background-color:transparent;border:none!important;box-sizing:border-box;width:100%;font-size:16px;text-align:center}.fl-builder--search:before{display:-ms-flexbox;display:flex;top:0;left:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;content:"\f002";font:normal normal normal 14px/1 Font Awesome\ 5 Free;text-align:center;width:100%;height:100%;position:absolute;pointer-events:none;color:rgba(128,128,128,.6);font-size:17px;opacity:1;transition-property:opacity;transition-duration:.15s}.fl-builder--main-menu-panel,.fl-builder-ui-keyboard-shortcuts{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important}.fl-builder--search.has-text:before,.fl-builder--search.is-expanded:before{opacity:0}.fl-builder--search input::-webkit-input-placeholder{color:rgba(128,128,128,0)!important;transition:color .25s}.fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(128,128,128,.4)!important}.fl-builder--search .search-label{cursor:text}.fl-builder--search .search-clear{display:none;padding:10px 10px 10px 30px;color:#a7a7a7;font-size:12px;position:absolute;right:0;top:0;background-color:#eff1f2;background:linear-gradient(to left,#e4e7ea,#e4e7ea 75%,rgba(228,231,234,0))}.fl-builder--search.has-text .search-clear,.fl-builder--search.is-expanded input{display:inline-block}.fl-builder--search:hover .search-clear{color:#888;background-color:#eff1f2;background:linear-gradient(to left,#dadfe5,#dadfe5 75%,rgba(218,223,229,0))}.fl-builder--search.is-expanded{width:246px}@keyframes fl-builder-show-menu-item{from{transform:translateY(10px) scale(.8);opacity:0}to{transform:translateX(0) translateY(0) scale(1);opacity:1}}.fl-builder--main-menu-panel{display:none;box-sizing:border-box;position:fixed;top:calc(45px + 10px);left:10px;width:360px;color:#222;max-height:calc(100% - 66px);border-radius:4px;background:#fff;border:none;border-top:3px solid #00a0d2;box-shadow:0 11px 45px 8px rgba(0,0,0,.1);font-size:14px!important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000009;pointer-events:auto}.fl-builder--main-menu-panel.is-showing{display:-ms-flexbox;display:flex}.fl-builder--main-menu-panel:before,.fl-theme-builder-preview-select-open .fl-theme-builder-preview-select-items:before{bottom:100%;right:6px;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:solid;border-color:rgba(255,255,255,0);border-bottom-color:#00a0d2;border-width:13px;margin-left:-13px}.fl-builder--main-menu-panel-views{-ms-flex:1 1 100%;flex:1 1 100%;overflow:auto}.fl-builder--main-menu-panel-mask{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000119}.fl-builder--main-menu-panel .fl-builder--tabs{padding-left:20px;padding-top:15px}.fl-builder--main-menu-panel-view{display:none}.fl-builder--main-menu-panel-view.is-showing{display:block}.fl-builder--main-menu-panel-view-title{font-size:24px;font-weight:600;padding:25px 22px 0;line-height:1;white-space:nowrap}.fl-builder--main-menu-panel-view-title .title-accessory{float:right;color:#b1b1b1}.fl-builder--main-menu-panel-view-title .title-accessory>i{font-size:20px!important;width:25px!important}.fl-builder--main-menu-panel-view-title .title-accessory>i:hover{color:#222}.fl-builder--main-menu-panel-view-title .pop-view{padding:10px;margin-left:-10px;opacity:.5;font-size:25px;font-weight:400;cursor:pointer;background:0 0;outline:0;border:none;color:inherit}.fl-builder--main-menu-panel-view-title .pop-view:focus{outline:0;top:0;background:#E5EAED!important}.fl-builder--menu-item:before{display:block;content:"";float:none;clear:both}.fl-builder--menu-item{color:inherit;text-align:left;box-sizing:border-box;display:block;padding:10px 15px;margin:0 10px;width:calc(100% - 20px);background:0 0;border:none;border-radius:4px;font-size:14px;line-height:1.1;cursor:pointer;opacity:1;text-transform:none}.fl-builder--menu-item .menu-view.view-revisions{opacity:.5;padding-left:5px}.fl-builder--menu-item .menu-event.event-showGlobalSettings,.fl-builder--menu-item .menu-event.event-showLayoutSettings{color:#6bc373;padding-left:5px}.fl-builder--menu-item:hover{background:#eaf1f8;border:none;text-decoration:none;color:#000}.fl-builder--selector-menu .fl-builder--menu-item:hover{background:#fff}.fl-builder--menu-item-accessory{float:right;text-align:center;display:inline-block;min-width:40px;font-size:14px}.fl-builder--menu-item-accessory.view-arrow{font-size:18px}.fl-builder--menu{padding:0;margin:20px 0}.fl-builder--menu hr{margin:8px 0;background:#e6eaed!important;height:1px;border:none}.fl-builder--menu .fl-builder-video-wrap{padding:0 10px 10px}.fl-revision-list-item{display:-ms-flexbox;display:flex}.fl-revision-list-item-text{padding-left:15px}.fl-revision-list-item-date{padding-bottom:5px}.fl-builder--revision-actions{display:none;position:fixed;top:4px;left:4px;z-index:100008;padding:4px 4px 6px;-ms-flex-pack:center;justify-content:center;background:#fff;border-radius:4px}.fl-builder--revision-actions *{margin-right:5px}.fl-builder--revision-actions :last-child{margin:0}.fl-builder--menu-item[data-event=noRevisionsMessage]:hover{background:0 0;box-shadow:none;cursor:default}.fl-no-revisions-message-title{font-weight:700;margin-bottom:10px}.fl-no-revisions-message-text{line-height:22px}.fl-builder-module-placeholder-message{border:1px dashed #ccc;overflow:hidden;padding:20px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fl-field-connections-menu{z-index:999999}.fl-field[data-type=editor] .fl-field-connections-toggle{right:5px!important}.fl-field-connections-inline-toggle{display:inline;color:#9a9b9c;margin-left:6px}.fl-field-connections-inline-toggle i{transition-property:transform;transition-duration:.15s}.fl-field-connections-inline-toggle.fl-field-connections-toggle-open i{transform:rotate(45deg)}.fl-builder-add-ultimate-presets-button,.fl-builder-add-ultimate-rows-button,.fl-builder-pp-add-template-button,.pp-preview-button,.uabb-live-preview-button{display:none!important}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;background:0 0;transition-property:background;transition-duration:.15s}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-ne,.ui-resizable-nw,.ui-resizable-se,.ui-resizable-sw{width:12px;height:12px}.ui-resizable-se{cursor:se-resize;right:-4px;bottom:-4px}.ui-resizable-sw{cursor:sw-resize;left:-4px;bottom:-4px}.ui-resizable-nw{cursor:nw-resize;left:-4px;top:-4px}.ui-resizable-ne{cursor:ne-resize;right:-4px;top:-4px}.fl-builder-resizable-iframe-fix{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100000000}.fl-builder-panel .ui-resizable-handle:active,.fl-builder-panel .ui-resizable-handle:hover,.fl-lightbox .ui-resizable-handle:active,.fl-lightbox .ui-resizable-handle:hover{background:#00a0d2}.fl-builder-panel .ui-resizable-n,.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-n,.fl-lightbox .ui-resizable-s{height:6px}.fl-builder-panel .ui-resizable-n,.fl-lightbox .ui-resizable-n{top:-3px}.fl-builder-panel .ui-resizable-s,.fl-lightbox .ui-resizable-s{bottom:-3px}.fl-builder-panel .ui-resizable-e,.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-e,.fl-lightbox .ui-resizable-w{width:6px}.fl-builder-panel .ui-resizable-e,.fl-lightbox .ui-resizable-e{right:-3px}.fl-builder-panel .ui-resizable-w,.fl-lightbox .ui-resizable-w{left:-3px}.fl-lightbox .ui-resizable-ne,.fl-lightbox .ui-resizable-nw,.fl-lightbox .ui-resizable-se,.fl-lightbox .ui-resizable-sw{background:0 0;border:6px solid transparent}.fl-lightbox .ui-resizable-ne:active,.fl-lightbox .ui-resizable-ne:hover,.fl-lightbox .ui-resizable-nw:active,.fl-lightbox .ui-resizable-nw:hover,.fl-lightbox .ui-resizable-se:active,.fl-lightbox .ui-resizable-se:hover,.fl-lightbox .ui-resizable-sw:active,.fl-lightbox .ui-resizable-sw:hover{background:0 0;border-color:#00a0d2}.fl-lightbox .ui-resizable-ne{border-bottom:none;border-left:none;border-top-right-radius:4px}.fl-lightbox .ui-resizable-nw{border-bottom:none;border-right:none;border-top-left-radius:4px}.fl-lightbox .ui-resizable-se{border-top:none;border-left:none;border-bottom-right-radius:4px}.fl-lightbox .ui-resizable-sw{border-top:none;border-right:none;border-bottom-left-radius:4px}.fl-builder-ui-keyboard-shortcuts{display:none;position:fixed;top:0;left:0;bottom:0;right:0;z-index:999999;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background:rgba(50,50,50,.88);font-size:15px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fl-builder-ui-keyboard-shortcuts.is-showing{display:-ms-flexbox;display:flex}.fl-builder-ui-keyboard-shortcuts-content{box-sizing:border-box;width:500px;background:#f5f7f9;border-radius:4px;padding:30px 0 0;box-shadow:0 10px 30px rgba(0,0,0,.15)}.fl-builder-ui-keyboard-shortcut-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;padding:12px 40px}.fl-builder-ui-keyboard-shortcut-item:nth-child(even){background:#eef2f5}.fl-builder-ui-shortcut-keycode{margin-left:auto;text-transform:uppercase;letter-spacing:2px}.fl-builder-ui-keyboard-shortcust-footer{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:center;justify-content:center;padding:10px}.dismiss-shortcut-ui{padding:10px;border-radius:4px;background:#fff;color:#000;font-size:14px;border:2px solid #fff}.dismiss-shortcut-ui:focus,.dismiss-shortcut-ui:hover{top:0;color:#000;background:#eef2f5;border:2px solid #eef2f5}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel,.fl-builder-ui-skin--dark .fl-builder--preview-actions,.fl-builder-ui-skin--dark .fl-builder--search-results-panel,.fl-builder-ui-skin--dark .fl-builder-panel,.fl-builder-ui-skin--dark .fl-lightbox,body.fl-builder-ui-skin--dark .fl-builder-bar .fl-builder-bar-content{background:#23282d;color:#b4b9be;border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-header{color:#b4b9be;border-bottom-color:#1d1d1d;border-top-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel.fl-builder-ui-pinned .fl-builder--panel-header{border-top-color:#1d2227}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel:before{border-bottom-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder--panel-arrow polygon{fill:#1d1d1d}.fl-builder-ui-skin--dark .fl-builder-panel-search .fl-builder-panel-search-input{background:#24282e}.fl-builder-ui-skin--dark .fl-responsive-preview-content{background:#131619}.fl-builder-ui-skin--dark .fl-form-table th{background:#23282d!important;color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--preview-actions .device-icons,.fl-builder-ui-skin--dark .fl-builder-button{background:#2c333a}.fl-builder-ui-skin--dark .fl-builder-button:focus{background:#131a22}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-primary{color:#fff!important;fill:#fff!important;background:#00A0D2}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-buy-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-feedback-button,.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-upgrade-button{background-color:#F7A407;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-button.fl-builder-button-silent:focus{border:2px solid #00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{color:#00A0D2!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:hover,.fl-builder-ui-skin--dark .fl-builder--menu>button:hover{background:#101215!important}.fl-builder-ui-skin--dark .fl-builder--menu>a:focus,.fl-builder-ui-skin--dark .fl-builder--menu>button:focus{background:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-bar-title{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:#181b1f}.fl-builder-simple.fl-builder-ui-skin--dark .fl-builder-bar-title:hover{background-color:transparent}.fl-builder-ui-skin--dark .fl-builder-layout-title{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-bar-title-caret i,.fl-builder-ui-skin--dark .fl-builder-layout-pretitle,.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title{color:#7d8690}.fl-builder-ui-skin--dark button.fl-builder-button.fl-builder-bar-title-caret:focus{background-color:#101215!important}.fl-builder-ui-skin--dark .fl-builder--search:before{color:rgba(162,173,184,.73)}.fl-builder-ui-skin--dark .fl-builder--search input:focus::-webkit-input-placeholder{color:rgba(162,173,184,.73)!important}.fl-builder-ui-skin--dark .fl-builder--search .search-clear{color:rgba(162,173,184,.5);background-color:#e4e4e4;background:linear-gradient(to left,#383f46,#383f46 75%,rgba(56,63,70,0))}.fl-builder-ui-skin--dark .fl-builder--menu hr{background-color:#23282d!important;border:none}.fl-builder-ui-skin--dark .fl-builder--tabs{border-color:#383f46!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing,.fl-builder-ui-skin--dark .fl-builder-settings-tabs a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-more.fl-contains-active{color:#fff!important;fill:#fff!important;background:#181b20!important}.fl-builder-ui-skin--dark .fl-builder--tabs :focus{background-color:#101215!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder--tabs .is-showing:focus{color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder--menu-item:hover{background:#383f46;color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--menu * .fl-builder--menu-item-accessory,.fl-builder-ui-skin--dark .fl-builder-blocks-section-group-name{color:#7d8690}.fl-builder-ui-skin--dark .fl-builder--selector-display{color:#c6cdd6;background:url(../img/svg/select-arrow-down-alt2-light.svg) center right 10px no-repeat #1a1b22!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label{color:#b5becb}.fl-builder-ui-skin--dark .fl-builder-panel-search-input input{border-color:#5b656f;color:#b8c2ce;background:#171b1f!important}.fl-builder-ui-skin--dark .fl-builder--selector-display-label:focus,.fl-builder-ui-skin--dark .fl-builder-panel-search-input input:focus{border-color:#00a0d2}.fl-builder-ui-skin--dark .fl-builder--group-label{color:#aaafb5!important;background:#24282e}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu{border-color:#101215!important;color:#7c858e;background-color:#101215}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu:before{border-bottom-color:#101215}.fl-builder-ui-skin--dark .fl-builder--menu>a,.fl-builder-ui-skin--dark .fl-builder--menu>button,.fl-builder-ui-skin--dark .fl-builder--menu>span{color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:hover{background:#23282d!important;color:#a1adb9}.fl-builder-ui-skin--dark .fl-builder--category-select .fl-builder--selector-menu .fl-builder--menu-item:focus{background:#23282d!important;color:#00a0d2!important}.fl-builder-ui-skin--dark .fl-builder-panel-drag-handle{fill:#5b656f}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-header,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-header,.fl-builder-ui-skin--dark .fl-builder-settings-section-header{background-color:#191b21;border-color:#191b21}.fl-builder-ui-skin--dark .fl-builder--template-collection-section-name,.fl-builder-ui-skin--dark .fl-builder--user-templates-section-name,.fl-builder-ui-skin--dark .fl-builder-blocks-section .fl-builder-blocks-section-title,.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title{color:#7d8690!important;fill:#7d8690;background:#24282e}.fl-builder-ui-skin--dark .fl-builder-settings-fields .fl-builder-settings-title:focus{border-color:#7d8690}.fl-builder-ui-skin--dark .fl-builder-blocks-section-content .fl-builder-block,.fl-builder-ui-skin--dark .fl-user-template{color:#b8c2ce}.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-content,.fl-builder-ui-skin--dark .fl-user-template:hover{background:#171b1f;color:#fff}.fl-builder-ui-skin--dark .fl-builder-block:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover i{color:#6d7782!important}.fl-builder-ui-skin--dark .fl-builder-block:hover a:hover i,.fl-builder-ui-skin--dark .fl-user-template:hover a:hover i{color:#9eacbb!important}.fl-builder-ui-skin--dark .fl-builder-block .fl-builder-block-icon{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col,.fl-builder-ui-skin--dark .fl-builder-block:hover .fl-builder-block-visual.fl-cols-visual .fl-cols-visual-col{background:#7d8690}.fl-builder-ui-skin--dark .fl-user-templates{border-color:#101215}.fl-builder-ui-skin--dark .fl-builder--template-thumbnail{border-color:#393f44}.fl-builder-ui-skin--dark .fl-builder--menu a.fl-template-collection{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-lightbox .fl-lightbox-header h1{color:#fff!important}.fl-builder-ui-skin--dark .fl-form-table th label{color:#a8b3bf!important}.fl-builder-ui-skin--dark .fl-builder-settings-tabs{background-color:#2c333a!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields h3.fl-builder-settings-title{background:#24282e}.fl-builder-ui-skin--dark h3.fl-builder-settings-title .fl-builder-settings-title-text-wrap{color:#a8b3bf;background-color:#1b2025}.fl-builder-ui-skin--dark .fl-lightbox :not(i){color:#a7b1bb!important}.fl-builder-ui-skin--dark .fl-builder-button{color:#c6cdd6!important;fill:#c6cdd6!important}.fl-builder-ui-skin--dark .fl-builder-content-panel--button:hover,.fl-builder-ui-skin--dark .fl-builder-content-panel-button{fill:#00A0D2!important}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-button.fl-builder-button-primary{color:#fff!important}.fl-builder-ui-skin--dark .fl-color-picker-color.fl-color-picker-empty{background:#1a1b22}.fl-color-picker-color.fl-color-picker-empty .fl-color-picker-icon{fill:#6f7881}.fl-builder-ui-skin--dark .fl-color-picker-clear{background-color:#121a23}.fl-builder-ui-skin--dark .fl-color-picker-clear:hover{background-color:#373f46}.fl-builder-ui-skin--dark span.fl-builder-block-no-node-templates:hover{background:#1d2025}.fl-builder-ui-skin--dark .fl-builder-settings-tab-description{background:#1d2227}.fl-builder-ui-skin--dark .fl-builder-panel-search button svg .filled-shape{fill:#b5becb}.fl-builder-ui-skin--dark .fl-builder-custom-field,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text],.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url],.fl-builder-ui-skin--dark .fl-builder-settings-fields select,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=email]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=file]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=number]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=password]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=search]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=tel]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=text]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields input[type=url]:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields select:focus,.fl-builder-ui-skin--dark .fl-builder-settings-fields textarea:focus{border-color:#00a0d2!important;color:#fff!important}.fl-builder-ui-skin--dark .fl-builder-settings-fields select{background-image:url(../img/svg/select-arrow-down-alt2-light.svg)!important}.fl-builder-ui-skin--dark .fl-builder-custom-field select,.fl-builder-ui-skin--dark .fl-photo-field select{border-color:#7d8690!important}.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle{color:#6b747d}.fl-builder-ui-skin--dark .fl-builder--main-menu-panel-view-title,.fl-builder-ui-skin--dark .fl-field i.fl-field-responsive-toggle:hover{color:#a8b3bf}.fl-builder-ui-skin--dark .fl-builder--saving-indicator{color:#858f99}.fl-builder-ui-skin--dark .fl-icons-list i:hover{background-color:#16191d;color:#fff}.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:after,.fl-builder-ui-skin--dark .fl-color-picker-clear .fl-color-picker-icon-remove:before{background:#6f7881}.fl-builder-ui-skin--dark .fl-builder--user-templates-section-content{border-color:#1d1d1d}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button{background:0 0;border-right-color:#101215!important}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select.fl-builder-button:hover{background:#181b1f}.fl-builder-ui-skin--dark .fl-theme-builder-preview-select .fl-theme-builder-preview-select-title span{color:#c6cdd6}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu{background:#131a22;border-color:#353c43 #131a22 #131a22}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu:before{border-bottom-color:#353c43}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:focus,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover{background:#383f46}.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a.fl-active,.fl-builder-ui-skin--dark .fl-builder-settings-tabs-overflow-menu>a:hover.fl-active{color:#fff!important;background:#383f46}.fl-builder-ui-skin--dark ul.as-selections{background-color:#121a23}.fl-builder-ui-skin--dark .fl-custom-query .fl-builder-settings-section{border-top:2px solid #1b2026!important}.fl-builder-ui-skin--dark div.fl-field-unit-select{background-color:#181b20!important}.fl-builder-ui-skin--dark .fl-dimension-field-units>*{border-right:1px solid #383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider,.fl-builder-ui-skin--dark .fl-field-popup-slider-input .ui-slider-handle{background:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-arrow:after{border-bottom-color:#383f46}.fl-builder-ui-skin--dark .fl-field-popup-slider-input{background-color:#121a23}.fl-builder-ui-skin--dark .fl-unit-field-input{border-right:1px solid #383f46!important}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"]{background-color:#383f46;color:#fff}.fl-builder-ui-skin--dark .fl-button-group-field-option[data-selected="1"] i{color:#fff!important}.fl-builder-ui-skin--dark .fl-button-group-field-options{background:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle{background-color:#181b20}.fl-builder-ui-skin--dark .fl-compound-field-section-toggle:hover{background-color:#383f46}.fl-builder-ui-skin--dark .fl-compound-field-section-visible .fl-compound-field-section-toggle{border-top-color:#121a23!important;background-color:transparent}.fl-builder-ui-skin--dark .fl-field-connections-toggle i{color:#7c8590}.fl-builder-ui-skin--dark .fl-lightbox .fl-field-connection-content{background-color:#191b20!important}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane>.fl-nanoscroller-slider{background-color:#181b20}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane:hover>.fl-nanoscroller-slider{background-color:#5a646f}.fl-builder-ui-skin--dark .fl-nanoscroller>.fl-nanoscroller-pane.active>.fl-nanoscroller-slider{background-color:#00A0D2}.fl-builder-ui-skin--dark .fl-lightbox div.mce-panel{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox .mce-toolbar .mce-ico{color:#a7b1bb}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary{background:#383f46;border:none;box-shadow:none}.fl-builder-ui-skin--dark .fl-lightbox .fl-builder-settings .wp-switch-editor{background:#23282d}.fl-builder-ui-skin--dark .fl-lightbox .html-active .switch-html,.fl-builder-ui-skin--dark .fl-lightbox .quicktags-toolbar,.fl-builder-ui-skin--dark .fl-lightbox .tmce-active .switch-tmce{background:#383f46}.fl-builder-ui-skin--dark .fl-lightbox textarea.wp-editor-area{background:0 0!important}.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button-secondary:hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button.hover,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:focus,.fl-builder-ui-skin--dark .fl-lightbox .wp-core-ui .button:hover{background:#191b20}
|
extensions/fl-builder-cache-helper/plugins/nginxhelper.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace FLCacheClear;
|
3 |
+
class Nginxhelper {
|
4 |
+
|
5 |
+
public $name = 'Nginx Helper';
|
6 |
+
public $url = 'https://wordpress.org/plugins/nginx-helper/';
|
7 |
+
|
8 |
+
public static function run() {
|
9 |
+
if ( class_exists( '\Nginx_Helper' ) ) {
|
10 |
+
global $nginx_purger;
|
11 |
+
$nginx_purger->purge_all();
|
12 |
+
}
|
13 |
+
}
|
14 |
+
}
|
extensions/fl-builder-seo-plugins/classes/class-fl-builder-seo-plugins.php
CHANGED
@@ -26,6 +26,7 @@ class FLBuilderSeoPlugins {
|
|
26 |
if ( FLBuilderAJAX::doing_ajax() || 'post.php' !== $pagenow ) {
|
27 |
return;
|
28 |
}
|
|
|
29 |
if ( defined( 'WPSEO_VERSION' ) ) {
|
30 |
$this->enqueue_script( 'yoast' );
|
31 |
} elseif ( class_exists( 'RankMath' ) ) {
|
@@ -131,6 +132,7 @@ class FLBuilderSeoPlugins {
|
|
131 |
ob_start();
|
132 |
echo do_shortcode( "[fl_builder_insert_layout id=$id]" );
|
133 |
$data = ob_get_clean();
|
|
|
134 |
return str_replace( PHP_EOL, '', $data );
|
135 |
}
|
136 |
|
26 |
if ( FLBuilderAJAX::doing_ajax() || 'post.php' !== $pagenow ) {
|
27 |
return;
|
28 |
}
|
29 |
+
|
30 |
if ( defined( 'WPSEO_VERSION' ) ) {
|
31 |
$this->enqueue_script( 'yoast' );
|
32 |
} elseif ( class_exists( 'RankMath' ) ) {
|
132 |
ob_start();
|
133 |
echo do_shortcode( "[fl_builder_insert_layout id=$id]" );
|
134 |
$data = ob_get_clean();
|
135 |
+
FLBuilderModel::delete_all_asset_cache( $id );
|
136 |
return str_replace( PHP_EOL, '', $data );
|
137 |
}
|
138 |
|
fl-builder.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Beaver Builder Plugin (Lite Version)
|
4 |
* Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
|
5 |
* Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
|
6 |
-
* Version: 2.2.
|
7 |
* Author: The Beaver Builder Team
|
8 |
* Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
|
9 |
* Copyright: (c) 2014 Beaver Builder
|
3 |
* Plugin Name: Beaver Builder Plugin (Lite Version)
|
4 |
* Plugin URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-uri
|
5 |
* Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
|
6 |
+
* Version: 2.2.5.3
|
7 |
* Author: The Beaver Builder Team
|
8 |
* Author URI: https://www.wpbeaverbuilder.com/?utm_medium=bb&utm_source=plugins-admin-page&utm_campaign=plugins-admin-author
|
9 |
* Copyright: (c) 2014 Beaver Builder
|
includes/admin-settings-post-types.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
|
7 |
<?php if ( FLBuilderAdminSettings::multisite_support() && ! is_network_admin() ) : ?>
|
8 |
<label>
|
9 |
-
<input class="fl-override-ms-cb" type="checkbox" name="fl-override-ms" value="1" <?php
|
10 |
<?php _e( 'Override network settings?', 'fl-builder' ); ?>
|
11 |
</label>
|
12 |
<?php endif; ?>
|
6 |
|
7 |
<?php if ( FLBuilderAdminSettings::multisite_support() && ! is_network_admin() ) : ?>
|
8 |
<label>
|
9 |
+
<input class="fl-override-ms-cb" type="checkbox" name="fl-override-ms" value="1" <?php echo ( get_option( '_fl_builder_post_types' ) ) ? 'checked="checked"' : ''; ?> />
|
10 |
<?php _e( 'Override network settings?', 'fl-builder' ); ?>
|
11 |
</label>
|
12 |
<?php endif; ?>
|
includes/compatibility.php
CHANGED
@@ -844,3 +844,32 @@ function fl_theme_builder_cat_archive_post_grid( $query ) {
|
|
844 |
|
845 |
return $post_grid;
|
846 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
844 |
|
845 |
return $post_grid;
|
846 |
}
|
847 |
+
|
848 |
+
/**
|
849 |
+
* Remove sorting from download type if EDD is active.
|
850 |
+
* @since 2.2.5
|
851 |
+
*/
|
852 |
+
add_filter( 'fl_builder_admin_edit_sort_blocklist', 'fl_builder_admin_edit_sort_blocklist_edd' );
|
853 |
+
function fl_builder_admin_edit_sort_blocklist_edd( $blocklist ) {
|
854 |
+
$types = FLBuilderModel::get_post_types();
|
855 |
+
if ( in_array( 'download', $types ) && class_exists( 'Easy_Digital_Downloads' ) ) {
|
856 |
+
$blocklist[] = 'download';
|
857 |
+
}
|
858 |
+
return $blocklist;
|
859 |
+
}
|
860 |
+
|
861 |
+
/**
|
862 |
+
* Remove BB Template types from Gute Editor suggested urls
|
863 |
+
* @since 2.2.5
|
864 |
+
*/
|
865 |
+
add_action( 'pre_get_posts', 'fl_gute_links_fix' );
|
866 |
+
function fl_gute_links_fix( $query ) {
|
867 |
+
if ( defined( 'REST_REQUEST' ) && $query->is_search() ) {
|
868 |
+
$types = (array) $query->get( 'post_type' );
|
869 |
+
$key = array_search( 'fl-builder-template', $types, true );
|
870 |
+
if ( $key ) {
|
871 |
+
unset( $types[ $key ] );
|
872 |
+
$query->set( 'post_type', $types );
|
873 |
+
}
|
874 |
+
}
|
875 |
+
}
|
includes/global-settings.php
CHANGED
@@ -185,7 +185,7 @@ FLBuilder::register_settings_form('global', array(
|
|
185 |
),
|
186 |
'toggle' => array(
|
187 |
'1' => array(
|
188 |
-
'fields' => array( 'auto_spacing', 'responsive_breakpoint', 'medium_breakpoint' ),
|
189 |
),
|
190 |
),
|
191 |
),
|
@@ -219,6 +219,16 @@ FLBuilder::register_settings_form('global', array(
|
|
219 |
'sanitize' => 'absint',
|
220 |
'help' => __( 'The browser width at which the layout will adjust for small devices such as phones.', 'fl-builder' ),
|
221 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
'responsive_base_fontsize' => array(
|
223 |
'type' => 'text',
|
224 |
'label' => __( 'Base Font Size', 'fl-builder' ),
|
185 |
),
|
186 |
'toggle' => array(
|
187 |
'1' => array(
|
188 |
+
'fields' => array( 'auto_spacing', 'responsive_breakpoint', 'medium_breakpoint', 'responsive_col_max_width' ),
|
189 |
),
|
190 |
),
|
191 |
),
|
219 |
'sanitize' => 'absint',
|
220 |
'help' => __( 'The browser width at which the layout will adjust for small devices such as phones.', 'fl-builder' ),
|
221 |
),
|
222 |
+
'responsive_col_max_width' => array(
|
223 |
+
'type' => 'select',
|
224 |
+
'label' => __( 'Enable Column Max Width', 'fl-builder' ),
|
225 |
+
'default' => '1',
|
226 |
+
'options' => array(
|
227 |
+
'0' => __( 'No', 'fl-builder' ),
|
228 |
+
'1' => __( 'Yes', 'fl-builder' ),
|
229 |
+
),
|
230 |
+
'help' => __( 'When enabled, columns assigned 50% width or less are limited to max width 400px when screen width reaches or goes below the small device breakpoint.' ),
|
231 |
+
),
|
232 |
'responsive_base_fontsize' => array(
|
233 |
'type' => 'text',
|
234 |
'label' => __( 'Base Font Size', 'fl-builder' ),
|
includes/row-settings.php
CHANGED
@@ -326,7 +326,7 @@ $row_settings = array(
|
|
326 |
'fields' => array( 'bg_video_url_mp4', 'bg_video_url_webm' ),
|
327 |
),
|
328 |
'video_service' => array(
|
329 |
-
'fields' => array( 'bg_video_service_url'
|
330 |
),
|
331 |
),
|
332 |
'preview' => array(
|
@@ -390,6 +390,19 @@ $row_settings = array(
|
|
390 |
'type' => 'refresh',
|
391 |
),
|
392 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
393 |
'bg_video_fallback' => array(
|
394 |
'type' => 'photo',
|
395 |
'show_remove' => true,
|
326 |
'fields' => array( 'bg_video_url_mp4', 'bg_video_url_webm' ),
|
327 |
),
|
328 |
'video_service' => array(
|
329 |
+
'fields' => array( 'bg_video_service_url' ),
|
330 |
),
|
331 |
),
|
332 |
'preview' => array(
|
390 |
'type' => 'refresh',
|
391 |
),
|
392 |
),
|
393 |
+
'bg_video_mobile' => array(
|
394 |
+
'type' => 'select',
|
395 |
+
'label' => __( 'Enable Video in Mobile', 'fl-builder' ),
|
396 |
+
'help' => __( 'If set to "Yes", audio is disabled on mobile devices.', 'fl-builder' ),
|
397 |
+
'default' => 'no',
|
398 |
+
'options' => array(
|
399 |
+
'no' => __( 'No', 'fl-builder' ),
|
400 |
+
'yes' => __( 'Yes', 'fl-builder' ),
|
401 |
+
),
|
402 |
+
'preview' => array(
|
403 |
+
'type' => 'none',
|
404 |
+
),
|
405 |
+
),
|
406 |
'bg_video_fallback' => array(
|
407 |
'type' => 'photo',
|
408 |
'show_remove' => true,
|
includes/row-video.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php // @codingStandardsIgnoreFile ?>
|
2 |
<?php if ( 'wordpress' == $row->settings->bg_video_source ) { ?>
|
3 |
<div class="fl-bg-video"
|
|
|
4 |
data-width="<?php if ( isset( $vid_data['mp4'] ) ) { echo $vid_data['mp4']->width;
|
5 |
} else { echo $vid_data['webm']->width;
|
6 |
} ?>"
|
@@ -22,6 +23,7 @@ data-webm-type="video/<?php echo $vid_data['webm']->extension; ?>"
|
|
22 |
|
23 |
<?php if ( 'video_url' == $row->settings->bg_video_source ) { ?>
|
24 |
<div class="fl-bg-video"
|
|
|
25 |
data-fallback="<?php if ( isset( $row->settings->bg_video_fallback_src ) ) { echo $row->settings->bg_video_fallback_src;} ?>"
|
26 |
<?php if ( isset( $row->settings->bg_video_url_mp4 ) ) : ?>
|
27 |
data-mp4="<?php echo $row->settings->bg_video_url_mp4; ?>"
|
@@ -34,13 +36,14 @@ data-webm-type="video/webm"
|
|
34 |
<?php } ?>
|
35 |
|
36 |
<?php if ( 'video_service' == $row->settings->bg_video_source ) {
|
37 |
-
$video_data = FLBuilderUtils::get_video_data( $row->settings->bg_video_service_url ); ?>
|
38 |
<div class="fl-bg-video"
|
39 |
data-fallback="<?php if ( isset( $row->settings->bg_video_fallback_src ) ) { echo $row->settings->bg_video_fallback_src;} ?>"
|
40 |
<?php if ( isset( $row->settings->bg_video_service_url ) ) : ?>
|
41 |
-
data-<?php echo $video_data['type']; ?>="<?php echo $row->settings->bg_video_service_url;
|
42 |
data-video-id="<?php echo $video_data['video_id']; ?>"
|
43 |
data-enable-audio="<?php echo $row->settings->bg_video_audio; ?>"
|
|
|
44 |
<?php if ( isset( $video_data['params'] ) ) : ?>
|
45 |
<?php foreach ( $video_data['params'] as $key => $val ) : ?>
|
46 |
data-<?php echo $key . '="' . $val . '"'; ?>
|
1 |
<?php // @codingStandardsIgnoreFile ?>
|
2 |
<?php if ( 'wordpress' == $row->settings->bg_video_source ) { ?>
|
3 |
<div class="fl-bg-video"
|
4 |
+
data-video-mobile="<?php if ( isset( $row->settings->bg_video_mobile ) ) { echo $row->settings->bg_video_mobile;} ?>"
|
5 |
data-width="<?php if ( isset( $vid_data['mp4'] ) ) { echo $vid_data['mp4']->width;
|
6 |
} else { echo $vid_data['webm']->width;
|
7 |
} ?>"
|
23 |
|
24 |
<?php if ( 'video_url' == $row->settings->bg_video_source ) { ?>
|
25 |
<div class="fl-bg-video"
|
26 |
+
data-video-mobile="<?php if ( isset( $row->settings->bg_video_mobile ) ) { echo $row->settings->bg_video_mobile;} ?>"
|
27 |
data-fallback="<?php if ( isset( $row->settings->bg_video_fallback_src ) ) { echo $row->settings->bg_video_fallback_src;} ?>"
|
28 |
<?php if ( isset( $row->settings->bg_video_url_mp4 ) ) : ?>
|
29 |
data-mp4="<?php echo $row->settings->bg_video_url_mp4; ?>"
|
36 |
<?php } ?>
|
37 |
|
38 |
<?php if ( 'video_service' == $row->settings->bg_video_source ) {
|
39 |
+
$video_data = FLBuilderUtils::get_video_data( do_shortcode( $row->settings->bg_video_service_url ) ); ?>
|
40 |
<div class="fl-bg-video"
|
41 |
data-fallback="<?php if ( isset( $row->settings->bg_video_fallback_src ) ) { echo $row->settings->bg_video_fallback_src;} ?>"
|
42 |
<?php if ( isset( $row->settings->bg_video_service_url ) ) : ?>
|
43 |
+
data-<?php echo $video_data['type']; ?>="<?php echo do_shortcode( $row->settings->bg_video_service_url ); ?>"
|
44 |
data-video-id="<?php echo $video_data['video_id']; ?>"
|
45 |
data-enable-audio="<?php echo $row->settings->bg_video_audio; ?>"
|
46 |
+
data-video-mobile="<?php if ( isset( $row->settings->bg_video_mobile ) ) { echo $row->settings->bg_video_mobile;} ?>"
|
47 |
<?php if ( isset( $video_data['params'] ) ) : ?>
|
48 |
<?php foreach ( $video_data['params'] as $key => $val ) : ?>
|
49 |
data-<?php echo $key . '="' . $val . '"'; ?>
|
includes/ui-field-link.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
<input type="text" name="{{data.name}}" value="{{{data.value}}}" class="text fl-link-field-input" placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } else { #><?php _ex( 'http://www.example.com', 'Link placeholder', 'fl-builder' ); ?><# } #>" />
|
4 |
<button class="fl-link-field-select fl-builder-button fl-builder-button-small" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select', 'fl-builder' ); ?></button>
|
5 |
</div>
|
6 |
-
|
7 |
<div class="fl-link-field-options-wrap">
|
8 |
<# if ( data.field.show_target ) {
|
9 |
var value = data.settings[ data.name + '_target' ];
|
@@ -25,8 +25,12 @@
|
|
25 |
<span><?php _e( 'No Follow', 'fl-builder' ); ?></span>
|
26 |
</label>
|
27 |
<# } #>
|
|
|
|
|
|
|
|
|
28 |
</div>
|
29 |
-
|
30 |
<div class="fl-link-field-search">
|
31 |
<span class="fl-link-field-search-title"><?php _e( 'Enter a post title to search.', 'fl-builder' ); ?></span>
|
32 |
<input type="text" name="{{data.name}}-search" class="text text-full fl-link-field-search-input" placeholder="<?php esc_attr_e( 'Start typing...', 'fl-builder' ); ?>" />
|
3 |
<input type="text" name="{{data.name}}" value="{{{data.value}}}" class="text fl-link-field-input" placeholder="<# if ( data.field.placeholder ) { #>{{data.field.placeholder}}<# } else { #><?php _ex( 'http://www.example.com', 'Link placeholder', 'fl-builder' ); ?><# } #>" />
|
4 |
<button class="fl-link-field-select fl-builder-button fl-builder-button-small" href="javascript:void(0);" onclick="return false;"><?php _e( 'Select', 'fl-builder' ); ?></button>
|
5 |
</div>
|
6 |
+
|
7 |
<div class="fl-link-field-options-wrap">
|
8 |
<# if ( data.field.show_target ) {
|
9 |
var value = data.settings[ data.name + '_target' ];
|
25 |
<span><?php _e( 'No Follow', 'fl-builder' ); ?></span>
|
26 |
</label>
|
27 |
<# } #>
|
28 |
+
|
29 |
+
<# if ( ! ( data.field.show_target && data.field.show_nofollow ) ) { #>
|
30 |
+
<label></label>
|
31 |
+
<# } #>
|
32 |
</div>
|
33 |
+
|
34 |
<div class="fl-link-field-search">
|
35 |
<span class="fl-link-field-search-title"><?php _e( 'Enter a post title to search.', 'fl-builder' ); ?></span>
|
36 |
<input type="text" name="{{data.name}}-search" class="text text-full fl-link-field-search-input" placeholder="<?php esc_attr_e( 'Start typing...', 'fl-builder' ); ?>" />
|
includes/ui-field-textarea.php
CHANGED
@@ -2,5 +2,6 @@
|
|
2 |
name="{{data.name}}"
|
3 |
<# if ( data.field.className ) { #>class="{{data.field.className}}" <# } #>
|
4 |
<# if ( data.field.placeholder ) { #>placeholder="{{data.field.placeholder}}" <# } #>
|
|
|
5 |
<# if ( data.field.rows ) { #>rows="{{data.field.rows}}" <# } #>
|
6 |
>{{data.value}}</textarea>
|
2 |
name="{{data.name}}"
|
3 |
<# if ( data.field.className ) { #>class="{{data.field.className}}" <# } #>
|
4 |
<# if ( data.field.placeholder ) { #>placeholder="{{data.field.placeholder}}" <# } #>
|
5 |
+
<# if ( data.field.maxlength ) { #>maxlength="{{data.field.maxlength}}" <# } #>
|
6 |
<# if ( data.field.rows ) { #>rows="{{data.field.rows}}" <# } #>
|
7 |
>{{data.value}}</textarea>
|
includes/updater-config.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
if ( class_exists( 'FLUpdater' ) ) {
|
4 |
FLUpdater::add_product(array(
|
5 |
'name' => 'Beaver Builder Plugin (Lite Version)',
|
6 |
-
'version' => '2.2.
|
7 |
'slug' => 'bb-plugin',
|
8 |
'type' => 'plugin',
|
9 |
));
|
3 |
if ( class_exists( 'FLUpdater' ) ) {
|
4 |
FLUpdater::add_product(array(
|
5 |
'name' => 'Beaver Builder Plugin (Lite Version)',
|
6 |
+
'version' => '2.2.5.3',
|
7 |
'slug' => 'bb-plugin',
|
8 |
'type' => 'plugin',
|
9 |
));
|
includes/vendor/infusionsoft/xmlrpc/lib/xmlrpc.inc
CHANGED
@@ -44,17 +44,17 @@
|
|
44 |
* If it is included, the library will work without any further autoloading
|
45 |
*****************************************************************************/
|
46 |
|
47 |
-
include_once(__DIR__.'/../src/PhpXmlRpc.php');
|
48 |
-
include_once(__DIR__.'/../src/Value.php');
|
49 |
-
include_once(__DIR__.'/../src/Request.php');
|
50 |
-
include_once(__DIR__.'/../src/Response.php');
|
51 |
-
include_once(__DIR__.'/../src/Client.php');
|
52 |
-
include_once(__DIR__.'/../src/Encoder.php');
|
53 |
-
include_once(__DIR__.'/../src/Helper/Charset.php');
|
54 |
-
include_once(__DIR__.'/../src/Helper/Date.php');
|
55 |
-
include_once(__DIR__.'/../src/Helper/Http.php');
|
56 |
-
include_once(__DIR__.'/../src/Helper/Logger.php');
|
57 |
-
include_once(__DIR__.'/../src/Helper/XMLParser.php');
|
58 |
|
59 |
|
60 |
/* Expose the global variables which used to be defined */
|
44 |
* If it is included, the library will work without any further autoloading
|
45 |
*****************************************************************************/
|
46 |
|
47 |
+
include_once(__DIR__.'/../xmlrpc-src/PhpXmlRpc.php');
|
48 |
+
include_once(__DIR__.'/../xmlrpc-src/Value.php');
|
49 |
+
include_once(__DIR__.'/../xmlrpc-src/Request.php');
|
50 |
+
include_once(__DIR__.'/../xmlrpc-src/Response.php');
|
51 |
+
include_once(__DIR__.'/../xmlrpc-src/Client.php');
|
52 |
+
include_once(__DIR__.'/../xmlrpc-src/Encoder.php');
|
53 |
+
include_once(__DIR__.'/../xmlrpc-src/Helper/Charset.php');
|
54 |
+
include_once(__DIR__.'/../xmlrpc-src/Helper/Date.php');
|
55 |
+
include_once(__DIR__.'/../xmlrpc-src/Helper/Http.php');
|
56 |
+
include_once(__DIR__.'/../xmlrpc-src/Helper/Logger.php');
|
57 |
+
include_once(__DIR__.'/../xmlrpc-src/Helper/XMLParser.php');
|
58 |
|
59 |
|
60 |
/* Expose the global variables which used to be defined */
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Client.php
ADDED
@@ -0,0 +1,1284 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
use PhpXmlRpc\Helper\Logger;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Used to represent a client of an XML-RPC server.
|
9 |
+
*/
|
10 |
+
class Client
|
11 |
+
{
|
12 |
+
const USE_CURL_NEVER = 0;
|
13 |
+
const USE_CURL_ALWAYS = 1;
|
14 |
+
const USE_CURL_AUTO = 2;
|
15 |
+
|
16 |
+
/// @todo: do these need to be public?
|
17 |
+
public $method = 'http';
|
18 |
+
public $server;
|
19 |
+
public $port = 0;
|
20 |
+
public $path;
|
21 |
+
|
22 |
+
public $errno;
|
23 |
+
public $errstr;
|
24 |
+
public $debug = 0;
|
25 |
+
|
26 |
+
public $username = '';
|
27 |
+
public $password = '';
|
28 |
+
public $authtype = 1;
|
29 |
+
|
30 |
+
public $cert = '';
|
31 |
+
public $certpass = '';
|
32 |
+
public $cacert = '';
|
33 |
+
public $cacertdir = '';
|
34 |
+
public $key = '';
|
35 |
+
public $keypass = '';
|
36 |
+
public $verifypeer = true;
|
37 |
+
public $verifyhost = 2;
|
38 |
+
public $sslversion = 0; // corresponds to CURL_SSLVERSION_DEFAULT
|
39 |
+
|
40 |
+
public $proxy = '';
|
41 |
+
public $proxyport = 0;
|
42 |
+
public $proxy_user = '';
|
43 |
+
public $proxy_pass = '';
|
44 |
+
public $proxy_authtype = 1;
|
45 |
+
|
46 |
+
public $cookies = array();
|
47 |
+
public $extracurlopts = array();
|
48 |
+
public $use_curl = self::USE_CURL_AUTO;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @var bool
|
52 |
+
*
|
53 |
+
* This determines whether the multicall() method will try to take advantage of the system.multicall xmlrpc method
|
54 |
+
* to dispatch to the server an array of requests in a single http roundtrip or simply execute many consecutive http
|
55 |
+
* calls. Defaults to FALSE, but it will be enabled automatically on the first failure of execution of
|
56 |
+
* system.multicall.
|
57 |
+
*/
|
58 |
+
public $no_multicall = false;
|
59 |
+
|
60 |
+
/**
|
61 |
+
* List of http compression methods accepted by the client for responses.
|
62 |
+
* NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib.
|
63 |
+
*
|
64 |
+
* NNB: you can set it to any non-empty array for HTTP11 and HTTPS, since
|
65 |
+
* in those cases it will be up to CURL to decide the compression methods
|
66 |
+
* it supports. You might check for the presence of 'zlib' in the output of
|
67 |
+
* curl_version() to determine whether compression is supported or not
|
68 |
+
*/
|
69 |
+
public $accepted_compression = array();
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Name of compression scheme to be used for sending requests.
|
73 |
+
* Either null, gzip or deflate.
|
74 |
+
*/
|
75 |
+
|
76 |
+
public $request_compression = '';
|
77 |
+
|
78 |
+
/**
|
79 |
+
* CURL handle: used for keep-alive connections (PHP 4.3.8 up, see:
|
80 |
+
* http://curl.haxx.se/docs/faq.html#7.3).
|
81 |
+
*/
|
82 |
+
public $xmlrpc_curl_handle = null;
|
83 |
+
|
84 |
+
/// Whether to use persistent connections for http 1.1 and https
|
85 |
+
public $keepalive = false;
|
86 |
+
|
87 |
+
/// Charset encodings that can be decoded without problems by the client
|
88 |
+
public $accepted_charset_encodings = array();
|
89 |
+
|
90 |
+
/**
|
91 |
+
* The charset encoding that will be used for serializing request sent by the client.
|
92 |
+
* It defaults to NULL, which means using US-ASCII and encoding all characters outside of the ASCII range using
|
93 |
+
* their xml character entity representation (this has the benefit that line end characters will not be mangled in
|
94 |
+
* the transfer, a CR-LF will be preserved as well as a singe LF).
|
95 |
+
* Valid values are 'US-ASCII', 'UTF-8' and 'ISO-8859-1'
|
96 |
+
*/
|
97 |
+
public $request_charset_encoding = '';
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Decides the content of Response objects returned by calls to send() and multicall().
|
101 |
+
* Valid values are 'xmlrpcvals', 'phpvals' or 'xml'.
|
102 |
+
*
|
103 |
+
* Determines whether the value returned inside an Response object as results of calls to the send() and multicall()
|
104 |
+
* methods will be a Value object, a plain php value or a raw xml string.
|
105 |
+
* Allowed values are 'xmlrpcvals' (the default), 'phpvals' and 'xml'.
|
106 |
+
* To allow the user to differentiate between a correct and a faulty response, fault responses will be returned as
|
107 |
+
* Response objects in any case.
|
108 |
+
* Note that the 'phpvals' setting will yield faster execution times, but some of the information from the original
|
109 |
+
* response will be lost. It will be e.g. impossible to tell whether a particular php string value was sent by the
|
110 |
+
* server as an xmlrpc string or base64 value.
|
111 |
+
*/
|
112 |
+
public $return_type = 'xmlrpcvals';
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Sent to servers in http headers.
|
116 |
+
*/
|
117 |
+
public $user_agent;
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @param string $path either the PATH part of the xmlrpc server URL, or complete server URL (in which case you
|
121 |
+
* should use and empty string for all other parameters)
|
122 |
+
* e.g. /xmlrpc/server.php
|
123 |
+
* e.g. http://phpxmlrpc.sourceforge.net/server.php
|
124 |
+
* e.g. https://james:bond@secret.service.com:443/xmlrpcserver?agent=007
|
125 |
+
* @param string $server the server name / ip address
|
126 |
+
* @param integer $port the port the server is listening on, when omitted defaults to 80 or 443 depending on
|
127 |
+
* protocol used
|
128 |
+
* @param string $method the http protocol variant: defaults to 'http'; 'https' and 'http11' can be used if CURL is
|
129 |
+
* installed. The value set here can be overridden in any call to $this->send().
|
130 |
+
*/
|
131 |
+
public function __construct($path, $server = '', $port = '', $method = '')
|
132 |
+
{
|
133 |
+
// allow user to specify all params in $path
|
134 |
+
if ($server == '' && $port == '' && $method == '') {
|
135 |
+
$parts = parse_url($path);
|
136 |
+
$server = $parts['host'];
|
137 |
+
$path = isset($parts['path']) ? $parts['path'] : '';
|
138 |
+
if (isset($parts['query'])) {
|
139 |
+
$path .= '?' . $parts['query'];
|
140 |
+
}
|
141 |
+
if (isset($parts['fragment'])) {
|
142 |
+
$path .= '#' . $parts['fragment'];
|
143 |
+
}
|
144 |
+
if (isset($parts['port'])) {
|
145 |
+
$port = $parts['port'];
|
146 |
+
}
|
147 |
+
if (isset($parts['scheme'])) {
|
148 |
+
$method = $parts['scheme'];
|
149 |
+
}
|
150 |
+
if (isset($parts['user'])) {
|
151 |
+
$this->username = $parts['user'];
|
152 |
+
}
|
153 |
+
if (isset($parts['pass'])) {
|
154 |
+
$this->password = $parts['pass'];
|
155 |
+
}
|
156 |
+
}
|
157 |
+
if ($path == '' || $path[0] != '/') {
|
158 |
+
$this->path = '/' . $path;
|
159 |
+
} else {
|
160 |
+
$this->path = $path;
|
161 |
+
}
|
162 |
+
$this->server = $server;
|
163 |
+
if ($port != '') {
|
164 |
+
$this->port = $port;
|
165 |
+
}
|
166 |
+
if ($method != '') {
|
167 |
+
$this->method = $method;
|
168 |
+
}
|
169 |
+
|
170 |
+
// if ZLIB is enabled, let the client by default accept compressed responses
|
171 |
+
if (function_exists('gzinflate') || (
|
172 |
+
function_exists('curl_init') && (($info = curl_version()) &&
|
173 |
+
((is_string($info) && strpos($info, 'zlib') !== null) || isset($info['libz_version'])))
|
174 |
+
)
|
175 |
+
) {
|
176 |
+
$this->accepted_compression = array('gzip', 'deflate');
|
177 |
+
}
|
178 |
+
|
179 |
+
// keepalives: enabled by default
|
180 |
+
$this->keepalive = true;
|
181 |
+
|
182 |
+
// by default the xml parser can support these 3 charset encodings
|
183 |
+
$this->accepted_charset_encodings = array('UTF-8', 'ISO-8859-1', 'US-ASCII');
|
184 |
+
|
185 |
+
// Add all charsets which mbstring can handle, but remove junk not found in IANA registry at
|
186 |
+
// http://www.iana.org/assignments/character-sets/character-sets.xhtml
|
187 |
+
// NB: this is disabled to avoid making all the requests sent huge... mbstring supports more than 80 charsets!
|
188 |
+
/*if (function_exists('mb_list_encodings')) {
|
189 |
+
|
190 |
+
$encodings = array_diff(mb_list_encodings(), array('pass', 'auto', 'wchar', 'BASE64', 'UUENCODE', 'ASCII',
|
191 |
+
'HTML-ENTITIES', 'Quoted-Printable', '7bit','8bit', 'byte2be', 'byte2le', 'byte4be', 'byte4le'));
|
192 |
+
$this->accepted_charset_encodings = array_unique(array_merge($this->accepted_charset_encodings, $encodings));
|
193 |
+
}*/
|
194 |
+
|
195 |
+
// initialize user_agent string
|
196 |
+
$this->user_agent = PhpXmlRpc::$xmlrpcName . ' ' . PhpXmlRpc::$xmlrpcVersion;
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Enable/disable the echoing to screen of the xmlrpc responses received. The default is not no output anything.
|
201 |
+
*
|
202 |
+
* The debugging information at level 1 includes the raw data returned from the XML-RPC server it was querying
|
203 |
+
* (including bot HTTP headers and the full XML payload), and the PHP value the client attempts to create to
|
204 |
+
* represent the value returned by the server
|
205 |
+
* At level2, the complete payload of the xmlrpc request is also printed, before being sent t the server.
|
206 |
+
*
|
207 |
+
* This option can be very useful when debugging servers as it allows you to see exactly what the client sends and
|
208 |
+
* the server returns.
|
209 |
+
*
|
210 |
+
* @param integer $level values 0, 1 and 2 are supported (2 = echo sent msg too, before received response)
|
211 |
+
*/
|
212 |
+
public function setDebug($level)
|
213 |
+
{
|
214 |
+
$this->debug = $level;
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Sets the username and password for authorizing the client to the server.
|
219 |
+
*
|
220 |
+
* With the default (HTTP) transport, this information is used for HTTP Basic authorization.
|
221 |
+
* Note that username and password can also be set using the class constructor.
|
222 |
+
* With HTTP 1.1 and HTTPS transport, NTLM and Digest authentication protocols are also supported. To enable them use
|
223 |
+
* the constants CURLAUTH_DIGEST and CURLAUTH_NTLM as values for the auth type parameter.
|
224 |
+
*
|
225 |
+
* @param string $user username
|
226 |
+
* @param string $password password
|
227 |
+
* @param integer $authType auth type. See curl_setopt man page for supported auth types. Defaults to CURLAUTH_BASIC
|
228 |
+
* (basic auth). Note that auth types NTLM and Digest will only work if the Curl php
|
229 |
+
* extension is enabled.
|
230 |
+
*/
|
231 |
+
public function setCredentials($user, $password, $authType = 1)
|
232 |
+
{
|
233 |
+
$this->username = $user;
|
234 |
+
$this->password = $password;
|
235 |
+
$this->authtype = $authType;
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Set the optional certificate and passphrase used in SSL-enabled communication with a remote server.
|
240 |
+
*
|
241 |
+
* Note: to retrieve information about the client certificate on the server side, you will need to look into the
|
242 |
+
* environment variables which are set up by the webserver. Different webservers will typically set up different
|
243 |
+
* variables.
|
244 |
+
*
|
245 |
+
* @param string $cert the name of a file containing a PEM formatted certificate
|
246 |
+
* @param string $certPass the password required to use it
|
247 |
+
*/
|
248 |
+
public function setCertificate($cert, $certPass = '')
|
249 |
+
{
|
250 |
+
$this->cert = $cert;
|
251 |
+
$this->certpass = $certPass;
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* Add a CA certificate to verify server with in SSL-enabled communication when SetSSLVerifypeer has been set to TRUE.
|
256 |
+
*
|
257 |
+
* See the php manual page about CURLOPT_CAINFO for more details.
|
258 |
+
*
|
259 |
+
* @param string $caCert certificate file name (or dir holding certificates)
|
260 |
+
* @param bool $isDir set to true to indicate cacert is a dir. defaults to false
|
261 |
+
*/
|
262 |
+
public function setCaCertificate($caCert, $isDir = false)
|
263 |
+
{
|
264 |
+
if ($isDir) {
|
265 |
+
$this->cacertdir = $caCert;
|
266 |
+
} else {
|
267 |
+
$this->cacert = $caCert;
|
268 |
+
}
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Set attributes for SSL communication: private SSL key.
|
273 |
+
*
|
274 |
+
* NB: does not work in older php/curl installs.
|
275 |
+
* Thanks to Daniel Convissor.
|
276 |
+
*
|
277 |
+
* @param string $key The name of a file containing a private SSL key
|
278 |
+
* @param string $keyPass The secret password needed to use the private SSL key
|
279 |
+
*/
|
280 |
+
public function setKey($key, $keyPass)
|
281 |
+
{
|
282 |
+
$this->key = $key;
|
283 |
+
$this->keypass = $keyPass;
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* Set attributes for SSL communication: verify the remote host's SSL certificate, and cause the connection to fail
|
288 |
+
* if the cert verification fails.
|
289 |
+
*
|
290 |
+
* By default, verification is enabled.
|
291 |
+
* To specify custom SSL certificates to validate the server with, use the setCaCertificate method.
|
292 |
+
*
|
293 |
+
* @param bool $i enable/disable verification of peer certificate
|
294 |
+
*/
|
295 |
+
public function setSSLVerifyPeer($i)
|
296 |
+
{
|
297 |
+
$this->verifypeer = $i;
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Set attributes for SSL communication: verify the remote host's SSL certificate's common name (CN).
|
302 |
+
*
|
303 |
+
* Note that support for value 1 has been removed in cURL 7.28.1
|
304 |
+
*
|
305 |
+
* @param int $i Set to 1 to only the existence of a CN, not that it matches
|
306 |
+
*/
|
307 |
+
public function setSSLVerifyHost($i)
|
308 |
+
{
|
309 |
+
$this->verifyhost = $i;
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Set attributes for SSL communication: SSL version to use. Best left at 0 (default value ): let cURL decide
|
314 |
+
*
|
315 |
+
* @param int $i
|
316 |
+
*/
|
317 |
+
public function setSSLVersion($i)
|
318 |
+
{
|
319 |
+
$this->sslversion = $i;
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Set proxy info.
|
324 |
+
*
|
325 |
+
* NB: CURL versions before 7.11.10 cannot use a proxy to communicate with https servers.
|
326 |
+
*
|
327 |
+
* @param string $proxyHost
|
328 |
+
* @param string $proxyPort Defaults to 8080 for HTTP and 443 for HTTPS
|
329 |
+
* @param string $proxyUsername Leave blank if proxy has public access
|
330 |
+
* @param string $proxyPassword Leave blank if proxy has public access
|
331 |
+
* @param int $proxyAuthType defaults to CURLAUTH_BASIC (Basic authentication protocol); set to constant CURLAUTH_NTLM
|
332 |
+
* to use NTLM auth with proxy (has effect only when the client uses the HTTP 1.1 protocol)
|
333 |
+
*/
|
334 |
+
public function setProxy($proxyHost, $proxyPort, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1)
|
335 |
+
{
|
336 |
+
$this->proxy = $proxyHost;
|
337 |
+
$this->proxyport = $proxyPort;
|
338 |
+
$this->proxy_user = $proxyUsername;
|
339 |
+
$this->proxy_pass = $proxyPassword;
|
340 |
+
$this->proxy_authtype = $proxyAuthType;
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* Enables/disables reception of compressed xmlrpc responses.
|
345 |
+
*
|
346 |
+
* This requires the "zlib" extension to be enabled in your php install. If it is, by default xmlrpc_client
|
347 |
+
* instances will enable reception of compressed content.
|
348 |
+
* Note that enabling reception of compressed responses merely adds some standard http headers to xmlrpc requests.
|
349 |
+
* It is up to the xmlrpc server to return compressed responses when receiving such requests.
|
350 |
+
*
|
351 |
+
* @param string $compMethod either 'gzip', 'deflate', 'any' or ''
|
352 |
+
*/
|
353 |
+
public function setAcceptedCompression($compMethod)
|
354 |
+
{
|
355 |
+
if ($compMethod == 'any') {
|
356 |
+
$this->accepted_compression = array('gzip', 'deflate');
|
357 |
+
} elseif ($compMethod == false) {
|
358 |
+
$this->accepted_compression = array();
|
359 |
+
} else {
|
360 |
+
$this->accepted_compression = array($compMethod);
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Enables/disables http compression of xmlrpc request.
|
366 |
+
*
|
367 |
+
* This requires the "zlib" extension to be enabled in your php install.
|
368 |
+
* Take care when sending compressed requests: servers might not support them (and automatic fallback to
|
369 |
+
* uncompressed requests is not yet implemented).
|
370 |
+
*
|
371 |
+
* @param string $compMethod either 'gzip', 'deflate' or ''
|
372 |
+
*/
|
373 |
+
public function setRequestCompression($compMethod)
|
374 |
+
{
|
375 |
+
$this->request_compression = $compMethod;
|
376 |
+
}
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Adds a cookie to list of cookies that will be sent to server with every further request (useful e.g. for keeping
|
380 |
+
* session info outside of the xml-rpc payload).
|
381 |
+
*
|
382 |
+
* NB: By default cookies are sent using the 'original/netscape' format, which is also the same as the RFC 2965;
|
383 |
+
* setting any param but name and value will turn the cookie into a 'version 1' cookie (i.e. RFC 2109 cookie) that
|
384 |
+
* might not be fully supported by the server. Note that RFC 2109 has currently 'historic' status...
|
385 |
+
*
|
386 |
+
* @param string $name nb: will not be escaped in the request's http headers. Take care not to use CTL chars or
|
387 |
+
* separators!
|
388 |
+
* @param string $value
|
389 |
+
* @param string $path leave this empty unless the xml-rpc server only accepts RFC 2109 cookies
|
390 |
+
* @param string $domain leave this empty unless the xml-rpc server only accepts RFC 2109 cookies
|
391 |
+
* @param int $port leave this empty unless the xml-rpc server only accepts RFC 2109 cookies
|
392 |
+
*
|
393 |
+
* @todo check correctness of urlencoding cookie value (copied from php way of doing it, but php is generally sending
|
394 |
+
* response not requests. We do the opposite...)
|
395 |
+
* @todo strip invalid chars from cookie name? As per RFC6265, we should follow RFC2616, Section 2.2
|
396 |
+
*/
|
397 |
+
public function setCookie($name, $value = '', $path = '', $domain = '', $port = null)
|
398 |
+
{
|
399 |
+
$this->cookies[$name]['value'] = urlencode($value);
|
400 |
+
if ($path || $domain || $port) {
|
401 |
+
$this->cookies[$name]['path'] = $path;
|
402 |
+
$this->cookies[$name]['domain'] = $domain;
|
403 |
+
$this->cookies[$name]['port'] = $port;
|
404 |
+
$this->cookies[$name]['version'] = 1;
|
405 |
+
} else {
|
406 |
+
$this->cookies[$name]['version'] = 0;
|
407 |
+
}
|
408 |
+
}
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Directly set cURL options, for extra flexibility (when in cURL mode).
|
412 |
+
*
|
413 |
+
* It allows eg. to bind client to a specific IP interface / address.
|
414 |
+
*
|
415 |
+
* @param array $options
|
416 |
+
*/
|
417 |
+
public function setCurlOptions($options)
|
418 |
+
{
|
419 |
+
$this->extracurlopts = $options;
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* @param int $useCurlMode self::USE_CURL_ALWAYS, self::USE_CURL_AUTO or self::USE_CURL_NEVER
|
424 |
+
*/
|
425 |
+
public function setUseCurl($useCurlMode)
|
426 |
+
{
|
427 |
+
$this->use_curl = $useCurlMode;
|
428 |
+
}
|
429 |
+
|
430 |
+
|
431 |
+
/**
|
432 |
+
* Set user-agent string that will be used by this client instance in http headers sent to the server.
|
433 |
+
*
|
434 |
+
* The default user agent string includes the name of this library and the version number.
|
435 |
+
*
|
436 |
+
* @param string $agentString
|
437 |
+
*/
|
438 |
+
public function setUserAgent($agentString)
|
439 |
+
{
|
440 |
+
$this->user_agent = $agentString;
|
441 |
+
}
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Send an xmlrpc request to the server.
|
445 |
+
*
|
446 |
+
* @param Request|Request[]|string $req The Request object, or an array of requests for using multicall, or the
|
447 |
+
* complete xml representation of a request.
|
448 |
+
* When sending an array of Request objects, the client will try to make use of
|
449 |
+
* a single 'system.multicall' xml-rpc method call to forward to the server all
|
450 |
+
* the requests in a single HTTP round trip, unless $this->no_multicall has
|
451 |
+
* been previously set to TRUE (see the multicall method below), in which case
|
452 |
+
* many consecutive xmlrpc requests will be sent. The method will return an
|
453 |
+
* array of Response objects in both cases.
|
454 |
+
* The third variant allows to build by hand (or any other means) a complete
|
455 |
+
* xmlrpc request message, and send it to the server. $req should be a string
|
456 |
+
* containing the complete xml representation of the request. It is e.g. useful
|
457 |
+
* when, for maximal speed of execution, the request is serialized into a
|
458 |
+
* string using the native php xmlrpc functions (see http://www.php.net/xmlrpc)
|
459 |
+
* @param integer $timeout Connection timeout, in seconds, If unspecified, a platform specific timeout will apply.
|
460 |
+
* This timeout value is passed to fsockopen(). It is also used for detecting server
|
461 |
+
* timeouts during communication (i.e. if the server does not send anything to the client
|
462 |
+
* for $timeout seconds, the connection will be closed).
|
463 |
+
* @param string $method valid values are 'http', 'http11' and 'https'. If left unspecified, the http protocol
|
464 |
+
* chosen during creation of the object will be used.
|
465 |
+
*
|
466 |
+
* @return Response|Response[] Note that the client will always return a Response object, even if the call fails
|
467 |
+
*/
|
468 |
+
public function send($req, $timeout = 0, $method = '')
|
469 |
+
{
|
470 |
+
// if user does not specify http protocol, use native method of this client
|
471 |
+
// (i.e. method set during call to constructor)
|
472 |
+
if ($method == '') {
|
473 |
+
$method = $this->method;
|
474 |
+
}
|
475 |
+
|
476 |
+
if (is_array($req)) {
|
477 |
+
// $req is an array of Requests
|
478 |
+
$r = $this->multicall($req, $timeout, $method);
|
479 |
+
|
480 |
+
return $r;
|
481 |
+
} elseif (is_string($req)) {
|
482 |
+
$n = new Request('');
|
483 |
+
$n->payload = $req;
|
484 |
+
$req = $n;
|
485 |
+
}
|
486 |
+
|
487 |
+
// where req is a Request
|
488 |
+
$req->setDebug($this->debug);
|
489 |
+
|
490 |
+
/// @todo we could be smarter about this and force usage of curl in scenarios where it is both available and
|
491 |
+
/// needed, such as digest or ntlm auth. Do not attempt to use it for https if not present
|
492 |
+
$useCurl = ($this->use_curl == self::USE_CURL_ALWAYS) || ($this->use_curl == self::USE_CURL_AUTO &&
|
493 |
+
($method == 'https' || $method == 'http11'));
|
494 |
+
|
495 |
+
if ($useCurl) {
|
496 |
+
$r = $this->sendPayloadCURL(
|
497 |
+
$req,
|
498 |
+
$this->server,
|
499 |
+
$this->port,
|
500 |
+
$timeout,
|
501 |
+
$this->username,
|
502 |
+
$this->password,
|
503 |
+
$this->authtype,
|
504 |
+
$this->cert,
|
505 |
+
$this->certpass,
|
506 |
+
$this->cacert,
|
507 |
+
$this->cacertdir,
|
508 |
+
$this->proxy,
|
509 |
+
$this->proxyport,
|
510 |
+
$this->proxy_user,
|
511 |
+
$this->proxy_pass,
|
512 |
+
$this->proxy_authtype,
|
513 |
+
// bc
|
514 |
+
$method == 'http11' ? 'http' : $method,
|
515 |
+
$this->keepalive,
|
516 |
+
$this->key,
|
517 |
+
$this->keypass,
|
518 |
+
$this->sslversion
|
519 |
+
);
|
520 |
+
} else {
|
521 |
+
// plain 'http 1.0': default to using socket
|
522 |
+
$r = $this->sendPayloadSocket(
|
523 |
+
$req,
|
524 |
+
$this->server,
|
525 |
+
$this->port,
|
526 |
+
$timeout,
|
527 |
+
$this->username,
|
528 |
+
$this->password,
|
529 |
+
$this->authtype,
|
530 |
+
$this->cert,
|
531 |
+
$this->certpass,
|
532 |
+
$this->cacert,
|
533 |
+
$this->cacertdir,
|
534 |
+
$this->proxy,
|
535 |
+
$this->proxyport,
|
536 |
+
$this->proxy_user,
|
537 |
+
$this->proxy_pass,
|
538 |
+
$this->proxy_authtype,
|
539 |
+
$method,
|
540 |
+
$this->key,
|
541 |
+
$this->keypass,
|
542 |
+
$this->sslversion
|
543 |
+
);
|
544 |
+
}
|
545 |
+
|
546 |
+
return $r;
|
547 |
+
}
|
548 |
+
|
549 |
+
/**
|
550 |
+
* @deprecated
|
551 |
+
* @param Request $req
|
552 |
+
* @param string $server
|
553 |
+
* @param int $port
|
554 |
+
* @param int $timeout
|
555 |
+
* @param string $username
|
556 |
+
* @param string $password
|
557 |
+
* @param int $authType
|
558 |
+
* @param string $proxyHost
|
559 |
+
* @param int $proxyPort
|
560 |
+
* @param string $proxyUsername
|
561 |
+
* @param string $proxyPassword
|
562 |
+
* @param int $proxyAuthType
|
563 |
+
* @param string $method
|
564 |
+
* @return Response
|
565 |
+
*/
|
566 |
+
protected function sendPayloadHTTP10($req, $server, $port, $timeout = 0, $username = '', $password = '',
|
567 |
+
$authType = 1, $proxyHost = '', $proxyPort = 0, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1,
|
568 |
+
$method='http')
|
569 |
+
{
|
570 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
571 |
+
|
572 |
+
return $this->sendPayloadSocket($req, $server, $port, $timeout, $username, $password, $authType, null, null,
|
573 |
+
null, null, $proxyHost, $proxyPort, $proxyUsername, $proxyPassword, $proxyAuthType, $method);
|
574 |
+
}
|
575 |
+
|
576 |
+
/**
|
577 |
+
* @deprecated
|
578 |
+
* @param Request $req
|
579 |
+
* @param string $server
|
580 |
+
* @param int $port
|
581 |
+
* @param int $timeout
|
582 |
+
* @param string $username
|
583 |
+
* @param string $password
|
584 |
+
* @param int $authType
|
585 |
+
* @param string $cert
|
586 |
+
* @param string $certPass
|
587 |
+
* @param string $caCert
|
588 |
+
* @param string $caCertDir
|
589 |
+
* @param string $proxyHost
|
590 |
+
* @param int $proxyPort
|
591 |
+
* @param string $proxyUsername
|
592 |
+
* @param string $proxyPassword
|
593 |
+
* @param int $proxyAuthType
|
594 |
+
* @param bool $keepAlive
|
595 |
+
* @param string $key
|
596 |
+
* @param string $keyPass
|
597 |
+
* @param int $sslVersion
|
598 |
+
* @return Response
|
599 |
+
*/
|
600 |
+
protected function sendPayloadHTTPS($req, $server, $port, $timeout = 0, $username = '', $password = '',
|
601 |
+
$authType = 1, $cert = '', $certPass = '', $caCert = '', $caCertDir = '', $proxyHost = '', $proxyPort = 0,
|
602 |
+
$proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1, $keepAlive = false, $key = '', $keyPass = '',
|
603 |
+
$sslVersion = 0)
|
604 |
+
{
|
605 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
606 |
+
|
607 |
+
return $this->sendPayloadCURL($req, $server, $port, $timeout, $username,
|
608 |
+
$password, $authType, $cert, $certPass, $caCert, $caCertDir, $proxyHost, $proxyPort,
|
609 |
+
$proxyUsername, $proxyPassword, $proxyAuthType, 'https', $keepAlive, $key, $keyPass, $sslVersion);
|
610 |
+
}
|
611 |
+
|
612 |
+
/**
|
613 |
+
* @param Request $req
|
614 |
+
* @param string $server
|
615 |
+
* @param int $port
|
616 |
+
* @param int $timeout
|
617 |
+
* @param string $username
|
618 |
+
* @param string $password
|
619 |
+
* @param int $authType only value supported is 1
|
620 |
+
* @param string $cert
|
621 |
+
* @param string $certPass
|
622 |
+
* @param string $caCert
|
623 |
+
* @param string $caCertDir
|
624 |
+
* @param string $proxyHost
|
625 |
+
* @param int $proxyPort
|
626 |
+
* @param string $proxyUsername
|
627 |
+
* @param string $proxyPassword
|
628 |
+
* @param int $proxyAuthType only value supported is 1
|
629 |
+
* @param string $method 'http' (synonym for 'http10'), 'http10' or 'https'
|
630 |
+
* @param string $key
|
631 |
+
* @param string $keyPass @todo not implemented yet.
|
632 |
+
* @param int $sslVersion @todo not implemented yet. See http://php.net/manual/en/migration56.openssl.php
|
633 |
+
* @return Response
|
634 |
+
*/
|
635 |
+
protected function sendPayloadSocket($req, $server, $port, $timeout = 0, $username = '', $password = '',
|
636 |
+
$authType = 1, $cert = '', $certPass = '', $caCert = '', $caCertDir = '', $proxyHost = '', $proxyPort = 0,
|
637 |
+
$proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1, $method='http', $key = '', $keyPass = '',
|
638 |
+
$sslVersion = 0)
|
639 |
+
{
|
640 |
+
if ($port == 0) {
|
641 |
+
$port = ( $method === 'https' ) ? 443 : 80;
|
642 |
+
}
|
643 |
+
|
644 |
+
// Only create the payload if it was not created previously
|
645 |
+
if (empty($req->payload)) {
|
646 |
+
$req->createPayload($this->request_charset_encoding);
|
647 |
+
}
|
648 |
+
|
649 |
+
$payload = $req->payload;
|
650 |
+
// Deflate request body and set appropriate request headers
|
651 |
+
$encodingHdr = '';
|
652 |
+
if (function_exists('gzdeflate') && ($this->request_compression == 'gzip' || $this->request_compression == 'deflate')) {
|
653 |
+
if ($this->request_compression == 'gzip') {
|
654 |
+
$a = @gzencode($payload);
|
655 |
+
if ($a) {
|
656 |
+
$payload = $a;
|
657 |
+
$encodingHdr = "Content-Encoding: gzip\r\n";
|
658 |
+
}
|
659 |
+
} else {
|
660 |
+
$a = @gzcompress($payload);
|
661 |
+
if ($a) {
|
662 |
+
$payload = $a;
|
663 |
+
$encodingHdr = "Content-Encoding: deflate\r\n";
|
664 |
+
}
|
665 |
+
}
|
666 |
+
}
|
667 |
+
|
668 |
+
// thanks to Grant Rauscher <grant7@firstworld.net> for this
|
669 |
+
$credentials = '';
|
670 |
+
if ($username != '') {
|
671 |
+
$credentials = 'Authorization: Basic ' . base64_encode($username . ':' . $password) . "\r\n";
|
672 |
+
if ($authType != 1) {
|
673 |
+
error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth is supported with HTTP 1.0');
|
674 |
+
}
|
675 |
+
}
|
676 |
+
|
677 |
+
$acceptedEncoding = '';
|
678 |
+
if (is_array($this->accepted_compression) && count($this->accepted_compression)) {
|
679 |
+
$acceptedEncoding = 'Accept-Encoding: ' . implode(', ', $this->accepted_compression) . "\r\n";
|
680 |
+
}
|
681 |
+
|
682 |
+
$proxyCredentials = '';
|
683 |
+
if ($proxyHost) {
|
684 |
+
if ($proxyPort == 0) {
|
685 |
+
$proxyPort = 8080;
|
686 |
+
}
|
687 |
+
$connectServer = $proxyHost;
|
688 |
+
$connectPort = $proxyPort;
|
689 |
+
$transport = 'tcp';
|
690 |
+
$uri = 'http://' . $server . ':' . $port . $this->path;
|
691 |
+
if ($proxyUsername != '') {
|
692 |
+
if ($proxyAuthType != 1) {
|
693 |
+
error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth to proxy is supported with HTTP 1.0');
|
694 |
+
}
|
695 |
+
$proxyCredentials = 'Proxy-Authorization: Basic ' . base64_encode($proxyUsername . ':' . $proxyPassword) . "\r\n";
|
696 |
+
}
|
697 |
+
} else {
|
698 |
+
$connectServer = $server;
|
699 |
+
$connectPort = $port;
|
700 |
+
$transport = ( $method === 'https' ) ? 'tls' : 'tcp';
|
701 |
+
$uri = $this->path;
|
702 |
+
}
|
703 |
+
|
704 |
+
// Cookie generation, as per rfc2965 (version 1 cookies) or
|
705 |
+
// netscape's rules (version 0 cookies)
|
706 |
+
$cookieHeader = '';
|
707 |
+
if (count($this->cookies)) {
|
708 |
+
$version = '';
|
709 |
+
foreach ($this->cookies as $name => $cookie) {
|
710 |
+
if ($cookie['version']) {
|
711 |
+
$version = ' $Version="' . $cookie['version'] . '";';
|
712 |
+
$cookieHeader .= ' ' . $name . '="' . $cookie['value'] . '";';
|
713 |
+
if ($cookie['path']) {
|
714 |
+
$cookieHeader .= ' $Path="' . $cookie['path'] . '";';
|
715 |
+
}
|
716 |
+
if ($cookie['domain']) {
|
717 |
+
$cookieHeader .= ' $Domain="' . $cookie['domain'] . '";';
|
718 |
+
}
|
719 |
+
if ($cookie['port']) {
|
720 |
+
$cookieHeader .= ' $Port="' . $cookie['port'] . '";';
|
721 |
+
}
|
722 |
+
} else {
|
723 |
+
$cookieHeader .= ' ' . $name . '=' . $cookie['value'] . ";";
|
724 |
+
}
|
725 |
+
}
|
726 |
+
$cookieHeader = 'Cookie:' . $version . substr($cookieHeader, 0, -1) . "\r\n";
|
727 |
+
}
|
728 |
+
|
729 |
+
// omit port if default
|
730 |
+
if (($port == 80 && in_array($method, array('http', 'http10'))) || ($port == 443 && $method == 'https')) {
|
731 |
+
$port = '';
|
732 |
+
} else {
|
733 |
+
$port = ':' . $port;
|
734 |
+
}
|
735 |
+
|
736 |
+
$op = 'POST ' . $uri . " HTTP/1.0\r\n" .
|
737 |
+
'User-Agent: ' . $this->user_agent . "\r\n" .
|
738 |
+
'Host: ' . $server . $port . "\r\n" .
|
739 |
+
$credentials .
|
740 |
+
$proxyCredentials .
|
741 |
+
$acceptedEncoding .
|
742 |
+
$encodingHdr .
|
743 |
+
'Accept-Charset: ' . implode(',', $this->accepted_charset_encodings) . "\r\n" .
|
744 |
+
$cookieHeader .
|
745 |
+
'Content-Type: ' . $req->content_type . "\r\nContent-Length: " .
|
746 |
+
strlen($payload) . "\r\n\r\n" .
|
747 |
+
$payload;
|
748 |
+
|
749 |
+
if ($this->debug > 1) {
|
750 |
+
Logger::instance()->debugMessage("---SENDING---\n$op\n---END---");
|
751 |
+
}
|
752 |
+
|
753 |
+
$contextOptions = array();
|
754 |
+
if ($method == 'https') {
|
755 |
+
if ($cert != '') {
|
756 |
+
$contextOptions['ssl']['local_cert'] = $cert;
|
757 |
+
if ($certPass != '') {
|
758 |
+
$contextOptions['ssl']['passphrase'] = $certPass;
|
759 |
+
}
|
760 |
+
}
|
761 |
+
if ($caCert != '') {
|
762 |
+
$contextOptions['ssl']['cafile'] = $caCert;
|
763 |
+
}
|
764 |
+
if ($caCertDir != '') {
|
765 |
+
$contextOptions['ssl']['capath'] = $caCertDir;
|
766 |
+
}
|
767 |
+
if ($key != '') {
|
768 |
+
$contextOptions['ssl']['local_pk'] = $key;
|
769 |
+
}
|
770 |
+
$contextOptions['ssl']['verify_peer'] = $this->verifypeer;
|
771 |
+
$contextOptions['ssl']['verify_peer_name'] = $this->verifypeer;
|
772 |
+
}
|
773 |
+
$context = stream_context_create($contextOptions);
|
774 |
+
|
775 |
+
if ($timeout <= 0) {
|
776 |
+
$connectTimeout = ini_get('default_socket_timeout');
|
777 |
+
} else {
|
778 |
+
$connectTimeout = $timeout;
|
779 |
+
}
|
780 |
+
|
781 |
+
$this->errno = 0;
|
782 |
+
$this->errstr = '';
|
783 |
+
|
784 |
+
$fp = @stream_socket_client("$transport://$connectServer:$connectPort", $this->errno, $this->errstr, $connectTimeout,
|
785 |
+
STREAM_CLIENT_CONNECT, $context);
|
786 |
+
if ($fp) {
|
787 |
+
if ($timeout > 0) {
|
788 |
+
stream_set_timeout($fp, $timeout);
|
789 |
+
}
|
790 |
+
} else {
|
791 |
+
if ($this->errstr == '') {
|
792 |
+
$err = error_get_last();
|
793 |
+
$this->errstr = $err['message'];
|
794 |
+
}
|
795 |
+
$this->errstr = 'Connect error: ' . $this->errstr;
|
796 |
+
$r = new Response(0, PhpXmlRpc::$xmlrpcerr['http_error'], $this->errstr . ' (' . $this->errno . ')');
|
797 |
+
|
798 |
+
return $r;
|
799 |
+
}
|
800 |
+
|
801 |
+
if (!fputs($fp, $op, strlen($op))) {
|
802 |
+
fclose($fp);
|
803 |
+
$this->errstr = 'Write error';
|
804 |
+
$r = new Response(0, PhpXmlRpc::$xmlrpcerr['http_error'], $this->errstr);
|
805 |
+
|
806 |
+
return $r;
|
807 |
+
}
|
808 |
+
|
809 |
+
// G. Giunta 2005/10/24: close socket before parsing.
|
810 |
+
// should yield slightly better execution times, and make easier recursive calls (e.g. to follow http redirects)
|
811 |
+
$ipd = '';
|
812 |
+
do {
|
813 |
+
// shall we check for $data === FALSE?
|
814 |
+
// as per the manual, it signals an error
|
815 |
+
$ipd .= fread($fp, 32768);
|
816 |
+
} while (!feof($fp));
|
817 |
+
fclose($fp);
|
818 |
+
|
819 |
+
$r = $req->parseResponse($ipd, false, $this->return_type);
|
820 |
+
|
821 |
+
return $r;
|
822 |
+
}
|
823 |
+
|
824 |
+
/**
|
825 |
+
* Contributed by Justin Miller <justin@voxel.net>
|
826 |
+
* Requires curl to be built into PHP
|
827 |
+
* NB: CURL versions before 7.11.10 cannot use proxy to talk to https servers!
|
828 |
+
*
|
829 |
+
* @param Request $req
|
830 |
+
* @param string $server
|
831 |
+
* @param int $port
|
832 |
+
* @param int $timeout
|
833 |
+
* @param string $username
|
834 |
+
* @param string $password
|
835 |
+
* @param int $authType
|
836 |
+
* @param string $cert
|
837 |
+
* @param string $certPass
|
838 |
+
* @param string $caCert
|
839 |
+
* @param string $caCertDir
|
840 |
+
* @param string $proxyHost
|
841 |
+
* @param int $proxyPort
|
842 |
+
* @param string $proxyUsername
|
843 |
+
* @param string $proxyPassword
|
844 |
+
* @param int $proxyAuthType
|
845 |
+
* @param string $method 'http' (let curl decide), 'http10', 'http11' or 'https'
|
846 |
+
* @param bool $keepAlive
|
847 |
+
* @param string $key
|
848 |
+
* @param string $keyPass
|
849 |
+
* @param int $sslVersion
|
850 |
+
* @return Response
|
851 |
+
*/
|
852 |
+
protected function sendPayloadCURL($req, $server, $port, $timeout = 0, $username = '', $password = '',
|
853 |
+
$authType = 1, $cert = '', $certPass = '', $caCert = '', $caCertDir = '', $proxyHost = '', $proxyPort = 0,
|
854 |
+
$proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1, $method = 'https', $keepAlive = false, $key = '',
|
855 |
+
$keyPass = '', $sslVersion = 0)
|
856 |
+
{
|
857 |
+
if (!function_exists('curl_init')) {
|
858 |
+
$this->errstr = 'CURL unavailable on this install';
|
859 |
+
return new Response(0, PhpXmlRpc::$xmlrpcerr['no_curl'], PhpXmlRpc::$xmlrpcstr['no_curl']);
|
860 |
+
}
|
861 |
+
if ($method == 'https') {
|
862 |
+
if (($info = curl_version()) &&
|
863 |
+
((is_string($info) && strpos($info, 'OpenSSL') === null) || (is_array($info) && !isset($info['ssl_version'])))
|
864 |
+
) {
|
865 |
+
$this->errstr = 'SSL unavailable on this install';
|
866 |
+
return new Response(0, PhpXmlRpc::$xmlrpcerr['no_ssl'], PhpXmlRpc::$xmlrpcstr['no_ssl']);
|
867 |
+
}
|
868 |
+
}
|
869 |
+
|
870 |
+
if ($port == 0) {
|
871 |
+
if (in_array($method, array('http', 'http10', 'http11'))) {
|
872 |
+
$port = 80;
|
873 |
+
} else {
|
874 |
+
$port = 443;
|
875 |
+
}
|
876 |
+
}
|
877 |
+
|
878 |
+
// Only create the payload if it was not created previously
|
879 |
+
if (empty($req->payload)) {
|
880 |
+
$req->createPayload($this->request_charset_encoding);
|
881 |
+
}
|
882 |
+
|
883 |
+
// Deflate request body and set appropriate request headers
|
884 |
+
$payload = $req->payload;
|
885 |
+
if (function_exists('gzdeflate') && ($this->request_compression == 'gzip' || $this->request_compression == 'deflate')) {
|
886 |
+
if ($this->request_compression == 'gzip') {
|
887 |
+
$a = @gzencode($payload);
|
888 |
+
if ($a) {
|
889 |
+
$payload = $a;
|
890 |
+
$encodingHdr = 'Content-Encoding: gzip';
|
891 |
+
}
|
892 |
+
} else {
|
893 |
+
$a = @gzcompress($payload);
|
894 |
+
if ($a) {
|
895 |
+
$payload = $a;
|
896 |
+
$encodingHdr = 'Content-Encoding: deflate';
|
897 |
+
}
|
898 |
+
}
|
899 |
+
} else {
|
900 |
+
$encodingHdr = '';
|
901 |
+
}
|
902 |
+
|
903 |
+
if ($this->debug > 1) {
|
904 |
+
Logger::instance()->debugMessage("---SENDING---\n$payload\n---END---");
|
905 |
+
}
|
906 |
+
|
907 |
+
if (!$keepAlive || !$this->xmlrpc_curl_handle) {
|
908 |
+
if ($method == 'http11' || $method == 'http10') {
|
909 |
+
$protocol = 'http';
|
910 |
+
} else {
|
911 |
+
$protocol = $method;
|
912 |
+
}
|
913 |
+
$curl = curl_init($protocol . '://' . $server . ':' . $port . $this->path);
|
914 |
+
if ($keepAlive) {
|
915 |
+
$this->xmlrpc_curl_handle = $curl;
|
916 |
+
}
|
917 |
+
} else {
|
918 |
+
$curl = $this->xmlrpc_curl_handle;
|
919 |
+
}
|
920 |
+
|
921 |
+
// results into variable
|
922 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
923 |
+
|
924 |
+
if ($this->debug > 1) {
|
925 |
+
curl_setopt($curl, CURLOPT_VERBOSE, true);
|
926 |
+
/// @todo allow callers to redirect curlopt_stderr to some stream which can be buffered
|
927 |
+
}
|
928 |
+
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
|
929 |
+
// required for XMLRPC: post the data
|
930 |
+
curl_setopt($curl, CURLOPT_POST, 1);
|
931 |
+
// the data
|
932 |
+
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
|
933 |
+
|
934 |
+
// return the header too
|
935 |
+
curl_setopt($curl, CURLOPT_HEADER, 1);
|
936 |
+
|
937 |
+
// NB: if we set an empty string, CURL will add http header indicating
|
938 |
+
// ALL methods it is supporting. This is possibly a better option than
|
939 |
+
// letting the user tell what curl can / cannot do...
|
940 |
+
if (is_array($this->accepted_compression) && count($this->accepted_compression)) {
|
941 |
+
//curl_setopt($curl, CURLOPT_ENCODING, implode(',', $this->accepted_compression));
|
942 |
+
// empty string means 'any supported by CURL' (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
|
943 |
+
if (count($this->accepted_compression) == 1) {
|
944 |
+
curl_setopt($curl, CURLOPT_ENCODING, $this->accepted_compression[0]);
|
945 |
+
} else {
|
946 |
+
curl_setopt($curl, CURLOPT_ENCODING, '');
|
947 |
+
}
|
948 |
+
}
|
949 |
+
// extra headers
|
950 |
+
$headers = array('Content-Type: ' . $req->content_type, 'Accept-Charset: ' . implode(',', $this->accepted_charset_encodings));
|
951 |
+
// if no keepalive is wanted, let the server know it in advance
|
952 |
+
if (!$keepAlive) {
|
953 |
+
$headers[] = 'Connection: close';
|
954 |
+
}
|
955 |
+
// request compression header
|
956 |
+
if ($encodingHdr) {
|
957 |
+
$headers[] = $encodingHdr;
|
958 |
+
}
|
959 |
+
|
960 |
+
// Fix the HTTP/1.1 417 Expectation Failed Bug (curl by default adds a 'Expect: 100-continue' header when POST
|
961 |
+
// size exceeds 1025 bytes, apparently)
|
962 |
+
$headers[] = 'Expect:';
|
963 |
+
|
964 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
965 |
+
// timeout is borked
|
966 |
+
if ($timeout) {
|
967 |
+
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout == 1 ? 1 : $timeout - 1);
|
968 |
+
}
|
969 |
+
|
970 |
+
if ($method == 'http10') {
|
971 |
+
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
|
972 |
+
} elseif ($method == 'http11') {
|
973 |
+
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
974 |
+
}
|
975 |
+
|
976 |
+
if ($username && $password) {
|
977 |
+
curl_setopt($curl, CURLOPT_USERPWD, $username . ':' . $password);
|
978 |
+
if (defined('CURLOPT_HTTPAUTH')) {
|
979 |
+
curl_setopt($curl, CURLOPT_HTTPAUTH, $authType);
|
980 |
+
} elseif ($authType != 1) {
|
981 |
+
error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth is supported by the current PHP/curl install');
|
982 |
+
}
|
983 |
+
}
|
984 |
+
|
985 |
+
if ($method == 'https') {
|
986 |
+
// set cert file
|
987 |
+
if ($cert) {
|
988 |
+
curl_setopt($curl, CURLOPT_SSLCERT, $cert);
|
989 |
+
}
|
990 |
+
// set cert password
|
991 |
+
if ($certPass) {
|
992 |
+
curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $certPass);
|
993 |
+
}
|
994 |
+
// whether to verify remote host's cert
|
995 |
+
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verifypeer);
|
996 |
+
// set ca certificates file/dir
|
997 |
+
if ($caCert) {
|
998 |
+
curl_setopt($curl, CURLOPT_CAINFO, $caCert);
|
999 |
+
}
|
1000 |
+
if ($caCertDir) {
|
1001 |
+
curl_setopt($curl, CURLOPT_CAPATH, $caCertDir);
|
1002 |
+
}
|
1003 |
+
// set key file (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
|
1004 |
+
if ($key) {
|
1005 |
+
curl_setopt($curl, CURLOPT_SSLKEY, $key);
|
1006 |
+
}
|
1007 |
+
// set key password (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
|
1008 |
+
if ($keyPass) {
|
1009 |
+
curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $keyPass);
|
1010 |
+
}
|
1011 |
+
// whether to verify cert's common name (CN); 0 for no, 1 to verify that it exists, and 2 to verify that it matches the hostname used
|
1012 |
+
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $this->verifyhost);
|
1013 |
+
// allow usage of different SSL versions
|
1014 |
+
curl_setopt($curl, CURLOPT_SSLVERSION, $sslVersion);
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
// proxy info
|
1018 |
+
if ($proxyHost) {
|
1019 |
+
if ($proxyPort == 0) {
|
1020 |
+
$proxyPort = 8080; // NB: even for HTTPS, local connection is on port 8080
|
1021 |
+
}
|
1022 |
+
curl_setopt($curl, CURLOPT_PROXY, $proxyHost . ':' . $proxyPort);
|
1023 |
+
if ($proxyUsername) {
|
1024 |
+
curl_setopt($curl, CURLOPT_PROXYUSERPWD, $proxyUsername . ':' . $proxyPassword);
|
1025 |
+
if (defined('CURLOPT_PROXYAUTH')) {
|
1026 |
+
curl_setopt($curl, CURLOPT_PROXYAUTH, $proxyAuthType);
|
1027 |
+
} elseif ($proxyAuthType != 1) {
|
1028 |
+
error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth to proxy is supported by the current PHP/curl install');
|
1029 |
+
}
|
1030 |
+
}
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
// NB: should we build cookie http headers by hand rather than let CURL do it?
|
1034 |
+
// the following code does not honour 'expires', 'path' and 'domain' cookie attributes
|
1035 |
+
// set to client obj the the user...
|
1036 |
+
if (count($this->cookies)) {
|
1037 |
+
$cookieHeader = '';
|
1038 |
+
foreach ($this->cookies as $name => $cookie) {
|
1039 |
+
$cookieHeader .= $name . '=' . $cookie['value'] . '; ';
|
1040 |
+
}
|
1041 |
+
curl_setopt($curl, CURLOPT_COOKIE, substr($cookieHeader, 0, -2));
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
foreach ($this->extracurlopts as $opt => $val) {
|
1045 |
+
curl_setopt($curl, $opt, $val);
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
$result = curl_exec($curl);
|
1049 |
+
|
1050 |
+
if ($this->debug > 1) {
|
1051 |
+
$message = "---CURL INFO---\n";
|
1052 |
+
foreach (curl_getinfo($curl) as $name => $val) {
|
1053 |
+
if (is_array($val)) {
|
1054 |
+
$val = implode("\n", $val);
|
1055 |
+
}
|
1056 |
+
$message .= $name . ': ' . $val . "\n";
|
1057 |
+
}
|
1058 |
+
$message .= '---END---';
|
1059 |
+
Logger::instance()->debugMessage($message);
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
if (!$result) {
|
1063 |
+
/// @todo we should use a better check here - what if we get back '' or '0'?
|
1064 |
+
|
1065 |
+
$this->errstr = 'no response';
|
1066 |
+
$resp = new Response(0, PhpXmlRpc::$xmlrpcerr['curl_fail'], PhpXmlRpc::$xmlrpcstr['curl_fail'] . ': ' . curl_error($curl));
|
1067 |
+
curl_close($curl);
|
1068 |
+
if ($keepAlive) {
|
1069 |
+
$this->xmlrpc_curl_handle = null;
|
1070 |
+
}
|
1071 |
+
} else {
|
1072 |
+
if (!$keepAlive) {
|
1073 |
+
curl_close($curl);
|
1074 |
+
}
|
1075 |
+
$resp = $req->parseResponse($result, true, $this->return_type);
|
1076 |
+
// if we got back a 302, we can not reuse the curl handle for later calls
|
1077 |
+
if ($resp->faultCode() == PhpXmlRpc::$xmlrpcerr['http_error'] && $keepAlive) {
|
1078 |
+
curl_close($curl);
|
1079 |
+
$this->xmlrpc_curl_handle = null;
|
1080 |
+
}
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
return $resp;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
/**
|
1087 |
+
* Send an array of requests and return an array of responses.
|
1088 |
+
*
|
1089 |
+
* Unless $this->no_multicall has been set to true, it will try first to use one single xmlrpc call to server method
|
1090 |
+
* system.multicall, and revert to sending many successive calls in case of failure.
|
1091 |
+
* This failure is also stored in $this->no_multicall for subsequent calls.
|
1092 |
+
* Unfortunately, there is no server error code universally used to denote the fact that multicall is unsupported,
|
1093 |
+
* so there is no way to reliably distinguish between that and a temporary failure.
|
1094 |
+
* If you are sure that server supports multicall and do not want to fallback to using many single calls, set the
|
1095 |
+
* fourth parameter to FALSE.
|
1096 |
+
*
|
1097 |
+
* NB: trying to shoehorn extra functionality into existing syntax has resulted
|
1098 |
+
* in pretty much convoluted code...
|
1099 |
+
*
|
1100 |
+
* @param Request[] $reqs an array of Request objects
|
1101 |
+
* @param integer $timeout connection timeout (in seconds). See the details in the docs for the send() method
|
1102 |
+
* @param string $method the http protocol variant to be used. See the details in the docs for the send() method
|
1103 |
+
* @param boolean fallback When true, upon receiving an error during multicall, multiple single calls will be
|
1104 |
+
* attempted
|
1105 |
+
*
|
1106 |
+
* @return Response[]
|
1107 |
+
*/
|
1108 |
+
public function multicall($reqs, $timeout = 0, $method = '', $fallback = true)
|
1109 |
+
{
|
1110 |
+
if ($method == '') {
|
1111 |
+
$method = $this->method;
|
1112 |
+
}
|
1113 |
+
if (!$this->no_multicall) {
|
1114 |
+
$results = $this->_try_multicall($reqs, $timeout, $method);
|
1115 |
+
if (is_array($results)) {
|
1116 |
+
// System.multicall succeeded
|
1117 |
+
return $results;
|
1118 |
+
} else {
|
1119 |
+
// either system.multicall is unsupported by server,
|
1120 |
+
// or call failed for some other reason.
|
1121 |
+
if ($fallback) {
|
1122 |
+
// Don't try it next time...
|
1123 |
+
$this->no_multicall = true;
|
1124 |
+
} else {
|
1125 |
+
if (is_a($results, '\PhpXmlRpc\Response')) {
|
1126 |
+
$result = $results;
|
1127 |
+
} else {
|
1128 |
+
$result = new Response(0, PhpXmlRpc::$xmlrpcerr['multicall_error'], PhpXmlRpc::$xmlrpcstr['multicall_error']);
|
1129 |
+
}
|
1130 |
+
}
|
1131 |
+
}
|
1132 |
+
} else {
|
1133 |
+
// override fallback, in case careless user tries to do two
|
1134 |
+
// opposite things at the same time
|
1135 |
+
$fallback = true;
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
$results = array();
|
1139 |
+
if ($fallback) {
|
1140 |
+
// system.multicall is (probably) unsupported by server:
|
1141 |
+
// emulate multicall via multiple requests
|
1142 |
+
foreach ($reqs as $req) {
|
1143 |
+
$results[] = $this->send($req, $timeout, $method);
|
1144 |
+
}
|
1145 |
+
} else {
|
1146 |
+
// user does NOT want to fallback on many single calls:
|
1147 |
+
// since we should always return an array of responses,
|
1148 |
+
// return an array with the same error repeated n times
|
1149 |
+
foreach ($reqs as $req) {
|
1150 |
+
$results[] = $result;
|
1151 |
+
}
|
1152 |
+
}
|
1153 |
+
|
1154 |
+
return $results;
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
/**
|
1158 |
+
* Attempt to boxcar $reqs via system.multicall.
|
1159 |
+
*
|
1160 |
+
* Returns either an array of Response, a single error Response or false (when received response does not respect
|
1161 |
+
* valid multicall syntax).
|
1162 |
+
*
|
1163 |
+
* @param Request[] $reqs
|
1164 |
+
* @param int $timeout
|
1165 |
+
* @param string $method
|
1166 |
+
* @return Response[]|bool|mixed|Response
|
1167 |
+
*/
|
1168 |
+
private function _try_multicall($reqs, $timeout, $method)
|
1169 |
+
{
|
1170 |
+
// Construct multicall request
|
1171 |
+
$calls = array();
|
1172 |
+
foreach ($reqs as $req) {
|
1173 |
+
$call['methodName'] = new Value($req->method(), 'string');
|
1174 |
+
$numParams = $req->getNumParams();
|
1175 |
+
$params = array();
|
1176 |
+
for ($i = 0; $i < $numParams; $i++) {
|
1177 |
+
$params[$i] = $req->getParam($i);
|
1178 |
+
}
|
1179 |
+
$call['params'] = new Value($params, 'array');
|
1180 |
+
$calls[] = new Value($call, 'struct');
|
1181 |
+
}
|
1182 |
+
$multiCall = new Request('system.multicall');
|
1183 |
+
$multiCall->addParam(new Value($calls, 'array'));
|
1184 |
+
|
1185 |
+
// Attempt RPC call
|
1186 |
+
$result = $this->send($multiCall, $timeout, $method);
|
1187 |
+
|
1188 |
+
if ($result->faultCode() != 0) {
|
1189 |
+
// call to system.multicall failed
|
1190 |
+
return $result;
|
1191 |
+
}
|
1192 |
+
|
1193 |
+
// Unpack responses.
|
1194 |
+
$rets = $result->value();
|
1195 |
+
|
1196 |
+
if ($this->return_type == 'xml') {
|
1197 |
+
return $rets;
|
1198 |
+
} elseif ($this->return_type == 'phpvals') {
|
1199 |
+
/// @todo test this code branch...
|
1200 |
+
$rets = $result->value();
|
1201 |
+
if (!is_array($rets)) {
|
1202 |
+
return false; // bad return type from system.multicall
|
1203 |
+
}
|
1204 |
+
$numRets = count($rets);
|
1205 |
+
if ($numRets != count($reqs)) {
|
1206 |
+
return false; // wrong number of return values.
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
$response = array();
|
1210 |
+
for ($i = 0; $i < $numRets; $i++) {
|
1211 |
+
$val = $rets[$i];
|
1212 |
+
if (!is_array($val)) {
|
1213 |
+
return false;
|
1214 |
+
}
|
1215 |
+
switch (count($val)) {
|
1216 |
+
case 1:
|
1217 |
+
if (!isset($val[0])) {
|
1218 |
+
return false; // Bad value
|
1219 |
+
}
|
1220 |
+
// Normal return value
|
1221 |
+
$response[$i] = new Response($val[0], 0, '', 'phpvals');
|
1222 |
+
break;
|
1223 |
+
case 2:
|
1224 |
+
/// @todo remove usage of @: it is apparently quite slow
|
1225 |
+
$code = @$val['faultCode'];
|
1226 |
+
if (!is_int($code)) {
|
1227 |
+
return false;
|
1228 |
+
}
|
1229 |
+
$str = @$val['faultString'];
|
1230 |
+
if (!is_string($str)) {
|
1231 |
+
return false;
|
1232 |
+
}
|
1233 |
+
$response[$i] = new Response(0, $code, $str);
|
1234 |
+
break;
|
1235 |
+
default:
|
1236 |
+
return false;
|
1237 |
+
}
|
1238 |
+
}
|
1239 |
+
|
1240 |
+
return $response;
|
1241 |
+
} else {
|
1242 |
+
// return type == 'xmlrpcvals'
|
1243 |
+
|
1244 |
+
$rets = $result->value();
|
1245 |
+
if ($rets->kindOf() != 'array') {
|
1246 |
+
return false; // bad return type from system.multicall
|
1247 |
+
}
|
1248 |
+
$numRets = $rets->count();
|
1249 |
+
if ($numRets != count($reqs)) {
|
1250 |
+
return false; // wrong number of return values.
|
1251 |
+
}
|
1252 |
+
|
1253 |
+
$response = array();
|
1254 |
+
foreach($rets as $val) {
|
1255 |
+
switch ($val->kindOf()) {
|
1256 |
+
case 'array':
|
1257 |
+
if ($val->count() != 1) {
|
1258 |
+
return false; // Bad value
|
1259 |
+
}
|
1260 |
+
// Normal return value
|
1261 |
+
$response[] = new Response($val[0]);
|
1262 |
+
break;
|
1263 |
+
case 'struct':
|
1264 |
+
$code = $val['faultCode'];
|
1265 |
+
/** @var Value $code */
|
1266 |
+
if ($code->kindOf() != 'scalar' || $code->scalartyp() != 'int') {
|
1267 |
+
return false;
|
1268 |
+
}
|
1269 |
+
$str = $val['faultString'];
|
1270 |
+
/** @var Value $str */
|
1271 |
+
if ($str->kindOf() != 'scalar' || $str->scalartyp() != 'string') {
|
1272 |
+
return false;
|
1273 |
+
}
|
1274 |
+
$response[] = new Response(0, $code->scalarval(), $str->scalarval());
|
1275 |
+
break;
|
1276 |
+
default:
|
1277 |
+
return false;
|
1278 |
+
}
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
return $response;
|
1282 |
+
}
|
1283 |
+
}
|
1284 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Encoder.php
ADDED
@@ -0,0 +1,321 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
use PhpXmlRpc\Helper\XMLParser;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* A helper class to easily convert between Value objects and php native values
|
9 |
+
* @todo implement an interface
|
10 |
+
*/
|
11 |
+
class Encoder
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* Takes an xmlrpc value in object format and translates it into native PHP types.
|
15 |
+
*
|
16 |
+
* Works with xmlrpc requests objects as input, too.
|
17 |
+
*
|
18 |
+
* Given proper options parameter, can rebuild generic php object instances
|
19 |
+
* (provided those have been encoded to xmlrpc format using a corresponding
|
20 |
+
* option in php_xmlrpc_encode())
|
21 |
+
* PLEASE NOTE that rebuilding php objects involves calling their constructor function.
|
22 |
+
* This means that the remote communication end can decide which php code will
|
23 |
+
* get executed on your server, leaving the door possibly open to 'php-injection'
|
24 |
+
* style of attacks (provided you have some classes defined on your server that
|
25 |
+
* might wreak havoc if instances are built outside an appropriate context).
|
26 |
+
* Make sure you trust the remote server/client before eanbling this!
|
27 |
+
*
|
28 |
+
* @author Dan Libby (dan@libby.com)
|
29 |
+
*
|
30 |
+
* @param Value|Request $xmlrpcVal
|
31 |
+
* @param array $options if 'decode_php_objs' is set in the options array, xmlrpc structs can be decoded into php objects; if 'dates_as_objects' is set xmlrpc datetimes are decoded as php DateTime objects (standard is
|
32 |
+
*
|
33 |
+
* @return mixed
|
34 |
+
*/
|
35 |
+
public function decode($xmlrpcVal, $options = array())
|
36 |
+
{
|
37 |
+
switch ($xmlrpcVal->kindOf()) {
|
38 |
+
case 'scalar':
|
39 |
+
if (in_array('extension_api', $options)) {
|
40 |
+
$val = reset($xmlrpcVal->me);
|
41 |
+
$typ = key($xmlrpcVal->me);
|
42 |
+
switch ($typ) {
|
43 |
+
case 'dateTime.iso8601':
|
44 |
+
$xmlrpcVal->scalar = $val;
|
45 |
+
$xmlrpcVal->type = 'datetime';
|
46 |
+
$xmlrpcVal->timestamp = \PhpXmlRpc\Helper\Date::iso8601Decode($val);
|
47 |
+
|
48 |
+
return $xmlrpcVal;
|
49 |
+
case 'base64':
|
50 |
+
$xmlrpcVal->scalar = $val;
|
51 |
+
$xmlrpcVal->type = $typ;
|
52 |
+
|
53 |
+
return $xmlrpcVal;
|
54 |
+
default:
|
55 |
+
return $xmlrpcVal->scalarval();
|
56 |
+
}
|
57 |
+
}
|
58 |
+
if (in_array('dates_as_objects', $options) && $xmlrpcVal->scalartyp() == 'dateTime.iso8601') {
|
59 |
+
// we return a Datetime object instead of a string
|
60 |
+
// since now the constructor of xmlrpc value accepts safely strings, ints and datetimes,
|
61 |
+
// we cater to all 3 cases here
|
62 |
+
$out = $xmlrpcVal->scalarval();
|
63 |
+
if (is_string($out)) {
|
64 |
+
$out = strtotime($out);
|
65 |
+
}
|
66 |
+
if (is_int($out)) {
|
67 |
+
$result = new \DateTime();
|
68 |
+
$result->setTimestamp($out);
|
69 |
+
|
70 |
+
return $result;
|
71 |
+
} elseif (is_a($out, 'DateTimeInterface')) {
|
72 |
+
return $out;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
return $xmlrpcVal->scalarval();
|
77 |
+
case 'array':
|
78 |
+
$arr = array();
|
79 |
+
foreach($xmlrpcVal as $value) {
|
80 |
+
$arr[] = $this->decode($value, $options);
|
81 |
+
}
|
82 |
+
|
83 |
+
return $arr;
|
84 |
+
case 'struct':
|
85 |
+
// If user said so, try to rebuild php objects for specific struct vals.
|
86 |
+
/// @todo should we raise a warning for class not found?
|
87 |
+
// shall we check for proper subclass of xmlrpc value instead of
|
88 |
+
// presence of _php_class to detect what we can do?
|
89 |
+
if (in_array('decode_php_objs', $options) && $xmlrpcVal->_php_class != ''
|
90 |
+
&& class_exists($xmlrpcVal->_php_class)
|
91 |
+
) {
|
92 |
+
$obj = @new $xmlrpcVal->_php_class();
|
93 |
+
foreach ($xmlrpcVal as $key => $value) {
|
94 |
+
$obj->$key = $this->decode($value, $options);
|
95 |
+
}
|
96 |
+
|
97 |
+
return $obj;
|
98 |
+
} else {
|
99 |
+
$arr = array();
|
100 |
+
foreach ($xmlrpcVal as $key => $value) {
|
101 |
+
$arr[$key] = $this->decode($value, $options);
|
102 |
+
}
|
103 |
+
|
104 |
+
return $arr;
|
105 |
+
}
|
106 |
+
case 'msg':
|
107 |
+
$paramCount = $xmlrpcVal->getNumParams();
|
108 |
+
$arr = array();
|
109 |
+
for ($i = 0; $i < $paramCount; $i++) {
|
110 |
+
$arr[] = $this->decode($xmlrpcVal->getParam($i), $options);
|
111 |
+
}
|
112 |
+
|
113 |
+
return $arr;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Takes native php types and encodes them into xmlrpc PHP object format.
|
119 |
+
* It will not re-encode xmlrpc value objects.
|
120 |
+
*
|
121 |
+
* Feature creep -- could support more types via optional type argument
|
122 |
+
* (string => datetime support has been added, ??? => base64 not yet)
|
123 |
+
*
|
124 |
+
* If given a proper options parameter, php object instances will be encoded
|
125 |
+
* into 'special' xmlrpc values, that can later be decoded into php objects
|
126 |
+
* by calling php_xmlrpc_decode() with a corresponding option
|
127 |
+
*
|
128 |
+
* @author Dan Libby (dan@libby.com)
|
129 |
+
*
|
130 |
+
* @param mixed $phpVal the value to be converted into an xmlrpc value object
|
131 |
+
* @param array $options can include 'encode_php_objs', 'auto_dates', 'null_extension' or 'extension_api'
|
132 |
+
*
|
133 |
+
* @return \PhpXmlrpc\Value
|
134 |
+
*/
|
135 |
+
public function encode($phpVal, $options = array())
|
136 |
+
{
|
137 |
+
$type = gettype($phpVal);
|
138 |
+
switch ($type) {
|
139 |
+
case 'string':
|
140 |
+
if (in_array('auto_dates', $options) && preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $phpVal)) {
|
141 |
+
$xmlrpcVal = new Value($phpVal, Value::$xmlrpcDateTime);
|
142 |
+
} else {
|
143 |
+
$xmlrpcVal = new Value($phpVal, Value::$xmlrpcString);
|
144 |
+
}
|
145 |
+
break;
|
146 |
+
case 'integer':
|
147 |
+
$xmlrpcVal = new Value($phpVal, Value::$xmlrpcInt);
|
148 |
+
break;
|
149 |
+
case 'double':
|
150 |
+
$xmlrpcVal = new Value($phpVal, Value::$xmlrpcDouble);
|
151 |
+
break;
|
152 |
+
// <G_Giunta_2001-02-29>
|
153 |
+
// Add support for encoding/decoding of booleans, since they are supported in PHP
|
154 |
+
case 'boolean':
|
155 |
+
$xmlrpcVal = new Value($phpVal, Value::$xmlrpcBoolean);
|
156 |
+
break;
|
157 |
+
// </G_Giunta_2001-02-29>
|
158 |
+
case 'array':
|
159 |
+
// PHP arrays can be encoded to either xmlrpc structs or arrays,
|
160 |
+
// depending on whether they are hashes or plain 0..n integer indexed
|
161 |
+
// A shorter one-liner would be
|
162 |
+
// $tmp = array_diff(array_keys($phpVal), range(0, count($phpVal)-1));
|
163 |
+
// but execution time skyrockets!
|
164 |
+
$j = 0;
|
165 |
+
$arr = array();
|
166 |
+
$ko = false;
|
167 |
+
foreach ($phpVal as $key => $val) {
|
168 |
+
$arr[$key] = $this->encode($val, $options);
|
169 |
+
if (!$ko && $key !== $j) {
|
170 |
+
$ko = true;
|
171 |
+
}
|
172 |
+
$j++;
|
173 |
+
}
|
174 |
+
if ($ko) {
|
175 |
+
$xmlrpcVal = new Value($arr, Value::$xmlrpcStruct);
|
176 |
+
} else {
|
177 |
+
$xmlrpcVal = new Value($arr, Value::$xmlrpcArray);
|
178 |
+
}
|
179 |
+
break;
|
180 |
+
case 'object':
|
181 |
+
if (is_a($phpVal, 'PhpXmlRpc\Value')) {
|
182 |
+
$xmlrpcVal = $phpVal;
|
183 |
+
} elseif (is_a($phpVal, 'DateTimeInterface')) {
|
184 |
+
$xmlrpcVal = new Value($phpVal->format('Ymd\TH:i:s'), Value::$xmlrpcStruct);
|
185 |
+
} else {
|
186 |
+
$arr = array();
|
187 |
+
foreach($phpVal as $k => $v) {
|
188 |
+
$arr[$k] = $this->encode($v, $options);
|
189 |
+
}
|
190 |
+
$xmlrpcVal = new Value($arr, Value::$xmlrpcStruct);
|
191 |
+
if (in_array('encode_php_objs', $options)) {
|
192 |
+
// let's save original class name into xmlrpc value:
|
193 |
+
// might be useful later on...
|
194 |
+
$xmlrpcVal->_php_class = get_class($phpVal);
|
195 |
+
}
|
196 |
+
}
|
197 |
+
break;
|
198 |
+
case 'NULL':
|
199 |
+
if (in_array('extension_api', $options)) {
|
200 |
+
$xmlrpcVal = new Value('', Value::$xmlrpcString);
|
201 |
+
} elseif (in_array('null_extension', $options)) {
|
202 |
+
$xmlrpcVal = new Value('', Value::$xmlrpcNull);
|
203 |
+
} else {
|
204 |
+
$xmlrpcVal = new Value();
|
205 |
+
}
|
206 |
+
break;
|
207 |
+
case 'resource':
|
208 |
+
if (in_array('extension_api', $options)) {
|
209 |
+
$xmlrpcVal = new Value((int)$phpVal, Value::$xmlrpcInt);
|
210 |
+
} else {
|
211 |
+
$xmlrpcVal = new Value();
|
212 |
+
}
|
213 |
+
break;
|
214 |
+
// catch "user function", "unknown type"
|
215 |
+
default:
|
216 |
+
// giancarlo pinerolo <ping@alt.it>
|
217 |
+
// it has to return an empty object in case, not a boolean.
|
218 |
+
$xmlrpcVal = new Value();
|
219 |
+
break;
|
220 |
+
}
|
221 |
+
|
222 |
+
return $xmlrpcVal;
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Convert the xml representation of a method response, method request or single
|
227 |
+
* xmlrpc value into the appropriate object (a.k.a. deserialize).
|
228 |
+
*
|
229 |
+
* Q: is this a good name for this method? It does something quite different from 'decode' after all (returning objects vs returns plain php values)...
|
230 |
+
*
|
231 |
+
* @param string $xmlVal
|
232 |
+
* @param array $options
|
233 |
+
*
|
234 |
+
* @return mixed false on error, or an instance of either Value, Request or Response
|
235 |
+
*/
|
236 |
+
public function decodeXml($xmlVal, $options = array())
|
237 |
+
{
|
238 |
+
// 'guestimate' encoding
|
239 |
+
$valEncoding = XMLParser::guessEncoding('', $xmlVal);
|
240 |
+
if ($valEncoding != '') {
|
241 |
+
|
242 |
+
// Since parsing will fail if charset is not specified in the xml prologue,
|
243 |
+
// the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that...
|
244 |
+
// The following code might be better for mb_string enabled installs, but
|
245 |
+
// makes the lib about 200% slower...
|
246 |
+
//if (!is_valid_charset($valEncoding, array('UTF-8'))
|
247 |
+
if (!in_array($valEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($xmlVal)) {
|
248 |
+
if ($valEncoding == 'ISO-8859-1') {
|
249 |
+
$xmlVal = utf8_encode($xmlVal);
|
250 |
+
} else {
|
251 |
+
if (extension_loaded('mbstring')) {
|
252 |
+
$xmlVal = mb_convert_encoding($xmlVal, 'UTF-8', $valEncoding);
|
253 |
+
} else {
|
254 |
+
error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of xml text: ' . $valEncoding);
|
255 |
+
}
|
256 |
+
}
|
257 |
+
}
|
258 |
+
}
|
259 |
+
|
260 |
+
$parser = xml_parser_create();
|
261 |
+
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
|
262 |
+
// What if internal encoding is not in one of the 3 allowed?
|
263 |
+
// we use the broadest one, ie. utf8!
|
264 |
+
if (!in_array(PhpXmlRpc::$xmlrpc_internalencoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
|
265 |
+
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
|
266 |
+
} else {
|
267 |
+
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, PhpXmlRpc::$xmlrpc_internalencoding);
|
268 |
+
}
|
269 |
+
|
270 |
+
$xmlRpcParser = new XMLParser();
|
271 |
+
xml_set_object($parser, $xmlRpcParser);
|
272 |
+
|
273 |
+
xml_set_element_handler($parser, 'xmlrpc_se_any', 'xmlrpc_ee');
|
274 |
+
xml_set_character_data_handler($parser, 'xmlrpc_cd');
|
275 |
+
xml_set_default_handler($parser, 'xmlrpc_dh');
|
276 |
+
if (!xml_parse($parser, $xmlVal, 1)) {
|
277 |
+
$errstr = sprintf('XML error: %s at line %d, column %d',
|
278 |
+
xml_error_string(xml_get_error_code($parser)),
|
279 |
+
xml_get_current_line_number($parser), xml_get_current_column_number($parser));
|
280 |
+
error_log($errstr);
|
281 |
+
xml_parser_free($parser);
|
282 |
+
|
283 |
+
return false;
|
284 |
+
}
|
285 |
+
xml_parser_free($parser);
|
286 |
+
if ($xmlRpcParser->_xh['isf'] > 1) {
|
287 |
+
// test that $xmlrpc->_xh['value'] is an obj, too???
|
288 |
+
|
289 |
+
error_log($xmlRpcParser->_xh['isf_reason']);
|
290 |
+
|
291 |
+
return false;
|
292 |
+
}
|
293 |
+
switch ($xmlRpcParser->_xh['rt']) {
|
294 |
+
case 'methodresponse':
|
295 |
+
$v = $xmlRpcParser->_xh['value'];
|
296 |
+
if ($xmlRpcParser->_xh['isf'] == 1) {
|
297 |
+
/** @var Value $vc */
|
298 |
+
$vc = $v['faultCode'];
|
299 |
+
/** @var Value $vs */
|
300 |
+
$vs = $v['faultString'];
|
301 |
+
$r = new Response(0, $vc->scalarval(), $vs->scalarval());
|
302 |
+
} else {
|
303 |
+
$r = new Response($v);
|
304 |
+
}
|
305 |
+
|
306 |
+
return $r;
|
307 |
+
case 'methodcall':
|
308 |
+
$req = new Request($xmlRpcParser->_xh['method']);
|
309 |
+
for ($i = 0; $i < count($xmlRpcParser->_xh['params']); $i++) {
|
310 |
+
$req->addParam($xmlRpcParser->_xh['params'][$i]);
|
311 |
+
}
|
312 |
+
|
313 |
+
return $req;
|
314 |
+
case 'value':
|
315 |
+
return $xmlRpcParser->_xh['value'];
|
316 |
+
default:
|
317 |
+
return false;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Charset.php
ADDED
@@ -0,0 +1,275 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc\Helper;
|
4 |
+
|
5 |
+
use PhpXmlRpc\PhpXmlRpc;
|
6 |
+
|
7 |
+
class Charset
|
8 |
+
{
|
9 |
+
// tables used for transcoding different charsets into us-ascii xml
|
10 |
+
protected $xml_iso88591_Entities = array("in" => array(), "out" => array());
|
11 |
+
protected $xml_iso88591_utf8 = array("in" => array(), "out" => array());
|
12 |
+
|
13 |
+
/// @todo add to iso table the characters from cp_1252 range, i.e. 128 to 159?
|
14 |
+
/// These will NOT be present in true ISO-8859-1, but will save the unwary
|
15 |
+
/// windows user from sending junk (though no luck when receiving them...)
|
16 |
+
/*
|
17 |
+
protected $xml_cp1252_Entities = array('in' => array(), out' => array(
|
18 |
+
'€', '?', '‚', 'ƒ',
|
19 |
+
'„', '…', '†', '‡',
|
20 |
+
'ˆ', '‰', 'Š', '‹',
|
21 |
+
'Œ', '?', 'Ž', '?',
|
22 |
+
'?', '‘', '’', '“',
|
23 |
+
'”', '•', '–', '—',
|
24 |
+
'˜', '™', 'š', '›',
|
25 |
+
'œ', '?', 'ž', 'Ÿ'
|
26 |
+
));
|
27 |
+
*/
|
28 |
+
|
29 |
+
protected $charset_supersets = array(
|
30 |
+
'US-ASCII' => array('ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
|
31 |
+
'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8',
|
32 |
+
'ISO-8859-9', 'ISO-8859-10', 'ISO-8859-11', 'ISO-8859-12',
|
33 |
+
'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'UTF-8',
|
34 |
+
'EUC-JP', 'EUC-', 'EUC-KR', 'EUC-CN',),
|
35 |
+
);
|
36 |
+
|
37 |
+
protected static $instance = null;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* This class is singleton for performance reasons.
|
41 |
+
*
|
42 |
+
* @return Charset
|
43 |
+
*/
|
44 |
+
public static function instance()
|
45 |
+
{
|
46 |
+
if (self::$instance === null) {
|
47 |
+
self::$instance = new self();
|
48 |
+
}
|
49 |
+
|
50 |
+
return self::$instance;
|
51 |
+
}
|
52 |
+
|
53 |
+
private function __construct()
|
54 |
+
{
|
55 |
+
for ($i = 0; $i < 32; $i++) {
|
56 |
+
$this->xml_iso88591_Entities["in"][] = chr($i);
|
57 |
+
$this->xml_iso88591_Entities["out"][] = "&#{$i};";
|
58 |
+
}
|
59 |
+
|
60 |
+
for ($i = 160; $i < 256; $i++) {
|
61 |
+
$this->xml_iso88591_Entities["in"][] = chr($i);
|
62 |
+
$this->xml_iso88591_Entities["out"][] = "&#{$i};";
|
63 |
+
}
|
64 |
+
|
65 |
+
/*for ($i = 128; $i < 160; $i++)
|
66 |
+
{
|
67 |
+
$this->xml_cp1252_Entities['in'][] = chr($i);
|
68 |
+
}*/
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Convert a string to the correct XML representation in a target charset.
|
73 |
+
*
|
74 |
+
* To help correct communication of non-ascii chars inside strings, regardless of the charset used when sending
|
75 |
+
* requests, parsing them, sending responses and parsing responses, an option is to convert all non-ascii chars
|
76 |
+
* present in the message into their equivalent 'charset entity'. Charset entities enumerated this way are
|
77 |
+
* independent of the charset encoding used to transmit them, and all XML parsers are bound to understand them.
|
78 |
+
* Note that in the std case we are not sending a charset encoding mime type along with http headers, so we are
|
79 |
+
* bound by RFC 3023 to emit strict us-ascii.
|
80 |
+
*
|
81 |
+
* @todo do a bit of basic benchmarking (strtr vs. str_replace)
|
82 |
+
* @todo make usage of iconv() or recode_string() or mb_string() where available
|
83 |
+
*
|
84 |
+
* @param string $data
|
85 |
+
* @param string $srcEncoding
|
86 |
+
* @param string $destEncoding
|
87 |
+
*
|
88 |
+
* @return string
|
89 |
+
*/
|
90 |
+
public function encodeEntities($data, $srcEncoding = '', $destEncoding = '')
|
91 |
+
{
|
92 |
+
if ($srcEncoding == '') {
|
93 |
+
// lame, but we know no better...
|
94 |
+
$srcEncoding = PhpXmlRpc::$xmlrpc_internalencoding;
|
95 |
+
}
|
96 |
+
|
97 |
+
$conversion = strtoupper($srcEncoding . '_' . $destEncoding);
|
98 |
+
switch ($conversion) {
|
99 |
+
case 'ISO-8859-1_':
|
100 |
+
case 'ISO-8859-1_US-ASCII':
|
101 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
102 |
+
$escapedData = str_replace($this->xml_iso88591_Entities['in'], $this->xml_iso88591_Entities['out'], $escapedData);
|
103 |
+
break;
|
104 |
+
|
105 |
+
case 'ISO-8859-1_UTF-8':
|
106 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
107 |
+
$escapedData = utf8_encode($escapedData);
|
108 |
+
break;
|
109 |
+
|
110 |
+
case 'ISO-8859-1_ISO-8859-1':
|
111 |
+
case 'US-ASCII_US-ASCII':
|
112 |
+
case 'US-ASCII_UTF-8':
|
113 |
+
case 'US-ASCII_':
|
114 |
+
case 'US-ASCII_ISO-8859-1':
|
115 |
+
case 'UTF-8_UTF-8':
|
116 |
+
//case 'CP1252_CP1252':
|
117 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
118 |
+
break;
|
119 |
+
|
120 |
+
case 'UTF-8_':
|
121 |
+
case 'UTF-8_US-ASCII':
|
122 |
+
case 'UTF-8_ISO-8859-1':
|
123 |
+
// NB: this will choke on invalid UTF-8, going most likely beyond EOF
|
124 |
+
$escapedData = '';
|
125 |
+
// be kind to users creating string xmlrpc values out of different php types
|
126 |
+
$data = (string)$data;
|
127 |
+
$ns = strlen($data);
|
128 |
+
for ($nn = 0; $nn < $ns; $nn++) {
|
129 |
+
$ch = $data[$nn];
|
130 |
+
$ii = ord($ch);
|
131 |
+
// 7 bits: 0bbbbbbb (127)
|
132 |
+
if ($ii < 128) {
|
133 |
+
/// @todo shall we replace this with a (supposedly) faster str_replace?
|
134 |
+
switch ($ii) {
|
135 |
+
case 34:
|
136 |
+
$escapedData .= '"';
|
137 |
+
break;
|
138 |
+
case 38:
|
139 |
+
$escapedData .= '&';
|
140 |
+
break;
|
141 |
+
case 39:
|
142 |
+
$escapedData .= ''';
|
143 |
+
break;
|
144 |
+
case 60:
|
145 |
+
$escapedData .= '<';
|
146 |
+
break;
|
147 |
+
case 62:
|
148 |
+
$escapedData .= '>';
|
149 |
+
break;
|
150 |
+
default:
|
151 |
+
$escapedData .= $ch;
|
152 |
+
} // switch
|
153 |
+
} // 11 bits: 110bbbbb 10bbbbbb (2047)
|
154 |
+
elseif ($ii >> 5 == 6) {
|
155 |
+
$b1 = ($ii & 31);
|
156 |
+
$ii = ord($data[$nn + 1]);
|
157 |
+
$b2 = ($ii & 63);
|
158 |
+
$ii = ($b1 * 64) + $b2;
|
159 |
+
$ent = sprintf('&#%d;', $ii);
|
160 |
+
$escapedData .= $ent;
|
161 |
+
$nn += 1;
|
162 |
+
} // 16 bits: 1110bbbb 10bbbbbb 10bbbbbb
|
163 |
+
elseif ($ii >> 4 == 14) {
|
164 |
+
$b1 = ($ii & 15);
|
165 |
+
$ii = ord($data[$nn + 1]);
|
166 |
+
$b2 = ($ii & 63);
|
167 |
+
$ii = ord($data[$nn + 2]);
|
168 |
+
$b3 = ($ii & 63);
|
169 |
+
$ii = ((($b1 * 64) + $b2) * 64) + $b3;
|
170 |
+
$ent = sprintf('&#%d;', $ii);
|
171 |
+
$escapedData .= $ent;
|
172 |
+
$nn += 2;
|
173 |
+
} // 21 bits: 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
|
174 |
+
elseif ($ii >> 3 == 30) {
|
175 |
+
$b1 = ($ii & 7);
|
176 |
+
$ii = ord($data[$nn + 1]);
|
177 |
+
$b2 = ($ii & 63);
|
178 |
+
$ii = ord($data[$nn + 2]);
|
179 |
+
$b3 = ($ii & 63);
|
180 |
+
$ii = ord($data[$nn + 3]);
|
181 |
+
$b4 = ($ii & 63);
|
182 |
+
$ii = ((((($b1 * 64) + $b2) * 64) + $b3) * 64) + $b4;
|
183 |
+
$ent = sprintf('&#%d;', $ii);
|
184 |
+
$escapedData .= $ent;
|
185 |
+
$nn += 3;
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
// when converting to latin-1, do not be so eager with using entities for characters 160-255
|
190 |
+
if ($conversion == 'UTF-8_ISO-8859-1') {
|
191 |
+
$escapedData = str_replace(array_slice($this->xml_iso88591_Entities['out'], 32), array_slice($this->xml_iso88591_Entities['in'], 32), $escapedData);
|
192 |
+
}
|
193 |
+
break;
|
194 |
+
|
195 |
+
/*
|
196 |
+
case 'CP1252_':
|
197 |
+
case 'CP1252_US-ASCII':
|
198 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
199 |
+
$escapedData = str_replace($this->xml_iso88591_Entities']['in'], $this->xml_iso88591_Entities['out'], $escapedData);
|
200 |
+
$escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
|
201 |
+
break;
|
202 |
+
case 'CP1252_UTF-8':
|
203 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
204 |
+
/// @todo we could use real UTF8 chars here instead of xml entities... (note that utf_8 encode all allone will NOT convert them)
|
205 |
+
$escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
|
206 |
+
$escapedData = utf8_encode($escapedData);
|
207 |
+
break;
|
208 |
+
case 'CP1252_ISO-8859-1':
|
209 |
+
$escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&', '"', ''', '<', '>'), $data);
|
210 |
+
// we might as well replace all funky chars with a '?' here, but we are kind and leave it to the receiving application layer to decide what to do with these weird entities...
|
211 |
+
$escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
|
212 |
+
break;
|
213 |
+
*/
|
214 |
+
|
215 |
+
default:
|
216 |
+
$escapedData = '';
|
217 |
+
error_log('XML-RPC: ' . __METHOD__ . ": Converting from $srcEncoding to $destEncoding: not supported...");
|
218 |
+
}
|
219 |
+
|
220 |
+
return $escapedData;
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Checks if a given charset encoding is present in a list of encodings or
|
225 |
+
* if it is a valid subset of any encoding in the list.
|
226 |
+
*
|
227 |
+
* @param string $encoding charset to be tested
|
228 |
+
* @param string|array $validList comma separated list of valid charsets (or array of charsets)
|
229 |
+
*
|
230 |
+
* @return bool
|
231 |
+
*/
|
232 |
+
public function isValidCharset($encoding, $validList)
|
233 |
+
{
|
234 |
+
if (is_string($validList)) {
|
235 |
+
$validList = explode(',', $validList);
|
236 |
+
}
|
237 |
+
if (@in_array(strtoupper($encoding), $validList)) {
|
238 |
+
return true;
|
239 |
+
} else {
|
240 |
+
if (array_key_exists($encoding, $this->charset_supersets)) {
|
241 |
+
foreach ($validList as $allowed) {
|
242 |
+
if (in_array($allowed, $this->charset_supersets[$encoding])) {
|
243 |
+
return true;
|
244 |
+
}
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
return false;
|
249 |
+
}
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Used only for backwards compatibility
|
254 |
+
* @deprecated
|
255 |
+
*
|
256 |
+
* @param string $charset
|
257 |
+
*
|
258 |
+
* @return array
|
259 |
+
*
|
260 |
+
* @throws \Exception for unknown/unsupported charsets
|
261 |
+
*/
|
262 |
+
public function getEntities($charset)
|
263 |
+
{
|
264 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
265 |
+
|
266 |
+
switch ($charset)
|
267 |
+
{
|
268 |
+
case 'iso88591':
|
269 |
+
return $this->xml_iso88591_Entities;
|
270 |
+
default:
|
271 |
+
throw new \Exception('Unsupported charset: ' . $charset);
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Date.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc\Helper;
|
4 |
+
|
5 |
+
class Date
|
6 |
+
{
|
7 |
+
/**
|
8 |
+
* Given a timestamp, return the corresponding ISO8601 encoded string.
|
9 |
+
*
|
10 |
+
* Really, timezones ought to be supported
|
11 |
+
* but the XML-RPC spec says:
|
12 |
+
*
|
13 |
+
* "Don't assume a timezone. It should be specified by the server in its
|
14 |
+
* documentation what assumptions it makes about timezones."
|
15 |
+
*
|
16 |
+
* These routines always assume localtime unless
|
17 |
+
* $utc is set to 1, in which case UTC is assumed
|
18 |
+
* and an adjustment for locale is made when encoding
|
19 |
+
*
|
20 |
+
* @param int $timet (timestamp)
|
21 |
+
* @param int $utc (0 or 1)
|
22 |
+
*
|
23 |
+
* @return string
|
24 |
+
*/
|
25 |
+
public static function iso8601Encode($timet, $utc = 0)
|
26 |
+
{
|
27 |
+
if (!$utc) {
|
28 |
+
$t = strftime("%Y%m%dT%H:%M:%S", $timet);
|
29 |
+
} else {
|
30 |
+
if (function_exists('gmstrftime')) {
|
31 |
+
// gmstrftime doesn't exist in some versions
|
32 |
+
// of PHP
|
33 |
+
$t = gmstrftime("%Y%m%dT%H:%M:%S", $timet);
|
34 |
+
} else {
|
35 |
+
$t = strftime("%Y%m%dT%H:%M:%S", $timet - date('Z'));
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
return $t;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Given an ISO8601 date string, return a timet in the localtime, or UTC.
|
44 |
+
*
|
45 |
+
* @param string $idate
|
46 |
+
* @param int $utc either 0 or 1
|
47 |
+
*
|
48 |
+
* @return int (datetime)
|
49 |
+
*/
|
50 |
+
public static function iso8601Decode($idate, $utc = 0)
|
51 |
+
{
|
52 |
+
$t = 0;
|
53 |
+
if (preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/', $idate, $regs)) {
|
54 |
+
if ($utc) {
|
55 |
+
$t = gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
|
56 |
+
} else {
|
57 |
+
$t = mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
return $t;
|
62 |
+
}
|
63 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Http.php
ADDED
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc\Helper;
|
4 |
+
|
5 |
+
use PhpXmlRpc\PhpXmlRpc;
|
6 |
+
|
7 |
+
class Http
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* Decode a string that is encoded with "chunked" transfer encoding as defined in rfc2068 par. 19.4.6
|
11 |
+
* Code shamelessly stolen from nusoap library by Dietrich Ayala.
|
12 |
+
*
|
13 |
+
* @param string $buffer the string to be decoded
|
14 |
+
*
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public static function decodeChunked($buffer)
|
18 |
+
{
|
19 |
+
// length := 0
|
20 |
+
$length = 0;
|
21 |
+
$new = '';
|
22 |
+
|
23 |
+
// read chunk-size, chunk-extension (if any) and crlf
|
24 |
+
// get the position of the linebreak
|
25 |
+
$chunkEnd = strpos($buffer, "\r\n") + 2;
|
26 |
+
$temp = substr($buffer, 0, $chunkEnd);
|
27 |
+
$chunkSize = hexdec(trim($temp));
|
28 |
+
$chunkStart = $chunkEnd;
|
29 |
+
while ($chunkSize > 0) {
|
30 |
+
$chunkEnd = strpos($buffer, "\r\n", $chunkStart + $chunkSize);
|
31 |
+
|
32 |
+
// just in case we got a broken connection
|
33 |
+
if ($chunkEnd == false) {
|
34 |
+
$chunk = substr($buffer, $chunkStart);
|
35 |
+
// append chunk-data to entity-body
|
36 |
+
$new .= $chunk;
|
37 |
+
$length += strlen($chunk);
|
38 |
+
break;
|
39 |
+
}
|
40 |
+
|
41 |
+
// read chunk-data and crlf
|
42 |
+
$chunk = substr($buffer, $chunkStart, $chunkEnd - $chunkStart);
|
43 |
+
// append chunk-data to entity-body
|
44 |
+
$new .= $chunk;
|
45 |
+
// length := length + chunk-size
|
46 |
+
$length += strlen($chunk);
|
47 |
+
// read chunk-size and crlf
|
48 |
+
$chunkStart = $chunkEnd + 2;
|
49 |
+
|
50 |
+
$chunkEnd = strpos($buffer, "\r\n", $chunkStart) + 2;
|
51 |
+
if ($chunkEnd == false) {
|
52 |
+
break; //just in case we got a broken connection
|
53 |
+
}
|
54 |
+
$temp = substr($buffer, $chunkStart, $chunkEnd - $chunkStart);
|
55 |
+
$chunkSize = hexdec(trim($temp));
|
56 |
+
$chunkStart = $chunkEnd;
|
57 |
+
}
|
58 |
+
|
59 |
+
return $new;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Parses HTTP an http response headers and separates them from the body.
|
64 |
+
*
|
65 |
+
* @param string $data the http response,headers and body. It will be stripped of headers
|
66 |
+
* @param bool $headersProcessed when true, we assume that response inflating and dechunking has been already carried out
|
67 |
+
*
|
68 |
+
* @return array with keys 'headers' and 'cookies'
|
69 |
+
* @throws \Exception
|
70 |
+
*/
|
71 |
+
public function parseResponseHeaders(&$data, $headersProcessed = false, $debug=0)
|
72 |
+
{
|
73 |
+
$httpResponse = array('raw_data' => $data, 'headers'=> array(), 'cookies' => array());
|
74 |
+
|
75 |
+
// Support "web-proxy-tunnelling" connections for https through proxies
|
76 |
+
if (preg_match('/^HTTP\/1\.[0-1] 200 Connection established/', $data)) {
|
77 |
+
// Look for CR/LF or simple LF as line separator,
|
78 |
+
// (even though it is not valid http)
|
79 |
+
$pos = strpos($data, "\r\n\r\n");
|
80 |
+
if ($pos || is_int($pos)) {
|
81 |
+
$bd = $pos + 4;
|
82 |
+
} else {
|
83 |
+
$pos = strpos($data, "\n\n");
|
84 |
+
if ($pos || is_int($pos)) {
|
85 |
+
$bd = $pos + 2;
|
86 |
+
} else {
|
87 |
+
// No separation between response headers and body: fault?
|
88 |
+
$bd = 0;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
if ($bd) {
|
92 |
+
// this filters out all http headers from proxy.
|
93 |
+
// maybe we could take them into account, too?
|
94 |
+
$data = substr($data, $bd);
|
95 |
+
} else {
|
96 |
+
error_log('XML-RPC: ' . __METHOD__ . ': HTTPS via proxy error, tunnel connection possibly failed');
|
97 |
+
throw new \Exception(PhpXmlRpc::$xmlrpcstr['http_error'] . ' (HTTPS via proxy error, tunnel connection possibly failed)', PhpXmlRpc::$xmlrpcerr['http_error']);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
// Strip HTTP 1.1 100 Continue header if present
|
102 |
+
while (preg_match('/^HTTP\/1\.1 1[0-9]{2} /', $data)) {
|
103 |
+
$pos = strpos($data, 'HTTP', 12);
|
104 |
+
// server sent a Continue header without any (valid) content following...
|
105 |
+
// give the client a chance to know it
|
106 |
+
if (!$pos && !is_int($pos)) {
|
107 |
+
// works fine in php 3, 4 and 5
|
108 |
+
|
109 |
+
break;
|
110 |
+
}
|
111 |
+
$data = substr($data, $pos);
|
112 |
+
}
|
113 |
+
|
114 |
+
// When using Curl to query servers using Digest Auth, we get back a double set of http headers.
|
115 |
+
// We strip out the 1st...
|
116 |
+
if ($headersProcessed && preg_match('/^HTTP\/[0-9.]+ 401 /', $data)) {
|
117 |
+
if (preg_match('/(\r?\n){2}HTTP\/[0-9.]+ 200 /', $data)) {
|
118 |
+
$data = preg_replace('/^HTTP\/[0-9.]+ 401 .+?(?:\r?\n){2}(HTTP\/[0-9.]+ 200 )/s', '$1', $data, 1);
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
if (!preg_match('/^HTTP\/[0-9.]+ 200 /', $data)) {
|
123 |
+
$errstr = substr($data, 0, strpos($data, "\n") - 1);
|
124 |
+
error_log('XML-RPC: ' . __METHOD__ . ': HTTP error, got response: ' . $errstr);
|
125 |
+
throw new \Exception(PhpXmlRpc::$xmlrpcstr['http_error'] . ' (' . $errstr . ')', PhpXmlRpc::$xmlrpcerr['http_error']);
|
126 |
+
}
|
127 |
+
|
128 |
+
// be tolerant to usage of \n instead of \r\n to separate headers and data
|
129 |
+
// (even though it is not valid http)
|
130 |
+
$pos = strpos($data, "\r\n\r\n");
|
131 |
+
if ($pos || is_int($pos)) {
|
132 |
+
$bd = $pos + 4;
|
133 |
+
} else {
|
134 |
+
$pos = strpos($data, "\n\n");
|
135 |
+
if ($pos || is_int($pos)) {
|
136 |
+
$bd = $pos + 2;
|
137 |
+
} else {
|
138 |
+
// No separation between response headers and body: fault?
|
139 |
+
// we could take some action here instead of going on...
|
140 |
+
$bd = 0;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
// be tolerant to line endings, and extra empty lines
|
145 |
+
$ar = preg_split("/\r?\n/", trim(substr($data, 0, $pos)));
|
146 |
+
|
147 |
+
foreach($ar as $line) {
|
148 |
+
// take care of multi-line headers and cookies
|
149 |
+
$arr = explode(':', $line, 2);
|
150 |
+
if (count($arr) > 1) {
|
151 |
+
$headerName = strtolower(trim($arr[0]));
|
152 |
+
/// @todo some other headers (the ones that allow a CSV list of values)
|
153 |
+
/// do allow many values to be passed using multiple header lines.
|
154 |
+
/// We should add content to $xmlrpc->_xh['headers'][$headerName]
|
155 |
+
/// instead of replacing it for those...
|
156 |
+
if ($headerName == 'set-cookie' || $headerName == 'set-cookie2') {
|
157 |
+
if ($headerName == 'set-cookie2') {
|
158 |
+
// version 2 cookies:
|
159 |
+
// there could be many cookies on one line, comma separated
|
160 |
+
$cookies = explode(',', $arr[1]);
|
161 |
+
} else {
|
162 |
+
$cookies = array($arr[1]);
|
163 |
+
}
|
164 |
+
foreach ($cookies as $cookie) {
|
165 |
+
// glue together all received cookies, using a comma to separate them
|
166 |
+
// (same as php does with getallheaders())
|
167 |
+
if (isset($httpResponse['headers'][$headerName])) {
|
168 |
+
$httpResponse['headers'][$headerName] .= ', ' . trim($cookie);
|
169 |
+
} else {
|
170 |
+
$httpResponse['headers'][$headerName] = trim($cookie);
|
171 |
+
}
|
172 |
+
// parse cookie attributes, in case user wants to correctly honour them
|
173 |
+
// feature creep: only allow rfc-compliant cookie attributes?
|
174 |
+
// @todo support for server sending multiple time cookie with same name, but using different PATHs
|
175 |
+
$cookie = explode(';', $cookie);
|
176 |
+
foreach ($cookie as $pos => $val) {
|
177 |
+
$val = explode('=', $val, 2);
|
178 |
+
$tag = trim($val[0]);
|
179 |
+
$val = trim(@$val[1]);
|
180 |
+
/// @todo with version 1 cookies, we should strip leading and trailing " chars
|
181 |
+
if ($pos == 0) {
|
182 |
+
$cookiename = $tag;
|
183 |
+
$httpResponse['cookies'][$tag] = array();
|
184 |
+
$httpResponse['cookies'][$cookiename]['value'] = urldecode($val);
|
185 |
+
} else {
|
186 |
+
if ($tag != 'value') {
|
187 |
+
$httpResponse['cookies'][$cookiename][$tag] = $val;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
}
|
191 |
+
}
|
192 |
+
} else {
|
193 |
+
$httpResponse['headers'][$headerName] = trim($arr[1]);
|
194 |
+
}
|
195 |
+
} elseif (isset($headerName)) {
|
196 |
+
/// @todo version1 cookies might span multiple lines, thus breaking the parsing above
|
197 |
+
$httpResponse['headers'][$headerName] .= ' ' . trim($line);
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
$data = substr($data, $bd);
|
202 |
+
|
203 |
+
if ($debug && count($httpResponse['headers'])) {
|
204 |
+
$msg = '';
|
205 |
+
foreach ($httpResponse['headers'] as $header => $value) {
|
206 |
+
$msg .= "HEADER: $header: $value\n";
|
207 |
+
}
|
208 |
+
foreach ($httpResponse['cookies'] as $header => $value) {
|
209 |
+
$msg .= "COOKIE: $header={$value['value']}\n";
|
210 |
+
}
|
211 |
+
Logger::instance()->debugMessage($msg);
|
212 |
+
}
|
213 |
+
|
214 |
+
// if CURL was used for the call, http headers have been processed,
|
215 |
+
// and dechunking + reinflating have been carried out
|
216 |
+
if (!$headersProcessed) {
|
217 |
+
|
218 |
+
// Decode chunked encoding sent by http 1.1 servers
|
219 |
+
if (isset($httpResponse['headers']['transfer-encoding']) && $httpResponse['headers']['transfer-encoding'] == 'chunked') {
|
220 |
+
if (!$data = Http::decodeChunked($data)) {
|
221 |
+
error_log('XML-RPC: ' . __METHOD__ . ': errors occurred when trying to rebuild the chunked data received from server');
|
222 |
+
throw new \Exception(PhpXmlRpc::$xmlrpcstr['dechunk_fail'], PhpXmlRpc::$xmlrpcerr['dechunk_fail']);
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
// Decode gzip-compressed stuff
|
227 |
+
// code shamelessly inspired from nusoap library by Dietrich Ayala
|
228 |
+
if (isset($httpResponse['headers']['content-encoding'])) {
|
229 |
+
$httpResponse['headers']['content-encoding'] = str_replace('x-', '', $httpResponse['headers']['content-encoding']);
|
230 |
+
if ($httpResponse['headers']['content-encoding'] == 'deflate' || $httpResponse['headers']['content-encoding'] == 'gzip') {
|
231 |
+
// if decoding works, use it. else assume data wasn't gzencoded
|
232 |
+
if (function_exists('gzinflate')) {
|
233 |
+
if ($httpResponse['headers']['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) {
|
234 |
+
$data = $degzdata;
|
235 |
+
if ($debug) {
|
236 |
+
Logger::instance()->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---");
|
237 |
+
}
|
238 |
+
} elseif ($httpResponse['headers']['content-encoding'] == 'gzip' && $degzdata = @gzinflate(substr($data, 10))) {
|
239 |
+
$data = $degzdata;
|
240 |
+
if ($debug) {
|
241 |
+
Logger::instance()->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---");
|
242 |
+
}
|
243 |
+
} else {
|
244 |
+
error_log('XML-RPC: ' . __METHOD__ . ': errors occurred when trying to decode the deflated data received from server');
|
245 |
+
throw new \Exception(PhpXmlRpc::$xmlrpcstr['decompress_fail'], PhpXmlRpc::$xmlrpcerr['decompress_fail']);
|
246 |
+
}
|
247 |
+
} else {
|
248 |
+
error_log('XML-RPC: ' . __METHOD__ . ': the server sent deflated data. Your php install must have the Zlib extension compiled in to support this.');
|
249 |
+
throw new \Exception(PhpXmlRpc::$xmlrpcstr['cannot_decompress'], PhpXmlRpc::$xmlrpcerr['cannot_decompress']);
|
250 |
+
}
|
251 |
+
}
|
252 |
+
}
|
253 |
+
} // end of 'if needed, de-chunk, re-inflate response'
|
254 |
+
|
255 |
+
return $httpResponse;
|
256 |
+
}
|
257 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/Logger.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc\Helper;
|
4 |
+
|
5 |
+
class Logger
|
6 |
+
{
|
7 |
+
protected static $instance = null;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* This class is singleton, so that later we can move to DI patterns.
|
11 |
+
*
|
12 |
+
* @return Logger
|
13 |
+
*/
|
14 |
+
public static function instance()
|
15 |
+
{
|
16 |
+
if (self::$instance === null) {
|
17 |
+
self::$instance = new self();
|
18 |
+
}
|
19 |
+
|
20 |
+
return self::$instance;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Echoes a debug message, taking care of escaping it when not in console mode.
|
25 |
+
* NB: if the encoding of the message is not known or wrong, and we are working in web mode, there is no guarantee
|
26 |
+
* of 100% accuracy, which kind of defeats the purpose of debugging
|
27 |
+
*
|
28 |
+
* @param string $message
|
29 |
+
* @param string $encoding
|
30 |
+
*/
|
31 |
+
public function debugMessage($message, $encoding=null)
|
32 |
+
{
|
33 |
+
// US-ASCII is a warning for PHP and a fatal for HHVM
|
34 |
+
if ($encoding == 'US-ASCII') {
|
35 |
+
$encoding = 'UTF-8';
|
36 |
+
}
|
37 |
+
|
38 |
+
if (PHP_SAPI != 'cli') {
|
39 |
+
$flags = ENT_COMPAT;
|
40 |
+
// avoid warnings on php < 5.4...
|
41 |
+
if (defined('ENT_HTML401')) {
|
42 |
+
$flags = $flags | ENT_HTML401;
|
43 |
+
}
|
44 |
+
if (defined('ENT_SUBSTITUTE')) {
|
45 |
+
$flags = $flags | ENT_SUBSTITUTE;
|
46 |
+
}
|
47 |
+
if ($encoding != null) {
|
48 |
+
print "<PRE>\n".htmlentities($message, $flags, $encoding)."\n</PRE>";
|
49 |
+
} else {
|
50 |
+
print "<PRE>\n".htmlentities($message, $flags)."\n</PRE>";
|
51 |
+
}
|
52 |
+
} else {
|
53 |
+
print "\n$message\n";
|
54 |
+
}
|
55 |
+
|
56 |
+
// let the user see this now in case there's a time out later...
|
57 |
+
flush();
|
58 |
+
}
|
59 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Helper/XMLParser.php
ADDED
@@ -0,0 +1,561 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc\Helper;
|
4 |
+
|
5 |
+
use PhpXmlRpc\PhpXmlRpc;
|
6 |
+
use PhpXmlRpc\Value;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Deals with parsing the XML.
|
10 |
+
*/
|
11 |
+
class XMLParser
|
12 |
+
{
|
13 |
+
// used to store state during parsing
|
14 |
+
// quick explanation of components:
|
15 |
+
// ac - used to accumulate values
|
16 |
+
// stack - array with genealogy of xml elements names:
|
17 |
+
// used to validate nesting of xmlrpc elements
|
18 |
+
// valuestack - array used for parsing arrays and structs
|
19 |
+
// lv - used to indicate "looking for a value": implements
|
20 |
+
// the logic to allow values with no types to be strings
|
21 |
+
// isf - used to indicate a parsing fault (2) or xmlrpc response fault (1)
|
22 |
+
// isf_reason - used for storing xmlrpc response fault string
|
23 |
+
// method - used to store method name
|
24 |
+
// params - used to store parameters in method calls
|
25 |
+
// pt - used to store the type of each received parameter. Useful if parameters are automatically decoded to php values
|
26 |
+
// rt - 'methodcall or 'methodresponse'
|
27 |
+
public $_xh = array(
|
28 |
+
'ac' => '',
|
29 |
+
'stack' => array(),
|
30 |
+
'valuestack' => array(),
|
31 |
+
'isf' => 0,
|
32 |
+
'isf_reason' => '',
|
33 |
+
'method' => false, // so we can check later if we got a methodname or not
|
34 |
+
'params' => array(),
|
35 |
+
'pt' => array(),
|
36 |
+
'rt' => '',
|
37 |
+
);
|
38 |
+
|
39 |
+
public $xmlrpc_valid_parents = array(
|
40 |
+
'VALUE' => array('MEMBER', 'DATA', 'PARAM', 'FAULT'),
|
41 |
+
'BOOLEAN' => array('VALUE'),
|
42 |
+
'I4' => array('VALUE'),
|
43 |
+
'I8' => array('VALUE'),
|
44 |
+
'EX:I8' => array('VALUE'),
|
45 |
+
'INT' => array('VALUE'),
|
46 |
+
'STRING' => array('VALUE'),
|
47 |
+
'DOUBLE' => array('VALUE'),
|
48 |
+
'DATETIME.ISO8601' => array('VALUE'),
|
49 |
+
'BASE64' => array('VALUE'),
|
50 |
+
'MEMBER' => array('STRUCT'),
|
51 |
+
'NAME' => array('MEMBER'),
|
52 |
+
'DATA' => array('ARRAY'),
|
53 |
+
'ARRAY' => array('VALUE'),
|
54 |
+
'STRUCT' => array('VALUE'),
|
55 |
+
'PARAM' => array('PARAMS'),
|
56 |
+
'METHODNAME' => array('METHODCALL'),
|
57 |
+
'PARAMS' => array('METHODCALL', 'METHODRESPONSE'),
|
58 |
+
'FAULT' => array('METHODRESPONSE'),
|
59 |
+
'NIL' => array('VALUE'), // only used when extension activated
|
60 |
+
'EX:NIL' => array('VALUE'), // only used when extension activated
|
61 |
+
);
|
62 |
+
|
63 |
+
/**
|
64 |
+
* xml parser handler function for opening element tags.
|
65 |
+
*/
|
66 |
+
public function xmlrpc_se($parser, $name, $attrs, $acceptSingleVals = false)
|
67 |
+
{
|
68 |
+
// if invalid xmlrpc already detected, skip all processing
|
69 |
+
if ($this->_xh['isf'] < 2) {
|
70 |
+
// check for correct element nesting
|
71 |
+
// top level element can only be of 2 types
|
72 |
+
/// @todo optimization creep: save this check into a bool variable, instead of using count() every time:
|
73 |
+
/// there is only a single top level element in xml anyway
|
74 |
+
if (count($this->_xh['stack']) == 0) {
|
75 |
+
if ($name != 'METHODRESPONSE' && $name != 'METHODCALL' && (
|
76 |
+
$name != 'VALUE' && !$acceptSingleVals)
|
77 |
+
) {
|
78 |
+
$this->_xh['isf'] = 2;
|
79 |
+
$this->_xh['isf_reason'] = 'missing top level xmlrpc element';
|
80 |
+
|
81 |
+
return;
|
82 |
+
} else {
|
83 |
+
$this->_xh['rt'] = strtolower($name);
|
84 |
+
}
|
85 |
+
} else {
|
86 |
+
// not top level element: see if parent is OK
|
87 |
+
$parent = end($this->_xh['stack']);
|
88 |
+
if (!array_key_exists($name, $this->xmlrpc_valid_parents) || !in_array($parent, $this->xmlrpc_valid_parents[$name])) {
|
89 |
+
$this->_xh['isf'] = 2;
|
90 |
+
$this->_xh['isf_reason'] = "xmlrpc element $name cannot be child of $parent";
|
91 |
+
|
92 |
+
return;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
switch ($name) {
|
97 |
+
// optimize for speed switch cases: most common cases first
|
98 |
+
case 'VALUE':
|
99 |
+
/// @todo we could check for 2 VALUE elements inside a MEMBER or PARAM element
|
100 |
+
$this->_xh['vt'] = 'value'; // indicator: no value found yet
|
101 |
+
$this->_xh['ac'] = '';
|
102 |
+
$this->_xh['lv'] = 1;
|
103 |
+
$this->_xh['php_class'] = null;
|
104 |
+
break;
|
105 |
+
case 'I8':
|
106 |
+
case 'EX:I8':
|
107 |
+
if (PHP_INT_SIZE === 4) {
|
108 |
+
/// INVALID ELEMENT: RAISE ISF so that it is later recognized!!!
|
109 |
+
$this->_xh['isf'] = 2;
|
110 |
+
$this->_xh['isf_reason'] = "Received i8 element but php is compiled in 32 bit mode";
|
111 |
+
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
// fall through voluntarily
|
115 |
+
case 'I4':
|
116 |
+
case 'INT':
|
117 |
+
case 'STRING':
|
118 |
+
case 'BOOLEAN':
|
119 |
+
case 'DOUBLE':
|
120 |
+
case 'DATETIME.ISO8601':
|
121 |
+
case 'BASE64':
|
122 |
+
if ($this->_xh['vt'] != 'value') {
|
123 |
+
// two data elements inside a value: an error occurred!
|
124 |
+
$this->_xh['isf'] = 2;
|
125 |
+
$this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
|
126 |
+
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
$this->_xh['ac'] = ''; // reset the accumulator
|
130 |
+
break;
|
131 |
+
case 'STRUCT':
|
132 |
+
case 'ARRAY':
|
133 |
+
if ($this->_xh['vt'] != 'value') {
|
134 |
+
//two data elements inside a value: an error occurred!
|
135 |
+
$this->_xh['isf'] = 2;
|
136 |
+
$this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
|
137 |
+
|
138 |
+
return;
|
139 |
+
}
|
140 |
+
// create an empty array to hold child values, and push it onto appropriate stack
|
141 |
+
$curVal = array();
|
142 |
+
$curVal['values'] = array();
|
143 |
+
$curVal['type'] = $name;
|
144 |
+
// check for out-of-band information to rebuild php objs
|
145 |
+
// and in case it is found, save it
|
146 |
+
if (@isset($attrs['PHP_CLASS'])) {
|
147 |
+
$curVal['php_class'] = $attrs['PHP_CLASS'];
|
148 |
+
}
|
149 |
+
$this->_xh['valuestack'][] = $curVal;
|
150 |
+
$this->_xh['vt'] = 'data'; // be prepared for a data element next
|
151 |
+
break;
|
152 |
+
case 'DATA':
|
153 |
+
if ($this->_xh['vt'] != 'data') {
|
154 |
+
//two data elements inside a value: an error occurred!
|
155 |
+
$this->_xh['isf'] = 2;
|
156 |
+
$this->_xh['isf_reason'] = "found two data elements inside an array element";
|
157 |
+
|
158 |
+
return;
|
159 |
+
}
|
160 |
+
case 'METHODCALL':
|
161 |
+
case 'METHODRESPONSE':
|
162 |
+
case 'PARAMS':
|
163 |
+
// valid elements that add little to processing
|
164 |
+
break;
|
165 |
+
case 'METHODNAME':
|
166 |
+
case 'NAME':
|
167 |
+
/// @todo we could check for 2 NAME elements inside a MEMBER element
|
168 |
+
$this->_xh['ac'] = '';
|
169 |
+
break;
|
170 |
+
case 'FAULT':
|
171 |
+
$this->_xh['isf'] = 1;
|
172 |
+
break;
|
173 |
+
case 'MEMBER':
|
174 |
+
$this->_xh['valuestack'][count($this->_xh['valuestack']) - 1]['name'] = ''; // set member name to null, in case we do not find in the xml later on
|
175 |
+
//$this->_xh['ac']='';
|
176 |
+
// Drop trough intentionally
|
177 |
+
case 'PARAM':
|
178 |
+
// clear value type, so we can check later if no value has been passed for this param/member
|
179 |
+
$this->_xh['vt'] = null;
|
180 |
+
break;
|
181 |
+
case 'NIL':
|
182 |
+
case 'EX:NIL':
|
183 |
+
if (PhpXmlRpc::$xmlrpc_null_extension) {
|
184 |
+
if ($this->_xh['vt'] != 'value') {
|
185 |
+
//two data elements inside a value: an error occurred!
|
186 |
+
$this->_xh['isf'] = 2;
|
187 |
+
$this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
|
188 |
+
|
189 |
+
return;
|
190 |
+
}
|
191 |
+
$this->_xh['ac'] = ''; // reset the accumulator
|
192 |
+
break;
|
193 |
+
}
|
194 |
+
// we do not support the <NIL/> extension, so
|
195 |
+
// drop through intentionally
|
196 |
+
default:
|
197 |
+
/// INVALID ELEMENT: RAISE ISF so that it is later recognized!!!
|
198 |
+
$this->_xh['isf'] = 2;
|
199 |
+
$this->_xh['isf_reason'] = "found not-xmlrpc xml element $name";
|
200 |
+
break;
|
201 |
+
}
|
202 |
+
|
203 |
+
// Save current element name to stack, to validate nesting
|
204 |
+
$this->_xh['stack'][] = $name;
|
205 |
+
|
206 |
+
/// @todo optimization creep: move this inside the big switch() above
|
207 |
+
if ($name != 'VALUE') {
|
208 |
+
$this->_xh['lv'] = 0;
|
209 |
+
}
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Used in decoding xml chunks that might represent single xmlrpc values.
|
215 |
+
*/
|
216 |
+
public function xmlrpc_se_any($parser, $name, $attrs)
|
217 |
+
{
|
218 |
+
$this->xmlrpc_se($parser, $name, $attrs, true);
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* xml parser handler function for close element tags.
|
223 |
+
*/
|
224 |
+
public function xmlrpc_ee($parser, $name, $rebuildXmlrpcvals = true)
|
225 |
+
{
|
226 |
+
if ($this->_xh['isf'] < 2) {
|
227 |
+
// push this element name from stack
|
228 |
+
// NB: if XML validates, correct opening/closing is guaranteed and
|
229 |
+
// we do not have to check for $name == $currElem.
|
230 |
+
// we also checked for proper nesting at start of elements...
|
231 |
+
$currElem = array_pop($this->_xh['stack']);
|
232 |
+
|
233 |
+
switch ($name) {
|
234 |
+
case 'VALUE':
|
235 |
+
// This if() detects if no scalar was inside <VALUE></VALUE>
|
236 |
+
if ($this->_xh['vt'] == 'value') {
|
237 |
+
$this->_xh['value'] = $this->_xh['ac'];
|
238 |
+
$this->_xh['vt'] = Value::$xmlrpcString;
|
239 |
+
}
|
240 |
+
|
241 |
+
if ($rebuildXmlrpcvals) {
|
242 |
+
// build the xmlrpc val out of the data received, and substitute it
|
243 |
+
$temp = new Value($this->_xh['value'], $this->_xh['vt']);
|
244 |
+
// in case we got info about underlying php class, save it
|
245 |
+
// in the object we're rebuilding
|
246 |
+
if (isset($this->_xh['php_class'])) {
|
247 |
+
$temp->_php_class = $this->_xh['php_class'];
|
248 |
+
}
|
249 |
+
// check if we are inside an array or struct:
|
250 |
+
// if value just built is inside an array, let's move it into array on the stack
|
251 |
+
$vscount = count($this->_xh['valuestack']);
|
252 |
+
if ($vscount && $this->_xh['valuestack'][$vscount - 1]['type'] == 'ARRAY') {
|
253 |
+
$this->_xh['valuestack'][$vscount - 1]['values'][] = $temp;
|
254 |
+
} else {
|
255 |
+
$this->_xh['value'] = $temp;
|
256 |
+
}
|
257 |
+
} else {
|
258 |
+
/// @todo this needs to treat correctly php-serialized objects,
|
259 |
+
/// since std deserializing is done by php_xmlrpc_decode,
|
260 |
+
/// which we will not be calling...
|
261 |
+
if (isset($this->_xh['php_class'])) {
|
262 |
+
}
|
263 |
+
|
264 |
+
// check if we are inside an array or struct:
|
265 |
+
// if value just built is inside an array, let's move it into array on the stack
|
266 |
+
$vscount = count($this->_xh['valuestack']);
|
267 |
+
if ($vscount && $this->_xh['valuestack'][$vscount - 1]['type'] == 'ARRAY') {
|
268 |
+
$this->_xh['valuestack'][$vscount - 1]['values'][] = $this->_xh['value'];
|
269 |
+
}
|
270 |
+
}
|
271 |
+
break;
|
272 |
+
case 'BOOLEAN':
|
273 |
+
case 'I4':
|
274 |
+
case 'I8':
|
275 |
+
case 'EX:I8':
|
276 |
+
case 'INT':
|
277 |
+
case 'STRING':
|
278 |
+
case 'DOUBLE':
|
279 |
+
case 'DATETIME.ISO8601':
|
280 |
+
case 'BASE64':
|
281 |
+
$this->_xh['vt'] = strtolower($name);
|
282 |
+
/// @todo: optimization creep - remove the if/elseif cycle below
|
283 |
+
/// since the case() in which we are already did that
|
284 |
+
if ($name == 'STRING') {
|
285 |
+
$this->_xh['value'] = $this->_xh['ac'];
|
286 |
+
} elseif ($name == 'DATETIME.ISO8601') {
|
287 |
+
if (!preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $this->_xh['ac'])) {
|
288 |
+
error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in DATETIME: ' . $this->_xh['ac']);
|
289 |
+
}
|
290 |
+
$this->_xh['vt'] = Value::$xmlrpcDateTime;
|
291 |
+
$this->_xh['value'] = $this->_xh['ac'];
|
292 |
+
} elseif ($name == 'BASE64') {
|
293 |
+
/// @todo check for failure of base64 decoding / catch warnings
|
294 |
+
$this->_xh['value'] = base64_decode($this->_xh['ac']);
|
295 |
+
} elseif ($name == 'BOOLEAN') {
|
296 |
+
// special case here: we translate boolean 1 or 0 into PHP
|
297 |
+
// constants true or false.
|
298 |
+
// Strings 'true' and 'false' are accepted, even though the
|
299 |
+
// spec never mentions them (see eg. Blogger api docs)
|
300 |
+
// NB: this simple checks helps a lot sanitizing input, ie no
|
301 |
+
// security problems around here
|
302 |
+
if ($this->_xh['ac'] == '1' || strcasecmp($this->_xh['ac'], 'true') == 0) {
|
303 |
+
$this->_xh['value'] = true;
|
304 |
+
} else {
|
305 |
+
// log if receiving something strange, even though we set the value to false anyway
|
306 |
+
if ($this->_xh['ac'] != '0' && strcasecmp($this->_xh['ac'], 'false') != 0) {
|
307 |
+
error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in BOOLEAN: ' . $this->_xh['ac']);
|
308 |
+
}
|
309 |
+
$this->_xh['value'] = false;
|
310 |
+
}
|
311 |
+
} elseif ($name == 'DOUBLE') {
|
312 |
+
// we have a DOUBLE
|
313 |
+
// we must check that only 0123456789-.<space> are characters here
|
314 |
+
// NOTE: regexp could be much stricter than this...
|
315 |
+
if (!preg_match('/^[+-eE0123456789 \t.]+$/', $this->_xh['ac'])) {
|
316 |
+
/// @todo: find a better way of throwing an error than this!
|
317 |
+
error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in DOUBLE: ' . $this->_xh['ac']);
|
318 |
+
$this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND';
|
319 |
+
} else {
|
320 |
+
// it's ok, add it on
|
321 |
+
$this->_xh['value'] = (double)$this->_xh['ac'];
|
322 |
+
}
|
323 |
+
} else {
|
324 |
+
// we have an I4/I8/INT
|
325 |
+
// we must check that only 0123456789-<space> are characters here
|
326 |
+
if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) {
|
327 |
+
/// @todo find a better way of throwing an error than this!
|
328 |
+
error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in INT: ' . $this->_xh['ac']);
|
329 |
+
$this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND';
|
330 |
+
} else {
|
331 |
+
// it's ok, add it on
|
332 |
+
$this->_xh['value'] = (int)$this->_xh['ac'];
|
333 |
+
}
|
334 |
+
}
|
335 |
+
$this->_xh['lv'] = 3; // indicate we've found a value
|
336 |
+
break;
|
337 |
+
case 'NAME':
|
338 |
+
$this->_xh['valuestack'][count($this->_xh['valuestack']) - 1]['name'] = $this->_xh['ac'];
|
339 |
+
break;
|
340 |
+
case 'MEMBER':
|
341 |
+
// add to array in the stack the last element built,
|
342 |
+
// unless no VALUE was found
|
343 |
+
if ($this->_xh['vt']) {
|
344 |
+
$vscount = count($this->_xh['valuestack']);
|
345 |
+
$this->_xh['valuestack'][$vscount - 1]['values'][$this->_xh['valuestack'][$vscount - 1]['name']] = $this->_xh['value'];
|
346 |
+
} else {
|
347 |
+
error_log('XML-RPC: ' . __METHOD__ . ': missing VALUE inside STRUCT in received xml');
|
348 |
+
}
|
349 |
+
break;
|
350 |
+
case 'DATA':
|
351 |
+
$this->_xh['vt'] = null; // reset this to check for 2 data elements in a row - even if they're empty
|
352 |
+
break;
|
353 |
+
case 'STRUCT':
|
354 |
+
case 'ARRAY':
|
355 |
+
// fetch out of stack array of values, and promote it to current value
|
356 |
+
$currVal = array_pop($this->_xh['valuestack']);
|
357 |
+
$this->_xh['value'] = $currVal['values'];
|
358 |
+
$this->_xh['vt'] = strtolower($name);
|
359 |
+
if (isset($currVal['php_class'])) {
|
360 |
+
$this->_xh['php_class'] = $currVal['php_class'];
|
361 |
+
}
|
362 |
+
break;
|
363 |
+
case 'PARAM':
|
364 |
+
// add to array of params the current value,
|
365 |
+
// unless no VALUE was found
|
366 |
+
if ($this->_xh['vt']) {
|
367 |
+
$this->_xh['params'][] = $this->_xh['value'];
|
368 |
+
$this->_xh['pt'][] = $this->_xh['vt'];
|
369 |
+
} else {
|
370 |
+
error_log('XML-RPC: ' . __METHOD__ . ': missing VALUE inside PARAM in received xml');
|
371 |
+
}
|
372 |
+
break;
|
373 |
+
case 'METHODNAME':
|
374 |
+
$this->_xh['method'] = preg_replace('/^[\n\r\t ]+/', '', $this->_xh['ac']);
|
375 |
+
break;
|
376 |
+
case 'NIL':
|
377 |
+
case 'EX:NIL':
|
378 |
+
if (PhpXmlRpc::$xmlrpc_null_extension) {
|
379 |
+
$this->_xh['vt'] = 'null';
|
380 |
+
$this->_xh['value'] = null;
|
381 |
+
$this->_xh['lv'] = 3;
|
382 |
+
break;
|
383 |
+
}
|
384 |
+
// drop through intentionally if nil extension not enabled
|
385 |
+
case 'PARAMS':
|
386 |
+
case 'FAULT':
|
387 |
+
case 'METHODCALL':
|
388 |
+
case 'METHORESPONSE':
|
389 |
+
break;
|
390 |
+
default:
|
391 |
+
// End of INVALID ELEMENT!
|
392 |
+
// shall we add an assert here for unreachable code???
|
393 |
+
break;
|
394 |
+
}
|
395 |
+
}
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Used in decoding xmlrpc requests/responses without rebuilding xmlrpc Values.
|
400 |
+
*/
|
401 |
+
public function xmlrpc_ee_fast($parser, $name)
|
402 |
+
{
|
403 |
+
$this->xmlrpc_ee($parser, $name, false);
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* xml parser handler function for character data.
|
408 |
+
*/
|
409 |
+
public function xmlrpc_cd($parser, $data)
|
410 |
+
{
|
411 |
+
// skip processing if xml fault already detected
|
412 |
+
if ($this->_xh['isf'] < 2) {
|
413 |
+
// "lookforvalue==3" means that we've found an entire value
|
414 |
+
// and should discard any further character data
|
415 |
+
if ($this->_xh['lv'] != 3) {
|
416 |
+
$this->_xh['ac'] .= $data;
|
417 |
+
}
|
418 |
+
}
|
419 |
+
}
|
420 |
+
|
421 |
+
/**
|
422 |
+
* xml parser handler function for 'other stuff', ie. not char data or
|
423 |
+
* element start/end tag. In fact it only gets called on unknown entities...
|
424 |
+
*/
|
425 |
+
public function xmlrpc_dh($parser, $data)
|
426 |
+
{
|
427 |
+
// skip processing if xml fault already detected
|
428 |
+
if ($this->_xh['isf'] < 2) {
|
429 |
+
if (substr($data, 0, 1) == '&' && substr($data, -1, 1) == ';') {
|
430 |
+
$this->_xh['ac'] .= $data;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
return true;
|
435 |
+
}
|
436 |
+
|
437 |
+
/**
|
438 |
+
* xml charset encoding guessing helper function.
|
439 |
+
* Tries to determine the charset encoding of an XML chunk received over HTTP.
|
440 |
+
* NB: according to the spec (RFC 3023), if text/xml content-type is received over HTTP without a content-type,
|
441 |
+
* we SHOULD assume it is strictly US-ASCII. But we try to be more tolerant of non conforming (legacy?) clients/servers,
|
442 |
+
* which will be most probably using UTF-8 anyway...
|
443 |
+
* In order of importance checks:
|
444 |
+
* 1. http headers
|
445 |
+
* 2. BOM
|
446 |
+
* 3. XML declaration
|
447 |
+
* 4. guesses using mb_detect_encoding()
|
448 |
+
*
|
449 |
+
* @param string $httpHeader the http Content-type header
|
450 |
+
* @param string $xmlChunk xml content buffer
|
451 |
+
* @param string $encodingPrefs comma separated list of character encodings to be used as default (when mb extension is enabled).
|
452 |
+
* This can also be set globally using PhpXmlRpc::$xmlrpc_detectencodings
|
453 |
+
* @return string the encoding determined. Null if it can't be determined and mbstring is enabled,
|
454 |
+
* PhpXmlRpc::$xmlrpc_defencoding if it can't be determined and mbstring is not enabled
|
455 |
+
*
|
456 |
+
* @todo explore usage of mb_http_input(): does it detect http headers + post data? if so, use it instead of hand-detection!!!
|
457 |
+
*/
|
458 |
+
public static function guessEncoding($httpHeader = '', $xmlChunk = '', $encodingPrefs = null)
|
459 |
+
{
|
460 |
+
// discussion: see http://www.yale.edu/pclt/encoding/
|
461 |
+
// 1 - test if encoding is specified in HTTP HEADERS
|
462 |
+
|
463 |
+
// Details:
|
464 |
+
// LWS: (\13\10)?( |\t)+
|
465 |
+
// token: (any char but excluded stuff)+
|
466 |
+
// quoted string: " (any char but double quotes and control chars)* "
|
467 |
+
// header: Content-type = ...; charset=value(; ...)*
|
468 |
+
// where value is of type token, no LWS allowed between 'charset' and value
|
469 |
+
// Note: we do not check for invalid chars in VALUE:
|
470 |
+
// this had better be done using pure ereg as below
|
471 |
+
// Note 2: we might be removing whitespace/tabs that ought to be left in if
|
472 |
+
// the received charset is a quoted string. But nobody uses such charset names...
|
473 |
+
|
474 |
+
/// @todo this test will pass if ANY header has charset specification, not only Content-Type. Fix it?
|
475 |
+
$matches = array();
|
476 |
+
if (preg_match('/;\s*charset\s*=([^;]+)/i', $httpHeader, $matches)) {
|
477 |
+
return strtoupper(trim($matches[1], " \t\""));
|
478 |
+
}
|
479 |
+
|
480 |
+
// 2 - scan the first bytes of the data for a UTF-16 (or other) BOM pattern
|
481 |
+
// (source: http://www.w3.org/TR/2000/REC-xml-20001006)
|
482 |
+
// NOTE: actually, according to the spec, even if we find the BOM and determine
|
483 |
+
// an encoding, we should check if there is an encoding specified
|
484 |
+
// in the xml declaration, and verify if they match.
|
485 |
+
/// @todo implement check as described above?
|
486 |
+
/// @todo implement check for first bytes of string even without a BOM? (It sure looks harder than for cases WITH a BOM)
|
487 |
+
if (preg_match('/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\x00\x00\xFF\xFE|\xFE\xFF\x00\x00)/', $xmlChunk)) {
|
488 |
+
return 'UCS-4';
|
489 |
+
} elseif (preg_match('/^(\xFE\xFF|\xFF\xFE)/', $xmlChunk)) {
|
490 |
+
return 'UTF-16';
|
491 |
+
} elseif (preg_match('/^(\xEF\xBB\xBF)/', $xmlChunk)) {
|
492 |
+
return 'UTF-8';
|
493 |
+
}
|
494 |
+
|
495 |
+
// 3 - test if encoding is specified in the xml declaration
|
496 |
+
// Details:
|
497 |
+
// SPACE: (#x20 | #x9 | #xD | #xA)+ === [ \x9\xD\xA]+
|
498 |
+
// EQ: SPACE?=SPACE? === [ \x9\xD\xA]*=[ \x9\xD\xA]*
|
499 |
+
if (preg_match('/^<\?xml\s+version\s*=\s*' . "((?:\"[a-zA-Z0-9_.:-]+\")|(?:'[a-zA-Z0-9_.:-]+'))" .
|
500 |
+
'\s+encoding\s*=\s*' . "((?:\"[A-Za-z][A-Za-z0-9._-]*\")|(?:'[A-Za-z][A-Za-z0-9._-]*'))/",
|
501 |
+
$xmlChunk, $matches)) {
|
502 |
+
return strtoupper(substr($matches[2], 1, -1));
|
503 |
+
}
|
504 |
+
|
505 |
+
// 4 - if mbstring is available, let it do the guesswork
|
506 |
+
if (extension_loaded('mbstring')) {
|
507 |
+
if ($encodingPrefs == null && PhpXmlRpc::$xmlrpc_detectencodings != null) {
|
508 |
+
$encodingPrefs = PhpXmlRpc::$xmlrpc_detectencodings;
|
509 |
+
}
|
510 |
+
if ($encodingPrefs) {
|
511 |
+
$enc = mb_detect_encoding($xmlChunk, $encodingPrefs);
|
512 |
+
} else {
|
513 |
+
$enc = mb_detect_encoding($xmlChunk);
|
514 |
+
}
|
515 |
+
// NB: mb_detect likes to call it ascii, xml parser likes to call it US_ASCII...
|
516 |
+
// IANA also likes better US-ASCII, so go with it
|
517 |
+
if ($enc == 'ASCII') {
|
518 |
+
$enc = 'US-' . $enc;
|
519 |
+
}
|
520 |
+
|
521 |
+
return $enc;
|
522 |
+
} else {
|
523 |
+
// no encoding specified: as per HTTP1.1 assume it is iso-8859-1?
|
524 |
+
// Both RFC 2616 (HTTP 1.1) and 1945 (HTTP 1.0) clearly state that for text/xxx content types
|
525 |
+
// this should be the standard. And we should be getting text/xml as request and response.
|
526 |
+
// BUT we have to be backward compatible with the lib, which always used UTF-8 as default...
|
527 |
+
return PhpXmlRpc::$xmlrpc_defencoding;
|
528 |
+
}
|
529 |
+
}
|
530 |
+
|
531 |
+
/**
|
532 |
+
* Helper function: checks if an xml chunk as a charset declaration (BOM or in the xml declaration)
|
533 |
+
*
|
534 |
+
* @param string $xmlChunk
|
535 |
+
* @return bool
|
536 |
+
*/
|
537 |
+
public static function hasEncoding($xmlChunk)
|
538 |
+
{
|
539 |
+
// scan the first bytes of the data for a UTF-16 (or other) BOM pattern
|
540 |
+
// (source: http://www.w3.org/TR/2000/REC-xml-20001006)
|
541 |
+
if (preg_match('/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\x00\x00\xFF\xFE|\xFE\xFF\x00\x00)/', $xmlChunk)) {
|
542 |
+
return true;
|
543 |
+
} elseif (preg_match('/^(\xFE\xFF|\xFF\xFE)/', $xmlChunk)) {
|
544 |
+
return true;
|
545 |
+
} elseif (preg_match('/^(\xEF\xBB\xBF)/', $xmlChunk)) {
|
546 |
+
return true;
|
547 |
+
}
|
548 |
+
|
549 |
+
// test if encoding is specified in the xml declaration
|
550 |
+
// Details:
|
551 |
+
// SPACE: (#x20 | #x9 | #xD | #xA)+ === [ \x9\xD\xA]+
|
552 |
+
// EQ: SPACE?=SPACE? === [ \x9\xD\xA]*=[ \x9\xD\xA]*
|
553 |
+
if (preg_match('/^<\?xml\s+version\s*=\s*' . "((?:\"[a-zA-Z0-9_.:-]+\")|(?:'[a-zA-Z0-9_.:-]+'))" .
|
554 |
+
'\s+encoding\s*=\s*' . "((?:\"[A-Za-z][A-Za-z0-9._-]*\")|(?:'[A-Za-z][A-Za-z0-9._-]*'))/",
|
555 |
+
$xmlChunk, $matches)) {
|
556 |
+
return true;
|
557 |
+
}
|
558 |
+
|
559 |
+
return false;
|
560 |
+
}
|
561 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/PhpXmlRpc.php
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Manages global configuration for operation of the library.
|
7 |
+
*/
|
8 |
+
class PhpXmlRpc
|
9 |
+
{
|
10 |
+
static public $xmlrpcerr = array(
|
11 |
+
'unknown_method' => 1,
|
12 |
+
'invalid_return' => 2,
|
13 |
+
'incorrect_params' => 3,
|
14 |
+
'introspect_unknown' => 4,
|
15 |
+
'http_error' => 5,
|
16 |
+
'no_data' => 6,
|
17 |
+
'no_ssl' => 7,
|
18 |
+
'curl_fail' => 8,
|
19 |
+
'invalid_request' => 15,
|
20 |
+
'no_curl' => 16,
|
21 |
+
'server_error' => 17,
|
22 |
+
'multicall_error' => 18,
|
23 |
+
'multicall_notstruct' => 9,
|
24 |
+
'multicall_nomethod' => 10,
|
25 |
+
'multicall_notstring' => 11,
|
26 |
+
'multicall_recursion' => 12,
|
27 |
+
'multicall_noparams' => 13,
|
28 |
+
'multicall_notarray' => 14,
|
29 |
+
|
30 |
+
'cannot_decompress' => 103,
|
31 |
+
'decompress_fail' => 104,
|
32 |
+
'dechunk_fail' => 105,
|
33 |
+
'server_cannot_decompress' => 106,
|
34 |
+
'server_decompress_fail' => 107,
|
35 |
+
);
|
36 |
+
|
37 |
+
static public $xmlrpcstr = array(
|
38 |
+
'unknown_method' => 'Unknown method',
|
39 |
+
'invalid_return' => 'Invalid response payload (you can use the setDebug method to allow analysis of the response)',
|
40 |
+
'incorrect_params' => 'Incorrect parameters passed to method',
|
41 |
+
'introspect_unknown' => "Can't introspect: method unknown",
|
42 |
+
'http_error' => "Didn't receive 200 OK from remote server",
|
43 |
+
'no_data' => 'No data received from server',
|
44 |
+
'no_ssl' => 'No SSL support compiled in',
|
45 |
+
'curl_fail' => 'CURL error',
|
46 |
+
'invalid_request' => 'Invalid request payload',
|
47 |
+
'no_curl' => 'No CURL support compiled in',
|
48 |
+
'server_error' => 'Internal server error',
|
49 |
+
'multicall_error' => 'Received from server invalid multicall response',
|
50 |
+
'multicall_notstruct' => 'system.multicall expected struct',
|
51 |
+
'multicall_nomethod' => 'Missing methodName',
|
52 |
+
'multicall_notstring' => 'methodName is not a string',
|
53 |
+
'multicall_recursion' => 'Recursive system.multicall forbidden',
|
54 |
+
'multicall_noparams' => 'Missing params',
|
55 |
+
'multicall_notarray' => 'params is not an array',
|
56 |
+
|
57 |
+
'cannot_decompress' => 'Received from server compressed HTTP and cannot decompress',
|
58 |
+
'decompress_fail' => 'Received from server invalid compressed HTTP',
|
59 |
+
'dechunk_fail' => 'Received from server invalid chunked HTTP',
|
60 |
+
'server_cannot_decompress' => 'Received from client compressed HTTP request and cannot decompress',
|
61 |
+
'server_decompress_fail' => 'Received from client invalid compressed HTTP request',
|
62 |
+
);
|
63 |
+
|
64 |
+
// The charset encoding used by the server for received requests and
|
65 |
+
// by the client for received responses when received charset cannot be determined
|
66 |
+
// and mbstring extension is not enabled
|
67 |
+
public static $xmlrpc_defencoding = "UTF-8";
|
68 |
+
|
69 |
+
// The list of encodings used by the server for requests and by the client for responses
|
70 |
+
// to detect the charset of the received payload when
|
71 |
+
// - the charset cannot be determined by looking at http headers, xml declaration or BOM
|
72 |
+
// - mbstring extension is enabled
|
73 |
+
public static $xmlrpc_detectencodings = array();
|
74 |
+
|
75 |
+
// The encoding used internally by PHP.
|
76 |
+
// String values received as xml will be converted to this, and php strings will be converted to xml
|
77 |
+
// as if having been coded with this.
|
78 |
+
// Valid also when defining names of xmlrpc methods
|
79 |
+
public static $xmlrpc_internalencoding = "UTF-8";
|
80 |
+
|
81 |
+
public static $xmlrpcName = "XML-RPC for PHP";
|
82 |
+
public static $xmlrpcVersion = "4.3.2";
|
83 |
+
|
84 |
+
// let user errors start at 800
|
85 |
+
public static $xmlrpcerruser = 800;
|
86 |
+
// let XML parse errors start at 100
|
87 |
+
public static $xmlrpcerrxml = 100;
|
88 |
+
|
89 |
+
// set to TRUE to enable correct decoding of <NIL/> and <EX:NIL/> values
|
90 |
+
public static $xmlrpc_null_extension = false;
|
91 |
+
|
92 |
+
// set to TRUE to enable encoding of php NULL values to <EX:NIL/> instead of <NIL/>
|
93 |
+
public static $xmlrpc_null_apache_encoding = false;
|
94 |
+
|
95 |
+
public static $xmlrpc_null_apache_encoding_ns = "http://ws.apache.org/xmlrpc/namespaces/extensions";
|
96 |
+
|
97 |
+
/**
|
98 |
+
* A function to be used for compatibility with legacy code: it creates all global variables which used to be declared,
|
99 |
+
* such as library version etc...
|
100 |
+
*/
|
101 |
+
public static function exportGlobals()
|
102 |
+
{
|
103 |
+
$reflection = new \ReflectionClass('PhpXmlRpc\PhpXmlRpc');
|
104 |
+
foreach ($reflection->getStaticProperties() as $name => $value) {
|
105 |
+
$GLOBALS[$name] = $value;
|
106 |
+
}
|
107 |
+
|
108 |
+
// NB: all the variables exported into the global namespace below here do NOT guarantee 100%
|
109 |
+
// compatibility, as they are NOT reimported back during calls to importGlobals()
|
110 |
+
|
111 |
+
$reflection = new \ReflectionClass('PhpXmlRpc\Value');
|
112 |
+
foreach ($reflection->getStaticProperties() as $name => $value) {
|
113 |
+
$GLOBALS[$name] = $value;
|
114 |
+
}
|
115 |
+
|
116 |
+
$parser = new Helper\XMLParser();
|
117 |
+
$reflection = new \ReflectionClass('PhpXmlRpc\Helper\XMLParser');
|
118 |
+
foreach ($reflection->getProperties(\ReflectionProperty::IS_PUBLIC) as $name => $value) {
|
119 |
+
if (in_array($value->getName(), array('xmlrpc_valid_parents')))
|
120 |
+
{
|
121 |
+
$GLOBALS[$value->getName()] = $value->getValue($parser);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
$charset = Helper\Charset::instance();
|
126 |
+
$GLOBALS['xml_iso88591_Entities'] = $charset->getEntities('iso88591');
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* A function to be used for compatibility with legacy code: it gets the values of all global variables which used
|
131 |
+
* to be declared, such as library version etc... and sets them to php classes.
|
132 |
+
* It should be used by code which changed the values of those global variables to alter the working of the library.
|
133 |
+
* Example code:
|
134 |
+
* 1. include xmlrpc.inc
|
135 |
+
* 2. set the values, e.g. $GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
|
136 |
+
* 3. import them: PhpXmlRpc\PhpXmlRpc::importGlobals();
|
137 |
+
* 4. run your own code.
|
138 |
+
*/
|
139 |
+
public static function importGlobals()
|
140 |
+
{
|
141 |
+
$reflection = new \ReflectionClass('PhpXmlRpc\PhpXmlRpc');
|
142 |
+
$staticProperties = $reflection->getStaticProperties();
|
143 |
+
foreach ($staticProperties as $name => $value) {
|
144 |
+
if (isset($GLOBALS[$name])) {
|
145 |
+
self::$$name = $GLOBALS[$name];
|
146 |
+
}
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Request.php
ADDED
@@ -0,0 +1,388 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
use PhpXmlRpc\Helper\Charset;
|
6 |
+
use PhpXmlRpc\Helper\Http;
|
7 |
+
use PhpXmlRpc\Helper\Logger;
|
8 |
+
use PhpXmlRpc\Helper\XMLParser;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* This class provides the representation of a request to an XML-RPC server.
|
12 |
+
* A client sends a PhpXmlrpc\Request to a server, and receives back an PhpXmlrpc\Response.
|
13 |
+
*/
|
14 |
+
class Request
|
15 |
+
{
|
16 |
+
/// @todo: do these need to be public?
|
17 |
+
public $payload;
|
18 |
+
public $methodname;
|
19 |
+
public $params = array();
|
20 |
+
public $debug = 0;
|
21 |
+
public $content_type = 'text/xml';
|
22 |
+
|
23 |
+
// holds data while parsing the response. NB: Not a full Response object
|
24 |
+
protected $httpResponse = array();
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @param string $methodName the name of the method to invoke
|
28 |
+
* @param Value[] $params array of parameters to be passed to the method (NB: Value objects, not plain php values)
|
29 |
+
*/
|
30 |
+
public function __construct($methodName, $params = array())
|
31 |
+
{
|
32 |
+
$this->methodname = $methodName;
|
33 |
+
foreach ($params as $param) {
|
34 |
+
$this->addParam($param);
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
public function xml_header($charsetEncoding = '')
|
39 |
+
{
|
40 |
+
if ($charsetEncoding != '') {
|
41 |
+
return "<?xml version=\"1.0\" encoding=\"$charsetEncoding\" ?" . ">\n<methodCall>\n";
|
42 |
+
} else {
|
43 |
+
return "<?xml version=\"1.0\"?" . ">\n<methodCall>\n";
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
public function xml_footer()
|
48 |
+
{
|
49 |
+
return '</methodCall>';
|
50 |
+
}
|
51 |
+
|
52 |
+
public function createPayload($charsetEncoding = '')
|
53 |
+
{
|
54 |
+
if ($charsetEncoding != '') {
|
55 |
+
$this->content_type = 'text/xml; charset=' . $charsetEncoding;
|
56 |
+
} else {
|
57 |
+
$this->content_type = 'text/xml';
|
58 |
+
}
|
59 |
+
$this->payload = $this->xml_header($charsetEncoding);
|
60 |
+
$this->payload .= '<methodName>' . Charset::instance()->encodeEntities(
|
61 |
+
$this->methodname, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</methodName>\n";
|
62 |
+
$this->payload .= "<params>\n";
|
63 |
+
foreach ($this->params as $p) {
|
64 |
+
$this->payload .= "<param>\n" . $p->serialize($charsetEncoding) .
|
65 |
+
"</param>\n";
|
66 |
+
}
|
67 |
+
$this->payload .= "</params>\n";
|
68 |
+
$this->payload .= $this->xml_footer();
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Gets/sets the xmlrpc method to be invoked.
|
73 |
+
*
|
74 |
+
* @param string $methodName the method to be set (leave empty not to set it)
|
75 |
+
*
|
76 |
+
* @return string the method that will be invoked
|
77 |
+
*/
|
78 |
+
public function method($methodName = '')
|
79 |
+
{
|
80 |
+
if ($methodName != '') {
|
81 |
+
$this->methodname = $methodName;
|
82 |
+
}
|
83 |
+
|
84 |
+
return $this->methodname;
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Returns xml representation of the message. XML prologue included.
|
89 |
+
*
|
90 |
+
* @param string $charsetEncoding
|
91 |
+
*
|
92 |
+
* @return string the xml representation of the message, xml prologue included
|
93 |
+
*/
|
94 |
+
public function serialize($charsetEncoding = '')
|
95 |
+
{
|
96 |
+
$this->createPayload($charsetEncoding);
|
97 |
+
|
98 |
+
return $this->payload;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Add a parameter to the list of parameters to be used upon method invocation.
|
103 |
+
*
|
104 |
+
* Checks that $params is actually a Value object and not a plain php value.
|
105 |
+
*
|
106 |
+
* @param Value $param
|
107 |
+
*
|
108 |
+
* @return boolean false on failure
|
109 |
+
*/
|
110 |
+
public function addParam($param)
|
111 |
+
{
|
112 |
+
// check: do not add to self params which are not xmlrpc values
|
113 |
+
if (is_object($param) && is_a($param, 'PhpXmlRpc\Value')) {
|
114 |
+
$this->params[] = $param;
|
115 |
+
|
116 |
+
return true;
|
117 |
+
} else {
|
118 |
+
return false;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Returns the nth parameter in the request. The index zero-based.
|
124 |
+
*
|
125 |
+
* @param integer $i the index of the parameter to fetch (zero based)
|
126 |
+
*
|
127 |
+
* @return Value the i-th parameter
|
128 |
+
*/
|
129 |
+
public function getParam($i)
|
130 |
+
{
|
131 |
+
return $this->params[$i];
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Returns the number of parameters in the message.
|
136 |
+
*
|
137 |
+
* @return integer the number of parameters currently set
|
138 |
+
*/
|
139 |
+
public function getNumParams()
|
140 |
+
{
|
141 |
+
return count($this->params);
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Given an open file handle, read all data available and parse it as an xmlrpc response.
|
146 |
+
*
|
147 |
+
* NB: the file handle is not closed by this function.
|
148 |
+
* NNB: might have trouble in rare cases to work on network streams, as we check for a read of 0 bytes instead of
|
149 |
+
* feof($fp). But since checking for feof(null) returns false, we would risk an infinite loop in that case,
|
150 |
+
* because we cannot trust the caller to give us a valid pointer to an open file...
|
151 |
+
*
|
152 |
+
* @param resource $fp stream pointer
|
153 |
+
*
|
154 |
+
* @return Response
|
155 |
+
*
|
156 |
+
* @todo add 2nd & 3rd param to be passed to ParseResponse() ???
|
157 |
+
*/
|
158 |
+
public function parseResponseFile($fp)
|
159 |
+
{
|
160 |
+
$ipd = '';
|
161 |
+
while ($data = fread($fp, 32768)) {
|
162 |
+
$ipd .= $data;
|
163 |
+
}
|
164 |
+
return $this->parseResponse($ipd);
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Parse the xmlrpc response contained in the string $data and return a Response object.
|
169 |
+
*
|
170 |
+
* When $this->debug has been set to a value greater than 0, will echo debug messages to screen while decoding.
|
171 |
+
*
|
172 |
+
* @param string $data the xmlrpc response, possibly including http headers
|
173 |
+
* @param bool $headersProcessed when true prevents parsing HTTP headers for interpretation of content-encoding and
|
174 |
+
* consequent decoding
|
175 |
+
* @param string $returnType decides return type, i.e. content of response->value(). Either 'xmlrpcvals', 'xml' or
|
176 |
+
* 'phpvals'
|
177 |
+
*
|
178 |
+
* @return Response
|
179 |
+
*/
|
180 |
+
public function parseResponse($data = '', $headersProcessed = false, $returnType = 'xmlrpcvals')
|
181 |
+
{
|
182 |
+
if ($this->debug) {
|
183 |
+
Logger::instance()->debugMessage("---GOT---\n$data\n---END---");
|
184 |
+
}
|
185 |
+
|
186 |
+
$this->httpResponse = array('raw_data' => $data, 'headers' => array(), 'cookies' => array());
|
187 |
+
|
188 |
+
if ($data == '') {
|
189 |
+
error_log('XML-RPC: ' . __METHOD__ . ': no response received from server.');
|
190 |
+
return new Response(0, PhpXmlRpc::$xmlrpcerr['no_data'], PhpXmlRpc::$xmlrpcstr['no_data']);
|
191 |
+
}
|
192 |
+
|
193 |
+
// parse the HTTP headers of the response, if present, and separate them from data
|
194 |
+
if (substr($data, 0, 4) == 'HTTP') {
|
195 |
+
$httpParser = new Http();
|
196 |
+
try {
|
197 |
+
$this->httpResponse = $httpParser->parseResponseHeaders($data, $headersProcessed, $this->debug);
|
198 |
+
} catch(\Exception $e) {
|
199 |
+
$r = new Response(0, $e->getCode(), $e->getMessage());
|
200 |
+
// failed processing of HTTP response headers
|
201 |
+
// save into response obj the full payload received, for debugging
|
202 |
+
$r->raw_data = $data;
|
203 |
+
|
204 |
+
return $r;
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
// be tolerant of extra whitespace in response body
|
209 |
+
$data = trim($data);
|
210 |
+
|
211 |
+
/// @todo return an error msg if $data=='' ?
|
212 |
+
|
213 |
+
// be tolerant of junk after methodResponse (e.g. javascript ads automatically inserted by free hosts)
|
214 |
+
// idea from Luca Mariano <luca.mariano@email.it> originally in PEARified version of the lib
|
215 |
+
$pos = strrpos($data, '</methodResponse>');
|
216 |
+
if ($pos !== false) {
|
217 |
+
$data = substr($data, 0, $pos + 17);
|
218 |
+
}
|
219 |
+
|
220 |
+
// try to 'guestimate' the character encoding of the received response
|
221 |
+
$respEncoding = XMLParser::guessEncoding(@$this->httpResponse['headers']['content-type'], $data);
|
222 |
+
|
223 |
+
if ($this->debug) {
|
224 |
+
$start = strpos($data, '<!-- SERVER DEBUG INFO (BASE64 ENCODED):');
|
225 |
+
if ($start) {
|
226 |
+
$start += strlen('<!-- SERVER DEBUG INFO (BASE64 ENCODED):');
|
227 |
+
$end = strpos($data, '-->', $start);
|
228 |
+
$comments = substr($data, $start, $end - $start);
|
229 |
+
Logger::instance()->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t" .
|
230 |
+
str_replace("\n", "\n\t", base64_decode($comments)) . "\n---END---", $respEncoding);
|
231 |
+
}
|
232 |
+
}
|
233 |
+
|
234 |
+
// if user wants back raw xml, give it to him
|
235 |
+
if ($returnType == 'xml') {
|
236 |
+
$r = new Response($data, 0, '', 'xml');
|
237 |
+
$r->hdrs = $this->httpResponse['headers'];
|
238 |
+
$r->_cookies = $this->httpResponse['cookies'];
|
239 |
+
$r->raw_data = $this->httpResponse['raw_data'];
|
240 |
+
|
241 |
+
return $r;
|
242 |
+
}
|
243 |
+
|
244 |
+
if ($respEncoding != '') {
|
245 |
+
|
246 |
+
// Since parsing will fail if charset is not specified in the xml prologue,
|
247 |
+
// the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that...
|
248 |
+
// The following code might be better for mb_string enabled installs, but
|
249 |
+
// makes the lib about 200% slower...
|
250 |
+
//if (!is_valid_charset($respEncoding, array('UTF-8')))
|
251 |
+
if (!in_array($respEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($data)) {
|
252 |
+
if ($respEncoding == 'ISO-8859-1') {
|
253 |
+
$data = utf8_encode($data);
|
254 |
+
} else {
|
255 |
+
if (extension_loaded('mbstring')) {
|
256 |
+
$data = mb_convert_encoding($data, 'UTF-8', $respEncoding);
|
257 |
+
} else {
|
258 |
+
error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received response: ' . $respEncoding);
|
259 |
+
}
|
260 |
+
}
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
$parser = xml_parser_create();
|
265 |
+
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
|
266 |
+
// G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
|
267 |
+
// the xml parser to give us back data in the expected charset.
|
268 |
+
// What if internal encoding is not in one of the 3 allowed?
|
269 |
+
// we use the broadest one, ie. utf8
|
270 |
+
// This allows to send data which is native in various charset,
|
271 |
+
// by extending xmlrpc_encode_entities() and setting xmlrpc_internalencoding
|
272 |
+
if (!in_array(PhpXmlRpc::$xmlrpc_internalencoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
|
273 |
+
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
|
274 |
+
} else {
|
275 |
+
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, PhpXmlRpc::$xmlrpc_internalencoding);
|
276 |
+
}
|
277 |
+
|
278 |
+
$xmlRpcParser = new XMLParser();
|
279 |
+
xml_set_object($parser, $xmlRpcParser);
|
280 |
+
|
281 |
+
if ($returnType == 'phpvals') {
|
282 |
+
xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee_fast');
|
283 |
+
} else {
|
284 |
+
xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee');
|
285 |
+
}
|
286 |
+
|
287 |
+
xml_set_character_data_handler($parser, 'xmlrpc_cd');
|
288 |
+
xml_set_default_handler($parser, 'xmlrpc_dh');
|
289 |
+
|
290 |
+
// first error check: xml not well formed
|
291 |
+
if (!xml_parse($parser, $data, 1)) {
|
292 |
+
// thanks to Peter Kocks <peter.kocks@baygate.com>
|
293 |
+
if ((xml_get_current_line_number($parser)) == 1) {
|
294 |
+
$errStr = 'XML error at line 1, check URL';
|
295 |
+
} else {
|
296 |
+
$errStr = sprintf('XML error: %s at line %d, column %d',
|
297 |
+
xml_error_string(xml_get_error_code($parser)),
|
298 |
+
xml_get_current_line_number($parser), xml_get_current_column_number($parser));
|
299 |
+
}
|
300 |
+
error_log($errStr);
|
301 |
+
$r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'], PhpXmlRpc::$xmlrpcstr['invalid_return'] . ' ' . $errStr);
|
302 |
+
xml_parser_free($parser);
|
303 |
+
if ($this->debug) {
|
304 |
+
print $errStr;
|
305 |
+
}
|
306 |
+
$r->hdrs = $this->httpResponse['headers'];
|
307 |
+
$r->_cookies = $this->httpResponse['cookies'];
|
308 |
+
$r->raw_data = $this->httpResponse['raw_data'];
|
309 |
+
|
310 |
+
return $r;
|
311 |
+
}
|
312 |
+
xml_parser_free($parser);
|
313 |
+
// second error check: xml well formed but not xml-rpc compliant
|
314 |
+
if ($xmlRpcParser->_xh['isf'] > 1) {
|
315 |
+
if ($this->debug) {
|
316 |
+
/// @todo echo something for user?
|
317 |
+
}
|
318 |
+
|
319 |
+
$r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'],
|
320 |
+
PhpXmlRpc::$xmlrpcstr['invalid_return'] . ' ' . $xmlRpcParser->_xh['isf_reason']);
|
321 |
+
}
|
322 |
+
// third error check: parsing of the response has somehow gone boink.
|
323 |
+
// NB: shall we omit this check, since we trust the parsing code?
|
324 |
+
elseif ($returnType == 'xmlrpcvals' && !is_object($xmlRpcParser->_xh['value'])) {
|
325 |
+
// something odd has happened
|
326 |
+
// and it's time to generate a client side error
|
327 |
+
// indicating something odd went on
|
328 |
+
$r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'],
|
329 |
+
PhpXmlRpc::$xmlrpcstr['invalid_return']);
|
330 |
+
} else {
|
331 |
+
if ($this->debug > 1) {
|
332 |
+
Logger::instance()->debugMessage(
|
333 |
+
"---PARSED---\n".var_export($xmlRpcParser->_xh['value'], true)."\n---END---"
|
334 |
+
);
|
335 |
+
}
|
336 |
+
|
337 |
+
$v = $xmlRpcParser->_xh['value'];
|
338 |
+
|
339 |
+
if ($xmlRpcParser->_xh['isf']) {
|
340 |
+
/// @todo we should test here if server sent an int and a string, and/or coerce them into such...
|
341 |
+
if ($returnType == 'xmlrpcvals') {
|
342 |
+
$errNo_v = $v['faultCode'];
|
343 |
+
$errStr_v = $v['faultString'];
|
344 |
+
$errNo = $errNo_v->scalarval();
|
345 |
+
$errStr = $errStr_v->scalarval();
|
346 |
+
} else {
|
347 |
+
$errNo = $v['faultCode'];
|
348 |
+
$errStr = $v['faultString'];
|
349 |
+
}
|
350 |
+
|
351 |
+
if ($errNo == 0) {
|
352 |
+
// FAULT returned, errno needs to reflect that
|
353 |
+
$errNo = -1;
|
354 |
+
}
|
355 |
+
|
356 |
+
$r = new Response(0, $errNo, $errStr);
|
357 |
+
} else {
|
358 |
+
$r = new Response($v, 0, '', $returnType);
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
+
$r->hdrs = $this->httpResponse['headers'];
|
363 |
+
$r->_cookies = $this->httpResponse['cookies'];
|
364 |
+
$r->raw_data = $this->httpResponse['raw_data'];
|
365 |
+
|
366 |
+
return $r;
|
367 |
+
}
|
368 |
+
|
369 |
+
/**
|
370 |
+
* Kept the old name even if Request class was renamed, for compatibility.
|
371 |
+
*
|
372 |
+
* @return string
|
373 |
+
*/
|
374 |
+
public function kindOf()
|
375 |
+
{
|
376 |
+
return 'msg';
|
377 |
+
}
|
378 |
+
|
379 |
+
/**
|
380 |
+
* Enables/disables the echoing to screen of the xmlrpc responses received.
|
381 |
+
*
|
382 |
+
* @param integer $level values 0, 1, 2 are supported
|
383 |
+
*/
|
384 |
+
public function setDebug($level)
|
385 |
+
{
|
386 |
+
$this->debug = $level;
|
387 |
+
}
|
388 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Response.php
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
use PhpXmlRpc\Helper\Charset;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* This class provides the representation of the response of an XML-RPC server.
|
9 |
+
* Server-side, a server method handler will construct a Response and pass it as its return value.
|
10 |
+
* An identical Response object will be returned by the result of an invocation of the send() method of the Client class.
|
11 |
+
*/
|
12 |
+
class Response
|
13 |
+
{
|
14 |
+
/// @todo: do these need to be public?
|
15 |
+
public $val = 0;
|
16 |
+
public $valtyp;
|
17 |
+
public $errno = 0;
|
18 |
+
public $errstr = '';
|
19 |
+
public $payload;
|
20 |
+
public $hdrs = array();
|
21 |
+
public $_cookies = array();
|
22 |
+
public $content_type = 'text/xml';
|
23 |
+
public $raw_data = '';
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @param mixed $val either a Value object, a php value or the xml serialization of an xmlrpc value (a string)
|
27 |
+
* @param integer $fCode set it to anything but 0 to create an error response. In that case, $val is discarded
|
28 |
+
* @param string $fString the error string, in case of an error response
|
29 |
+
* @param string $valType The type of $val passed in. Either 'xmlrpcvals', 'phpvals' or 'xml'. Leave empty to let
|
30 |
+
* the code guess the correct type.
|
31 |
+
*
|
32 |
+
* @todo add check that $val / $fCode / $fString is of correct type???
|
33 |
+
* NB: as of now we do not do it, since it might be either an xmlrpc value or a plain php val, or a complete
|
34 |
+
* xml chunk, depending on usage of Client::send() inside which creator is called...
|
35 |
+
*/
|
36 |
+
public function __construct($val, $fCode = 0, $fString = '', $valType = '')
|
37 |
+
{
|
38 |
+
if ($fCode != 0) {
|
39 |
+
// error response
|
40 |
+
$this->errno = $fCode;
|
41 |
+
$this->errstr = $fString;
|
42 |
+
} else {
|
43 |
+
// successful response
|
44 |
+
$this->val = $val;
|
45 |
+
if ($valType == '') {
|
46 |
+
// user did not declare type of response value: try to guess it
|
47 |
+
if (is_object($this->val) && is_a($this->val, 'PhpXmlRpc\Value')) {
|
48 |
+
$this->valtyp = 'xmlrpcvals';
|
49 |
+
} elseif (is_string($this->val)) {
|
50 |
+
$this->valtyp = 'xml';
|
51 |
+
} else {
|
52 |
+
$this->valtyp = 'phpvals';
|
53 |
+
}
|
54 |
+
} else {
|
55 |
+
// user declares type of resp value: believe him
|
56 |
+
$this->valtyp = $valType;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Returns the error code of the response.
|
63 |
+
*
|
64 |
+
* @return integer the error code of this response (0 for not-error responses)
|
65 |
+
*/
|
66 |
+
public function faultCode()
|
67 |
+
{
|
68 |
+
return $this->errno;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Returns the error code of the response.
|
73 |
+
*
|
74 |
+
* @return string the error string of this response ('' for not-error responses)
|
75 |
+
*/
|
76 |
+
public function faultString()
|
77 |
+
{
|
78 |
+
return $this->errstr;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Returns the value received by the server. If the Response's faultCode is non-zero then the value returned by this
|
83 |
+
* method should not be used (it may not even be an object).
|
84 |
+
*
|
85 |
+
* @return Value|string|mixed the Value object returned by the server. Might be an xml string or plain php value
|
86 |
+
* depending on the convention adopted when creating the Response
|
87 |
+
*/
|
88 |
+
public function value()
|
89 |
+
{
|
90 |
+
return $this->val;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Returns an array with the cookies received from the server.
|
95 |
+
* Array has the form: $cookiename => array ('value' => $val, $attr1 => $val1, $attr2 => $val2, ...)
|
96 |
+
* with attributes being e.g. 'expires', 'path', domain'.
|
97 |
+
* NB: cookies sent as 'expired' by the server (i.e. with an expiry date in the past) are still present in the array.
|
98 |
+
* It is up to the user-defined code to decide how to use the received cookies, and whether they have to be sent back
|
99 |
+
* with the next request to the server (using Client::setCookie) or not.
|
100 |
+
*
|
101 |
+
* @return array array of cookies received from the server
|
102 |
+
*/
|
103 |
+
public function cookies()
|
104 |
+
{
|
105 |
+
return $this->_cookies;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Returns xml representation of the response. XML prologue not included.
|
110 |
+
*
|
111 |
+
* @param string $charsetEncoding the charset to be used for serialization. If null, US-ASCII is assumed
|
112 |
+
*
|
113 |
+
* @return string the xml representation of the response
|
114 |
+
*
|
115 |
+
* @throws \Exception
|
116 |
+
*/
|
117 |
+
public function serialize($charsetEncoding = '')
|
118 |
+
{
|
119 |
+
if ($charsetEncoding != '') {
|
120 |
+
$this->content_type = 'text/xml; charset=' . $charsetEncoding;
|
121 |
+
} else {
|
122 |
+
$this->content_type = 'text/xml';
|
123 |
+
}
|
124 |
+
if (PhpXmlRpc::$xmlrpc_null_apache_encoding) {
|
125 |
+
$result = "<methodResponse xmlns:ex=\"" . PhpXmlRpc::$xmlrpc_null_apache_encoding_ns . "\">\n";
|
126 |
+
} else {
|
127 |
+
$result = "<methodResponse>\n";
|
128 |
+
}
|
129 |
+
if ($this->errno) {
|
130 |
+
// G. Giunta 2005/2/13: let non-ASCII response messages be tolerated by clients
|
131 |
+
// by xml-encoding non ascii chars
|
132 |
+
$result .= "<fault>\n" .
|
133 |
+
"<value>\n<struct><member><name>faultCode</name>\n<value><int>" . $this->errno .
|
134 |
+
"</int></value>\n</member>\n<member>\n<name>faultString</name>\n<value><string>" .
|
135 |
+
Charset::instance()->encodeEntities($this->errstr, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</string></value>\n</member>\n" .
|
136 |
+
"</struct>\n</value>\n</fault>";
|
137 |
+
} else {
|
138 |
+
if (!is_object($this->val) || !is_a($this->val, 'PhpXmlRpc\Value')) {
|
139 |
+
if (is_string($this->val) && $this->valtyp == 'xml') {
|
140 |
+
$result .= "<params>\n<param>\n" .
|
141 |
+
$this->val .
|
142 |
+
"</param>\n</params>";
|
143 |
+
} else {
|
144 |
+
/// @todo try to build something serializable?
|
145 |
+
throw new \Exception('cannot serialize xmlrpc response objects whose content is native php values');
|
146 |
+
}
|
147 |
+
} else {
|
148 |
+
$result .= "<params>\n<param>\n" .
|
149 |
+
$this->val->serialize($charsetEncoding) .
|
150 |
+
"</param>\n</params>";
|
151 |
+
}
|
152 |
+
}
|
153 |
+
$result .= "\n</methodResponse>";
|
154 |
+
$this->payload = $result;
|
155 |
+
|
156 |
+
return $result;
|
157 |
+
}
|
158 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Value.php
ADDED
@@ -0,0 +1,600 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace PhpXmlRpc;
|
4 |
+
|
5 |
+
use PhpXmlRpc\Helper\Charset;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* This class enables the creation of values for XML-RPC, by encapsulating plain php values.
|
9 |
+
*/
|
10 |
+
class Value implements \Countable, \IteratorAggregate, \ArrayAccess
|
11 |
+
{
|
12 |
+
public static $xmlrpcI4 = "i4";
|
13 |
+
public static $xmlrpcI8 = "i8";
|
14 |
+
public static $xmlrpcInt = "int";
|
15 |
+
public static $xmlrpcBoolean = "boolean";
|
16 |
+
public static $xmlrpcDouble = "double";
|
17 |
+
public static $xmlrpcString = "string";
|
18 |
+
public static $xmlrpcDateTime = "dateTime.iso8601";
|
19 |
+
public static $xmlrpcBase64 = "base64";
|
20 |
+
public static $xmlrpcArray = "array";
|
21 |
+
public static $xmlrpcStruct = "struct";
|
22 |
+
public static $xmlrpcValue = "undefined";
|
23 |
+
public static $xmlrpcNull = "null";
|
24 |
+
|
25 |
+
public static $xmlrpcTypes = array(
|
26 |
+
"i4" => 1,
|
27 |
+
"i8" => 1,
|
28 |
+
"int" => 1,
|
29 |
+
"boolean" => 1,
|
30 |
+
"double" => 1,
|
31 |
+
"string" => 1,
|
32 |
+
"dateTime.iso8601" => 1,
|
33 |
+
"base64" => 1,
|
34 |
+
"array" => 2,
|
35 |
+
"struct" => 3,
|
36 |
+
"null" => 1,
|
37 |
+
);
|
38 |
+
|
39 |
+
/// @todo: do these need to be public?
|
40 |
+
public $me = array();
|
41 |
+
public $mytype = 0;
|
42 |
+
public $_php_class = null;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Build an xmlrpc value.
|
46 |
+
*
|
47 |
+
* When no value or type is passed in, the value is left uninitialized, and the value can be added later.
|
48 |
+
*
|
49 |
+
* @param mixed $val if passing in an array, all array elements should be PhpXmlRpc\Value themselves
|
50 |
+
* @param string $type any valid xmlrpc type name (lowercase): i4, int, boolean, string, double, dateTime.iso8601,
|
51 |
+
* base64, array, struct, null.
|
52 |
+
* If null, 'string' is assumed.
|
53 |
+
* You should refer to http://www.xmlrpc.com/spec for more information on what each of these mean.
|
54 |
+
*/
|
55 |
+
public function __construct($val = -1, $type = '')
|
56 |
+
{
|
57 |
+
// optimization creep - do not call addXX, do it all inline.
|
58 |
+
// downside: booleans will not be coerced anymore
|
59 |
+
if ($val !== -1 || $type != '') {
|
60 |
+
switch ($type) {
|
61 |
+
case '':
|
62 |
+
$this->mytype = 1;
|
63 |
+
$this->me['string'] = $val;
|
64 |
+
break;
|
65 |
+
case 'i4':
|
66 |
+
case 'i8':
|
67 |
+
case 'int':
|
68 |
+
case 'double':
|
69 |
+
case 'string':
|
70 |
+
case 'boolean':
|
71 |
+
case 'dateTime.iso8601':
|
72 |
+
case 'base64':
|
73 |
+
case 'null':
|
74 |
+
$this->mytype = 1;
|
75 |
+
$this->me[$type] = $val;
|
76 |
+
break;
|
77 |
+
case 'array':
|
78 |
+
$this->mytype = 2;
|
79 |
+
$this->me['array'] = $val;
|
80 |
+
break;
|
81 |
+
case 'struct':
|
82 |
+
$this->mytype = 3;
|
83 |
+
$this->me['struct'] = $val;
|
84 |
+
break;
|
85 |
+
default:
|
86 |
+
error_log("XML-RPC: " . __METHOD__ . ": not a known type ($type)");
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Add a single php value to an xmlrpc value.
|
93 |
+
*
|
94 |
+
* If the xmlrpc value is an array, the php value is added as its last element.
|
95 |
+
* If the xmlrpc value is empty (uninitialized), this method makes it a scalar value, and sets that value.
|
96 |
+
* Fails if the xmlrpc value is not an array and already initialized.
|
97 |
+
*
|
98 |
+
* @param mixed $val
|
99 |
+
* @param string $type allowed values: i4, i8, int, boolean, string, double, dateTime.iso8601, base64, null.
|
100 |
+
*
|
101 |
+
* @return int 1 or 0 on failure
|
102 |
+
*/
|
103 |
+
public function addScalar($val, $type = 'string')
|
104 |
+
{
|
105 |
+
$typeOf = null;
|
106 |
+
if (isset(static::$xmlrpcTypes[$type])) {
|
107 |
+
$typeOf = static::$xmlrpcTypes[$type];
|
108 |
+
}
|
109 |
+
|
110 |
+
if ($typeOf !== 1) {
|
111 |
+
error_log("XML-RPC: " . __METHOD__ . ": not a scalar type ($type)");
|
112 |
+
return 0;
|
113 |
+
}
|
114 |
+
|
115 |
+
// coerce booleans into correct values
|
116 |
+
// NB: we should either do it for datetimes, integers, i8 and doubles, too,
|
117 |
+
// or just plain remove this check, implemented on booleans only...
|
118 |
+
if ($type == static::$xmlrpcBoolean) {
|
119 |
+
if (strcasecmp($val, 'true') == 0 || $val == 1 || ($val == true && strcasecmp($val, 'false'))) {
|
120 |
+
$val = true;
|
121 |
+
} else {
|
122 |
+
$val = false;
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
switch ($this->mytype) {
|
127 |
+
case 1:
|
128 |
+
error_log('XML-RPC: ' . __METHOD__ . ': scalar xmlrpc value can have only one value');
|
129 |
+
return 0;
|
130 |
+
case 3:
|
131 |
+
error_log('XML-RPC: ' . __METHOD__ . ': cannot add anonymous scalar to struct xmlrpc value');
|
132 |
+
return 0;
|
133 |
+
case 2:
|
134 |
+
// we're adding a scalar value to an array here
|
135 |
+
$this->me['array'][] = new Value($val, $type);
|
136 |
+
|
137 |
+
return 1;
|
138 |
+
default:
|
139 |
+
// a scalar, so set the value and remember we're scalar
|
140 |
+
$this->me[$type] = $val;
|
141 |
+
$this->mytype = $typeOf;
|
142 |
+
|
143 |
+
return 1;
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Add an array of xmlrpc value objects to an xmlrpc value.
|
149 |
+
*
|
150 |
+
* If the xmlrpc value is an array, the elements are appended to the existing ones.
|
151 |
+
* If the xmlrpc value is empty (uninitialized), this method makes it an array value, and sets that value.
|
152 |
+
* Fails otherwise.
|
153 |
+
*
|
154 |
+
* @param Value[] $values
|
155 |
+
*
|
156 |
+
* @return int 1 or 0 on failure
|
157 |
+
*
|
158 |
+
* @todo add some checking for $values to be an array of xmlrpc values?
|
159 |
+
*/
|
160 |
+
public function addArray($values)
|
161 |
+
{
|
162 |
+
if ($this->mytype == 0) {
|
163 |
+
$this->mytype = static::$xmlrpcTypes['array'];
|
164 |
+
$this->me['array'] = $values;
|
165 |
+
|
166 |
+
return 1;
|
167 |
+
} elseif ($this->mytype == 2) {
|
168 |
+
// we're adding to an array here
|
169 |
+
$this->me['array'] = array_merge($this->me['array'], $values);
|
170 |
+
|
171 |
+
return 1;
|
172 |
+
} else {
|
173 |
+
error_log('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']');
|
174 |
+
return 0;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Merges an array of named xmlrpc value objects into an xmlrpc value.
|
180 |
+
*
|
181 |
+
* If the xmlrpc value is a struct, the elements are merged with the existing ones (overwriting existing ones).
|
182 |
+
* If the xmlrpc value is empty (uninitialized), this method makes it a struct value, and sets that value.
|
183 |
+
* Fails otherwise.
|
184 |
+
*
|
185 |
+
* @param Value[] $values
|
186 |
+
*
|
187 |
+
* @return int 1 or 0 on failure
|
188 |
+
*
|
189 |
+
* @todo add some checking for $values to be an array?
|
190 |
+
*/
|
191 |
+
public function addStruct($values)
|
192 |
+
{
|
193 |
+
if ($this->mytype == 0) {
|
194 |
+
$this->mytype = static::$xmlrpcTypes['struct'];
|
195 |
+
$this->me['struct'] = $values;
|
196 |
+
|
197 |
+
return 1;
|
198 |
+
} elseif ($this->mytype == 3) {
|
199 |
+
// we're adding to a struct here
|
200 |
+
$this->me['struct'] = array_merge($this->me['struct'], $values);
|
201 |
+
|
202 |
+
return 1;
|
203 |
+
} else {
|
204 |
+
error_log('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']');
|
205 |
+
return 0;
|
206 |
+
}
|
207 |
+
}
|
208 |
+
|
209 |
+
/**
|
210 |
+
* Returns a string containing either "struct", "array", "scalar" or "undef", describing the base type of the value.
|
211 |
+
*
|
212 |
+
* @return string
|
213 |
+
*/
|
214 |
+
public function kindOf()
|
215 |
+
{
|
216 |
+
switch ($this->mytype) {
|
217 |
+
case 3:
|
218 |
+
return 'struct';
|
219 |
+
break;
|
220 |
+
case 2:
|
221 |
+
return 'array';
|
222 |
+
break;
|
223 |
+
case 1:
|
224 |
+
return 'scalar';
|
225 |
+
break;
|
226 |
+
default:
|
227 |
+
return 'undef';
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
protected function serializedata($typ, $val, $charsetEncoding = '')
|
232 |
+
{
|
233 |
+
$rs = '';
|
234 |
+
|
235 |
+
if (!isset(static::$xmlrpcTypes[$typ])) {
|
236 |
+
return $rs;
|
237 |
+
}
|
238 |
+
|
239 |
+
switch (static::$xmlrpcTypes[$typ]) {
|
240 |
+
case 1:
|
241 |
+
switch ($typ) {
|
242 |
+
case static::$xmlrpcBase64:
|
243 |
+
$rs .= "<${typ}>" . base64_encode($val) . "</${typ}>";
|
244 |
+
break;
|
245 |
+
case static::$xmlrpcBoolean:
|
246 |
+
$rs .= "<${typ}>" . ($val ? '1' : '0') . "</${typ}>";
|
247 |
+
break;
|
248 |
+
case static::$xmlrpcString:
|
249 |
+
// G. Giunta 2005/2/13: do NOT use htmlentities, since
|
250 |
+
// it will produce named html entities, which are invalid xml
|
251 |
+
$rs .= "<${typ}>" . Charset::instance()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</${typ}>";
|
252 |
+
break;
|
253 |
+
case static::$xmlrpcInt:
|
254 |
+
case static::$xmlrpcI4:
|
255 |
+
case static::$xmlrpcI8:
|
256 |
+
$rs .= "<${typ}>" . (int)$val . "</${typ}>";
|
257 |
+
break;
|
258 |
+
case static::$xmlrpcDouble:
|
259 |
+
// avoid using standard conversion of float to string because it is locale-dependent,
|
260 |
+
// and also because the xmlrpc spec forbids exponential notation.
|
261 |
+
// sprintf('%F') could be most likely ok but it fails eg. on 2e-14.
|
262 |
+
// The code below tries its best at keeping max precision while avoiding exp notation,
|
263 |
+
// but there is of course no limit in the number of decimal places to be used...
|
264 |
+
$rs .= "<${typ}>" . preg_replace('/\\.?0+$/', '', number_format((double)$val, 128, '.', '')) . "</${typ}>";
|
265 |
+
break;
|
266 |
+
case static::$xmlrpcDateTime:
|
267 |
+
if (is_string($val)) {
|
268 |
+
$rs .= "<${typ}>${val}</${typ}>";
|
269 |
+
} elseif (is_a($val, 'DateTime')) {
|
270 |
+
$rs .= "<${typ}>" . $val->format('Ymd\TH:i:s') . "</${typ}>";
|
271 |
+
} elseif (is_int($val)) {
|
272 |
+
$rs .= "<${typ}>" . strftime("%Y%m%dT%H:%M:%S", $val) . "</${typ}>";
|
273 |
+
} else {
|
274 |
+
// not really a good idea here: but what shall we output anyway? left for backward compat...
|
275 |
+
$rs .= "<${typ}>${val}</${typ}>";
|
276 |
+
}
|
277 |
+
break;
|
278 |
+
case static::$xmlrpcNull:
|
279 |
+
if (PhpXmlRpc::$xmlrpc_null_apache_encoding) {
|
280 |
+
$rs .= "<ex:nil/>";
|
281 |
+
} else {
|
282 |
+
$rs .= "<nil/>";
|
283 |
+
}
|
284 |
+
break;
|
285 |
+
default:
|
286 |
+
// no standard type value should arrive here, but provide a possibility
|
287 |
+
// for xmlrpc values of unknown type...
|
288 |
+
$rs .= "<${typ}>${val}</${typ}>";
|
289 |
+
}
|
290 |
+
break;
|
291 |
+
case 3:
|
292 |
+
// struct
|
293 |
+
if ($this->_php_class) {
|
294 |
+
$rs .= '<struct php_class="' . $this->_php_class . "\">\n";
|
295 |
+
} else {
|
296 |
+
$rs .= "<struct>\n";
|
297 |
+
}
|
298 |
+
$charsetEncoder = Charset::instance();
|
299 |
+
/** @var Value $val2 */
|
300 |
+
foreach ($val as $key2 => $val2) {
|
301 |
+
$rs .= '<member><name>' . $charsetEncoder->encodeEntities($key2, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</name>\n";
|
302 |
+
//$rs.=$this->serializeval($val2);
|
303 |
+
$rs .= $val2->serialize($charsetEncoding);
|
304 |
+
$rs .= "</member>\n";
|
305 |
+
}
|
306 |
+
$rs .= '</struct>';
|
307 |
+
break;
|
308 |
+
case 2:
|
309 |
+
// array
|
310 |
+
$rs .= "<array>\n<data>\n";
|
311 |
+
/** @var Value $element */
|
312 |
+
foreach ($val as $element) {
|
313 |
+
//$rs.=$this->serializeval($val[$i]);
|
314 |
+
$rs .= $element->serialize($charsetEncoding);
|
315 |
+
}
|
316 |
+
$rs .= "</data>\n</array>";
|
317 |
+
break;
|
318 |
+
default:
|
319 |
+
break;
|
320 |
+
}
|
321 |
+
|
322 |
+
return $rs;
|
323 |
+
}
|
324 |
+
|
325 |
+
/**
|
326 |
+
* Returns the xml representation of the value. XML prologue not included.
|
327 |
+
*
|
328 |
+
* @param string $charsetEncoding the charset to be used for serialization. if null, US-ASCII is assumed
|
329 |
+
*
|
330 |
+
* @return string
|
331 |
+
*/
|
332 |
+
public function serialize($charsetEncoding = '')
|
333 |
+
{
|
334 |
+
$val = reset($this->me);
|
335 |
+
$typ = key($this->me);
|
336 |
+
|
337 |
+
return '<value>' . $this->serializedata($typ, $val, $charsetEncoding) . "</value>\n";
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Checks whether a struct member with a given name is present.
|
342 |
+
*
|
343 |
+
* Works only on xmlrpc values of type struct.
|
344 |
+
*
|
345 |
+
* @param string $key the name of the struct member to be looked up
|
346 |
+
*
|
347 |
+
* @return boolean
|
348 |
+
*
|
349 |
+
* @deprecated use array access, e.g. isset($val[$key])
|
350 |
+
*/
|
351 |
+
public function structmemexists($key)
|
352 |
+
{
|
353 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
354 |
+
|
355 |
+
return array_key_exists($key, $this->me['struct']);
|
356 |
+
}
|
357 |
+
|
358 |
+
/**
|
359 |
+
* Returns the value of a given struct member (an xmlrpc value object in itself).
|
360 |
+
* Will raise a php warning if struct member of given name does not exist.
|
361 |
+
*
|
362 |
+
* @param string $key the name of the struct member to be looked up
|
363 |
+
*
|
364 |
+
* @return Value
|
365 |
+
*
|
366 |
+
* @deprecated use array access, e.g. $val[$key]
|
367 |
+
*/
|
368 |
+
public function structmem($key)
|
369 |
+
{
|
370 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
371 |
+
|
372 |
+
return $this->me['struct'][$key];
|
373 |
+
}
|
374 |
+
|
375 |
+
/**
|
376 |
+
* Reset internal pointer for xmlrpc values of type struct.
|
377 |
+
* @deprecated iterate directly over the object using foreach instead
|
378 |
+
*/
|
379 |
+
public function structreset()
|
380 |
+
{
|
381 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
382 |
+
|
383 |
+
reset($this->me['struct']);
|
384 |
+
}
|
385 |
+
|
386 |
+
/**
|
387 |
+
* Return next member element for xmlrpc values of type struct.
|
388 |
+
*
|
389 |
+
* @return Value
|
390 |
+
*
|
391 |
+
* @deprecated iterate directly over the object using foreach instead
|
392 |
+
*/
|
393 |
+
public function structeach()
|
394 |
+
{
|
395 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
396 |
+
|
397 |
+
return @each($this->me['struct']);
|
398 |
+
}
|
399 |
+
|
400 |
+
/**
|
401 |
+
* Returns the value of a scalar xmlrpc value (base 64 decoding is automatically handled here)
|
402 |
+
*
|
403 |
+
* @return mixed
|
404 |
+
*/
|
405 |
+
public function scalarval()
|
406 |
+
{
|
407 |
+
$b = reset($this->me);
|
408 |
+
|
409 |
+
return $b;
|
410 |
+
}
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Returns the type of the xmlrpc value.
|
414 |
+
*
|
415 |
+
* For integers, 'int' is always returned in place of 'i4'. 'i8' is considered a separate type and returned as such
|
416 |
+
*
|
417 |
+
* @return string
|
418 |
+
*/
|
419 |
+
public function scalartyp()
|
420 |
+
{
|
421 |
+
reset($this->me);
|
422 |
+
$a = key($this->me);
|
423 |
+
if ($a == static::$xmlrpcI4) {
|
424 |
+
$a = static::$xmlrpcInt;
|
425 |
+
}
|
426 |
+
|
427 |
+
return $a;
|
428 |
+
}
|
429 |
+
|
430 |
+
/**
|
431 |
+
* Returns the m-th member of an xmlrpc value of array type.
|
432 |
+
*
|
433 |
+
* @param integer $key the index of the value to be retrieved (zero based)
|
434 |
+
*
|
435 |
+
* @return Value
|
436 |
+
*
|
437 |
+
* @deprecated use array access, e.g. $val[$key]
|
438 |
+
*/
|
439 |
+
public function arraymem($key)
|
440 |
+
{
|
441 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
442 |
+
|
443 |
+
return $this->me['array'][$key];
|
444 |
+
}
|
445 |
+
|
446 |
+
/**
|
447 |
+
* Returns the number of members in an xmlrpc value of array type.
|
448 |
+
*
|
449 |
+
* @return integer
|
450 |
+
*
|
451 |
+
* @deprecated use count() instead
|
452 |
+
*/
|
453 |
+
public function arraysize()
|
454 |
+
{
|
455 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
456 |
+
|
457 |
+
return count($this->me['array']);
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* Returns the number of members in an xmlrpc value of struct type.
|
462 |
+
*
|
463 |
+
* @return integer
|
464 |
+
*
|
465 |
+
* @deprecated use count() instead
|
466 |
+
*/
|
467 |
+
public function structsize()
|
468 |
+
{
|
469 |
+
//trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
|
470 |
+
|
471 |
+
return count($this->me['struct']);
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Returns the number of members in an xmlrpc value:
|
476 |
+
* - 0 for uninitialized values
|
477 |
+
* - 1 for scalar values
|
478 |
+
* - the number of elements for struct and array values
|
479 |
+
*
|
480 |
+
* @return integer
|
481 |
+
*/
|
482 |
+
public function count()
|
483 |
+
{
|
484 |
+
switch ($this->mytype) {
|
485 |
+
case 3:
|
486 |
+
return count($this->me['struct']);
|
487 |
+
case 2:
|
488 |
+
return count($this->me['array']);
|
489 |
+
case 1:
|
490 |
+
return 1;
|
491 |
+
default:
|
492 |
+
return 0;
|
493 |
+
}
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* Implements the IteratorAggregate interface
|
498 |
+
*
|
499 |
+
* @return \ArrayIterator
|
500 |
+
*/
|
501 |
+
public function getIterator() {
|
502 |
+
switch ($this->mytype) {
|
503 |
+
case 3:
|
504 |
+
return new \ArrayIterator($this->me['struct']);
|
505 |
+
case 2:
|
506 |
+
return new \ArrayIterator($this->me['array']);
|
507 |
+
case 1:
|
508 |
+
return new \ArrayIterator($this->me);
|
509 |
+
default:
|
510 |
+
return new \ArrayIterator();
|
511 |
+
}
|
512 |
+
}
|
513 |
+
|
514 |
+
public function offsetSet($offset, $value) {
|
515 |
+
|
516 |
+
switch ($this->mytype) {
|
517 |
+
case 3:
|
518 |
+
if (!($value instanceof \PhpXmlRpc\Value)) {
|
519 |
+
throw new \Exception('It is only possible to add Value objects to an XML-RPC Struct');
|
520 |
+
}
|
521 |
+
if (is_null($offset)) {
|
522 |
+
// disallow struct members with empty names
|
523 |
+
throw new \Exception('It is not possible to add anonymous members to an XML-RPC Struct');
|
524 |
+
} else {
|
525 |
+
$this->me['struct'][$offset] = $value;
|
526 |
+
}
|
527 |
+
return;
|
528 |
+
case 2:
|
529 |
+
if (!($value instanceof \PhpXmlRpc\Value)) {
|
530 |
+
throw new \Exception('It is only possible to add Value objects to an XML-RPC Array');
|
531 |
+
}
|
532 |
+
if (is_null($offset)) {
|
533 |
+
$this->me['array'][] = $value;
|
534 |
+
} else {
|
535 |
+
// nb: we are not checking that $offset is above the existing array range...
|
536 |
+
$this->me['array'][$offset] = $value;
|
537 |
+
}
|
538 |
+
return;
|
539 |
+
case 1:
|
540 |
+
// todo: handle i4 vs int
|
541 |
+
reset($this->me);
|
542 |
+
$type = key($this->me);
|
543 |
+
if ($type != $offset) {
|
544 |
+
throw new \Exception('');
|
545 |
+
}
|
546 |
+
$this->me[$type] = $value;
|
547 |
+
return;
|
548 |
+
default:
|
549 |
+
// it would be nice to allow empty values to be be turned into non-empty ones this way, but we miss info to do so
|
550 |
+
throw new \Exception("XML-RPC Value is of type 'undef' and its value can not be set using array index");
|
551 |
+
}
|
552 |
+
}
|
553 |
+
|
554 |
+
public function offsetExists($offset) {
|
555 |
+
switch ($this->mytype) {
|
556 |
+
case 3:
|
557 |
+
return isset($this->me['struct'][$offset]);
|
558 |
+
case 2:
|
559 |
+
return isset($this->me['array'][$offset]);
|
560 |
+
case 1:
|
561 |
+
// todo: handle i4 vs int
|
562 |
+
return $offset == $this->scalartyp();
|
563 |
+
default:
|
564 |
+
return false;
|
565 |
+
}
|
566 |
+
}
|
567 |
+
|
568 |
+
public function offsetUnset($offset) {
|
569 |
+
switch ($this->mytype) {
|
570 |
+
case 3:
|
571 |
+
unset($this->me['struct'][$offset]);
|
572 |
+
return;
|
573 |
+
case 2:
|
574 |
+
unset($this->me['array'][$offset]);
|
575 |
+
return;
|
576 |
+
case 1:
|
577 |
+
// can not remove value from a scalar
|
578 |
+
throw new \Exception("XML-RPC Value is of type 'scalar' and its value can not be unset using array index");
|
579 |
+
default:
|
580 |
+
throw new \Exception("XML-RPC Value is of type 'undef' and its value can not be unset using array index");
|
581 |
+
}
|
582 |
+
}
|
583 |
+
|
584 |
+
public function offsetGet($offset) {
|
585 |
+
switch ($this->mytype) {
|
586 |
+
case 3:
|
587 |
+
return isset($this->me['struct'][$offset]) ? $this->me['struct'][$offset] : null;
|
588 |
+
case 2:
|
589 |
+
return isset($this->me['array'][$offset]) ? $this->me['array'][$offset] : null;
|
590 |
+
case 1:
|
591 |
+
// on bad type: null or exception?
|
592 |
+
$value = reset($this->me);
|
593 |
+
$type = key($this->me);
|
594 |
+
return $type == $offset ? $value : null;
|
595 |
+
default:
|
596 |
+
// return null or exception?
|
597 |
+
throw new \Exception("XML-RPC Value is of type 'undef' and can not be accessed using array index");
|
598 |
+
}
|
599 |
+
}
|
600 |
+
}
|
includes/vendor/infusionsoft/xmlrpc/xmlrpc-src/Wrapper.php
ADDED
@@ -0,0 +1,1118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Gaetano Giunta
|
4 |
+
* @copyright (C) 2006-2015 G. Giunta
|
5 |
+
* @license code licensed under the BSD License: see file license.txt
|
6 |
+
*/
|
7 |
+
|
8 |
+
namespace PhpXmlRpc;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* PHP-XMLRPC "wrapper" class - generate stubs to transparently access xmlrpc methods as php functions and vice-versa.
|
12 |
+
* Note: this class implements the PROXY pattern, but it is not named so to avoid confusion with http proxies.
|
13 |
+
*
|
14 |
+
* @todo use some better templating system for code generation?
|
15 |
+
* @todo implement method wrapping with preservation of php objs in calls
|
16 |
+
* @todo when wrapping methods without obj rebuilding, use return_type = 'phpvals' (faster)
|
17 |
+
*/
|
18 |
+
class Wrapper
|
19 |
+
{
|
20 |
+
/// used to hold a reference to object instances whose methods get wrapped by wrapPhpFunction(), in 'create source' mode
|
21 |
+
public static $objHolder = array();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Given a string defining a php type or phpxmlrpc type (loosely defined: strings
|
25 |
+
* accepted come from javadoc blocks), return corresponding phpxmlrpc type.
|
26 |
+
* Notes:
|
27 |
+
* - for php 'resource' types returns empty string, since resources cannot be serialized;
|
28 |
+
* - for php class names returns 'struct', since php objects can be serialized as xmlrpc structs
|
29 |
+
* - for php arrays always return array, even though arrays sometimes serialize as json structs
|
30 |
+
* - for 'void' and 'null' returns 'undefined'
|
31 |
+
*
|
32 |
+
* @param string $phpType
|
33 |
+
*
|
34 |
+
* @return string
|
35 |
+
*/
|
36 |
+
public function php2XmlrpcType($phpType)
|
37 |
+
{
|
38 |
+
switch (strtolower($phpType)) {
|
39 |
+
case 'string':
|
40 |
+
return Value::$xmlrpcString;
|
41 |
+
case 'integer':
|
42 |
+
case Value::$xmlrpcInt: // 'int'
|
43 |
+
case Value::$xmlrpcI4:
|
44 |
+
case Value::$xmlrpcI8:
|
45 |
+
return Value::$xmlrpcInt;
|
46 |
+
case Value::$xmlrpcDouble: // 'double'
|
47 |
+
return Value::$xmlrpcDouble;
|
48 |
+
case 'bool':
|
49 |
+
case Value::$xmlrpcBoolean: // 'boolean'
|
50 |
+
case 'false':
|
51 |
+
case 'true':
|
52 |
+
return Value::$xmlrpcBoolean;
|
53 |
+
case Value::$xmlrpcArray: // 'array':
|
54 |
+
return Value::$xmlrpcArray;
|
55 |
+
case 'object':
|
56 |
+
case Value::$xmlrpcStruct: // 'struct'
|
57 |
+
return Value::$xmlrpcStruct;
|
58 |
+
case Value::$xmlrpcBase64:
|
59 |
+
return Value::$xmlrpcBase64;
|
60 |
+
case 'resource':
|
61 |
+
return '';
|
62 |
+
default:
|
63 |
+
if (class_exists($phpType)) {
|
64 |
+
return Value::$xmlrpcStruct;
|
65 |
+
} else {
|
66 |
+
// unknown: might be any 'extended' xmlrpc type
|
67 |
+
return Value::$xmlrpcValue;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Given a string defining a phpxmlrpc type return the corresponding php type.
|
74 |
+
*
|
75 |
+
* @param string $xmlrpcType
|
76 |
+
*
|
77 |
+
* @return string
|
78 |
+
*/
|
79 |
+
public function xmlrpc2PhpType($xmlrpcType)
|
80 |
+
{
|
81 |
+
switch (strtolower($xmlrpcType)) {
|
82 |
+
case 'base64':
|
83 |
+
case 'datetime.iso8601':
|
84 |
+
case 'string':
|
85 |
+
return Value::$xmlrpcString;
|
86 |
+
case 'int':
|
87 |
+
case 'i4':
|
88 |
+
case 'i8':
|
89 |
+
return 'integer';
|
90 |
+
case 'struct':
|
91 |
+
case 'array':
|
92 |
+
return 'array';
|
93 |
+
case 'double':
|
94 |
+
return 'float';
|
95 |
+
case 'undefined':
|
96 |
+
return 'mixed';
|
97 |
+
case 'boolean':
|
98 |
+
case 'null':
|
99 |
+
default:
|
100 |
+
// unknown: might be any xmlrpc type
|
101 |
+
return strtolower($xmlrpcType);
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Given a user-defined PHP function, create a PHP 'wrapper' function that can
|
107 |
+
* be exposed as xmlrpc method from an xmlrpc server object and called from remote
|
108 |
+
* clients (as well as its corresponding signature info).
|
109 |
+
*
|
110 |
+
* Since php is a typeless language, to infer types of input and output parameters,
|
111 |
+
* it relies on parsing the javadoc-style comment block associated with the given
|
112 |
+
* function. Usage of xmlrpc native types (such as datetime.dateTime.iso8601 and base64)
|
113 |
+
* in the '@param' tag is also allowed, if you need the php function to receive/send
|
114 |
+
* data in that particular format (note that base64 encoding/decoding is transparently
|
115 |
+
* carried out by the lib, while datetime vals are passed around as strings)
|
116 |
+
*
|
117 |
+
* Known limitations:
|
118 |
+
* - only works for user-defined functions, not for PHP internal functions
|
119 |
+
* (reflection does not support retrieving number/type of params for those)
|
120 |
+
* - functions returning php objects will generate special structs in xmlrpc responses:
|
121 |
+
* when the xmlrpc decoding of those responses is carried out by this same lib, using
|
122 |
+
* the appropriate param in php_xmlrpc_decode, the php objects will be rebuilt.
|
123 |
+
* In short: php objects can be serialized, too (except for their resource members),
|
124 |
+
* using this function.
|
125 |
+
* Other libs might choke on the very same xml that will be generated in this case
|
126 |
+
* (i.e. it has a nonstandard attribute on struct element tags)
|
127 |
+
*
|
128 |
+
* Note that since rel. 2.0RC3 the preferred method to have the server call 'standard'
|
129 |
+
* php functions (ie. functions not expecting a single Request obj as parameter)
|
130 |
+
* is by making use of the functions_parameters_type class member.
|
131 |
+
*
|
132 |
+
* @param callable $callable the PHP user function to be exposed as xmlrpc method/ a closure, function name, array($obj, 'methodname') or array('class', 'methodname') are ok
|
133 |
+
* @param string $newFuncName (optional) name for function to be created. Used only when return_source in $extraOptions is true
|
134 |
+
* @param array $extraOptions (optional) array of options for conversion. valid values include:
|
135 |
+
* - bool return_source when true, php code w. function definition will be returned, instead of a closure
|
136 |
+
* - bool encode_php_objs let php objects be sent to server using the 'improved' xmlrpc notation, so server can deserialize them as php objects
|
137 |
+
* - bool decode_php_objs --- WARNING !!! possible security hazard. only use it with trusted servers ---
|
138 |
+
* - bool suppress_warnings remove from produced xml any warnings generated at runtime by the php function being invoked
|
139 |
+
*
|
140 |
+
* @return array|false false on error, or an array containing the name of the new php function,
|
141 |
+
* its signature and docs, to be used in the server dispatch map
|
142 |
+
*
|
143 |
+
* @todo decide how to deal with params passed by ref in function definition: bomb out or allow?
|
144 |
+
* @todo finish using phpdoc info to build method sig if all params are named but out of order
|
145 |
+
* @todo add a check for params of 'resource' type
|
146 |
+
* @todo add some trigger_errors / error_log when returning false?
|
147 |
+
* @todo what to do when the PHP function returns NULL? We are currently returning an empty string value...
|
148 |
+
* @todo add an option to suppress php warnings in invocation of user function, similar to server debug level 3?
|
149 |
+
* @todo add a verbatim_object_copy parameter to allow avoiding usage the same obj instance?
|
150 |
+
* @todo add an option to allow generated function to skip validation of number of parameters, as that is done by the server anyway
|
151 |
+
*/
|
152 |
+
public function wrapPhpFunction($callable, $newFuncName = '', $extraOptions = array())
|
153 |
+
{
|
154 |
+
$buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
|
155 |
+
|
156 |
+
if (is_string($callable) && strpos($callable, '::') !== false) {
|
157 |
+
$callable = explode('::', $callable);
|
158 |
+
}
|
159 |
+
if (is_array($callable)) {
|
160 |
+
if (count($callable) < 2 || (!is_string($callable[0]) && !is_object($callable[0]))) {
|
161 |
+
error_log('XML-RPC: ' . __METHOD__ . ': syntax for function to be wrapped is wrong');
|
162 |
+
return false;
|
163 |
+
}
|
164 |
+
if (is_string($callable[0])) {
|
165 |
+
$plainFuncName = implode('::', $callable);
|
166 |
+
} elseif (is_object($callable[0])) {
|
167 |
+
$plainFuncName = get_class($callable[0]) . '->' . $callable[1];
|
168 |
+
}
|
169 |
+
$exists = method_exists($callable[0], $callable[1]);
|
170 |
+
} else if ($callable instanceof \Closure) {
|
171 |
+
// we do not support creating code which wraps closures, as php does not allow to serialize them
|
172 |
+
if (!$buildIt) {
|
173 |
+
error_log('XML-RPC: ' . __METHOD__ . ': a closure can not be wrapped in generated source code');
|
174 |
+
return false;
|
175 |
+
}
|
176 |
+
|
177 |
+
$plainFuncName = 'Closure';
|
178 |
+
$exists = true;
|
179 |
+
} else {
|
180 |
+
$plainFuncName = $callable;
|
181 |
+
$exists = function_exists($callable);
|
182 |
+
}
|
183 |
+
|
184 |
+
if (!$exists) {
|
185 |
+
error_log('XML-RPC: ' . __METHOD__ . ': function to be wrapped is not defined: ' . $plainFuncName);
|
186 |
+
return false;
|
187 |
+
}
|
188 |
+
|
189 |
+
$funcDesc = $this->introspectFunction($callable, $plainFuncName);
|
190 |
+
if (!$funcDesc) {
|
191 |
+
return false;
|
192 |
+
}
|
193 |
+
|
194 |
+
$funcSigs = $this->buildMethodSignatures($funcDesc);
|
195 |
+
|
196 |
+
if ($buildIt) {
|
197 |
+
$callable = $this->buildWrapFunctionClosure($callable, $extraOptions, $plainFuncName, $funcDesc);
|
198 |
+
} else {
|
199 |
+
$newFuncName = $this->newFunctionName($callable, $newFuncName, $extraOptions);
|
200 |
+
$code = $this->buildWrapFunctionSource($callable, $newFuncName, $extraOptions, $plainFuncName, $funcDesc);
|
201 |
+
}
|
202 |
+
|
203 |
+
$ret = array(
|
204 |
+
'function' => $callable,
|
205 |
+
'signature' => $funcSigs['sigs'],
|
206 |
+
'docstring' => $funcDesc['desc'],
|
207 |
+
'signature_docs' => $funcSigs['sigsDocs'],
|
208 |
+
);
|
209 |
+
if (!$buildIt) {
|
210 |
+
$ret['function'] = $newFuncName;
|
211 |
+
$ret['source'] = $code;
|
212 |
+
}
|
213 |
+
return $ret;
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Introspect a php callable and its phpdoc block and extract information about its signature
|
218 |
+
*
|
219 |
+
* @param callable $callable
|
220 |
+
* @param string $plainFuncName
|
221 |
+
* @return array|false
|
222 |
+
*/
|
223 |
+
protected function introspectFunction($callable, $plainFuncName)
|
224 |
+
{
|
225 |
+
// start to introspect PHP code
|
226 |
+
if (is_array($callable)) {
|
227 |
+
$func = new \ReflectionMethod($callable[0], $callable[1]);
|
228 |
+
if ($func->isPrivate()) {
|
229 |
+
error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is private: ' . $plainFuncName);
|
230 |
+
return false;
|
231 |
+
}
|
232 |
+
if ($func->isProtected()) {
|
233 |
+
error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is protected: ' . $plainFuncName);
|
234 |
+
return false;
|
235 |
+
}
|
236 |
+
if ($func->isConstructor()) {
|
237 |
+
error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is the constructor: ' . $plainFuncName);
|
238 |
+
return false;
|
239 |
+
}
|
240 |
+
if ($func->isDestructor()) {
|
241 |
+
error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is the destructor: ' . $plainFuncName);
|
242 |
+
return false;
|
243 |
+
}
|
244 |
+
if ($func->isAbstract()) {
|
245 |
+
error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is abstract: ' . $plainFuncName);
|
246 |
+
return false;
|
247 |
+
}
|
248 |
+
/// @todo add more checks for static vs. nonstatic?
|
249 |
+
} else {
|
250 |
+
$func = new \ReflectionFunction($callable);
|
251 |
+
}
|
252 |
+
if ($func->isInternal()) {
|
253 |
+
// Note: from PHP 5.1.0 onward, we will possibly be able to use invokeargs
|
254 |
+
// instead of getparameters to fully reflect internal php functions ?
|
255 |
+
error_log('XML-RPC: ' . __METHOD__ . ': function to be wrapped is internal: ' . $plainFuncName);
|
256 |
+
return false;
|
257 |
+
}
|
258 |
+
|
259 |
+
// retrieve parameter names, types and description from javadoc comments
|
260 |
+
|
261 |
+
// function description
|
262 |
+
$desc = '';
|
263 |
+
// type of return val: by default 'any'
|
264 |
+
$returns = Value::$xmlrpcValue;
|
265 |
+
// desc of return val
|
266 |
+
$returnsDocs = '';
|
267 |
+
// type + name of function parameters
|
268 |
+
$paramDocs = array();
|
269 |
+
|
270 |
+
$docs = $func->getDocComment();
|
271 |
+
if ($docs != '') {
|
272 |
+
$docs = explode("\n", $docs);
|
273 |
+
$i = 0;
|
274 |
+
foreach ($docs as $doc) {
|
275 |
+
$doc = trim($doc, " \r\t/*");
|
276 |
+
if (strlen($doc) && strpos($doc, '@') !== 0 && !$i) {
|
277 |
+
if ($desc) {
|
278 |
+
$desc .= "\n";
|
279 |
+
}
|
280 |
+
$desc .= $doc;
|
281 |
+
} elseif (strpos($doc, '@param') === 0) {
|
282 |
+
// syntax: @param type $name [desc]
|
283 |
+
if (preg_match('/@param\s+(\S+)\s+(\$\S+)\s*(.+)?/', $doc, $matches)) {
|
284 |
+
$name = strtolower(trim($matches[2]));
|
285 |
+
//$paramDocs[$name]['name'] = trim($matches[2]);
|
286 |
+
$paramDocs[$name]['doc'] = isset($matches[3]) ? $matches[3] : '';
|
287 |
+
$paramDocs[$name]['type'] = $matches[1];
|
288 |
+
}
|
289 |
+
$i++;
|
290 |
+
} elseif (strpos($doc, '@return') === 0) {
|
291 |
+
// syntax: @return type [desc]
|
292 |
+
if (preg_match('/@return\s+(\S+)(\s+.+)?/', $doc, $matches)) {
|
293 |
+
$returns = $matches[1];
|
294 |
+
if (isset($matches[2])) {
|
295 |
+
$returnsDocs = trim($matches[2]);
|
296 |
+
}
|
297 |
+
}
|
298 |
+
}
|
299 |
+
}
|
300 |
+
}
|
301 |
+
|
302 |
+
// execute introspection of actual function prototype
|
303 |
+
$params = array();
|
304 |
+
$i = 0;
|
305 |
+
foreach ($func->getParameters() as $paramObj) {
|
306 |
+
$params[$i] = array();
|
307 |
+
$params[$i]['name'] = '$' . $paramObj->getName();
|
308 |
+
$params[$i]['isoptional'] = $paramObj->isOptional();
|
309 |
+
$i++;
|
310 |
+
}
|
311 |
+
|
312 |
+
return array(
|
313 |
+
'desc' => $desc,
|
314 |
+
'docs' => $docs,
|
315 |
+
'params' => $params, // array, positionally indexed
|
316 |
+
'paramDocs' => $paramDocs, // array, indexed by name
|
317 |
+
'returns' => $returns,
|
318 |
+
'returnsDocs' =>$returnsDocs,
|
319 |
+
);
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Given the method description given by introspection, create method signature data
|
324 |
+
*
|
325 |
+
* @todo support better docs with multiple types separated by pipes by creating multiple signatures
|
326 |
+
* (this is questionable, as it might produce a big matrix of possible signatures with many such occurrences)
|
327 |
+
*
|
328 |
+
* @param array $funcDesc as generated by self::introspectFunction()
|
329 |
+
*
|
330 |
+
* @return array
|
331 |
+
*/
|
332 |
+
protected function buildMethodSignatures($funcDesc)
|
333 |
+
{
|
334 |
+
$i = 0;
|
335 |
+
$parsVariations = array();
|
336 |
+
$pars = array();
|
337 |
+
$pNum = count($funcDesc['params']);
|
338 |
+
foreach ($funcDesc['params'] as $param) {
|
339 |
+
/* // match by name real param and documented params
|
340 |
+
$name = strtolower($param['name']);
|
341 |
+
if (!isset($funcDesc['paramDocs'][$name])) {
|
342 |
+
$funcDesc['paramDocs'][$name] = array();
|
343 |
+
}
|
344 |
+
if (!isset($funcDesc['paramDocs'][$name]['type'])) {
|
345 |
+
$funcDesc['paramDocs'][$name]['type'] = 'mixed';
|
346 |
+
}*/
|
347 |
+
|
348 |
+
if ($param['isoptional']) {
|
349 |
+
// this particular parameter is optional. save as valid previous list of parameters
|
350 |
+
$parsVariations[] = $pars;
|
351 |
+
}
|
352 |
+
|
353 |
+
$pars[] = "\$p$i";
|
354 |
+
$i++;
|
355 |
+
if ($i == $pNum) {
|
356 |
+
// last allowed parameters combination
|
357 |
+
$parsVariations[] = $pars;
|
358 |
+
}
|
359 |
+
}
|
360 |
+
|
361 |
+
if (count($parsVariations) == 0) {
|
362 |
+
// only known good synopsis = no parameters
|
363 |
+
$parsVariations[] = array();
|
364 |
+
}
|
365 |
+
|
366 |
+
$sigs = array();
|
367 |
+
$sigsDocs = array();
|
368 |
+
foreach ($parsVariations as $pars) {
|
369 |
+
// build a signature
|
370 |
+
$sig = array($this->php2XmlrpcType($funcDesc['returns']));
|
371 |
+
$pSig = array($funcDesc['returnsDocs']);
|
372 |
+
for ($i = 0; $i < count($pars); $i++) {
|
373 |
+
$name = strtolower($funcDesc['params'][$i]['name']);
|
374 |
+
if (isset($funcDesc['paramDocs'][$name]['type'])) {
|
375 |
+
$sig[] = $this->php2XmlrpcType($funcDesc['paramDocs'][$name]['type']);
|
376 |
+
} else {
|
377 |
+
$sig[] = Value::$xmlrpcValue;
|
378 |
+
}
|
379 |
+
$pSig[] = isset($funcDesc['paramDocs'][$name]['doc']) ? $funcDesc['paramDocs'][$name]['doc'] : '';
|
380 |
+
}
|
381 |
+
$sigs[] = $sig;
|
382 |
+
$sigsDocs[] = $pSig;
|
383 |
+
}
|
384 |
+
|
385 |
+
return array(
|
386 |
+
'sigs' => $sigs,
|
387 |
+
'sigsDocs' => $sigsDocs
|
388 |
+
);
|
389 |
+
}
|
390 |
+
|
391 |
+
/**
|
392 |
+
* Creates a closure that will execute $callable
|
393 |
+
* @todo validate params? In theory all validation is left to the dispatch map...
|
394 |
+
* @todo add support for $catchWarnings
|
395 |
+
*
|
396 |
+
* @param $callable
|
397 |
+
* @param array $extraOptions
|
398 |
+
* @param string $plainFuncName
|
399 |
+
* @param array $funcDesc
|
400 |
+
* @return \Closure
|
401 |
+
*/
|
402 |
+
protected function buildWrapFunctionClosure($callable, $extraOptions, $plainFuncName, $funcDesc)
|
403 |
+
{
|
404 |
+
/**
|
405 |
+
* @param Request $req
|
406 |
+
* @return mixed
|
407 |
+
*/
|
408 |
+
$function = function($req) use($callable, $extraOptions, $funcDesc)
|
409 |
+
{
|
410 |
+
$nameSpace = '\\PhpXmlRpc\\';
|
411 |
+
$encoderClass = $nameSpace.'Encoder';
|
412 |
+
$responseClass = $nameSpace.'Response';
|
413 |
+
$valueClass = $nameSpace.'Value';
|
414 |
+
|
415 |
+
// validate number of parameters received
|
416 |
+
// this should be optional really, as we assume the server does the validation
|
417 |
+
$minPars = count($funcDesc['params']);
|
418 |
+
$maxPars = $minPars;
|
419 |
+
foreach ($funcDesc['params'] as $i => $param) {
|
420 |
+
if ($param['isoptional']) {
|
421 |
+
// this particular parameter is optional. We assume later ones are as well
|
422 |
+
$minPars = $i;
|
423 |
+
break;
|
424 |
+
}
|
425 |
+
}
|
426 |
+
$numPars = $req->getNumParams();
|
427 |
+
if ($numPars < $minPars || $numPars > $maxPars) {
|
428 |
+
return new $responseClass(0, 3, 'Incorrect parameters passed to method');
|
429 |
+
}
|
430 |
+
|
431 |
+
$encoder = new $encoderClass();
|
432 |
+
$options = array();
|
433 |
+
if (isset($extraOptions['decode_php_objs']) && $extraOptions['decode_php_objs']) {
|
434 |
+
$options[] = 'decode_php_objs';
|
435 |
+
}
|
436 |
+
$params = $encoder->decode($req, $options);
|
437 |
+
|
438 |
+
$result = call_user_func_array($callable, $params);
|
439 |
+
|
440 |
+
if (! is_a($result, $responseClass)) {
|
441 |
+
if ($funcDesc['returns'] == Value::$xmlrpcDateTime || $funcDesc['returns'] == Value::$xmlrpcBase64) {
|
442 |
+
$result = new $valueClass($result, $funcDesc['returns']);
|
443 |
+
} else {
|
444 |
+
$options = array();
|
445 |
+
if (isset($extraOptions['encode_php_objs']) && $extraOptions['encode_php_objs']) {
|
446 |
+
$options[] = 'encode_php_objs';
|
447 |
+
}
|
448 |
+
|
449 |
+
$result = $encoder->encode($result, $options);
|
450 |
+
}
|
451 |
+
$result = new $responseClass($result);
|
452 |
+
}
|
453 |
+
|
454 |
+
return $result;
|
455 |
+
};
|
456 |
+
|
457 |
+
return $function;
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
* Return a name for a new function, based on $callable, insuring its uniqueness
|
462 |
+
* @param mixed $callable a php callable, or the name of an xmlrpc method
|
463 |
+
* @param string $newFuncName when not empty, it is used instead of the calculated version
|
464 |
+
* @return string
|
465 |
+
*/
|
466 |
+
protected function newFunctionName($callable, $newFuncName, $extraOptions)
|
467 |
+
{
|
468 |
+
// determine name of new php function
|
469 |
+
|
470 |
+
$prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
|
471 |
+
|
472 |
+
if ($newFuncName == '') {
|
473 |
+
if (is_array($callable)) {
|
474 |
+
if (is_string($callable[0])) {
|
475 |
+
$xmlrpcFuncName = "{$prefix}_" . implode('_', $callable);
|
476 |
+
} else {
|
477 |
+
$xmlrpcFuncName = "{$prefix}_" . get_class($callable[0]) . '_' . $callable[1];
|
478 |
+
}
|
479 |
+
} else {
|
480 |
+
if ($callable instanceof \Closure) {
|
481 |
+
$xmlrpcFuncName = "{$prefix}_closure";
|
482 |
+
} else {
|
483 |
+
$callable = preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
|
484 |
+
array('_', ''), $callable);
|
485 |
+
$xmlrpcFuncName = "{$prefix}_$callable";
|
486 |
+
}
|
487 |
+
}
|
488 |
+
} else {
|
489 |
+
$xmlrpcFuncName = $newFuncName;
|
490 |
+
}
|
491 |
+
|
492 |
+
while (function_exists($xmlrpcFuncName)) {
|
493 |
+
$xmlrpcFuncName .= 'x';
|
494 |
+
}
|
495 |
+
|
496 |
+
return $xmlrpcFuncName;
|
497 |
+
}
|
498 |
+
|
499 |
+
/**
|
500 |
+
* @param $callable
|
501 |
+
* @param string $newFuncName
|
502 |
+
* @param array $extraOptions
|
503 |
+
* @param string $plainFuncName
|
504 |
+
* @param array $funcDesc
|
505 |
+
* @return string
|
506 |
+
*
|
507 |
+
* @todo add a nice phpdoc block in the generated source
|
508 |
+
*/
|
509 |
+
protected function buildWrapFunctionSource($callable, $newFuncName, $extraOptions, $plainFuncName, $funcDesc)
|
510 |
+
{
|
511 |
+
$namespace = '\\PhpXmlRpc\\';
|
512 |
+
|
513 |
+
$encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
|
514 |
+
$decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
|
515 |
+
$catchWarnings = isset($extraOptions['suppress_warnings']) && $extraOptions['suppress_warnings'] ? '@' : '';
|
516 |
+
|
517 |
+
$i = 0;
|
518 |
+
$parsVariations = array();
|
519 |
+
$pars = array();
|
520 |
+
$pNum = count($funcDesc['params']);
|
521 |
+
foreach ($funcDesc['params'] as $param) {
|
522 |
+
|
523 |
+
if ($param['isoptional']) {
|
524 |
+
// this particular parameter is optional. save as valid previous list of parameters
|
525 |
+
$parsVariations[] = $pars;
|
526 |
+
}
|
527 |
+
|
528 |
+
$pars[] = "\$p[$i]";
|
529 |
+
$i++;
|
530 |
+
if ($i == $pNum) {
|
531 |
+
// last allowed parameters combination
|
532 |
+
$parsVariations[] = $pars;
|
533 |
+
}
|
534 |
+
}
|
535 |
+
|
536 |
+
if (count($parsVariations) == 0) {
|
537 |
+
// only known good synopsis = no parameters
|
538 |
+
$parsVariations[] = array();
|
539 |
+
$minPars = 0;
|
540 |
+
$maxPars = 0;
|
541 |
+
} else {
|
542 |
+
$minPars = count($parsVariations[0]);
|
543 |
+
$maxPars = count($parsVariations[count($parsVariations)-1]);
|
544 |
+
}
|
545 |
+
|
546 |
+
// build body of new function
|
547 |
+
|
548 |
+
$innerCode = "\$paramCount = \$req->getNumParams();\n";
|
549 |
+
$innerCode .= "if (\$paramCount < $minPars || \$paramCount > $maxPars) return new {$namespace}Response(0, " . PhpXmlRpc::$xmlrpcerr['incorrect_params'] . ", '" . PhpXmlRpc::$xmlrpcstr['incorrect_params'] . "');\n";
|
550 |
+
|
551 |
+
$innerCode .= "\$encoder = new {$namespace}Encoder();\n";
|
552 |
+
if ($decodePhpObjects) {
|
553 |
+
$innerCode .= "\$p = \$encoder->decode(\$req, array('decode_php_objs'));\n";
|
554 |
+
} else {
|
555 |
+
$innerCode .= "\$p = \$encoder->decode(\$req);\n";
|
556 |
+
}
|
557 |
+
|
558 |
+
// since we are building source code for later use, if we are given an object instance,
|
559 |
+
// we go out of our way and store a pointer to it in a static class var var...
|
560 |
+
if (is_array($callable) && is_object($callable[0])) {
|
561 |
+
self::$objHolder[$newFuncName] = $callable[0];
|
562 |
+
$innerCode .= "\$obj = PhpXmlRpc\\Wrapper::\$objHolder['$newFuncName'];\n";
|
563 |
+
$realFuncName = '$obj->' . $callable[1];
|
564 |
+
} else {
|
565 |
+
$realFuncName = $plainFuncName;
|
566 |
+
}
|
567 |
+
foreach ($parsVariations as $i => $pars) {
|
568 |
+
$innerCode .= "if (\$paramCount == " . count($pars) . ") \$retval = {$catchWarnings}$realFuncName(" . implode(',', $pars) . ");\n";
|
569 |
+
if ($i < (count($parsVariations) - 1))
|
570 |
+
$innerCode .= "else\n";
|
571 |
+
}
|
572 |
+
$innerCode .= "if (is_a(\$retval, '{$namespace}Response')) return \$retval; else\n";
|
573 |
+
if ($funcDesc['returns'] == Value::$xmlrpcDateTime || $funcDesc['returns'] == Value::$xmlrpcBase64) {
|
574 |
+
$innerCode .= "return new {$namespace}Response(new {$namespace}Value(\$retval, '{$funcDesc['returns']}'));";
|
575 |
+
} else {
|
576 |
+
if ($encodePhpObjects) {
|
577 |
+
$innerCode .= "return new {$namespace}Response(\$encoder->encode(\$retval, array('encode_php_objs')));\n";
|
578 |
+
} else {
|
579 |
+
$innerCode .= "return new {$namespace}Response(\$encoder->encode(\$retval));\n";
|
580 |
+
}
|
581 |
+
}
|
582 |
+
// shall we exclude functions returning by ref?
|
583 |
+
// if($func->returnsReference())
|
584 |
+
// return false;
|
585 |
+
|
586 |
+
$code = "function $newFuncName(\$req) {\n" . $innerCode . "\n}";
|
587 |
+
|
588 |
+
return $code;
|
589 |
+
}
|
590 |
+
|
591 |
+
/**
|
592 |
+
* Given a user-defined PHP class or php object, map its methods onto a list of
|
593 |
+
* PHP 'wrapper' functions that can be exposed as xmlrpc methods from an xmlrpc server
|
594 |
+
* object and called from remote clients (as well as their corresponding signature info).
|
595 |
+
*
|
596 |
+
* @param string|object $className the name of the class whose methods are to be exposed as xmlrpc methods, or an object instance of that class
|
597 |
+
* @param array $extraOptions see the docs for wrapPhpMethod for basic options, plus
|
598 |
+
* - string method_type 'static', 'nonstatic', 'all' and 'auto' (default); the latter will switch between static and non-static depending on whether $className is a class name or object instance
|
599 |
+
* - string method_filter a regexp used to filter methods to wrap based on their names
|
600 |
+
* - string prefix used for the names of the xmlrpc methods created
|
601 |
+
*
|
602 |
+
* @return array|false false on failure
|
603 |
+
*/
|
604 |
+
public function wrapPhpClass($className, $extraOptions = array())
|
605 |
+
{
|
606 |
+
$methodFilter = isset($extraOptions['method_filter']) ? $extraOptions['method_filter'] : '';
|
607 |
+
$methodType = isset($extraOptions['method_type']) ? $extraOptions['method_type'] : 'auto';
|
608 |
+
$prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : '';
|
609 |
+
|
610 |
+
$results = array();
|
611 |
+
$mList = get_class_methods($className);
|
612 |
+
foreach ($mList as $mName) {
|
613 |
+
if ($methodFilter == '' || preg_match($methodFilter, $mName)) {
|
614 |
+
$func = new \ReflectionMethod($className, $mName);
|
615 |
+
if (!$func->isPrivate() && !$func->isProtected() && !$func->isConstructor() && !$func->isDestructor() && !$func->isAbstract()) {
|
616 |
+
if (($func->isStatic() && ($methodType == 'all' || $methodType == 'static' || ($methodType == 'auto' && is_string($className)))) ||
|
617 |
+
(!$func->isStatic() && ($methodType == 'all' || $methodType == 'nonstatic' || ($methodType == 'auto' && is_object($className))))
|
618 |
+
) {
|
619 |
+
$methodWrap = $this->wrapPhpFunction(array($className, $mName), '', $extraOptions);
|
620 |
+
if ($methodWrap) {
|
621 |
+
if (is_object($className)) {
|
622 |
+
$realClassName = get_class($className);
|
623 |
+
}else {
|
624 |
+
$realClassName = $className;
|
625 |
+
}
|
626 |
+
$results[$prefix."$realClassName.$mName"] = $methodWrap;
|
627 |
+
}
|
628 |
+
}
|
629 |
+
}
|
630 |
+
}
|
631 |
+
}
|
632 |
+
|
633 |
+
return $results;
|
634 |
+
}
|
635 |
+
|
636 |
+
/**
|
637 |
+
* Given an xmlrpc client and a method name, register a php wrapper function
|
638 |
+
* that will call it and return results using native php types for both
|
639 |
+
* params and results. The generated php function will return a Response
|
640 |
+
* object for failed xmlrpc calls.
|
641 |
+
*
|
642 |
+
* Known limitations:
|
643 |
+
* - server must support system.methodsignature for the wanted xmlrpc method
|
644 |
+
* - for methods that expose many signatures, only one can be picked (we
|
645 |
+
* could in principle check if signatures differ only by number of params
|
646 |
+
* and not by type, but it would be more complication than we can spare time)
|
647 |
+
* - nested xmlrpc params: the caller of the generated php function has to
|
648 |
+
* encode on its own the params passed to the php function if these are structs
|
649 |
+
* or arrays whose (sub)members include values of type datetime or base64
|
650 |
+
*
|
651 |
+
* Notes: the connection properties of the given client will be copied
|
652 |
+
* and reused for the connection used during the call to the generated
|
653 |
+
* php function.
|
654 |
+
* Calling the generated php function 'might' be slow: a new xmlrpc client
|
655 |
+
* is created on every invocation and an xmlrpc-connection opened+closed.
|
656 |
+
* An extra 'debug' param is appended to param list of xmlrpc method, useful
|
657 |
+
* for debugging purposes.
|
658 |
+
*
|
659 |
+
* @todo allow caller to give us the method signature instead of querying for it, or just say 'skip it'
|
660 |
+
* @todo if we can not retrieve method signature, create a php function with varargs
|
661 |
+
* @todo allow the created function to throw exceptions on method calls failures
|
662 |
+
* @todo if caller did not specify a specific sig, shall we support all of them?
|
663 |
+
* It might be hard (hence slow) to match based on type and number of arguments...
|
664 |
+
*
|
665 |
+
* @param Client $client an xmlrpc client set up correctly to communicate with target server
|
666 |
+
* @param string $methodName the xmlrpc method to be mapped to a php function
|
667 |
+
* @param array $extraOptions array of options that specify conversion details. Valid options include
|
668 |
+
* - integer signum the index of the method signature to use in mapping (if method exposes many sigs)
|
669 |
+
* - integer timeout timeout (in secs) to be used when executing function/calling remote method
|
670 |
+
* - string protocol 'http' (default), 'http11' or 'https'
|
671 |
+
* - string new_function_name the name of php function to create, when return_source is used. If unspecified, lib will pick an appropriate name
|
672 |
+
* - string return_source if true return php code w. function definition instead of function itself (closure)
|
673 |
+
* - bool encode_php_objs let php objects be sent to server using the 'improved' xmlrpc notation, so server can deserialize them as php objects
|
674 |
+
* - bool decode_php_objs --- WARNING !!! possible security hazard. only use it with trusted servers ---
|
675 |
+
* - mixed return_on_fault a php value to be returned when the xmlrpc call fails/returns a fault response (by default the Response object is returned in this case). If a string is used, '%faultCode%' and '%faultString%' tokens will be substituted with actual error values
|
676 |
+
* - bool debug set it to 1 or 2 to see debug results of querying server for method synopsis
|
677 |
+
* - int simple_client_copy set it to 1 to have a lightweight copy of the $client object made in the generated code (only used when return_source = true)
|
678 |
+
*
|
679 |
+
* @return \closure|array|false false on failure, closure by default and array for return_source = true
|
680 |
+
*/
|
681 |
+
public function wrapXmlrpcMethod($client, $methodName, $extraOptions = array())
|
682 |
+
{
|
683 |
+
$newFuncName = isset($extraOptions['new_function_name']) ? $extraOptions['new_function_name'] : '';
|
684 |
+
|
685 |
+
$buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
|
686 |
+
|
687 |
+
$mSig = $this->retrieveMethodSignature($client, $methodName, $extraOptions);
|
688 |
+
if (!$mSig) {
|
689 |
+
return false;
|
690 |
+
}
|
691 |
+
|
692 |
+
if ($buildIt) {
|
693 |
+
return $this->buildWrapMethodClosure($client, $methodName, $extraOptions, $mSig);
|
694 |
+
} else {
|
695 |
+
// if in 'offline' mode, retrieve method description too.
|
696 |
+
// in online mode, favour speed of operation
|
697 |
+
$mDesc = $this->retrieveMethodHelp($client, $methodName, $extraOptions);
|
698 |
+
|
699 |
+
$newFuncName = $this->newFunctionName($methodName, $newFuncName, $extraOptions);
|
700 |
+
|
701 |
+
$results = $this->buildWrapMethodSource($client, $methodName, $extraOptions, $newFuncName, $mSig, $mDesc);
|
702 |
+
/* was: $results = $this->build_remote_method_wrapper_code($client, $methodName,
|
703 |
+
$newFuncName, $mSig, $mDesc, $timeout, $protocol, $simpleClientCopy,
|
704 |
+
$prefix, $decodePhpObjects, $encodePhpObjects, $decodeFault,
|
705 |
+
$faultResponse, $namespace);*/
|
706 |
+
|
707 |
+
$results['function'] = $newFuncName;
|
708 |
+
|
709 |
+
return $results;
|
710 |
+
}
|
711 |
+
|
712 |
+
}
|
713 |
+
|
714 |
+
/**
|
715 |
+
* Retrieves an xmlrpc method signature from a server which supports system.methodSignature
|
716 |
+
* @param Client $client
|
717 |
+
* @param string $methodName
|
718 |
+
* @param array $extraOptions
|
719 |
+
* @return false|array
|
720 |
+
*/
|
721 |
+
protected function retrieveMethodSignature($client, $methodName, array $extraOptions = array())
|
722 |
+
{
|
723 |
+
$namespace = '\\PhpXmlRpc\\';
|
724 |
+
$reqClass = $namespace . 'Request';
|
725 |
+
$valClass = $namespace . 'Value';
|
726 |
+
$decoderClass = $namespace . 'Encoder';
|
727 |
+
|
728 |
+
$debug = isset($extraOptions['debug']) ? ($extraOptions['debug']) : 0;
|
729 |
+
$timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
|
730 |
+
$protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
|
731 |
+
$sigNum = isset($extraOptions['signum']) ? (int)$extraOptions['signum'] : 0;
|
732 |
+
|
733 |
+
$req = new $reqClass('system.methodSignature');
|
734 |
+
$req->addparam(new $valClass($methodName));
|
735 |
+
$client->setDebug($debug);
|
736 |
+
$response = $client->send($req, $timeout, $protocol);
|
737 |
+
if ($response->faultCode()) {
|
738 |
+
error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method signature from remote server for method ' . $methodName);
|
739 |
+
return false;
|
740 |
+
}
|
741 |
+
|
742 |
+
$mSig = $response->value();
|
743 |
+
if ($client->return_type != 'phpvals') {
|
744 |
+
$decoder = new $decoderClass();
|
745 |
+
$mSig = $decoder->decode($mSig);
|
746 |
+
}
|
747 |
+
|
748 |
+
if (!is_array($mSig) || count($mSig) <= $sigNum) {
|
749 |
+
error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method signature nr.' . $sigNum . ' from remote server for method ' . $methodName);
|
750 |
+
return false;
|
751 |
+
}
|
752 |
+
|
753 |
+
return $mSig[$sigNum];
|
754 |
+
}
|
755 |
+
|
756 |
+
/**
|
757 |
+
* @param Client $client
|
758 |
+
* @param string $methodName
|
759 |
+
* @param array $extraOptions
|
760 |
+
* @return string in case of any error, an empty string is returned, no warnings generated
|
761 |
+
*/
|
762 |
+
protected function retrieveMethodHelp($client, $methodName, array $extraOptions = array())
|
763 |
+
{
|
764 |
+
$namespace = '\\PhpXmlRpc\\';
|
765 |
+
$reqClass = $namespace . 'Request';
|
766 |
+
$valClass = $namespace . 'Value';
|
767 |
+
|
768 |
+
$debug = isset($extraOptions['debug']) ? ($extraOptions['debug']) : 0;
|
769 |
+
$timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
|
770 |
+
$protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
|
771 |
+
|
772 |
+
$mDesc = '';
|
773 |
+
|
774 |
+
$req = new $reqClass('system.methodHelp');
|
775 |
+
$req->addparam(new $valClass($methodName));
|
776 |
+
$client->setDebug($debug);
|
777 |
+
$response = $client->send($req, $timeout, $protocol);
|
778 |
+
if (!$response->faultCode()) {
|
779 |
+
$mDesc = $response->value();
|
780 |
+
if ($client->return_type != 'phpvals') {
|
781 |
+
$mDesc = $mDesc->scalarval();
|
782 |
+
}
|
783 |
+
}
|
784 |
+
|
785 |
+
return $mDesc;
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
* @param Client $client
|
790 |
+
* @param string $methodName
|
791 |
+
* @param array $extraOptions
|
792 |
+
* @param array $mSig
|
793 |
+
* @return \Closure
|
794 |
+
*
|
795 |
+
* @todo should we allow usage of parameter simple_client_copy to mean 'do not clone' in this case?
|
796 |
+
*/
|
797 |
+
protected function buildWrapMethodClosure($client, $methodName, array $extraOptions, $mSig)
|
798 |
+
{
|
799 |
+
// we clone the client, so that we can modify it a bit independently of the original
|
800 |
+
$clientClone = clone $client;
|
801 |
+
$function = function() use($clientClone, $methodName, $extraOptions, $mSig)
|
802 |
+
{
|
803 |
+
$timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
|
804 |
+
$protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
|
805 |
+
$encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
|
806 |
+
$decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
|
807 |
+
if (isset($extraOptions['return_on_fault'])) {
|
808 |
+
$decodeFault = true;
|
809 |
+
$faultResponse = $extraOptions['return_on_fault'];
|
810 |
+
} else {
|
811 |
+
$decodeFault = false;
|
812 |
+
}
|
813 |
+
|
814 |
+
$namespace = '\\PhpXmlRpc\\';
|
815 |
+
$reqClass = $namespace . 'Request';
|
816 |
+
$encoderClass = $namespace . 'Encoder';
|
817 |
+
$valueClass = $namespace . 'Value';
|
818 |
+
|
819 |
+
$encoder = new $encoderClass();
|
820 |
+
$encodeOptions = array();
|
821 |
+
if ($encodePhpObjects) {
|
822 |
+
$encodeOptions[] = 'encode_php_objs';
|
823 |
+
}
|
824 |
+
$decodeOptions = array();
|
825 |
+
if ($decodePhpObjects) {
|
826 |
+
$decodeOptions[] = 'decode_php_objs';
|
827 |
+
}
|
828 |
+
|
829 |
+
/// @todo check for insufficient nr. of args besides excess ones? note that 'source' version does not...
|
830 |
+
|
831 |
+
// support one extra parameter: debug
|
832 |
+
$maxArgs = count($mSig)-1; // 1st element is the return type
|
833 |
+
$currentArgs = func_get_args();
|
834 |
+
if (func_num_args() == ($maxArgs+1)) {
|
835 |
+
$debug = array_pop($currentArgs);
|
836 |
+
$clientClone->setDebug($debug);
|
837 |
+
}
|
838 |
+
|
839 |
+
$xmlrpcArgs = array();
|
840 |
+
foreach($currentArgs as $i => $arg) {
|
841 |
+
if ($i == $maxArgs) {
|
842 |
+
break;
|
843 |
+
}
|
844 |
+
$pType = $mSig[$i+1];
|
845 |
+
if ($pType == 'i4' || $pType == 'i8' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' ||
|
846 |
+
$pType == 'string' || $pType == 'dateTime.iso8601' || $pType == 'base64' || $pType == 'null'
|
847 |
+
) {
|
848 |
+
// by building directly xmlrpc values when type is known and scalar (instead of encode() calls),
|
849 |
+
// we make sure to honour the xmlrpc signature
|
850 |
+
$xmlrpcArgs[] = new $valueClass($arg, $pType);
|
851 |
+
} else {
|
852 |
+
$xmlrpcArgs[] = $encoder->encode($arg, $encodeOptions);
|
853 |
+
}
|
854 |
+
}
|
855 |
+
|
856 |
+
$req = new $reqClass($methodName, $xmlrpcArgs);
|
857 |
+
// use this to get the maximum decoding flexibility
|
858 |
+
$clientClone->return_type = 'xmlrpcvals';
|
859 |
+
$resp = $clientClone->send($req, $timeout, $protocol);
|
860 |
+
if ($resp->faultcode()) {
|
861 |
+
if ($decodeFault) {
|
862 |
+
if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) ||
|
863 |
+
(strpos($faultResponse, '%faultString%') !== false))) {
|
864 |
+
$faultResponse = str_replace(array('%faultCode%', '%faultString%'),
|
865 |
+
array($resp->faultCode(), $resp->faultString()), $faultResponse);
|
866 |
+
}
|
867 |
+
return $faultResponse;
|
868 |
+
} else {
|
869 |
+
return $resp;
|
870 |
+
}
|
871 |
+
} else {
|
872 |
+
return $encoder->decode($resp->value(), $decodeOptions);
|
873 |
+
}
|
874 |
+
};
|
875 |
+
|
876 |
+
return $function;
|
877 |
+
}
|
878 |
+
|
879 |
+
/**
|
880 |
+
* @param Client $client
|
881 |
+
* @param string $methodName
|
882 |
+
* @param array $extraOptions
|
883 |
+
* @param string $newFuncName
|
884 |
+
* @param array $mSig
|
885 |
+
* @param string $mDesc
|
886 |
+
* @return array
|
887 |
+
*/
|
888 |
+
public function buildWrapMethodSource($client, $methodName, array $extraOptions, $newFuncName, $mSig, $mDesc='')
|
889 |
+
{
|
890 |
+
$timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
|
891 |
+
$protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
|
892 |
+
$encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
|
893 |
+
$decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
|
894 |
+
$clientCopyMode = isset($extraOptions['simple_client_copy']) ? (int)($extraOptions['simple_client_copy']) : 0;
|
895 |
+
$prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
|
896 |
+
if (isset($extraOptions['return_on_fault'])) {
|
897 |
+
$decodeFault = true;
|
898 |
+
$faultResponse = $extraOptions['return_on_fault'];
|
899 |
+
} else {
|
900 |
+
$decodeFault = false;
|
901 |
+
$faultResponse = '';
|
902 |
+
}
|
903 |
+
|
904 |
+
$namespace = '\\PhpXmlRpc\\';
|
905 |
+
|
906 |
+
$code = "function $newFuncName (";
|
907 |
+
if ($clientCopyMode < 2) {
|
908 |
+
// client copy mode 0 or 1 == full / partial client copy in emitted code
|
909 |
+
$verbatimClientCopy = !$clientCopyMode;
|
910 |
+
$innerCode = $this->buildClientWrapperCode($client, $verbatimClientCopy, $prefix, $namespace);
|
911 |
+
$innerCode .= "\$client->setDebug(\$debug);\n";
|
912 |
+
$this_ = '';
|
913 |
+
} else {
|
914 |
+
// client copy mode 2 == no client copy in emitted code
|
915 |
+
$innerCode = '';
|
916 |
+
$this_ = 'this->';
|
917 |
+
}
|
918 |
+
$innerCode .= "\$req = new {$namespace}Request('$methodName');\n";
|
919 |
+
|
920 |
+
if ($mDesc != '') {
|
921 |
+
// take care that PHP comment is not terminated unwillingly by method description
|
922 |
+
$mDesc = "/**\n* " . str_replace('*/', '* /', $mDesc) . "\n";
|
923 |
+
} else {
|
924 |
+
$mDesc = "/**\nFunction $newFuncName\n";
|
925 |
+
}
|
926 |
+
|
927 |
+
// param parsing
|
928 |
+
$innerCode .= "\$encoder = new {$namespace}Encoder();\n";
|
929 |
+
$plist = array();
|
930 |
+
$pCount = count($mSig);
|
931 |
+
for ($i = 1; $i < $pCount; $i++) {
|
932 |
+
$plist[] = "\$p$i";
|
933 |
+
$pType = $mSig[$i];
|
934 |
+
if ($pType == 'i4' || $pType == 'i8' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' ||
|
935 |
+
$pType == 'string' || $pType == 'dateTime.iso8601' || $pType == 'base64' || $pType == 'null'
|
936 |
+
) {
|
937 |
+
// only build directly xmlrpc values when type is known and scalar
|
938 |
+
$innerCode .= "\$p$i = new {$namespace}Value(\$p$i, '$pType');\n";
|
939 |
+
} else {
|
940 |
+
if ($encodePhpObjects) {
|
941 |
+
$innerCode .= "\$p$i = \$encoder->encode(\$p$i, array('encode_php_objs'));\n";
|
942 |
+
} else {
|
943 |
+
$innerCode .= "\$p$i = \$encoder->encode(\$p$i);\n";
|
944 |
+
}
|
945 |
+
}
|
946 |
+
$innerCode .= "\$req->addparam(\$p$i);\n";
|
947 |
+
$mDesc .= '* @param ' . $this->xmlrpc2PhpType($pType) . " \$p$i\n";
|
948 |
+
}
|
949 |
+
if ($clientCopyMode < 2) {
|
950 |
+
$plist[] = '$debug=0';
|
951 |
+
$mDesc .= "* @param int \$debug when 1 (or 2) will enable debugging of the underlying {$prefix} call (defaults to 0)\n";
|
952 |
+
}
|
953 |
+
$plist = implode(', ', $plist);
|
954 |
+
$mDesc .= '* @return ' . $this->xmlrpc2PhpType($mSig[0]) . " (or an {$namespace}Response obj instance if call fails)\n*/\n";
|
955 |
+
|
956 |
+
$innerCode .= "\$res = \${$this_}client->send(\$req, $timeout, '$protocol');\n";
|
957 |
+
if ($decodeFault) {
|
958 |
+
if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) || (strpos($faultResponse, '%faultString%') !== false))) {
|
959 |
+
$respCode = "str_replace(array('%faultCode%', '%faultString%'), array(\$res->faultCode(), \$res->faultString()), '" . str_replace("'", "''", $faultResponse) . "')";
|
960 |
+
} else {
|
961 |
+
$respCode = var_export($faultResponse, true);
|
962 |
+
}
|
963 |
+
} else {
|
964 |
+
$respCode = '$res';
|
965 |
+
}
|
966 |
+
if ($decodePhpObjects) {
|
967 |
+
$innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value(), array('decode_php_objs'));";
|
968 |
+
} else {
|
969 |
+
$innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value());";
|
970 |
+
}
|
971 |
+
|
972 |
+
$code = $code . $plist . ") {\n" . $innerCode . "\n}\n";
|
973 |
+
|
974 |
+
return array('source' => $code, 'docstring' => $mDesc);
|
975 |
+
}
|
976 |
+
|
977 |
+
/**
|
978 |
+
* Similar to wrapXmlrpcMethod, but will generate a php class that wraps
|
979 |
+
* all xmlrpc methods exposed by the remote server as own methods.
|
980 |
+
* For more details see wrapXmlrpcMethod.
|
981 |
+
*
|
982 |
+
* For a slimmer alternative, see the code in demo/client/proxy.php
|
983 |
+
*
|
984 |
+
* Note that unlike wrapXmlrpcMethod, we always have to generate php code here. It seems that php 7 will have anon classes...
|
985 |
+
*
|
986 |
+
* @param Client $client the client obj all set to query the desired server
|
987 |
+
* @param array $extraOptions list of options for wrapped code. See the ones from wrapXmlrpcMethod plus
|
988 |
+
* - string method_filter regular expression
|
989 |
+
* - string new_class_name
|
990 |
+
* - string prefix
|
991 |
+
* - bool simple_client_copy set it to true to avoid copying all properties of $client into the copy made in the new class
|
992 |
+
*
|
993 |
+
* @return mixed false on error, the name of the created class if all ok or an array with code, class name and comments (if the appropriate option is set in extra_options)
|
994 |
+
*/
|
995 |
+
public function wrapXmlrpcServer($client, $extraOptions = array())
|
996 |
+
{
|
997 |
+
$methodFilter = isset($extraOptions['method_filter']) ? $extraOptions['method_filter'] : '';
|
998 |
+
$timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
|
999 |
+
$protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
|
1000 |
+
$newClassName = isset($extraOptions['new_class_name']) ? $extraOptions['new_class_name'] : '';
|
1001 |
+
$encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
|
1002 |
+
$decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
|
1003 |
+
$verbatimClientCopy = isset($extraOptions['simple_client_copy']) ? !($extraOptions['simple_client_copy']) : true;
|
1004 |
+
$buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
|
1005 |
+
$prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
|
1006 |
+
$namespace = '\\PhpXmlRpc\\';
|
1007 |
+
|
1008 |
+
$reqClass = $namespace . 'Request';
|
1009 |
+
$decoderClass = $namespace . 'Encoder';
|
1010 |
+
|
1011 |
+
$req = new $reqClass('system.listMethods');
|
1012 |
+
$response = $client->send($req, $timeout, $protocol);
|
1013 |
+
if ($response->faultCode()) {
|
1014 |
+
error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method list from remote server');
|
1015 |
+
|
1016 |
+
return false;
|
1017 |
+
} else {
|
1018 |
+
$mList = $response->value();
|
1019 |
+
if ($client->return_type != 'phpvals') {
|
1020 |
+
$decoder = new $decoderClass();
|
1021 |
+
$mList = $decoder->decode($mList);
|
1022 |
+
}
|
1023 |
+
if (!is_array($mList) || !count($mList)) {
|
1024 |
+
error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve meaningful method list from remote server');
|
1025 |
+
|
1026 |
+
return false;
|
1027 |
+
} else {
|
1028 |
+
// pick a suitable name for the new function, avoiding collisions
|
1029 |
+
if ($newClassName != '') {
|
1030 |
+
$xmlrpcClassName = $newClassName;
|
1031 |
+
} else {
|
1032 |
+
$xmlrpcClassName = $prefix . '_' . preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
|
1033 |
+
array('_', ''), $client->server) . '_client';
|
1034 |
+
}
|
1035 |
+
while ($buildIt && class_exists($xmlrpcClassName)) {
|
1036 |
+
$xmlrpcClassName .= 'x';
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
/// @todo add function setdebug() to new class, to enable/disable debugging
|
1040 |
+
$source = "class $xmlrpcClassName\n{\npublic \$client;\n\n";
|
1041 |
+
$source .= "function __construct()\n{\n";
|
1042 |
+
$source .= $this->buildClientWrapperCode($client, $verbatimClientCopy, $prefix, $namespace);
|
1043 |
+
$source .= "\$this->client = \$client;\n}\n\n";
|
1044 |
+
$opts = array(
|
1045 |
+
'return_source' => true,
|
1046 |
+
'simple_client_copy' => 2, // do not produce code to copy the client object
|
1047 |
+
'timeout' => $timeout,
|
1048 |
+
'protocol' => $protocol,
|
1049 |
+
'encode_php_objs' => $encodePhpObjects,
|
1050 |
+
'decode_php_objs' => $decodePhpObjects,
|
1051 |
+
'prefix' => $prefix,
|
1052 |
+
);
|
1053 |
+
/// @todo build phpdoc for class definition, too
|
1054 |
+
foreach ($mList as $mName) {
|
1055 |
+
if ($methodFilter == '' || preg_match($methodFilter, $mName)) {
|
1056 |
+
// note: this will fail if server exposes 2 methods called f.e. do.something and do_something
|
1057 |
+
$opts['new_function_name'] = preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
|
1058 |
+
array('_', ''), $mName);
|
1059 |
+
$methodWrap = $this->wrapXmlrpcMethod($client, $mName, $opts);
|
1060 |
+
if ($methodWrap) {
|
1061 |
+
if (!$buildIt) {
|
1062 |
+
$source .= $methodWrap['docstring'];
|
1063 |
+
}
|
1064 |
+
$source .= $methodWrap['source'] . "\n";
|
1065 |
+
} else {
|
1066 |
+
error_log('XML-RPC: ' . __METHOD__ . ': will not create class method to wrap remote method ' . $mName);
|
1067 |
+
}
|
1068 |
+
}
|
1069 |
+
}
|
1070 |
+
$source .= "}\n";
|
1071 |
+
if ($buildIt) {
|
1072 |
+
$allOK = 0;
|
1073 |
+
eval($source . '$allOK=1;');
|
1074 |
+
if ($allOK) {
|
1075 |
+
return $xmlrpcClassName;
|
1076 |
+
} else {
|
1077 |
+
error_log('XML-RPC: ' . __METHOD__ . ': could not create class ' . $xmlrpcClassName . ' to wrap remote server ' . $client->server);
|
1078 |
+
return false;
|
1079 |
+
}
|
1080 |
+
} else {
|
1081 |
+
return array('class' => $xmlrpcClassName, 'code' => $source, 'docstring' => '');
|
1082 |
+
}
|
1083 |
+
}
|
1084 |
+
}
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
/**
|
1088 |
+
* Given necessary info, generate php code that will build a client object just like the given one.
|
1089 |
+
* Take care that no full checking of input parameters is done to ensure that
|
1090 |
+
* valid php code is emitted.
|
1091 |
+
* @param Client $client
|
1092 |
+
* @param bool $verbatimClientCopy when true, copy all of the state of the client, except for 'debug' and 'return_type'
|
1093 |
+
* @param string $prefix used for the return_type of the created client
|
1094 |
+
* @param string $namespace
|
1095 |
+
*
|
1096 |
+
* @return string
|
1097 |
+
*/
|
1098 |
+
protected function buildClientWrapperCode($client, $verbatimClientCopy, $prefix = 'xmlrpc', $namespace = '\\PhpXmlRpc\\' )
|
1099 |
+
{
|
1100 |
+
$code = "\$client = new {$namespace}Client('" . str_replace("'", "\'", $client->path) .
|
1101 |
+
"', '" . str_replace("'", "\'", $client->server) . "', $client->port);\n";
|
1102 |
+
|
1103 |
+
// copy all client fields to the client that will be generated runtime
|
1104 |
+
// (this provides for future expansion or subclassing of client obj)
|
1105 |
+
if ($verbatimClientCopy) {
|
1106 |
+
foreach ($client as $fld => $val) {
|
1107 |
+
if ($fld != 'debug' && $fld != 'return_type') {
|
1108 |
+
$val = var_export($val, true);
|
1109 |
+
$code .= "\$client->$fld = $val;\n";
|
1110 |
+
}
|
1111 |
+
}
|
1112 |
+
}
|
1113 |
+
// only make sure that client always returns the correct data type
|
1114 |
+
$code .= "\$client->return_type = '{$prefix}vals';\n";
|
1115 |
+
//$code .= "\$client->setDebug(\$debug);\n";
|
1116 |
+
return $code;
|
1117 |
+
}
|
1118 |
+
}
|
js/build/builder.bundle.js
CHANGED
@@ -20693,6 +20693,7 @@ var InlineEditor = function (_Component) {
|
|
20693 |
menubar: false,
|
20694 |
paste_as_text: true,
|
20695 |
relative_urls: false,
|
|
|
20696 |
skin: FLBuilder ? false : 'lightgray',
|
20697 |
skin_url: FLBuilder ? false : tinyMCEPreInit.baseURL + '/skins/lightgray/',
|
20698 |
theme: 'modern',
|
@@ -20832,9 +20833,9 @@ var InlineEditor = function (_Component) {
|
|
20832 |
var textarea = settings.find('#fl-field-' + field.name + ' textarea.wp-editor-area');
|
20833 |
var editorId = textarea.attr('id');
|
20834 |
if (textarea.closest('.tmce-active').length) {
|
20835 |
-
tinymce.get(editorId).setContent(
|
20836 |
} else {
|
20837 |
-
textarea.val(
|
20838 |
}
|
20839 |
} else {
|
20840 |
var _textarea = document.createElement('textarea');
|
@@ -21006,16 +21007,6 @@ var InlineEditor = function (_Component) {
|
|
21006 |
value: function matchHTML(a, b) {
|
21007 |
return this.cleanHTML(a) === this.cleanHTML(b);
|
21008 |
}
|
21009 |
-
}, {
|
21010 |
-
key: 'fixURLs',
|
21011 |
-
value: function fixURLs(html) {
|
21012 |
-
html = html.replace(/href="[^http#]/g, 'href="' + FLBuilderConfig.homeUrl + '/');
|
21013 |
-
html = html.replace(/href="(\.\.\/){1,2}/g, 'href="' + FLBuilderConfig.homeUrl + '/');
|
21014 |
-
|
21015 |
-
html = html.replace(/src="(\.\.\/){1,2}/g, 'src="' + FLBuilderConfig.homeUrl + '/');
|
21016 |
-
html = html.replace(/src="[^http]/g, 'src="' + FLBuilderConfig.homeUrl + '/');
|
21017 |
-
return html;
|
21018 |
-
}
|
21019 |
}, {
|
21020 |
key: 'cleanHTML',
|
21021 |
value: function cleanHTML(html) {
|
20693 |
menubar: false,
|
20694 |
paste_as_text: true,
|
20695 |
relative_urls: false,
|
20696 |
+
convert_urls: false,
|
20697 |
skin: FLBuilder ? false : 'lightgray',
|
20698 |
skin_url: FLBuilder ? false : tinyMCEPreInit.baseURL + '/skins/lightgray/',
|
20699 |
theme: 'modern',
|
20833 |
var textarea = settings.find('#fl-field-' + field.name + ' textarea.wp-editor-area');
|
20834 |
var editorId = textarea.attr('id');
|
20835 |
if (textarea.closest('.tmce-active').length) {
|
20836 |
+
tinymce.get(editorId).setContent(content);
|
20837 |
} else {
|
20838 |
+
textarea.val(content);
|
20839 |
}
|
20840 |
} else {
|
20841 |
var _textarea = document.createElement('textarea');
|
21007 |
value: function matchHTML(a, b) {
|
21008 |
return this.cleanHTML(a) === this.cleanHTML(b);
|
21009 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21010 |
}, {
|
21011 |
key: 'cleanHTML',
|
21012 |
value: function cleanHTML(html) {
|
js/build/builder.bundle.min.js
CHANGED
@@ -1,22 +1,30 @@
|
|
1 |
-
!function(e){function t(r){if(n[r])return n[r].exports;var
|
2 |
object-assign
|
3 |
(c) Sindre Sorhus
|
4 |
@license MIT
|
5 |
*/
|
6 |
-
var
|
7 |
* react.production.min.js
|
8 |
*
|
9 |
-
* Copyright (c)
|
10 |
*
|
11 |
* This source code is licensed under the MIT license found in the
|
12 |
* LICENSE file in the root directory of this source tree.
|
13 |
*/
|
14 |
-
var v=n(1),g=n(2),b=n(3),k=n(4),w="function"==typeof Symbol&&Symbol.for,E=w?Symbol.for("react.element"):60103,_=w?Symbol.for("react.portal"):60106,C=w?Symbol.for("react.fragment"):60107,x=w?Symbol.for("react.strict_mode"):60108,T=w?Symbol.for("react.profiler"):60114,S=w?Symbol.for("react.provider"):60109,P=w?Symbol.for("react.context"):60110,N=w?Symbol.for("react.async_mode"):60111,O=w?Symbol.for("react.forward_ref"):60112;w&&Symbol.for("react.timeout");var M="function"==typeof Symbol&&Symbol.iterator,F={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};o.prototype.isReactComponent={},o.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e,t,"setState")},o.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},i.prototype=o.prototype;var L=l.prototype=new i;L.constructor=l,v(L,o.prototype),L.isPureReactComponent=!0;var R={current:null},U=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0},j=/\/+/g,D=[],z={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return y(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;t=s(null,null,t,n),null==e||d(e,"",h,t),f(t)},count:function(e){return null==e?0:d(e,"",k.thatReturnsNull,null)},toArray:function(e){var t=[];return y(e,t,null,k.thatReturnsArgument),t},only:function(e){return u(e)||r("143"),e}},createRef:function(){return{current:null}},Component:o,PureComponent:l,createContext:function(e,t){return void 0===t&&(t=null),e={$$typeof:P,_calculateChangedBits:t,_defaultValue:e,_currentValue:e,_currentValue2:e,_changedBits:0,_changedBits2:0,Provider:null,Consumer:null},e.Provider={$$typeof:S,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:O,render:e}},Fragment:C,StrictMode:x,unstable_AsyncMode:N,unstable_Profiler:T,createElement:a,cloneElement:function(e,t,n){(null===e||void 0===e)&&r("267",e);var o=void 0,i=v({},e.props),l=e.key,a=e.ref,u=e._owner;if(null!=t){void 0!==t.ref&&(a=t.ref,u=R.current),void 0!==t.key&&(l=""+t.key);var c=void 0;e.type&&e.type.defaultProps&&(c=e.type.defaultProps);for(o in t)U.call(t,o)&&!I.hasOwnProperty(o)&&(i[o]=void 0===t[o]&&void 0!==c?c[o]:t[o])}if(1===(o=arguments.length-2))i.children=n;else if(1<o){c=Array(o);for(var s=0;s<o;s++)c[s]=arguments[s+2];i.children=c}return{$$typeof:E,type:e.type,key:l,ref:a,props:i,_owner:u}},createFactory:function(e){var t=a.bind(null,e);return t.type=e,t},isValidElement:u,version:"16.4.2",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:R,assign:v}},A={default:z},B=A&&z||A;e.exports=B.default?B.default:B},function(e,t,n){"use strict";function r(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}r(),e.exports=n(8)},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);Rr(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}function o(e,t,n,r,o,i,l,a,u){this._hasCaughtError=!1,this._caughtError=null;var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this._caughtError=e,this._hasCaughtError=!0}}function i(){if(Vr._hasRethrowError){var e=Vr._rethrowError;throw Vr._rethrowError=null,Vr._hasRethrowError=!1,e}}function l(){if(Wr)for(var e in Qr){var t=Qr[e],n=Wr.indexOf(e);if(-1<n||r("96",e),!$r[n]){t.extractEvents||r("97",e),$r[n]=t,n=t.eventTypes;for(var o in n){var i=void 0,l=n[o],u=t,c=o;Kr.hasOwnProperty(c)&&r("99",c),Kr[c]=l;var s=l.phasedRegistrationNames;if(s){for(i in s)s.hasOwnProperty(i)&&a(s[i],u,c);i=!0}else l.registrationName?(a(l.registrationName,u,c),i=!0):i=!1;i||r("98",o,e)}}}}function a(e,t,n){qr[e]&&r("100",e),qr[e]=t,Gr[e]=t.eventTypes[n].dependencies}function u(e){Wr&&r("101"),Wr=Array.prototype.slice.call(e),l()}function c(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var o=e[t];Qr.hasOwnProperty(t)&&Qr[t]===o||(Qr[t]&&r("102",t),Qr[t]=o,n=!0)}n&&l()}function s(e,t,n,r){t=e.type||"unknown-event",e.currentTarget=Jr(r),Vr.invokeGuardedCallbackAndCatchFirstError(t,n,void 0,e),e.currentTarget=null}function f(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function d(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}function p(e,t){if(e){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)s(e,t,n[o],r[o]);else n&&s(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function h(e){return p(e,!0)}function m(e){return p(e,!1)}function y(e,t){var n=e.stateNode;if(!n)return null;var o=Xr(n);if(!o)return null;n=o[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(o=!o.disabled)||(e=e.type,o=!("button"===e||"input"===e||"select"===e||"textarea"===e)),e=!o;break e;default:e=!1}return e?null:(n&&"function"!=typeof n&&r("231",t,typeof n),n)}function v(e,t){null!==e&&(eo=f(eo,e)),e=eo,eo=null,e&&(t?d(e,h):d(e,m),eo&&r("95"),Vr.rethrowCaughtError())}function g(e,t,n,r){for(var o=null,i=0;i<$r.length;i++){var l=$r[i];l&&(l=l.extractEvents(e,t,n,r))&&(o=f(o,l))}v(o,!1)}function b(e){if(e[oo])return e[oo];for(;!e[oo];){if(!e.parentNode)return null;e=e.parentNode}return e=e[oo],5===e.tag||6===e.tag?e:null}function k(e){if(5===e.tag||6===e.tag)return e.stateNode;r("33")}function w(e){return e[io]||null}function E(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function _(e,t,n){for(var r=[];e;)r.push(e),e=E(e);for(e=r.length;0<e--;)t(r[e],"captured",n);for(e=0;e<r.length;e++)t(r[e],"bubbled",n)}function C(e,t,n){(t=y(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=f(n._dispatchListeners,t),n._dispatchInstances=f(n._dispatchInstances,e))}function x(e){e&&e.dispatchConfig.phasedRegistrationNames&&_(e._targetInst,C,e)}function T(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst;t=t?E(t):null,_(t,C,e)}}function S(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=y(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=f(n._dispatchListeners,t),n._dispatchInstances=f(n._dispatchInstances,e))}function P(e){e&&e.dispatchConfig.registrationName&&S(e._targetInst,null,e)}function N(e){d(e,x)}function O(e,t,n,r){if(n&&r)e:{for(var o=n,i=r,l=0,a=o;a;a=E(a))l++;a=0;for(var u=i;u;u=E(u))a++;for(;0<l-a;)o=E(o),l--;for(;0<a-l;)i=E(i),a--;for(;l--;){if(o===i||o===i.alternate)break e;o=E(o),i=E(i)}o=null}else o=null;for(i=o,o=[];n&&n!==i&&(null===(l=n.alternate)||l!==i);)o.push(n),n=E(n);for(n=[];r&&r!==i&&(null===(l=r.alternate)||l!==i);)n.push(r),r=E(r);for(r=0;r<o.length;r++)S(o[r],"bubbled",e);for(e=n.length;0<e--;)S(n[e],"captured",t)}function M(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function F(e){if(co[e])return co[e];if(!uo[e])return e;var t,n=uo[e];for(t in n)if(n.hasOwnProperty(t)&&t in so)return co[e]=n[t];return e}function L(){return!vo&&Ir.canUseDOM&&(vo="textContent"in document.documentElement?"textContent":"innerText"),vo}function R(){if(go._fallbackText)return go._fallbackText;var e,t,n=go._startText,r=n.length,o=U(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var l=r-e;for(t=1;t<=l&&n[r-t]===o[i-t];t++);return go._fallbackText=o.slice(e,1<t?1-t:void 0),go._fallbackText}function U(){return"value"in go._root?go._root.value:go._root[L()]}function I(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface;for(var o in e)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?Dr.thatReturnsTrue:Dr.thatReturnsFalse,this.isPropagationStopped=Dr.thatReturnsFalse,this}function j(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function D(e){e instanceof this||r("223"),e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function z(e){e.eventPool=[],e.getPooled=j,e.release=D}function A(e,t){switch(e){case"keyup":return-1!==_o.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function B(e){return e=e.detail,"object"==typeof e&&"data"in e?e.data:null}function H(e,t){switch(e){case"compositionend":return B(t);case"keypress":return 32!==t.which?null:(Oo=!0,Po);case"textInput":return e=t.data,e===Po&&Oo?null:e;default:return null}}function V(e,t){if(Mo)return"compositionend"===e||!Co&&A(e,t)?(e=R(),go._root=null,go._startText=null,go._fallbackText=null,Mo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return So?null:t.data;default:return null}}function W(e){if(e=Zr(e)){Lo&&"function"==typeof Lo.restoreControlledState||r("194");var t=Xr(e.stateNode);Lo.restoreControlledState(e.stateNode,e.type,t)}}function Q(e){Uo?Io?Io.push(e):Io=[e]:Uo=e}function $(){return null!==Uo||null!==Io}function K(){if(Uo){var e=Uo,t=Io;if(Io=Uo=null,W(e),t)for(e=0;e<t.length;e++)W(t[e])}}function q(e,t){return e(t)}function G(e,t,n){return e(t,n)}function Y(){}function X(e,t){if(Do)return e(t);Do=!0;try{return q(e,t)}finally{Do=!1,$()&&(Y(),K())}}function Z(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!zo[e.type]:"textarea"===t}function J(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function ee(e,t){return!(!Ir.canUseDOM||t&&!("addEventListener"in document))&&(e="on"+e,t=e in document,t||(t=document.createElement("div"),t.setAttribute(e,"return;"),t="function"==typeof t[e]),t)}function te(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ne(e){var t=te(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function re(e){e._valueTracker||(e._valueTracker=ne(e))}function oe(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=te(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ie(e){return null===e||void 0===e?null:(e=Zo&&e[Zo]||e["@@iterator"],"function"==typeof e?e:null)}function le(e){var t=e.type;if("function"==typeof t)return t.displayName||t.name;if("string"==typeof t)return t;switch(t){case Go:return"AsyncMode";case qo:return"Context.Consumer";case Wo:return"ReactFragment";case Vo:return"ReactPortal";case $o:return"Profiler("+e.pendingProps.id+")";case Ko:return"Context.Provider";case Qo:return"StrictMode";case Xo:return"Timeout"}if("object"==typeof t&&null!==t)switch(t.$$typeof){case Yo:return e=t.render.displayName||t.render.name||"",""!==e?"ForwardRef("+e+")":"ForwardRef"}return null}function ae(e){var t="";do{e:switch(e.tag){case 0:case 1:case 2:case 5:var n=e._debugOwner,r=e._debugSource,o=le(e),i=null;n&&(i=le(n)),n=r,o="\n in "+(o||"Unknown")+(n?" (at "+n.fileName.replace(/^.*[\\\/]/,"")+":"+n.lineNumber+")":i?" (created by "+i+")":"");break e;default:o=""}t+=o,e=e.return}while(e);return t}function ue(e){return!!ei.call(ni,e)||!ei.call(ti,e)&&(Jo.test(e)?ni[e]=!0:(ti[e]=!0,!1))}function ce(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}function se(e,t,n,r){if(null===t||void 0===t||ce(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function fe(e,t,n,r,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t}function de(e){return e[1].toUpperCase()}function pe(e,t,n,r){var o=ri.hasOwnProperty(t)?ri[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(se(t,n,o,r)&&(n=null),r||null===o?ue(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(o=o.type,n=3===o||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function he(e,t){var n=t.checked;return jr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function me(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ke(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function ye(e,t){null!=(t=t.checked)&&pe(e,"checked",t,!1)}function ve(e,t){ye(e,t);var n=ke(t.value);null!=n&&("number"===t.type?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n)),t.hasOwnProperty("value")?be(e,t.type,n):t.hasOwnProperty("defaultValue")&&be(e,t.type,ke(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function ge(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){t=""+e._wrapperState.initialValue;var r=e.value;n||t===r||(e.value=t),e.defaultValue=t}n=e.name,""!==n&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!e.defaultChecked,""!==n&&(e.name=n)}function be(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ke(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function we(e,t,n){return e=I.getPooled(ii.change,e,t,n),e.type="change",Q(n),N(e),e}function Ee(e){v(e,!1)}function _e(e){if(oe(k(e)))return e}function Ce(e,t){if("change"===e)return t}function xe(){li&&(li.detachEvent("onpropertychange",Te),ai=li=null)}function Te(e){"value"===e.propertyName&&_e(ai)&&(e=we(ai,e,J(e)),X(Ee,e))}function Se(e,t,n){"focus"===e?(xe(),li=t,ai=n,li.attachEvent("onpropertychange",Te)):"blur"===e&&xe()}function Pe(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return _e(ai)}function Ne(e,t){if("click"===e)return _e(t)}function Oe(e,t){if("input"===e||"change"===e)return _e(t)}function Me(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=fi[e])&&!!t[e]}function Fe(){return Me}function Le(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(t=t.return,0!=(2&t.effectTag))return 1}return 3===t.tag?2:3}function Re(e){2!==Le(e)&&r("188")}function Ue(e){var t=e.alternate;if(!t)return t=Le(e),3===t&&r("188"),1===t?null:e;for(var n=e,o=t;;){var i=n.return,l=i?i.alternate:null;if(!i||!l)break;if(i.child===l.child){for(var a=i.child;a;){if(a===n)return Re(i),e;if(a===o)return Re(i),t;a=a.sibling}r("188")}if(n.return!==o.return)n=i,o=l;else{a=!1;for(var u=i.child;u;){if(u===n){a=!0,n=i,o=l;break}if(u===o){a=!0,o=i,n=l;break}u=u.sibling}if(!a){for(u=l.child;u;){if(u===n){a=!0,n=l,o=i;break}if(u===o){a=!0,o=l,n=i;break}u=u.sibling}a||r("189")}}n.alternate!==o&&r("190")}return 3!==n.tag&&r("188"),n.stateNode.current===n?e:t}function Ie(e){if(!(e=Ue(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function je(e){if(!(e=Ue(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function De(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function ze(e,t){var n=e[0];e=e[1];var r="on"+(e[0].toUpperCase()+e.slice(1));t={phasedRegistrationNames:{bubbled:r,captured:r+"Capture"},dependencies:[n],isInteractive:t},Si[e]=t,Pi[n]=t}function Ae(e){var t=e.targetInst;do{if(!t){e.ancestors.push(t);break}var n;for(n=t;n.return;)n=n.return;if(!(n=3!==n.tag?null:n.stateNode.containerInfo))break;e.ancestors.push(t),t=b(n)}while(t);for(n=0;n<e.ancestors.length;n++)t=e.ancestors[n],g(e.topLevelType,t,e.nativeEvent,J(e.nativeEvent))}function Be(e){Fi=!!e}function He(e,t){if(!t)return null;var n=(Oi(e)?We:Qe).bind(null,e);t.addEventListener(e,n,!1)}function Ve(e,t){if(!t)return null;var n=(Oi(e)?We:Qe).bind(null,e);t.addEventListener(e,n,!0)}function We(e,t){G(Qe,e,t)}function Qe(e,t){if(Fi){var n=J(t);if(n=b(n),null===n||"number"!=typeof n.tag||2===Le(n)||(n=null),Mi.length){var r=Mi.pop();r.topLevelType=e,r.nativeEvent=t,r.targetInst=n,e=r}else e={topLevelType:e,nativeEvent:t,targetInst:n,ancestors:[]};try{X(Ae,e)}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>Mi.length&&Mi.push(e)}}}function $e(e){return Object.prototype.hasOwnProperty.call(e,Ii)||(e[Ii]=Ui++,Ri[e[Ii]]={}),Ri[e[Ii]]}function Ke(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function qe(e,t){var n=Ke(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ke(n)}}function Ge(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function Ye(e,t){if(Hi||null==zi||zi!==zr())return null;var n=zi;return"selectionStart"in n&&Ge(n)?n={start:n.selectionStart,end:n.selectionEnd}:window.getSelection?(n=window.getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}):n=void 0,Bi&&Ar(Bi,n)?null:(Bi=n,e=I.getPooled(Di.select,Ai,e,t),e.type="select",e.target=zi,N(e),e)}function Xe(e){var t="";return Ur.Children.forEach(e,function(e){null==e||"string"!=typeof e&&"number"!=typeof e||(t+=e)}),t}function Ze(e,t){return e=jr({children:void 0},t),(t=Xe(t.children))&&(e.children=t),e}function Je(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+n,t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function et(e,t){var n=t.value;e._wrapperState={initialValue:null!=n?n:t.defaultValue,wasMultiple:!!t.multiple}}function tt(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),jr({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function nt(e,t){var n=t.value;null==n&&(n=t.defaultValue,t=t.children,null!=t&&(null!=n&&r("92"),Array.isArray(t)&&(1>=t.length||r("93"),t=t[0]),n=""+t),null==n&&(n="")),e._wrapperState={initialValue:""+n}}function rt(e,t){var n=t.value;null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&(e.defaultValue=n)),null!=t.defaultValue&&(e.defaultValue=t.defaultValue)}function ot(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function it(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function lt(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?it(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function at(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function ut(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=n,i=t[n];o=null==i||"boolean"==typeof i||""===i?"":r||"number"!=typeof i||0===i||ml.hasOwnProperty(o)&&ml[o]?(""+i).trim():i+"px","float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}function ct(e,t,n){t&&(vl[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e,n()),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",n()))}function st(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function ft(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=$e(e);t=Gr[t];for(var r=0;r<t.length;r++){var o=t[r];if(!n.hasOwnProperty(o)||!n[o]){switch(o){case"scroll":Ve("scroll",e);break;case"focus":case"blur":Ve("focus",e),Ve("blur",e),n.blur=!0,n.focus=!0;break;case"cancel":case"close":ee(o,!0)&&Ve(o,e);break;case"invalid":case"submit":case"reset":break;default:-1===yo.indexOf(o)&&He(o,e)}n[o]=!0}}}function dt(e,t,n,r){return n=9===n.nodeType?n:n.ownerDocument,r===dl.html&&(r=it(e)),r===dl.html?"script"===e?(e=n.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):e="string"==typeof t.is?n.createElement(e,{is:t.is}):n.createElement(e):e=n.createElementNS(r,e),e}function pt(e,t){return(9===t.nodeType?t:t.ownerDocument).createTextNode(e)}function ht(e,t,n,r){var o=st(t,n);switch(t){case"iframe":case"object":He("load",e);var i=n;break;case"video":case"audio":for(i=0;i<yo.length;i++)He(yo[i],e);i=n;break;case"source":He("error",e),i=n;break;case"img":case"image":case"link":He("error",e),He("load",e),i=n;break;case"form":He("reset",e),He("submit",e),i=n;break;case"details":He("toggle",e),i=n;break;case"input":me(e,n),i=he(e,n),He("invalid",e),ft(r,"onChange");break;case"option":i=Ze(e,n);break;case"select":et(e,n),i=jr({},n,{value:void 0}),He("invalid",e),ft(r,"onChange");break;case"textarea":nt(e,n),i=tt(e,n),He("invalid",e),ft(r,"onChange");break;default:i=n}ct(t,i,gl);var l,a=i;for(l in a)if(a.hasOwnProperty(l)){var u=a[l];"style"===l?ut(e,u,gl):"dangerouslySetInnerHTML"===l?null!=(u=u?u.__html:void 0)&&hl(e,u):"children"===l?"string"==typeof u?("textarea"!==t||""!==u)&&at(e,u):"number"==typeof u&&at(e,""+u):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(qr.hasOwnProperty(l)?null!=u&&ft(r,l):null!=u&&pe(e,l,u,o))}switch(t){case"input":re(e),ge(e,n,!1);break;case"textarea":re(e),ot(e,n);break;case"option":null!=n.value&&e.setAttribute("value",n.value);break;case"select":e.multiple=!!n.multiple,t=n.value,null!=t?Je(e,!!n.multiple,t,!1):null!=n.defaultValue&&Je(e,!!n.multiple,n.defaultValue,!0);break;default:"function"==typeof i.onClick&&(e.onclick=Dr)}}function mt(e,t,n,r,o){var i=null;switch(t){case"input":n=he(e,n),r=he(e,r),i=[];break;case"option":n=Ze(e,n),r=Ze(e,r),i=[];break;case"select":n=jr({},n,{value:void 0}),r=jr({},r,{value:void 0}),i=[];break;case"textarea":n=tt(e,n),r=tt(e,r),i=[];break;default:"function"!=typeof n.onClick&&"function"==typeof r.onClick&&(e.onclick=Dr)}ct(t,r,gl),t=e=void 0;var l=null;for(e in n)if(!r.hasOwnProperty(e)&&n.hasOwnProperty(e)&&null!=n[e])if("style"===e){var a=n[e];for(t in a)a.hasOwnProperty(t)&&(l||(l={}),l[t]="")}else"dangerouslySetInnerHTML"!==e&&"children"!==e&&"suppressContentEditableWarning"!==e&&"suppressHydrationWarning"!==e&&"autoFocus"!==e&&(qr.hasOwnProperty(e)?i||(i=[]):(i=i||[]).push(e,null));for(e in r){var u=r[e];if(a=null!=n?n[e]:void 0,r.hasOwnProperty(e)&&u!==a&&(null!=u||null!=a))if("style"===e)if(a){for(t in a)!a.hasOwnProperty(t)||u&&u.hasOwnProperty(t)||(l||(l={}),l[t]="");for(t in u)u.hasOwnProperty(t)&&a[t]!==u[t]&&(l||(l={}),l[t]=u[t])}else l||(i||(i=[]),i.push(e,l)),l=u;else"dangerouslySetInnerHTML"===e?(u=u?u.__html:void 0,a=a?a.__html:void 0,null!=u&&a!==u&&(i=i||[]).push(e,""+u)):"children"===e?a===u||"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(e,""+u):"suppressContentEditableWarning"!==e&&"suppressHydrationWarning"!==e&&(qr.hasOwnProperty(e)?(null!=u&&ft(o,e),i||a===u||(i=[])):(i=i||[]).push(e,u))}return l&&(i=i||[]).push("style",l),i}function yt(e,t,n,r,o){"input"===n&&"radio"===o.type&&null!=o.name&&ye(e,o),st(n,r),r=st(n,o);for(var i=0;i<t.length;i+=2){var l=t[i],a=t[i+1];"style"===l?ut(e,a,gl):"dangerouslySetInnerHTML"===l?hl(e,a):"children"===l?at(e,a):pe(e,l,a,r)}switch(n){case"input":ve(e,o);break;case"textarea":rt(e,o);break;case"select":e._wrapperState.initialValue=void 0,t=e._wrapperState.wasMultiple,e._wrapperState.wasMultiple=!!o.multiple,n=o.value,null!=n?Je(e,!!o.multiple,n,!1):t!==!!o.multiple&&(null!=o.defaultValue?Je(e,!!o.multiple,o.defaultValue,!0):Je(e,!!o.multiple,o.multiple?[]:"",!1))}}function vt(e,t,n,r,o){switch(t){case"iframe":case"object":He("load",e);break;case"video":case"audio":for(r=0;r<yo.length;r++)He(yo[r],e);break;case"source":He("error",e);break;case"img":case"image":case"link":He("error",e),He("load",e);break;case"form":He("reset",e),He("submit",e);break;case"details":He("toggle",e);break;case"input":me(e,n),He("invalid",e),ft(o,"onChange");break;case"select":et(e,n),He("invalid",e),ft(o,"onChange");break;case"textarea":nt(e,n),He("invalid",e),ft(o,"onChange")}ct(t,n,gl),r=null;for(var i in n)if(n.hasOwnProperty(i)){var l=n[i];"children"===i?"string"==typeof l?e.textContent!==l&&(r=["children",l]):"number"==typeof l&&e.textContent!==""+l&&(r=["children",""+l]):qr.hasOwnProperty(i)&&null!=l&&ft(o,i)}switch(t){case"input":re(e),ge(e,n,!0);break;case"textarea":re(e),ot(e,n);break;case"select":case"option":break;default:"function"==typeof n.onClick&&(e.onclick=Dr)}return r}function gt(e,t){return e.nodeValue!==t}function bt(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function kt(e,t){return"textarea"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&"string"==typeof t.dangerouslySetInnerHTML.__html}function wt(e){for(e=e.nextSibling;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}function Et(e){for(e=e.firstChild;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}function _t(e){return{current:e}}function Ct(e){0>Tl||(e.current=xl[Tl],xl[Tl]=null,Tl--)}function xt(e,t){Tl++,xl[Tl]=e.current,e.current=t}function Tt(e){return Pt(e)?Nl:Sl.current}function St(e,t){var n=e.type.contextTypes;if(!n)return Hr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Pt(e){return 2===e.tag&&null!=e.type.childContextTypes}function Nt(e){Pt(e)&&(Ct(Pl,e),Ct(Sl,e))}function Ot(e){Ct(Pl,e),Ct(Sl,e)}function Mt(e,t,n){Sl.current!==Hr&&r("168"),xt(Sl,t,e),xt(Pl,n,e)}function Ft(e,t){var n=e.stateNode,o=e.type.childContextTypes;if("function"!=typeof n.getChildContext)return t;n=n.getChildContext();for(var i in n)i in o||r("108",le(e)||"Unknown",i);return jr({},t,n)}function Lt(e){if(!Pt(e))return!1;var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Hr,Nl=Sl.current,xt(Sl,t,e),xt(Pl,Pl.current,e),!0}function Rt(e,t){var n=e.stateNode;if(n||r("169"),t){var o=Ft(e,Nl);n.__reactInternalMemoizedMergedChildContext=o,Ct(Pl,e),Ct(Sl,e),xt(Sl,o,e)}else Ct(Pl,e);xt(Pl,t,e)}function Ut(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=null,this.index=0,this.ref=null,this.pendingProps=t,this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function It(e,t,n){var r=e.alternate;return null===r?(r=new Ut(e.tag,t,e.key,e.mode),r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.effectTag=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.expirationTime=n,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function jt(e,t,n){var o=e.type,i=e.key;if(e=e.props,"function"==typeof o)var l=o.prototype&&o.prototype.isReactComponent?2:0;else if("string"==typeof o)l=5;else switch(o){case Wo:return Dt(e.children,t,n,i);case Go:l=11,t|=3;break;case Qo:l=11,t|=2;break;case $o:return o=new Ut(15,e,i,4|t),o.type=$o,o.expirationTime=n,o;case Xo:l=16,t|=2;break;default:e:{switch("object"==typeof o&&null!==o?o.$$typeof:null){case Ko:l=13;break e;case qo:l=12;break e;case Yo:l=14;break e;default:r("130",null==o?o:typeof o,"")}l=void 0}}return t=new Ut(l,e,i,t),t.type=o,t.expirationTime=n,t}function Dt(e,t,n,r){return e=new Ut(10,e,r,t),e.expirationTime=n,e}function zt(e,t,n){return e=new Ut(6,e,null,t),e.expirationTime=n,e}function At(e,t,n){return t=new Ut(4,null!==e.children?e.children:[],e.key,t),t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bt(e,t,n){return t=new Ut(3,null,null,t?3:0),e={current:t,containerInfo:e,pendingChildren:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,pendingCommitExpirationTime:0,finishedWork:null,context:null,pendingContext:null,hydrate:n,remainingExpirationTime:0,firstBatch:null,nextScheduledRoot:null},t.stateNode=e}function Ht(e){return function(t){try{return e(t)}catch(e){}}}function Vt(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ol=Ht(function(e){return t.onCommitFiberRoot(n,e)}),Ml=Ht(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function Wt(e){"function"==typeof Ol&&Ol(e)}function Qt(e){"function"==typeof Ml&&Ml(e)}function $t(e){return{expirationTime:0,baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Kt(e){return{expirationTime:e.expirationTime,baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qt(e){return{expirationTime:e,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Gt(e,t,n){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t),(0===e.expirationTime||e.expirationTime>n)&&(e.expirationTime=n)}function Yt(e,t,n){var r=e.alternate;if(null===r){var o=e.updateQueue,i=null;null===o&&(o=e.updateQueue=$t(e.memoizedState))}else o=e.updateQueue,i=r.updateQueue,null===o?null===i?(o=e.updateQueue=$t(e.memoizedState),i=r.updateQueue=$t(r.memoizedState)):o=e.updateQueue=Kt(i):null===i&&(i=r.updateQueue=Kt(o));null===i||o===i?Gt(o,t,n):null===o.lastUpdate||null===i.lastUpdate?(Gt(o,t,n),Gt(i,t,n)):(Gt(o,t,n),i.lastUpdate=t)}function Xt(e,t,n){var r=e.updateQueue;r=null===r?e.updateQueue=$t(e.memoizedState):Zt(e,r),null===r.lastCapturedUpdate?r.firstCapturedUpdate=r.lastCapturedUpdate=t:(r.lastCapturedUpdate.next=t,r.lastCapturedUpdate=t),(0===r.expirationTime||r.expirationTime>n)&&(r.expirationTime=n)}function Zt(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Kt(t)),t}function Jt(e,t,n,r,o,i){switch(n.tag){case 1:return e=n.payload,"function"==typeof e?e.call(i,r,o):e;case 3:e.effectTag=-1025&e.effectTag|64;case 0:if(e=n.payload,null===(o="function"==typeof e?e.call(i,r,o):e)||void 0===o)break;return jr({},r,o);case 2:Fl=!0}return r}function en(e,t,n,r,o){if(Fl=!1,!(0===t.expirationTime||t.expirationTime>o)){t=Zt(e,t);for(var i=t.baseState,l=null,a=0,u=t.firstUpdate,c=i;null!==u;){var s=u.expirationTime;s>o?(null===l&&(l=u,i=c),(0===a||a>s)&&(a=s)):(c=Jt(e,t,u,c,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=u:(t.lastEffect.nextEffect=u,t.lastEffect=u))),u=u.next}for(s=null,u=t.firstCapturedUpdate;null!==u;){var f=u.expirationTime;f>o?(null===s&&(s=u,null===l&&(i=c)),(0===a||a>f)&&(a=f)):(c=Jt(e,t,u,c,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=u:(t.lastCapturedEffect.nextEffect=u,t.lastCapturedEffect=u))),u=u.next}null===l&&(t.lastUpdate=null),null===s?t.lastCapturedUpdate=null:e.effectTag|=32,null===l&&null===s&&(i=c),t.baseState=i,t.firstUpdate=l,t.firstCapturedUpdate=s,t.expirationTime=a,e.memoizedState=c}}function tn(e,t){"function"!=typeof e&&r("191",e),e.call(t)}function nn(e,t,n){for(null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),e=t.firstEffect,t.firstEffect=t.lastEffect=null;null!==e;){var r=e.callback;null!==r&&(e.callback=null,tn(r,n)),e=e.nextEffect}for(e=t.firstCapturedEffect,t.firstCapturedEffect=t.lastCapturedEffect=null;null!==e;)t=e.callback,null!==t&&(e.callback=null,tn(t,n)),e=e.nextEffect}function rn(e,t){return{value:e,source:t,stack:ae(t)}}function on(e){var t=e.type._context;xt(Ul,t._changedBits,e),xt(Rl,t._currentValue,e),xt(Ll,e,e),t._currentValue=e.pendingProps.value,t._changedBits=e.stateNode}function ln(e){var t=Ul.current,n=Rl.current;Ct(Ll,e),Ct(Rl,e),Ct(Ul,e),e=e.type._context,e._currentValue=n,e._changedBits=t}function an(e){return e===Il&&r("174"),e}function un(e,t){xt(zl,t,e),xt(Dl,e,e),xt(jl,Il,e);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:lt(null,"");break;default:n=8===n?t.parentNode:t,t=n.namespaceURI||null,n=n.tagName,t=lt(t,n)}Ct(jl,e),xt(jl,t,e)}function cn(e){Ct(jl,e),Ct(Dl,e),Ct(zl,e)}function sn(e){Dl.current===e&&(Ct(jl,e),Ct(Dl,e))}function fn(e,t,n){var r=e.memoizedState;t=t(n,r),r=null===t||void 0===t?r:jr({},r,t),e.memoizedState=r,null!==(e=e.updateQueue)&&0===e.expirationTime&&(e.baseState=r)}function dn(e,t,n,r,o,i){var l=e.stateNode;return e=e.type,"function"==typeof l.shouldComponentUpdate?l.shouldComponentUpdate(n,o,i):!e.prototype||!e.prototype.isPureReactComponent||(!Ar(t,n)||!Ar(r,o))}function pn(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Al.enqueueReplaceState(t,t.state,null)}function hn(e,t){var n=e.type,r=e.stateNode,o=e.pendingProps,i=Tt(e);r.props=o,r.state=e.memoizedState,r.refs=Hr,r.context=St(e,i),i=e.updateQueue,null!==i&&(en(e,i,o,r,t),r.state=e.memoizedState),i=e.type.getDerivedStateFromProps,"function"==typeof i&&(fn(e,i,o),r.state=e.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof r.getSnapshotBeforeUpdate||"function"!=typeof r.UNSAFE_componentWillMount&&"function"!=typeof r.componentWillMount||(n=r.state,"function"==typeof r.componentWillMount&&r.componentWillMount(),"function"==typeof r.UNSAFE_componentWillMount&&r.UNSAFE_componentWillMount(),n!==r.state&&Al.enqueueReplaceState(r,r.state,null),null!==(i=e.updateQueue)&&(en(e,i,o,r,t),r.state=e.memoizedState)),"function"==typeof r.componentDidMount&&(e.effectTag|=4)}function mn(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var o=void 0;n&&(2!==n.tag&&r("110"),o=n.stateNode),o||r("147",e);var i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs===Hr?o.refs={}:o.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}"string"!=typeof e&&r("148"),n._owner||r("254",e)}return e}function yn(e,t){"textarea"!==e.type&&r("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function vn(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function o(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t,n){return e=It(e,t,n),e.index=0,e.sibling=null,e}function l(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index,r<n?(t.effectTag=2,n):r):(t.effectTag=2,n):n}function a(t){return e&&null===t.alternate&&(t.effectTag=2),t}function u(e,t,n,r){return null===t||6!==t.tag?(t=zt(n,e.mode,r),t.return=e,t):(t=i(t,n,r),t.return=e,t)}function c(e,t,n,r){return null!==t&&t.type===n.type?(r=i(t,n.props,r),r.ref=mn(e,t,n),r.return=e,r):(r=jt(n,e.mode,r),r.ref=mn(e,t,n),r.return=e,r)}function s(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=At(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[],r),t.return=e,t)}function f(e,t,n,r,o){return null===t||10!==t.tag?(t=Dt(n,e.mode,r,o),t.return=e,t):(t=i(t,n,r),t.return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return t=zt(""+t,e.mode,n),t.return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case Ho:return n=jt(t,e.mode,n),n.ref=mn(e,null,t),n.return=e,n;case Vo:return t=At(t,e.mode,n),t.return=e,t}if(Bl(t)||ie(t))return t=Dt(t,e.mode,n,null),t.return=e,t;yn(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case Ho:return n.key===o?n.type===Wo?f(e,t,n.props.children,r,o):c(e,t,n,r):null;case Vo:return n.key===o?s(e,t,n,r):null}if(Bl(n)||ie(n))return null!==o?null:f(e,t,n,r,null);yn(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return e=e.get(n)||null,u(t,e,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case Ho:return e=e.get(null===r.key?n:r.key)||null,r.type===Wo?f(t,e,r.props.children,o,r.key):c(t,e,r,o);case Vo:return e=e.get(null===r.key?n:r.key)||null,s(t,e,r,o)}if(Bl(r)||ie(r))return e=e.get(n)||null,f(t,e,r,o,null);yn(t,r)}return null}function m(r,i,a,u){for(var c=null,s=null,f=i,m=i=0,y=null;null!==f&&m<a.length;m++){f.index>m?(y=f,f=null):y=f.sibling;var v=p(r,f,a[m],u);if(null===v){null===f&&(f=y);break}e&&f&&null===v.alternate&&t(r,f),i=l(v,i,m),null===s?c=v:s.sibling=v,s=v,f=y}if(m===a.length)return n(r,f),c;if(null===f){for(;m<a.length;m++)(f=d(r,a[m],u))&&(i=l(f,i,m),null===s?c=f:s.sibling=f,s=f);return c}for(f=o(r,f);m<a.length;m++)(y=h(f,r,m,a[m],u))&&(e&&null!==y.alternate&&f.delete(null===y.key?m:y.key),i=l(y,i,m),null===s?c=y:s.sibling=y,s=y);return e&&f.forEach(function(e){return t(r,e)}),c}function y(i,a,u,c){var s=ie(u);"function"!=typeof s&&r("150"),null==(u=s.call(u))&&r("151");for(var f=s=null,m=a,y=a=0,v=null,g=u.next();null!==m&&!g.done;y++,g=u.next()){m.index>y?(v=m,m=null):v=m.sibling;var b=p(i,m,g.value,c);if(null===b){m||(m=v);break}e&&m&&null===b.alternate&&t(i,m),a=l(b,a,y),null===f?s=b:f.sibling=b,f=b,m=v}if(g.done)return n(i,m),s;if(null===m){for(;!g.done;y++,g=u.next())null!==(g=d(i,g.value,c))&&(a=l(g,a,y),null===f?s=g:f.sibling=g,f=g);return s}for(m=o(i,m);!g.done;y++,g=u.next())null!==(g=h(m,i,y,g.value,c))&&(e&&null!==g.alternate&&m.delete(null===g.key?y:g.key),a=l(g,a,y),null===f?s=g:f.sibling=g,f=g);return e&&m.forEach(function(e){return t(i,e)}),s}return function(e,o,l,u){var c="object"==typeof l&&null!==l&&l.type===Wo&&null===l.key;c&&(l=l.props.children);var s="object"==typeof l&&null!==l;if(s)switch(l.$$typeof){case Ho:e:{for(s=l.key,c=o;null!==c;){if(c.key===s){if(10===c.tag?l.type===Wo:c.type===l.type){n(e,c.sibling),o=i(c,l.type===Wo?l.props.children:l.props,u),o.ref=mn(e,c,l),o.return=e,e=o;break e}n(e,c);break}t(e,c),c=c.sibling}l.type===Wo?(o=Dt(l.props.children,e.mode,u,l.key),o.return=e,e=o):(u=jt(l,e.mode,u),u.ref=mn(e,o,l),u.return=e,e=u)}return a(e);case Vo:e:{for(c=l.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===l.containerInfo&&o.stateNode.implementation===l.implementation){n(e,o.sibling),o=i(o,l.children||[],u),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=At(l,e.mode,u),o.return=e,e=o}return a(e)}if("string"==typeof l||"number"==typeof l)return l=""+l,null!==o&&6===o.tag?(n(e,o.sibling),o=i(o,l,u),o.return=e,e=o):(n(e,o),o=zt(l,e.mode,u),o.return=e,e=o),a(e);if(Bl(l))return m(e,o,l,u);if(ie(l))return y(e,o,l,u);if(s&&yn(e,l),void 0===l&&!c)switch(e.tag){case 2:case 1:u=e.type,r("152",u.displayName||u.name||"Component")}return n(e,o)}}function gn(e,t){var n=new Ut(5,null,null,0);n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function bn(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function kn(e){if($l){var t=Ql;if(t){var n=t;if(!bn(e,t)){if(!(t=wt(n))||!bn(e,t))return e.effectTag|=2,$l=!1,void(Wl=e);gn(Wl,n)}Wl=e,Ql=Et(t)}else e.effectTag|=2,$l=!1,Wl=e}}function wn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag;)e=e.return;Wl=e}function En(e){if(e!==Wl)return!1;if(!$l)return wn(e),$l=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!kt(t,e.memoizedProps))for(t=Ql;t;)gn(e,t),t=wt(t);return wn(e),Ql=Wl?wt(e.stateNode):null,!0}function _n(){Ql=Wl=null,$l=!1}function Cn(e,t,n){xn(e,t,n,t.expirationTime)}function xn(e,t,n,r){t.child=null===e?Vl(t,null,n,r):Hl(t,e.child,n,r)}function Tn(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Sn(e,t,n,r,o){Tn(e,t);var i=0!=(64&t.effectTag);if(!n&&!i)return r&&Rt(t,!1),Mn(e,t);n=t.stateNode,Ao.current=t;var l=i?null:n.render();return t.effectTag|=1,i&&(xn(e,t,null,o),t.child=null),xn(e,t,l,o),t.memoizedState=n.state,t.memoizedProps=n.props,r&&Rt(t,!0),t.child}function Pn(e){var t=e.stateNode;t.pendingContext?Mt(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Mt(e,t.context,!1),un(e,t.containerInfo)}function Nn(e,t,n,r){var o=e.child;for(null!==o&&(o.return=e);null!==o;){switch(o.tag){case 12:var i=0|o.stateNode;if(o.type===t&&0!=(i&n)){for(i=o;null!==i;){var l=i.alternate;if(0===i.expirationTime||i.expirationTime>r)i.expirationTime=r,null!==l&&(0===l.expirationTime||l.expirationTime>r)&&(l.expirationTime=r);else{if(null===l||!(0===l.expirationTime||l.expirationTime>r))break;l.expirationTime=r}i=i.return}i=null}else i=o.child;break;case 13:i=o.type===e.type?null:o.child;break;default:i=o.child}if(null!==i)i.return=o;else for(i=o;null!==i;){if(i===e){i=null;break}if(null!==(o=i.sibling)){o.return=i.return,i=o;break}i=i.return}o=i}}function On(e,t,n){var r=t.type._context,o=t.pendingProps,i=t.memoizedProps,l=!0;if(Pl.current)l=!1;else if(i===o)return t.stateNode=0,on(t),Mn(e,t);var a=o.value;if(t.memoizedProps=o,null===i)a=1073741823;else if(i.value===o.value){if(i.children===o.children&&l)return t.stateNode=0,on(t),Mn(e,t);a=0}else{var u=i.value;if(u===a&&(0!==u||1/u==1/a)||u!==u&&a!==a){if(i.children===o.children&&l)return t.stateNode=0,on(t),Mn(e,t);a=0}else if(a="function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,a):1073741823,0===(a|=0)){if(i.children===o.children&&l)return t.stateNode=0,on(t),Mn(e,t)}else Nn(t,r,a,n)}return t.stateNode=a,on(t),Cn(e,t,o.children),t.child}function Mn(e,t){if(null!==e&&t.child!==e.child&&r("153"),null!==t.child){e=t.child;var n=It(e,e.pendingProps,e.expirationTime);for(t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,n=n.sibling=It(e,e.pendingProps,e.expirationTime),n.return=t;n.sibling=null}return t.child}function Fn(e,t,n){if(0===t.expirationTime||t.expirationTime>n){switch(t.tag){case 3:Pn(t);break;case 2:Lt(t);break;case 4:un(t,t.stateNode.containerInfo);break;case 13:on(t)}return null}switch(t.tag){case 0:null!==e&&r("155");var o=t.type,i=t.pendingProps,l=Tt(t);return l=St(t,l),o=o(i,l),t.effectTag|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(l=t.type,t.tag=2,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,l=l.getDerivedStateFromProps,"function"==typeof l&&fn(t,l,i),i=Lt(t),o.updater=Al,t.stateNode=o,o._reactInternalFiber=t,hn(t,n),e=Sn(e,t,!0,i,n)):(t.tag=1,Cn(e,t,o),t.memoizedProps=i,e=t.child),e;case 1:return i=t.type,n=t.pendingProps,Pl.current||t.memoizedProps!==n?(o=Tt(t),o=St(t,o),i=i(n,o),t.effectTag|=1,Cn(e,t,i),t.memoizedProps=n,e=t.child):e=Mn(e,t),e;case 2:if(i=Lt(t),null===e)if(null===t.stateNode){var a=t.pendingProps,u=t.type;o=Tt(t);var c=2===t.tag&&null!=t.type.contextTypes;l=c?St(t,o):Hr,a=new u(a,l),t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,a.updater=Al,t.stateNode=a,a._reactInternalFiber=t,c&&(c=t.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=o,c.__reactInternalMemoizedMaskedChildContext=l),hn(t,n),o=!0}else{u=t.type,o=t.stateNode,c=t.memoizedProps,l=t.pendingProps,o.props=c;var s=o.context;a=Tt(t),a=St(t,a);var f=u.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(c!==l||s!==a)&&pn(t,o,l,a),Fl=!1;var d=t.memoizedState;s=o.state=d;var p=t.updateQueue;null!==p&&(en(t,p,l,o,n),s=t.memoizedState),c!==l||d!==s||Pl.current||Fl?("function"==typeof f&&(fn(t,f,l),s=t.memoizedState),(c=Fl||dn(t,c,l,d,s,a))?(u||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.effectTag|=4)):("function"==typeof o.componentDidMount&&(t.effectTag|=4),t.memoizedProps=l,t.memoizedState=s),o.props=l,o.state=s,o.context=a,o=c):("function"==typeof o.componentDidMount&&(t.effectTag|=4),o=!1)}else u=t.type,o=t.stateNode,l=t.memoizedProps,c=t.pendingProps,o.props=l,s=o.context,a=Tt(t),a=St(t,a),f=u.getDerivedStateFromProps,(u="function"==typeof f||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(l!==c||s!==a)&&pn(t,o,c,a),Fl=!1,s=t.memoizedState,d=o.state=s,p=t.updateQueue,null!==p&&(en(t,p,c,o,n),d=t.memoizedState),l!==c||s!==d||Pl.current||Fl?("function"==typeof f&&(fn(t,f,c),d=t.memoizedState),(f=Fl||dn(t,l,c,s,d,a))?(u||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(c,d,a),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(c,d,a)),"function"==typeof o.componentDidUpdate&&(t.effectTag|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof o.componentDidUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=c,t.memoizedState=d),o.props=c,o.state=d,o.context=a,o=f):("function"!=typeof o.componentDidUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),o=!1);return Sn(e,t,o,i,n);case 3:return Pn(t),i=t.updateQueue,null!==i?(o=t.memoizedState,o=null!==o?o.element:null,en(t,i,t.pendingProps,null,n),(i=t.memoizedState.element)===o?(_n(),e=Mn(e,t)):(o=t.stateNode,(o=(null===e||null===e.child)&&o.hydrate)&&(Ql=Et(t.stateNode.containerInfo),Wl=t,o=$l=!0),o?(t.effectTag|=2,t.child=Vl(t,null,i,n)):(_n(),Cn(e,t,i)),e=t.child)):(_n(),e=Mn(e,t)),e;case 5:return an(zl.current),i=an(jl.current),o=lt(i,t.type),i!==o&&(xt(Dl,t,t),xt(jl,o,t)),null===e&&kn(t),i=t.type,c=t.memoizedProps,o=t.pendingProps,l=null!==e?e.memoizedProps:null,Pl.current||c!==o||((c=1&t.mode&&!!o.hidden)&&(t.expirationTime=1073741823),c&&1073741823===n)?(c=o.children,kt(i,o)?c=null:l&&kt(i,l)&&(t.effectTag|=16),Tn(e,t),1073741823!==n&&1&t.mode&&o.hidden?(t.expirationTime=1073741823,t.memoizedProps=o,e=null):(Cn(e,t,c),t.memoizedProps=o,e=t.child)):e=Mn(e,t),e;case 6:return null===e&&kn(t),t.memoizedProps=t.pendingProps,null;case 16:return null;case 4:return un(t,t.stateNode.containerInfo),i=t.pendingProps,Pl.current||t.memoizedProps!==i?(null===e?t.child=Hl(t,null,i,n):Cn(e,t,i),t.memoizedProps=i,e=t.child):e=Mn(e,t),e;case 14:return i=t.type.render,n=t.pendingProps,o=t.ref,Pl.current||t.memoizedProps!==n||o!==(null!==e?e.ref:null)?(i=i(n,o),Cn(e,t,i),t.memoizedProps=n,e=t.child):e=Mn(e,t),e;case 10:return n=t.pendingProps,Pl.current||t.memoizedProps!==n?(Cn(e,t,n),t.memoizedProps=n,e=t.child):e=Mn(e,t),e;case 11:return n=t.pendingProps.children,Pl.current||null!==n&&t.memoizedProps!==n?(Cn(e,t,n),t.memoizedProps=n,e=t.child):e=Mn(e,t),e;case 15:return n=t.pendingProps,t.memoizedProps===n?e=Mn(e,t):(Cn(e,t,n.children),t.memoizedProps=n,e=t.child),e;case 13:return On(e,t,n);case 12:e:if(o=t.type,l=t.pendingProps,c=t.memoizedProps,i=o._currentValue,a=o._changedBits,Pl.current||0!==a||c!==l){if(t.memoizedProps=l,u=l.unstable_observedBits,void 0!==u&&null!==u||(u=1073741823),t.stateNode=u,0!=(a&u))Nn(t,o,a,n);else if(c===l){e=Mn(e,t);break e}n=l.children,n=n(i),t.effectTag|=1,Cn(e,t,n),e=t.child}else e=Mn(e,t);return e;default:r("156")}}function Ln(e){e.effectTag|=4}function Rn(e,t){var n=t.pendingProps;switch(t.tag){case 1:return null;case 2:return Nt(t),null;case 3:cn(t),Ot(t);var o=t.stateNode;return o.pendingContext&&(o.context=o.pendingContext,o.pendingContext=null),null!==e&&null!==e.child||(En(t),t.effectTag&=-3),Kl(t),null;case 5:sn(t),o=an(zl.current);var i=t.type;if(null!==e&&null!=t.stateNode){var l=e.memoizedProps,a=t.stateNode,u=an(jl.current);a=mt(a,i,l,n,o),ql(e,t,a,i,l,n,o,u),e.ref!==t.ref&&(t.effectTag|=128)}else{if(!n)return null===t.stateNode&&r("166"),null;if(e=an(jl.current),En(t))n=t.stateNode,i=t.type,l=t.memoizedProps,n[oo]=t,n[io]=l,o=vt(n,i,l,e,o),t.updateQueue=o,null!==o&&Ln(t);else{e=dt(i,n,o,e),e[oo]=t,e[io]=n;e:for(l=t.child;null!==l;){if(5===l.tag||6===l.tag)e.appendChild(l.stateNode);else if(4!==l.tag&&null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break;for(;null===l.sibling;){if(null===l.return||l.return===t)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}ht(e,i,n,o),bt(i,n)&&Ln(t),t.stateNode=e}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)Gl(e,t,e.memoizedProps,n);else{if("string"!=typeof n)return null===t.stateNode&&r("166"),null;o=an(zl.current),an(jl.current),En(t)?(o=t.stateNode,n=t.memoizedProps,o[oo]=t,gt(o,n)&&Ln(t)):(o=pt(n,o),o[oo]=t,t.stateNode=o)}return null;case 14:case 16:case 10:case 11:case 15:return null;case 4:return cn(t),Kl(t),null;case 13:return ln(t),null;case 12:return null;case 0:r("167");default:r("156")}}function Un(e,t){var n=t.source;null===t.stack&&null!==n&&ae(n),null!==n&&le(n),t=t.value,null!==e&&2===e.tag&&le(e);try{t&&t.suppressReactErrorLogging||console.error(t)}catch(e){e&&e.suppressReactErrorLogging||console.error(e)}}function In(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Yn(e,t)}else t.current=null}function jn(e){switch("function"==typeof Qt&&Qt(e),e.tag){case 2:In(e);var t=e.stateNode;if("function"==typeof t.componentWillUnmount)try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Yn(e,t)}break;case 5:In(e);break;case 4:An(e)}}function Dn(e){return 5===e.tag||3===e.tag||4===e.tag}function zn(e){e:{for(var t=e.return;null!==t;){if(Dn(t)){var n=t;break e}t=t.return}r("160"),n=void 0}var o=t=void 0;switch(n.tag){case 5:t=n.stateNode,o=!1;break;case 3:case 4:t=n.stateNode.containerInfo,o=!0;break;default:r("161")}16&n.effectTag&&(at(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Dn(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var i=e;;){if(5===i.tag||6===i.tag)if(n)if(o){var l=t,a=i.stateNode,u=n;8===l.nodeType?l.parentNode.insertBefore(a,u):l.insertBefore(a,u)}else t.insertBefore(i.stateNode,n);else o?(l=t,a=i.stateNode,8===l.nodeType?l.parentNode.insertBefore(a,l):l.appendChild(a)):t.appendChild(i.stateNode);else if(4!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===e)break;for(;null===i.sibling;){if(null===i.return||i.return===e)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}function An(e){for(var t=e,n=!1,o=void 0,i=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&r("160"),n.tag){case 5:o=n.stateNode,i=!1;break e;case 3:case 4:o=n.stateNode.containerInfo,i=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag){e:for(var l=t,a=l;;)if(jn(a),null!==a.child&&4!==a.tag)a.child.return=a,a=a.child;else{if(a===l)break;for(;null===a.sibling;){if(null===a.return||a.return===l)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}i?(l=o,a=t.stateNode,8===l.nodeType?l.parentNode.removeChild(a):l.removeChild(a)):o.removeChild(t.stateNode)}else if(4===t.tag?o=t.stateNode.containerInfo:jn(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,4===t.tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function Bn(e,t){switch(t.tag){case 2:break;case 5:var n=t.stateNode;if(null!=n){var o=t.memoizedProps;e=null!==e?e.memoizedProps:o;var i=t.type,l=t.updateQueue;t.updateQueue=null,null!==l&&(n[io]=o,yt(n,l,i,e,o))}break;case 6:null===t.stateNode&&r("162"),t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 15:case 16:break;default:r("163")}}function Hn(e,t,n){n=qt(n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){hr(r),Un(e,t)},n}function Vn(e,t,n){n=qt(n),n.tag=3;var r=e.stateNode;return null!==r&&"function"==typeof r.componentDidCatch&&(n.callback=function(){null===sa?sa=new Set([this]):sa.add(this);var n=t.value,r=t.stack;Un(e,t),this.componentDidCatch(n,{componentStack:null!==r?r:""})}),n}function Wn(e,t,n,r,o,i){n.effectTag|=512,n.firstEffect=n.lastEffect=null,r=rn(r,n),e=t;do{switch(e.tag){case 3:return e.effectTag|=1024,r=Hn(e,r,i),void Xt(e,r,i);case 2:if(t=r,n=e.stateNode,0==(64&e.effectTag)&&null!==n&&"function"==typeof n.componentDidCatch&&(null===sa||!sa.has(n)))return e.effectTag|=1024,r=Vn(e,t,i),void Xt(e,r,i)}e=e.return}while(null!==e)}function Qn(e){switch(e.tag){case 2:Nt(e);var t=e.effectTag;return 1024&t?(e.effectTag=-1025&t|64,e):null;case 3:return cn(e),Ot(e),t=e.effectTag,1024&t?(e.effectTag=-1025&t|64,e):null;case 5:return sn(e),null;case 16:return t=e.effectTag,1024&t?(e.effectTag=-1025&t|64,e):null;case 4:return cn(e),null;case 13:return ln(e),null;default:return null}}function $n(){if(null!==na)for(var e=na.return;null!==e;){var t=e;switch(t.tag){case 2:Nt(t);break;case 3:cn(t),Ot(t);break;case 5:sn(t);break;case 4:cn(t);break;case 13:ln(t)}e=e.return}ra=null,oa=0,ia=-1,la=!1,na=null,ca=!1}function Kn(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(512&e.effectTag)){t=Rn(t,e,oa);var o=e;if(1073741823===oa||1073741823!==o.expirationTime){var i=0;switch(o.tag){case 3:case 2:var l=o.updateQueue;null!==l&&(i=l.expirationTime)}for(l=o.child;null!==l;)0!==l.expirationTime&&(0===i||i>l.expirationTime)&&(i=l.expirationTime),l=l.sibling;o.expirationTime=i}if(null!==t)return t;if(null!==n&&0==(512&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e)),null!==r)return r;if(null===n){ca=!0;break}e=n}else{if(null!==(e=Qn(e,la,oa)))return e.effectTag&=511,e;if(null!==n&&(n.firstEffect=n.lastEffect=null,n.effectTag|=512),null!==r)return r;if(null===n)break;e=n}}return null}function qn(e){var t=Fn(e.alternate,e,oa);return null===t&&(t=Kn(e)),Ao.current=null,t}function Gn(e,t,n){ta&&r("243"),ta=!0,t===oa&&e===ra&&null!==na||($n(),ra=e,oa=t,ia=-1,na=It(ra.current,null,oa),e.pendingCommitExpirationTime=0);var o=!1;for(la=!n||oa<=Xl;;){try{if(n)for(;null!==na&&!pr();)na=qn(na);else for(;null!==na;)na=qn(na)}catch(t){if(null===na)o=!0,hr(t);else{null===na&&r("271"),n=na;var i=n.return;if(null===i){o=!0,hr(t);break}Wn(e,i,n,t,la,oa,Zl),na=Kn(n)}}break}if(ta=!1,o)return null;if(null===na){if(ca)return e.pendingCommitExpirationTime=t,e.current.alternate;la&&r("262"),0<=ia&&setTimeout(function(){var t=e.current.expirationTime;0!==t&&(0===e.remainingExpirationTime||e.remainingExpirationTime<t)&&or(e,t)},ia),mr(e.current.expirationTime)}return null}function Yn(e,t){var n;e:{for(ta&&!ua&&r("263"),n=e.return;null!==n;){switch(n.tag){case 2:var o=n.stateNode;if("function"==typeof n.type.getDerivedStateFromCatch||"function"==typeof o.componentDidCatch&&(null===sa||!sa.has(o))){e=rn(t,e),e=Vn(n,e,1),Yt(n,e,1),Jn(n,1),n=void 0;break e}break;case 3:e=rn(t,e),e=Hn(n,e,1),Yt(n,e,1),Jn(n,1),n=void 0;break e}n=n.return}3===e.tag&&(n=rn(t,e),n=Hn(e,n,1),Yt(e,n,1),Jn(e,1)),n=void 0}return n}function Xn(){var e=2+25*(1+((er()-2+500)/25|0));return e<=Jl&&(e=Jl+1),Jl=e}function Zn(e,t){return e=0!==ea?ea:ta?ua?1:oa:1&t.mode?xa?2+10*(1+((e-2+15)/10|0)):2+25*(1+((e-2+500)/25|0)):1,xa&&(0===ga||e>ga)&&(ga=e),e}function Jn(e,t){for(;null!==e;){if((0===e.expirationTime||e.expirationTime>t)&&(e.expirationTime=t),null!==e.alternate&&(0===e.alternate.expirationTime||e.alternate.expirationTime>t)&&(e.alternate.expirationTime=t),null===e.return){if(3!==e.tag)break;var n=e.stateNode;!ta&&0!==oa&&t<oa&&$n();var o=n.current.expirationTime;ta&&!ua&&ra===n||or(n,o),Pa>Sa&&r("185")}e=e.return}}function er(){return Zl=El()-Yl,Xl=2+(Zl/10|0)}function tr(e){var t=ea;ea=2+25*(1+((er()-2+500)/25|0));try{return e()}finally{ea=t}}function nr(e,t,n,r,o){var i=ea;ea=1;try{return e(t,n,r,o)}finally{ea=i}}function rr(e){if(0!==pa){if(e>pa)return;null!==ha&&Cl(ha)}var t=El()-Yl;pa=e,ha=_l(lr,{timeout:10*(e-2)-t})}function or(e,t){if(null===e.nextScheduledRoot)e.remainingExpirationTime=t,null===da?(fa=da=e,e.nextScheduledRoot=e):(da=da.nextScheduledRoot=e,da.nextScheduledRoot=fa);else{var n=e.remainingExpirationTime;(0===n||t<n)&&(e.remainingExpirationTime=t)}ma||(_a?Ca&&(ya=e,va=1,fr(e,1,!1)):1===t?ar():rr(t))}function ir(){var e=0,t=null;if(null!==da)for(var n=da,o=fa;null!==o;){var i=o.remainingExpirationTime;if(0===i){if((null===n||null===da)&&r("244"),o===o.nextScheduledRoot){fa=da=o.nextScheduledRoot=null;break}if(o===fa)fa=i=o.nextScheduledRoot,da.nextScheduledRoot=i,o.nextScheduledRoot=null;else{if(o===da){da=n,da.nextScheduledRoot=fa,o.nextScheduledRoot=null;break}n.nextScheduledRoot=o.nextScheduledRoot,o.nextScheduledRoot=null}o=n.nextScheduledRoot}else{if((0===e||i<e)&&(e=i,t=o),o===da)break;n=o,o=o.nextScheduledRoot}}n=ya,null!==n&&n===t&&1===e?Pa++:Pa=0,ya=t,va=e}function lr(e){ur(0,!0,e)}function ar(){ur(1,!1,null)}function ur(e,t,n){if(Ea=n,ir(),t)for(;null!==ya&&0!==va&&(0===e||e>=va)&&(!ba||er()>=va);)er(),fr(ya,va,!ba),ir();else for(;null!==ya&&0!==va&&(0===e||e>=va);)fr(ya,va,!1),ir();null!==Ea&&(pa=0,ha=null),0!==va&&rr(va),Ea=null,ba=!1,sr()}function cr(e,t){ma&&r("253"),ya=e,va=t,fr(e,t,!1),ar(),sr()}function sr(){if(Pa=0,null!==Ta){var e=Ta;Ta=null;for(var t=0;t<e.length;t++){var n=e[t];try{n._onComplete()}catch(e){ka||(ka=!0,wa=e)}}}if(ka)throw e=wa,wa=null,ka=!1,e}function fr(e,t,n){ma&&r("245"),ma=!0,n?(n=e.finishedWork,null!==n?dr(e,n,t):null!==(n=Gn(e,t,!0))&&(pr()?e.finishedWork=n:dr(e,n,t))):(n=e.finishedWork,null!==n?dr(e,n,t):null!==(n=Gn(e,t,!1))&&dr(e,n,t)),ma=!1}function dr(e,t,n){var o=e.firstBatch;if(null!==o&&o._expirationTime<=n&&(null===Ta?Ta=[o]:Ta.push(o),o._defer))return e.finishedWork=t,void(e.remainingExpirationTime=0);if(e.finishedWork=null,ua=ta=!0,n=t.stateNode,n.current===t&&r("177"),o=n.pendingCommitExpirationTime,0===o&&r("261"),n.pendingCommitExpirationTime=0,er(),Ao.current=null,1<t.effectTag)if(null!==t.lastEffect){t.lastEffect.nextEffect=t;var i=t.firstEffect}else i=t;else i=t.firstEffect;kl=Fi;var l=zr();if(Ge(l)){if("selectionStart"in l)var a={start:l.selectionStart,end:l.selectionEnd};else e:{var u=window.getSelection&&window.getSelection();if(u&&0!==u.rangeCount){a=u.anchorNode;var c=u.anchorOffset,s=u.focusNode;u=u.focusOffset;try{a.nodeType,s.nodeType}catch(e){a=null;break e}var f=0,d=-1,p=-1,h=0,m=0,y=l,v=null;t:for(;;){for(var g;y!==a||0!==c&&3!==y.nodeType||(d=f+c),y!==s||0!==u&&3!==y.nodeType||(p=f+u),3===y.nodeType&&(f+=y.nodeValue.length),null!==(g=y.firstChild);)v=y,y=g;for(;;){if(y===l)break t;if(v===a&&++h===c&&(d=f),v===s&&++m===u&&(p=f),null!==(g=y.nextSibling))break;y=v,v=y.parentNode}y=g}a=-1===d||-1===p?null:{start:d,end:p}}else a=null}a=a||{start:0,end:0}}else a=null;for(wl={focusedElem:l,selectionRange:a},Be(!1),aa=i;null!==aa;){l=!1,a=void 0;try{for(;null!==aa;){if(256&aa.effectTag){var b=aa.alternate;switch(c=aa,c.tag){case 2:if(256&c.effectTag&&null!==b){var k=b.memoizedProps,w=b.memoizedState,E=c.stateNode;E.props=c.memoizedProps,E.state=c.memoizedState;var _=E.getSnapshotBeforeUpdate(k,w);E.__reactInternalSnapshotBeforeUpdate=_}break;case 3:case 5:case 6:case 4:break;default:r("163")}}aa=aa.nextEffect}}catch(e){l=!0,a=e}l&&(null===aa&&r("178"),Yn(aa,a),null!==aa&&(aa=aa.nextEffect))}for(aa=i;null!==aa;){b=!1,k=void 0;try{for(;null!==aa;){var C=aa.effectTag;if(16&C&&at(aa.stateNode,""),128&C){var x=aa.alternate;if(null!==x){var T=x.ref;null!==T&&("function"==typeof T?T(null):T.current=null)}}switch(14&C){case 2:zn(aa),aa.effectTag&=-3;break;case 6:zn(aa),aa.effectTag&=-3,Bn(aa.alternate,aa);break;case 4:Bn(aa.alternate,aa);break;case 8:w=aa,An(w),w.return=null,w.child=null,w.alternate&&(w.alternate.child=null,w.alternate.return=null)}aa=aa.nextEffect}}catch(e){b=!0,k=e}b&&(null===aa&&r("178"),Yn(aa,k),null!==aa&&(aa=aa.nextEffect))}if(T=wl,x=zr(),C=T.focusedElem,b=T.selectionRange,x!==C&&Br(document.documentElement,C)){null!==b&&Ge(C)&&(x=b.start,T=b.end,void 0===T&&(T=x),"selectionStart"in C?(C.selectionStart=x,C.selectionEnd=Math.min(T,C.value.length)):window.getSelection&&(x=window.getSelection(),k=C[L()].length,T=Math.min(b.start,k),b=void 0===b.end?T:Math.min(b.end,k),!x.extend&&T>b&&(k=b,b=T,T=k),k=qe(C,T),w=qe(C,b),k&&w&&(1!==x.rangeCount||x.anchorNode!==k.node||x.anchorOffset!==k.offset||x.focusNode!==w.node||x.focusOffset!==w.offset)&&(E=document.createRange(),E.setStart(k.node,k.offset),x.removeAllRanges(),T>b?(x.addRange(E),x.extend(w.node,w.offset)):(E.setEnd(w.node,w.offset),x.addRange(E))))),x=[];for(T=C;T=T.parentNode;)1===T.nodeType&&x.push({element:T,left:T.scrollLeft,top:T.scrollTop});for("function"==typeof C.focus&&C.focus(),C=0;C<x.length;C++)T=x[C],T.element.scrollLeft=T.left,T.element.scrollTop=T.top}for(wl=null,Be(kl),kl=null,n.current=t,aa=i;null!==aa;){i=!1,C=void 0;try{for(x=o;null!==aa;){var S=aa.effectTag;if(36&S){var P=aa.alternate;switch(T=aa,b=x,T.tag){case 2:var N=T.stateNode;if(4&T.effectTag)if(null===P)N.props=T.memoizedProps,N.state=T.memoizedState,N.componentDidMount();else{var O=P.memoizedProps,M=P.memoizedState;N.props=T.memoizedProps,N.state=T.memoizedState,N.componentDidUpdate(O,M,N.__reactInternalSnapshotBeforeUpdate)}var F=T.updateQueue;null!==F&&(N.props=T.memoizedProps,N.state=T.memoizedState,nn(T,F,N,b));break;case 3:var R=T.updateQueue;if(null!==R){if(k=null,null!==T.child)switch(T.child.tag){case 5:k=T.child.stateNode;break;case 2:k=T.child.stateNode}nn(T,R,k,b)}break;case 5:var U=T.stateNode;null===P&&4&T.effectTag&&bt(T.type,T.memoizedProps)&&U.focus();break;case 6:case 4:case 15:case 16:break;default:r("163")}}if(128&S){T=void 0;var I=aa.ref;if(null!==I){var j=aa.stateNode;switch(aa.tag){case 5:T=j;break;default:T=j}"function"==typeof I?I(T):I.current=T}}var D=aa.nextEffect;aa.nextEffect=null,aa=D}}catch(e){i=!0,C=e}i&&(null===aa&&r("178"),Yn(aa,C),null!==aa&&(aa=aa.nextEffect))}ta=ua=!1,"function"==typeof Wt&&Wt(t.stateNode),t=n.current.expirationTime,0===t&&(sa=null),e.remainingExpirationTime=t}function pr(){return!(null===Ea||Ea.timeRemaining()>Na)&&(ba=!0)}function hr(e){null===ya&&r("246"),ya.remainingExpirationTime=0,ka||(ka=!0,wa=e)}function mr(e){null===ya&&r("246"),ya.remainingExpirationTime=e}function yr(e,t){var n=_a;_a=!0;try{return e(t)}finally{(_a=n)||ma||ar()}}function vr(e,t){if(_a&&!Ca){Ca=!0;try{return e(t)}finally{Ca=!1}}return e(t)}function gr(e,t){ma&&r("187");var n=_a;_a=!0;try{return nr(e,t)}finally{_a=n,ar()}}function br(e,t,n){if(xa)return e(t,n);_a||ma||0===ga||(ur(ga,!1,null),ga=0);var r=xa,o=_a;_a=xa=!0;try{return e(t,n)}finally{xa=r,(_a=o)||ma||ar()}}function kr(e){var t=_a;_a=!0;try{nr(e)}finally{(_a=t)||ma||ur(1,!1,null)}}function wr(e,t,n,o,i){var l=t.current;if(n){n=n._reactInternalFiber;var a;e:{for(2===Le(n)&&2===n.tag||r("170"),a=n;3!==a.tag;){if(Pt(a)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}(a=a.return)||r("171")}a=a.stateNode.context}n=Pt(n)?Ft(n,a):a}else n=Hr;return null===t.context?t.context=n:t.pendingContext=n,t=i,i=qt(o),i.payload={element:e},t=void 0===t?null:t,null!==t&&(i.callback=t),Yt(l,i,o),Jn(l,o),o}function Er(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?r("188"):r("268",Object.keys(e))),e=Ie(t),null===e?null:e.stateNode}function _r(e,t,n,r){var o=t.current;return o=Zn(er(),o),wr(e,t,n,o,r)}function Cr(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function xr(e){var t=e.findFiberByHostInstance;return Vt(jr({},e,{findHostInstanceByFiber:function(e){return e=Ie(e),null===e?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}function Tr(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Vo,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Sr(e){this._expirationTime=Xn(),this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function Pr(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Nr(e,t,n){this._internalRoot=Bt(e,t,n)}function Or(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Mr(e,t){if(t||(t=e?9===e.nodeType?e.documentElement:e.firstChild:null,t=!(!t||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Nr(e,!1,t)}function Fr(e,t,n,o,i){Or(n)||r("200");var l=n._reactRootContainer;if(l){if("function"==typeof i){var a=i;i=function(){var e=Cr(l._internalRoot);a.call(e)}}null!=e?l.legacy_renderSubtreeIntoContainer(e,t,i):l.render(t,i)}else{if(l=n._reactRootContainer=Mr(n,o),"function"==typeof i){var u=i;i=function(){var e=Cr(l._internalRoot);u.call(e)}}vr(function(){null!=e?l.legacy_renderSubtreeIntoContainer(e,t,i):l.render(t,i)})}return Cr(l._internalRoot)}function Lr(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return Or(t)||r("200"),Tr(e,t,null,n)}/** @license React v16.4.2
|
15 |
* react-dom.production.min.js
|
16 |
*
|
17 |
-
* Copyright (c)
|
18 |
*
|
19 |
* This source code is licensed under the MIT license found in the
|
20 |
* LICENSE file in the root directory of this source tree.
|
21 |
*/
|
22 |
-
var Rr=n(2),Ur=n(0),Ir=n(9),jr=n(1),Dr=n(4),zr=n(10),Ar=n(11),Br=n(12),Hr=n(3);Ur||r("227");var Vr={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,invokeGuardedCallback:function(e,t,n,r,i,l,a,u,c){o.apply(Vr,arguments)},invokeGuardedCallbackAndCatchFirstError:function(e,t,n,r,o,i,l,a,u){if(Vr.invokeGuardedCallback.apply(this,arguments),Vr.hasCaughtError()){var c=Vr.clearCaughtError();Vr._hasRethrowError||(Vr._hasRethrowError=!0,Vr._rethrowError=c)}},rethrowCaughtError:function(){return i.apply(Vr,arguments)},hasCaughtError:function(){return Vr._hasCaughtError},clearCaughtError:function(){if(Vr._hasCaughtError){var e=Vr._caughtError;return Vr._caughtError=null,Vr._hasCaughtError=!1,e}r("198")}},Wr=null,Qr={},$r=[],Kr={},qr={},Gr={},Yr={plugins:$r,eventNameDispatchConfigs:Kr,registrationNameModules:qr,registrationNameDependencies:Gr,possibleRegistrationNames:null,injectEventPluginOrder:u,injectEventPluginsByName:c},Xr=null,Zr=null,Jr=null,eo=null,to={injectEventPluginOrder:u,injectEventPluginsByName:c},no={injection:to,getListener:y,runEventsInBatch:v,runExtractedEventsInBatch:g},ro=Math.random().toString(36).slice(2),oo="__reactInternalInstance$"+ro,io="__reactEventHandlers$"+ro,lo={precacheFiberNode:function(e,t){t[oo]=e},getClosestInstanceFromNode:b,getInstanceFromNode:function(e){return e=e[oo],!e||5!==e.tag&&6!==e.tag?null:e},getNodeFromInstance:k,getFiberCurrentPropsFromNode:w,updateFiberProps:function(e,t){e[io]=t}},ao={accumulateTwoPhaseDispatches:N,accumulateTwoPhaseDispatchesSkipTarget:function(e){d(e,T)},accumulateEnterLeaveDispatches:O,accumulateDirectDispatches:function(e){d(e,P)}},uo={animationend:M("Animation","AnimationEnd"),animationiteration:M("Animation","AnimationIteration"),animationstart:M("Animation","AnimationStart"),transitionend:M("Transition","TransitionEnd")},co={},so={};Ir.canUseDOM&&(so=document.createElement("div").style,"AnimationEvent"in window||(delete uo.animationend.animation,delete uo.animationiteration.animation,delete uo.animationstart.animation),"TransitionEvent"in window||delete uo.transitionend.transition);var fo=F("animationend"),po=F("animationiteration"),ho=F("animationstart"),mo=F("transitionend"),yo="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),vo=null,go={_root:null,_startText:null,_fallbackText:null},bo="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),ko={type:null,target:null,currentTarget:Dr.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};jr(I.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Dr.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Dr.thatReturnsTrue)},persist:function(){this.isPersistent=Dr.thatReturnsTrue},isPersistent:Dr.thatReturnsFalse,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;for(t=0;t<bo.length;t++)this[bo[t]]=null}}),I.Interface=ko,I.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return jr(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=jr({},r.Interface,e),n.extend=r.extend,z(n),n},z(I);var wo=I.extend({data:null}),Eo=I.extend({data:null}),_o=[9,13,27,32],Co=Ir.canUseDOM&&"CompositionEvent"in window,xo=null;Ir.canUseDOM&&"documentMode"in document&&(xo=document.documentMode);var To=Ir.canUseDOM&&"TextEvent"in window&&!xo,So=Ir.canUseDOM&&(!Co||xo&&8<xo&&11>=xo),Po=String.fromCharCode(32),No={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Oo=!1,Mo=!1,Fo={eventTypes:No,extractEvents:function(e,t,n,r){var o=void 0,i=void 0;if(Co)e:{switch(e){case"compositionstart":o=No.compositionStart;break e;case"compositionend":o=No.compositionEnd;break e;case"compositionupdate":o=No.compositionUpdate;break e}o=void 0}else Mo?A(e,n)&&(o=No.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=No.compositionStart);return o?(So&&(Mo||o!==No.compositionStart?o===No.compositionEnd&&Mo&&(i=R()):(go._root=r,go._startText=U(),Mo=!0)),o=wo.getPooled(o,t,n,r),i?o.data=i:null!==(i=B(n))&&(o.data=i),N(o),i=o):i=null,(e=To?H(e,n):V(e,n))?(t=Eo.getPooled(No.beforeInput,t,n,r),t.data=e,N(t)):t=null,null===i?t:null===t?i:[i,t]}},Lo=null,Ro={injectFiberControlledHostComponent:function(e){Lo=e}},Uo=null,Io=null,jo={injection:Ro,enqueueStateRestore:Q,needsStateRestore:$,restoreStateIfNeeded:K},Do=!1,zo={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Ao=Ur.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Bo="function"==typeof Symbol&&Symbol.for,Ho=Bo?Symbol.for("react.element"):60103,Vo=Bo?Symbol.for("react.portal"):60106,Wo=Bo?Symbol.for("react.fragment"):60107,Qo=Bo?Symbol.for("react.strict_mode"):60108,$o=Bo?Symbol.for("react.profiler"):60114,Ko=Bo?Symbol.for("react.provider"):60109,qo=Bo?Symbol.for("react.context"):60110,Go=Bo?Symbol.for("react.async_mode"):60111,Yo=Bo?Symbol.for("react.forward_ref"):60112,Xo=Bo?Symbol.for("react.timeout"):60113,Zo="function"==typeof Symbol&&Symbol.iterator,Jo=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ei=Object.prototype.hasOwnProperty,ti={},ni={},ri={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ri[e]=new fe(e,0,!1,e,null)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ri[t]=new fe(t,1,!1,e[1],null)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){ri[e]=new fe(e,2,!1,e.toLowerCase(),null)}),["autoReverse","externalResourcesRequired","preserveAlpha"].forEach(function(e){ri[e]=new fe(e,2,!1,e,null)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ri[e]=new fe(e,3,!1,e.toLowerCase(),null)}),["checked","multiple","muted","selected"].forEach(function(e){ri[e]=new fe(e,3,!0,e.toLowerCase(),null)}),["capture","download"].forEach(function(e){ri[e]=new fe(e,4,!1,e.toLowerCase(),null)}),["cols","rows","size","span"].forEach(function(e){ri[e]=new fe(e,6,!1,e.toLowerCase(),null)}),["rowSpan","start"].forEach(function(e){ri[e]=new fe(e,5,!1,e.toLowerCase(),null)});var oi=/[\-:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(oi,de);ri[t]=new fe(t,1,!1,e,null)}),"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(oi,de);ri[t]=new fe(t,1,!1,e,"http://www.w3.org/1999/xlink")}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(oi,de);ri[t]=new fe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace")}),ri.tabIndex=new fe("tabIndex",1,!1,"tabindex",null);var ii={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},li=null,ai=null,ui=!1;Ir.canUseDOM&&(ui=ee("input")&&(!document.documentMode||9<document.documentMode));var ci={eventTypes:ii,_isInputEventSupported:ui,extractEvents:function(e,t,n,r){var o=t?k(t):window,i=void 0,l=void 0,a=o.nodeName&&o.nodeName.toLowerCase();if("select"===a||"input"===a&&"file"===o.type?i=Ce:Z(o)?ui?i=Oe:(i=Pe,l=Se):(a=o.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===o.type||"radio"===o.type)&&(i=Ne),i&&(i=i(e,t)))return we(i,n,r);l&&l(e,o,t),"blur"===e&&(e=o._wrapperState)&&e.controlled&&"number"===o.type&&be(o,"number",o.value)}},si=I.extend({view:null,detail:null}),fi={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},di=si.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Fe,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)}}),pi=di.extend({pointerId:null,width:null,height:null,pressure:null,tiltX:null,tiltY:null,pointerType:null,isPrimary:null}),hi={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},mi={eventTypes:hi,extractEvents:function(e,t,n,r){var o="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(o&&(n.relatedTarget||n.fromElement)||!i&&!o)return null;if(o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window,i?(i=t,t=(t=n.relatedTarget||n.toElement)?b(t):null):i=null,i===t)return null;var l=void 0,a=void 0,u=void 0,c=void 0;return"mouseout"===e||"mouseover"===e?(l=di,a=hi.mouseLeave,u=hi.mouseEnter,c="mouse"):"pointerout"!==e&&"pointerover"!==e||(l=pi,a=hi.pointerLeave,u=hi.pointerEnter,c="pointer"),e=null==i?o:k(i),o=null==t?o:k(t),a=l.getPooled(a,i,n,r),a.type=c+"leave",a.target=e,a.relatedTarget=o,n=l.getPooled(u,t,n,r),n.type=c+"enter",n.target=o,n.relatedTarget=e,O(a,n,i,t),[a,n]}},yi=I.extend({animationName:null,elapsedTime:null,pseudoElement:null}),vi=I.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),gi=si.extend({relatedTarget:null}),bi={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},ki={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},wi=si.extend({key:function(e){if(e.key){var t=bi[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?(e=De(e),13===e?"Enter":String.fromCharCode(e)):"keydown"===e.type||"keyup"===e.type?ki[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Fe,charCode:function(e){return"keypress"===e.type?De(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?De(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ei=di.extend({dataTransfer:null}),_i=si.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Fe}),Ci=I.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),xi=di.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),Ti=[["abort","abort"],[fo,"animationEnd"],[po,"animationIteration"],[ho,"animationStart"],["canplay","canPlay"],["canplaythrough","canPlayThrough"],["drag","drag"],["dragenter","dragEnter"],["dragexit","dragExit"],["dragleave","dragLeave"],["dragover","dragOver"],["durationchange","durationChange"],["emptied","emptied"],["encrypted","encrypted"],["ended","ended"],["error","error"],["gotpointercapture","gotPointerCapture"],["load","load"],["loadeddata","loadedData"],["loadedmetadata","loadedMetadata"],["loadstart","loadStart"],["lostpointercapture","lostPointerCapture"],["mousemove","mouseMove"],["mouseout","mouseOut"],["mouseover","mouseOver"],["playing","playing"],["pointermove","pointerMove"],["pointerout","pointerOut"],["pointerover","pointerOver"],["progress","progress"],["scroll","scroll"],["seeking","seeking"],["stalled","stalled"],["suspend","suspend"],["timeupdate","timeUpdate"],["toggle","toggle"],["touchmove","touchMove"],[mo,"transitionEnd"],["waiting","waiting"],["wheel","wheel"]],Si={},Pi={};[["blur","blur"],["cancel","cancel"],["click","click"],["close","close"],["contextmenu","contextMenu"],["copy","copy"],["cut","cut"],["dblclick","doubleClick"],["dragend","dragEnd"],["dragstart","dragStart"],["drop","drop"],["focus","focus"],["input","input"],["invalid","invalid"],["keydown","keyDown"],["keypress","keyPress"],["keyup","keyUp"],["mousedown","mouseDown"],["mouseup","mouseUp"],["paste","paste"],["pause","pause"],["play","play"],["pointercancel","pointerCancel"],["pointerdown","pointerDown"],["pointerup","pointerUp"],["ratechange","rateChange"],["reset","reset"],["seeked","seeked"],["submit","submit"],["touchcancel","touchCancel"],["touchend","touchEnd"],["touchstart","touchStart"],["volumechange","volumeChange"]].forEach(function(e){ze(e,!0)}),Ti.forEach(function(e){ze(e,!1)});var Ni={eventTypes:Si,isInteractiveTopLevelEventType:function(e){return void 0!==(e=Pi[e])&&!0===e.isInteractive},extractEvents:function(e,t,n,r){var o=Pi[e];if(!o)return null;switch(e){case"keypress":if(0===De(n))return null;case"keydown":case"keyup":e=wi;break;case"blur":case"focus":e=gi;break;case"click":if(2===n.button)return null;case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=di;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=Ei;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=_i;break;case fo:case po:case ho:e=yi;break;case mo:e=Ci;break;case"scroll":e=si;break;case"wheel":e=xi;break;case"copy":case"cut":case"paste":e=vi;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=pi;break;default:e=I}return t=e.getPooled(o,t,n,r),N(t),t}},Oi=Ni.isInteractiveTopLevelEventType,Mi=[],Fi=!0,Li={get _enabled(){return Fi},setEnabled:Be,isEnabled:function(){return Fi},trapBubbledEvent:He,trapCapturedEvent:Ve,dispatchEvent:Qe},Ri={},Ui=0,Ii="_reactListenersID"+(""+Math.random()).slice(2),ji=Ir.canUseDOM&&"documentMode"in document&&11>=document.documentMode,Di={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu focus keydown keyup mousedown mouseup selectionchange".split(" ")}},zi=null,Ai=null,Bi=null,Hi=!1,Vi={eventTypes:Di,extractEvents:function(e,t,n,r){var o,i=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!i)){e:{i=$e(i),o=Gr.onSelect;for(var l=0;l<o.length;l++){var a=o[l];if(!i.hasOwnProperty(a)||!i[a]){i=!1;break e}}i=!0}o=!i}if(o)return null;switch(i=t?k(t):window,e){case"focus":(Z(i)||"true"===i.contentEditable)&&(zi=i,Ai=t,Bi=null);break;case"blur":Bi=Ai=zi=null;break;case"mousedown":Hi=!0;break;case"contextmenu":case"mouseup":return Hi=!1,Ye(n,r);case"selectionchange":if(ji)break;case"keydown":case"keyup":return Ye(n,r)}return null}};to.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),Xr=lo.getFiberCurrentPropsFromNode,Zr=lo.getInstanceFromNode,Jr=lo.getNodeFromInstance,to.injectEventPluginsByName({SimpleEventPlugin:Ni,EnterLeaveEventPlugin:mi,ChangeEventPlugin:ci,SelectEventPlugin:Vi,BeforeInputEventPlugin:Fo});var Wi="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,Qi=Date,$i=setTimeout,Ki=clearTimeout,qi=void 0;if("object"==typeof performance&&"function"==typeof performance.now){var Gi=performance;qi=function(){return Gi.now()}}else qi=function(){return Qi.now()};var Yi=void 0,Xi=void 0;if(Ir.canUseDOM){var Zi="function"==typeof Wi?Wi:function(){r("276")},Ji=null,el=null,tl=-1,nl=!1,rl=!1,ol=0,il=33,ll=33,al={didTimeout:!1,timeRemaining:function(){var e=ol-qi();return 0<e?e:0}},ul=function(e,t){var n=e.scheduledCallback,r=!1;try{n(t),r=!0}finally{Xi(e),r||(nl=!0,window.postMessage(cl,"*"))}},cl="__reactIdleCallback$"+Math.random().toString(36).slice(2);window.addEventListener("message",function(e){if(e.source===window&&e.data===cl&&(nl=!1,null!==Ji)){if(null!==Ji){var t=qi();if(!(-1===tl||tl>t)){e=-1;for(var n=[],r=Ji;null!==r;){var o=r.timeoutTime;-1!==o&&o<=t?n.push(r):-1!==o&&(-1===e||o<e)&&(e=o),r=r.next}if(0<n.length)for(al.didTimeout=!0,t=0,r=n.length;t<r;t++)ul(n[t],al);tl=e}}for(e=qi();0<ol-e&&null!==Ji;)e=Ji,al.didTimeout=!1,ul(e,al),e=qi();null===Ji||rl||(rl=!0,Zi(sl))}},!1);var sl=function(e){rl=!1;var t=e-ol+ll;t<ll&&il<ll?(8>t&&(t=8),ll=t<il?il:t):il=t,ol=e+ll,nl||(nl=!0,window.postMessage(cl,"*"))};Yi=function(e,t){var n=-1;return null!=t&&"number"==typeof t.timeout&&(n=qi()+t.timeout),(-1===tl||-1!==n&&n<tl)&&(tl=n),e={scheduledCallback:e,timeoutTime:n,prev:null,next:null},null===Ji?Ji=e:null!==(t=e.prev=el)&&(t.next=e),el=e,rl||(rl=!0,Zi(sl)),e},Xi=function(e){if(null!==e.prev||Ji===e){var t=e.next,n=e.prev;e.next=null,e.prev=null,null!==t?null!==n?(n.next=t,t.prev=n):(t.prev=null,Ji=t):null!==n?(n.next=null,el=n):el=Ji=null}}}else{var fl=new Map;Yi=function(e){var t={scheduledCallback:e,timeoutTime:0,next:null,prev:null},n=$i(function(){e({timeRemaining:function(){return 1/0},didTimeout:!1})});return fl.set(e,n),t},Xi=function(e){var t=fl.get(e.scheduledCallback);fl.delete(e),Ki(t)}}var dl={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},pl=void 0,hl=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n)})}:e}(function(e,t){if(e.namespaceURI!==dl.svg||"innerHTML"in e)e.innerHTML=t;else{for(pl=pl||document.createElement("div"),pl.innerHTML="<svg>"+t+"</svg>",t=pl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),ml={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},yl=["Webkit","ms","Moz","O"];Object.keys(ml).forEach(function(e){yl.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ml[t]=ml[e]})});var vl=jr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),gl=Dr.thatReturns(""),bl={createElement:dt,createTextNode:pt,setInitialProperties:ht,diffProperties:mt,updateProperties:yt,diffHydratedProperties:vt,diffHydratedText:gt,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(e,t,n){switch(t){case"input":if(ve(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var o=n[t];if(o!==e&&o.form===e.form){var i=w(o);i||r("90"),oe(o),ve(o,i)}}}break;case"textarea":rt(e,n);break;case"select":null!=(t=n.value)&&Je(e,!!n.multiple,t,!1)}}},kl=null,wl=null,El=qi,_l=Yi,Cl=Xi;new Set;var xl=[],Tl=-1,Sl=_t(Hr),Pl=_t(!1),Nl=Hr,Ol=null,Ml=null,Fl=!1,Ll=_t(null),Rl=_t(null),Ul=_t(0),Il={},jl=_t(Il),Dl=_t(Il),zl=_t(Il),Al={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===Le(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=er();r=Zn(r,e);var o=qt(r);o.payload=t,void 0!==n&&null!==n&&(o.callback=n),Yt(e,o,r),Jn(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=er();r=Zn(r,e);var o=qt(r);o.tag=1,o.payload=t,void 0!==n&&null!==n&&(o.callback=n),Yt(e,o,r),Jn(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=er();n=Zn(n,e);var r=qt(n);r.tag=2,void 0!==t&&null!==t&&(r.callback=t),Yt(e,r,n),Jn(e,n)}},Bl=Array.isArray,Hl=vn(!0),Vl=vn(!1),Wl=null,Ql=null,$l=!1,Kl=void 0,ql=void 0,Gl=void 0;Kl=function(){},ql=function(e,t,n){(t.updateQueue=n)&&Ln(t)},Gl=function(e,t,n,r){n!==r&&Ln(t)};var Yl=El(),Xl=2,Zl=Yl,Jl=0,ea=0,ta=!1,na=null,ra=null,oa=0,ia=-1,la=!1,aa=null,ua=!1,ca=!1,sa=null,fa=null,da=null,pa=0,ha=void 0,ma=!1,ya=null,va=0,ga=0,ba=!1,ka=!1,wa=null,Ea=null,_a=!1,Ca=!1,xa=!1,Ta=null,Sa=1e3,Pa=0,Na=1,Oa={updateContainerAtExpirationTime:wr,createContainer:function(e,t,n){return Bt(e,t,n)},updateContainer:_r,flushRoot:cr,requestWork:or,computeUniqueAsyncExpiration:Xn,batchedUpdates:yr,unbatchedUpdates:vr,deferredUpdates:tr,syncUpdates:nr,interactiveUpdates:br,flushInteractiveUpdates:function(){ma||0===ga||(ur(ga,!1,null),ga=0)},flushControlled:kr,flushSync:gr,getPublicRootInstance:Cr,findHostInstance:Er,findHostInstanceWithNoPortals:function(e){return e=je(e),null===e?null:e.stateNode},injectIntoDevTools:xr};Ro.injectFiberControlledHostComponent(bl),Sr.prototype.render=function(e){this._defer||r("250"),this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,o=new Pr;return wr(e,t,null,n,o._onCommit),o},Sr.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Sr.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(this._defer&&null!==t||r("251"),this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var o=null,i=t;i!==this;)o=i,i=i._next;null===o&&r("251"),o._next=i._next,this._next=t,e.firstBatch=this}this._defer=!1,cr(e,n),t=this._next,this._next=null,t=e.firstBatch=t,null!==t&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},Sr.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},Pr.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Pr.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];"function"!=typeof n&&r("191",n),n()}}},Nr.prototype.render=function(e,t){var n=this._internalRoot,r=new Pr;return t=void 0===t?null:t,null!==t&&r.then(t),_r(e,n,null,r._onCommit),r},Nr.prototype.unmount=function(e){var t=this._internalRoot,n=new Pr;return e=void 0===e?null:e,null!==e&&n.then(e),_r(null,t,null,n._onCommit),n},Nr.prototype.legacy_renderSubtreeIntoContainer=function(e,t,n){var r=this._internalRoot,o=new Pr;return n=void 0===n?null:n,null!==n&&o.then(n),_r(t,r,e,o._onCommit),o},Nr.prototype.createBatch=function(){var e=new Sr(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime<=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},q=Oa.batchedUpdates,G=Oa.interactiveUpdates,Y=Oa.flushInteractiveUpdates;var Ma={createPortal:Lr,findDOMNode:function(e){return null==e?null:1===e.nodeType?e:Er(e)},hydrate:function(e,t,n){return Fr(null,e,t,!0,n)},render:function(e,t,n){return Fr(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,o){return(null==e||void 0===e._reactInternalFiber)&&r("38"),Fr(e,t,n,!1,o)},unmountComponentAtNode:function(e){return Or(e)||r("40"),!!e._reactRootContainer&&(vr(function(){Fr(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return Lr.apply(void 0,arguments)},unstable_batchedUpdates:yr,unstable_deferredUpdates:tr,unstable_interactiveUpdates:br,flushSync:gr,unstable_flushControlled:kr,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:no,EventPluginRegistry:Yr,EventPropagators:ao,ReactControlledComponent:jo,ReactDOMComponentTree:lo,ReactDOMEventListener:Li},unstable_createRoot:function(e,t){return new Nr(e,!0,null!=t&&!0===t.hydrate)}};xr({findFiberByHostInstance:b,bundleType:0,version:"16.4.2",rendererPackageName:"react-dom"});var Fa={default:Ma},La=Fa&&Ma||Fa;e.exports=La.default?La.default:La},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";function r(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=r},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var l=0;l<n.length;l++)if(!i.call(t,n[l])||!r(e[n[l]],t[n[l]]))return!1;return!0}var i=Object.prototype.hasOwnProperty;e.exports=o},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(13);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(14);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(a),c=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={hasError:!1},n}return i(t,e),l(t,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0}),console.log("Builder UI Error:",e,t)}},{key:"render",value:function(){return this.state.hasError,this.props.children}}]),t}(u.default.Component);t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),c=r(u),s=n(17),f=r(s),d=n(19),p=n(21),h=function(e){function t(){return o(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),a(t,[{key:"render",value:function(){return c.default.createElement(u.Fragment,null,c.default.createElement(f.default,null),c.default.createElement(d.NotificationsManager,null),c.default.createElement(p.SVGSymbols,null))}}]),t}(u.Component);t.default=h},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0);n(18);var u=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i=n.props.postId;return n.layoutClass=".fl-builder-content-"+(i||FLBuilderConfig.postId),n}return i(t,e),l(t,[{key:"componentDidMount",value:function(){this.setupHooks=this.setupHooks.bind(this),this.hooked=!1,jQuery(document).on("tinymce-editor-init",this.setupHooks),this.setupHooks()}},{key:"setupHooks",value:function(){if(window.tinymce&&!this.hooked&&FLBuilderConfig.inlineEnabled){var e=this.initEditables.bind(this),t=this.refreshEditables.bind(this),n=(this.destroyEditables.bind(this),this.destroyAllEditables.bind(this)),r=this.destroyLoadingEditables.bind(this);FLBuilder&&(FLBuilder.addHook("settingsConfigLoaded",e),FLBuilder.addHook("restartEditingSession",e),FLBuilder.addHook("endEditingSession",n),FLBuilder.addHook("didStartNodeLoading",r),FLBuilder.addHook("didRenderLayoutComplete",t),FLBuilder.addHook("didDeleteRow",t),FLBuilder.addHook("didDeleteColumn",t),FLBuilder.addHook("didDeleteModule",t)),this.initEditables(),this.hooked=!0}}},{key:"initEditables",value:function(){var e=this,t=FLBuilderSettingsConfig,n=t.editables,r=jQuery(this.layoutClass);if(r.length)for(var o in n){var i='.fl-module[data-type="'+o+'"]:not(.fl-editable):not(.fl-node-global)';r.find(i).each(function(t,n){n=jQuery(n),n.addClass("fl-editable"),n.delegate(".fl-block-overlay","click.fl-inline-editing-init",function(t){return e.initEditable(t,n)})})}}},{key:"initEditable",value:function(e,t){var n=this,r=FLBuilder,o=r.preview;if(o){if(t.parents(".fl-node-"+o.nodeId).length&&o._settingsHaveChanged())return}this.setupEditable(t,function(){n.onModuleOverlayClick(e)}),t.undelegate(".fl-block-overlay","click.fl-inline-editing-init")}},{key:"setupEditable",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},r=e.data("node"),o=FLBuilderSettingsConfig.nodes[r];if(void 0===o)return!1;var i=e.data("type"),l=FLBuilderSettingsConfig.editables[i],a=".fl-node-"+r+" ",u="fl-inline-editor-"+r,c=jQuery('<div id="'+u+'" class="fl-inline-editor"></div>'),s=jQuery(".fl-builder-settings[data-node="+r+"]"),f=o.connections;e.append(c),e.delegate(".fl-block-overlay","click",this.onModuleOverlayClick.bind(this)),e.on("mouseleave",this.onModuleMouseleave.bind(this));for(var d in l){(function(e){var r=l[e],o=FLBuilderPreview.getFormattedSelector(a,r.selector),i=jQuery(o),c=i.html(),d=s.find("#fl-field-"+e+" .fl-field-connection-value");i.length&&(d.length&&""!==d.val()||(!d.length&&f&&f[e]||(i.hasClass("mce-content-body")?tinymce.execCommand("mceRemoveEditor",!0,i.attr("id")):(i.data("field",r.field),i.on("drop",t.onEditorDrop.bind(t))),tinymce.init({selector:o,inline:!0,menubar:!1,paste_as_text:!0,relative_urls:!1,skin:!FLBuilder&&"lightgray",skin_url:!FLBuilder&&tinyMCEPreInit.baseURL+"/skins/lightgray/",theme:"modern",theme_url:tinyMCEPreInit.baseURL+"/themes/modern/",fixed_toolbar_container:"#"+u,plugins:t.getEditorPluginConfig(r.field.type),toolbar:"string"==typeof r.field.toolbar?r.field.toolbar:t.getEditorToolbarConfig(r.field.type),init_instance_callback:function(e){t.onEditorInit(e),i.html(c),n()}}))))})(d)}}},{key:"getEditorPluginConfig",value:function(e){switch(e){case"editor":return"wordpress, wplink, lists, paste";default:return"paste"}}},{key:"getEditorToolbarConfig",value:function(e){switch(e){case"editor":return"bold italic strikethrough link underline | alignleft aligncenter alignright";case"unit":return!1;default:return"bold italic strikethrough underline"}}},{key:"destroyEditables",value:function(e){var t=e.find(".mce-content-body"),n=e.find(".fl-inline-editor"),r=jQuery(".wplink-autocomplete, .ui-helper-hidden-accessible");t.removeAttr("contenteditable"),e.undelegate(".fl-block-overlay","click"),e.off("mouseleave"),e.removeClass("fl-editable"),n.remove(),r.remove()}},{key:"destroyAllEditables",value:function(){var e=jQuery(this.layoutClass),t=e.find(".fl-editable");this.destroyEditables(t)}},{key:"destroyLoadingEditables",value:function(e,t){var n=jQuery(t);n.hasClass("fl-module")||(n=n.find(".fl-module")),this.destroyEditables(n)}},{key:"refreshEditables",value:function(){this.initEditables(),tinymce.editors.map(function(e,t){e.inline&&!jQuery("#"+e.id).length&&setTimeout(function(){return tinymce.execCommand("mceRemoveEditor",!0,e.id)},1)})}},{key:"getEditorEventVars",value:function(e){var t=jQuery(e).closest(".mce-content-body"),n=tinymce.get(t.attr("id")),r=t.data("field"),o=t.closest(".fl-module");return{editable:t,module:o,editor:n,field:r,nodeId:o.data("node")}}},{key:"onEditorInit",value:function(e){e.on("change",this.onEditorChange.bind(this)),e.on("keyup",this.onEditorChange.bind(this)),e.on("undo",this.onEditorChange.bind(this)),e.on("redo",this.onEditorChange.bind(this)),e.on("focus",this.onEditorFocus.bind(this)),e.on("blur",this.onEditorBlur.bind(this)),e.on("mousedown",this.onEditorMousedown.bind(this))}},{key:"onEditorChange",value:function(e){var t=e.target.bodyElement?e.target.bodyElement:e.target,n=this.getEditorEventVars(t),r=(n.editable,n.editor),o=n.field,i=n.nodeId,l=jQuery('.fl-builder-settings[data-node="'+i+'"]'),a=r.getContent();if(l.length)if("editor"===o.type){var u=l.find("#fl-field-"+o.name+" textarea.wp-editor-area"),c=u.attr("id");u.closest(".tmce-active").length?tinymce.get(c).setContent(this.fixURLs(a)):u.val(this.fixURLs(a))}else{var s=document.createElement("textarea");s.innerHTML=a,l.find('[name="'+o.name+'"]').val(s.value)}}},{key:"onEditorFocus",value:function(e){var t=this.getEditorEventVars(e.target.bodyElement),n=t.editable,r=t.editor,o=t.module,i=t.field,l=t.nodeId,a=o.find(".fl-inline-editor"),u=this.getSettingHTML(l,i);this.matchHTML(r.getContent(),u)||(n.data("original",{settingHTML:u,editableHTML:n.html()}),n.css("min-height",n.height()),r.setContent(u),r.selection.select(r.getBody(),!0),r.selection.collapse(!1)),r.settings.toolbar?a.removeClass("fl-inline-editor-no-toolbar"):a.addClass("fl-inline-editor-no-toolbar"),o.addClass("fl-editable-focused"),this.showEditorOverlay(o),this.showModuleSettings(o)}},{key:"onEditorBlur",value:function(e){var t=this.getEditorEventVars(e.target.bodyElement),n=t.editable,r=t.editor,o=t.module,i=o.find(".fl-inline-editor"),l=n.data("original");i.removeClass("fl-inline-editor-no-toolbar"),o.removeClass("fl-editable-focused"),l&&this.matchHTML(r.getContent(),l.settingHTML)&&(n.html(l.editableHTML),n.css("min-height",""))}},{key:"onEditorMousedown",value:function(e){var t=this.getEditorEventVars(e.target),n=t.module;this.showEditorOverlay(n)}},{key:"onEditorDrop",value:function(e){return e.preventDefault(),!1}},{key:"onModuleOverlayClick",value:function(e){var t=jQuery(e.target).closest(".fl-block-overlay-actions"),n=jQuery(e.currentTarget).closest(".fl-module"),r=n.find(".mce-content-body").first().attr("id");t.length||FLBuilder._colResizing||r&&(tinymce.get(r).focus(),n.addClass("fl-editable-focused"))}},{key:"onModuleMouseleave",value:function(e){jQuery(".mce-inline-toolbar-grp:visible, .mce-floatpanel:visible").length||(this.hideEditorOverlays(),this.showNodeOverlays())}},{key:"showEditorOverlay",value:function(e){var t=e.find(".fl-inline-editor");this.hideNodeOverlays(),this.hideEditorOverlays(),t.show(),jQuery(".fl-inline-editor-active-toolbar").removeClass("fl-inline-editor-active-toolbar"),t.find("> .mce-panel:visible").addClass("fl-inline-editor-active-toolbar")}},{key:"hideEditorOverlays",value:function(){jQuery(".fl-inline-editor, .mce-floatpanel").hide()}},{key:"showNodeOverlays",value:function(){jQuery(".fl-block-overlay").show()}},{key:"hideNodeOverlays",value:function(){jQuery(".fl-block-overlay").hide()}},{key:"showModuleSettings",value:function(e){var t=e.data("type"),n=e.data("node"),r=e.closest(".fl-col").data("node"),o=e.hasClass("fl-node-global");jQuery('.fl-builder-settings[data-node="'+n+'"]').length||FLBuilder._showModuleSettings({type:t,nodeId:n,parentId:r,global:o})}},{key:"getSettingValue",value:function(e,t){var n=jQuery('.fl-builder-settings[data-node="'+e+'"]'),r={};return r=n.length?FLBuilder._getSettings(n):FLBuilderSettingsConfig.nodes[e],r[t]}},{key:"getSettingHTML",value:function(e,t){var n=this.getSettingValue(e,t.name);return"editor"===t.type&&""!==n?wp.editor.autop(n):n}},{key:"matchHTML",value:function(e,t){return this.cleanHTML(e)===this.cleanHTML(t)}},{key:"fixURLs",value:function(e){return e=e.replace(/href="[^http#]/g,'href="'+FLBuilderConfig.homeUrl+"/"),e=e.replace(/href="(\.\.\/){1,2}/g,'href="'+FLBuilderConfig.homeUrl+"/"),e=e.replace(/src="(\.\.\/){1,2}/g,'src="'+FLBuilderConfig.homeUrl+"/"),e=e.replace(/src="[^http]/g,'src="'+FLBuilderConfig.homeUrl+"/")}},{key:"cleanHTML",value:function(e){var t=/(\r\n|\n|\r)/gm;return jQuery("<div>"+e+"</div>").html().trim().replace(t,"")}},{key:"render",value:function(){return null}}]),t}(a.Component);t.default=u},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationsManager=void 0;var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(a);n(20);var c=function(e){return u.default.createElement("div",{dangerouslySetInnerHTML:{__html:e}})},s=FLBuilderConfig.lite,f=function(e){var t={__html:e.children},n=new Date(e.date).toDateString(),r=void 0;if("string"==typeof e.url&&""!==e.url){var o=s?e.url+"?utm_medium=bb-lite&utm_source=builder-ui&utm_campaign=notification-center":e.url+"?utm_medium=bb-pro&utm_source=builder-ui&utm_campaign=notification-center";r=u.default.createElement("a",{className:"fl-builder-ui-post",href:o,target:"_blank",rel:"noopener"},u.default.createElement("div",{className:"fl-builder-ui-post-date"},n),u.default.createElement("div",{className:"fl-builder-ui-post-title"},e.title),u.default.createElement("div",{className:"fl-builder-ui-post-content",dangerouslySetInnerHTML:t}))}else r=u.default.createElement("span",{className:"fl-builder-ui-post"},u.default.createElement("div",{className:"fl-builder-ui-post-date"},n),u.default.createElement("div",{className:"fl-builder-ui-post-title"},e.title),u.default.createElement("div",{className:"fl-builder-ui-post-content",dangerouslySetInnerHTML:t}));return r},d=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),l(t,[{key:"getPosts",value:function(e){var t=void 0,n=void 0,r=FLBuilderStrings.notifications;return e.length>0?(n=e.map(function(e){return u.default.createElement(f,{key:e.id,title:c(e.title.rendered),date:e.date,url:e.meta._fl_notification[0]},e.content.rendered)}),t=u.default.createElement(a.Fragment,null,n)):t=u.default.createElement("div",{className:"fl-panel-no-message"},r.none),t}},{key:"componentDidMount",value:function(){FLBuilder._initScrollbars()}},{key:"componentDidUpdate",value:function(){FLBuilder._initScrollbars()}},{key:"render",value:function(){var e=this.getPosts(this.props.posts),t=FLBuilderStrings.notifications;return u.default.createElement("div",{className:"fl-notifications-panel"},u.default.createElement("div",{className:"fl-panel-title"},t.title),u.default.createElement("div",{className:"fl-nanoscroller",ref:this.setupScroller},u.default.createElement("div",{className:"fl-nanoscroller-content"},e)))}}]),t}(a.Component);t.NotificationsManager=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i="",l=FLBuilderConfig.notifications,a=(l.read,l.data);try{i=JSON.parse(a)}catch(e){i={}}return n.state={shouldShowNotifications:!1,posts:i},FLBuilder.addHook("toggleNotifications",n.onToggleNotifications.bind(n)),n}return i(t,e),l(t,[{key:"onToggleNotifications",value:function(){this.setState({shouldShowNotifications:!this.state.shouldShowNotifications})}},{key:"render",value:function(){var e=this.state,t=e.shouldShowNotifications,n=e.posts;return FLBuilder.triggerHook("notificationsLoaded"),u.default.createElement(a.Fragment,null,t&&u.default.createElement(d,{posts:n}))}}]),t}(a.Component)},function(e,t){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SVGSymbols=void 0;var r=n(0),o=function(e){return e&&e.__esModule?e:{default:e}}(r);n(22);t.SVGSymbols=function(e){return o.default.createElement(r.Fragment,null,o.default.createElement("svg",{id:"fl-symbol-container",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},o.default.createElement("symbol",{id:"fl-down-caret",viewBox:"0 0 11 6"},o.default.createElement("polygon",{points:"0 0 2.05697559 0 5.49235478 3.74058411 8.93443824 0 11 0 5.5 6"}))))}},function(e,t){},function(e,t){}]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!function(e){function t(r){if(n[r])return n[r].exports;var l=n[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,t),l.l=!0,l.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,n){"use strict";e.exports=n(3)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}/*
|
2 |
object-assign
|
3 |
(c) Sindre Sorhus
|
4 |
@license MIT
|
5 |
*/
|
6 |
+
var l=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,u=r(e),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var s in n)i.call(n,s)&&(u[s]=n[s]);if(l){a=l(n);for(var f=0;f<a.length;f++)o.call(n,a[f])&&(u[a[f]]=n[a[f]])}}return u}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var l=n(0),i=r(l),o=n(4),a=r(o),u=n(9),c=r(u),s=n(10),f=r(s);n(17),a.default.render(i.default.createElement(c.default,null,i.default.createElement(f.default,null)),document.getElementById("fl-ui-root"))},function(e,t,n){"use strict";function r(e,t,n,r,l,i,o,a){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,l,i,o,a],c=0;e=Error(t.replace(/%s/g,function(){return u[c++]})),e.name="Invariant Violation"}throw e.framesToPop=1,e}}function l(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,l=0;l<t;l++)n+="&args[]="+encodeURIComponent(arguments[l+1]);r(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}function i(e,t,n){this.props=e,this.context=t,this.refs=D,this.updater=n||z}function o(){}function a(e,t,n){this.props=e,this.context=t,this.refs=D,this.updater=n||z}function u(e,t,n){var r=void 0,l={},i=null,o=null;if(null!=t)for(r in void 0!==t.ref&&(o=t.ref),void 0!==t.key&&(i=""+t.key),t)B.call(t,r)&&!H.hasOwnProperty(r)&&(l[r]=t[r]);var a=arguments.length-2;if(1===a)l.children=n;else if(1<a){for(var u=Array(a),c=0;c<a;c++)u[c]=arguments[c+2];l.children=u}if(e&&e.defaultProps)for(r in a=e.defaultProps)void 0===l[r]&&(l[r]=a[r]);return{$$typeof:E,type:e,key:i,ref:o,props:l,_owner:A.current}}function c(e,t){return{$$typeof:E,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function s(e){return"object"==typeof e&&null!==e&&e.$$typeof===E}function f(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function d(e,t,n,r){if(V.length){var l=V.pop();return l.result=e,l.keyPrefix=t,l.func=n,l.context=r,l.count=0,l}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function p(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>V.length&&V.push(e)}function m(e,t,n,r){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var o=!1;if(null===e)o=!0;else switch(i){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case E:case T:o=!0}}if(o)return n(r,e,""===t?"."+y(e,0):t),1;if(o=0,t=""===t?".":t+":",Array.isArray(e))for(var a=0;a<e.length;a++){i=e[a];var u=t+y(i,a);o+=m(i,u,n,r)}else if(null===e||"object"!=typeof e?u=null:(u=I&&e[I]||e["@@iterator"],u="function"==typeof u?u:null),"function"==typeof u)for(e=u.call(e),a=0;!(i=e.next()).done;)i=i.value,u=t+y(i,a++),o+=m(i,u,n,r);else"object"===i&&(n=""+e,l("31","[object Object]"===n?"object with keys {"+Object.keys(e).join(", ")+"}":n,""));return o}function h(e,t,n){return null==e?0:m(e,"",t,n)}function y(e,t){return"object"==typeof e&&null!==e&&null!=e.key?f(e.key):t.toString(36)}function v(e,t){e.func.call(e.context,t,e.count++)}function g(e,t,n){var r=e.result,l=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?b(e,r,n,function(e){return e}):null!=e&&(s(e)&&(e=c(e,l+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(W,"$&/")+"/")+n)),r.push(e))}function b(e,t,n,r,l){var i="";null!=n&&(i=(""+n).replace(W,"$&/")+"/"),t=d(t,i,r,l),h(e,g,t),p(t)}function k(){var e=j.current;return null===e&&l("321"),e}/** @license React v16.8.6
|
7 |
* react.production.min.js
|
8 |
*
|
9 |
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
10 |
*
|
11 |
* This source code is licensed under the MIT license found in the
|
12 |
* LICENSE file in the root directory of this source tree.
|
13 |
*/
|
14 |
+
var w=n(1),x="function"==typeof Symbol&&Symbol.for,E=x?Symbol.for("react.element"):60103,T=x?Symbol.for("react.portal"):60106,_=x?Symbol.for("react.fragment"):60107,C=x?Symbol.for("react.strict_mode"):60108,S=x?Symbol.for("react.profiler"):60114,P=x?Symbol.for("react.provider"):60109,N=x?Symbol.for("react.context"):60110,O=x?Symbol.for("react.concurrent_mode"):60111,M=x?Symbol.for("react.forward_ref"):60112,L=x?Symbol.for("react.suspense"):60113,F=x?Symbol.for("react.memo"):60115,R=x?Symbol.for("react.lazy"):60116,I="function"==typeof Symbol&&Symbol.iterator,z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D={};i.prototype.isReactComponent={},i.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&l("85"),this.updater.enqueueSetState(this,e,t,"setState")},i.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},o.prototype=i.prototype;var U=a.prototype=new o;U.constructor=a,w(U,i.prototype),U.isPureReactComponent=!0;var j={current:null},A={current:null},B=Object.prototype.hasOwnProperty,H={key:!0,ref:!0,__self:!0,__source:!0},W=/\/+/g,V=[],Q={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return b(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;t=d(null,null,t,n),h(e,v,t),p(t)},count:function(e){return h(e,function(){return null},null)},toArray:function(e){var t=[];return b(e,t,null,function(e){return e}),t},only:function(e){return s(e)||l("143"),e}},createRef:function(){return{current:null}},Component:i,PureComponent:a,createContext:function(e,t){return void 0===t&&(t=null),e={$$typeof:N,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider={$$typeof:P,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:M,render:e}},lazy:function(e){return{$$typeof:R,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:F,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return k().useCallback(e,t)},useContext:function(e,t){return k().useContext(e,t)},useEffect:function(e,t){return k().useEffect(e,t)},useImperativeHandle:function(e,t,n){return k().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return k().useLayoutEffect(e,t)},useMemo:function(e,t){return k().useMemo(e,t)},useReducer:function(e,t,n){return k().useReducer(e,t,n)},useRef:function(e){return k().useRef(e)},useState:function(e){return k().useState(e)},Fragment:_,StrictMode:C,Suspense:L,createElement:u,cloneElement:function(e,t,n){(null===e||void 0===e)&&l("267",e);var r=void 0,i=w({},e.props),o=e.key,a=e.ref,u=e._owner;if(null!=t){void 0!==t.ref&&(a=t.ref,u=A.current),void 0!==t.key&&(o=""+t.key);var c=void 0;e.type&&e.type.defaultProps&&(c=e.type.defaultProps);for(r in t)B.call(t,r)&&!H.hasOwnProperty(r)&&(i[r]=void 0===t[r]&&void 0!==c?c[r]:t[r])}if(1===(r=arguments.length-2))i.children=n;else if(1<r){c=Array(r);for(var s=0;s<r;s++)c[s]=arguments[s+2];i.children=c}return{$$typeof:E,type:e.type,key:o,ref:a,props:i,_owner:u}},createFactory:function(e){var t=u.bind(null,e);return t.type=e,t},isValidElement:s,version:"16.8.6",unstable_ConcurrentMode:O,unstable_Profiler:S,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:j,ReactCurrentOwner:A,assign:w}},$={default:Q},K=$&&Q||$;e.exports=K.default||K},function(e,t,n){"use strict";function r(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}r(),e.exports=n(5)},function(e,t,n){"use strict";function r(e,t,n,r,l,i,o,a){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,l,i,o,a],c=0;e=Error(t.replace(/%s/g,function(){return u[c++]})),e.name="Invariant Violation"}throw e.framesToPop=1,e}}function l(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,l=0;l<t;l++)n+="&args[]="+encodeURIComponent(arguments[l+1]);r(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}function i(e,t,n,r,l,i,o,a,u){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}function o(e,t,n,r,l,o,a,u,c){cl=!1,sl=null,i.apply(pl,arguments)}function a(e,t,n,r,i,a,u,c,s){if(o.apply(this,arguments),cl){if(cl){var f=sl;cl=!1,sl=null}else l("198"),f=void 0;fl||(fl=!0,dl=f)}}function u(){if(ml)for(var e in hl){var t=hl[e],n=ml.indexOf(e);if(-1<n||l("96",e),!yl[n]){t.extractEvents||l("97",e),yl[n]=t,n=t.eventTypes;for(var r in n){var i=void 0,o=n[r],a=t,u=r;vl.hasOwnProperty(u)&&l("99",u),vl[u]=o;var s=o.phasedRegistrationNames;if(s){for(i in s)s.hasOwnProperty(i)&&c(s[i],a,u);i=!0}else o.registrationName?(c(o.registrationName,a,u),i=!0):i=!1;i||l("98",r,e)}}}}function c(e,t,n){gl[e]&&l("100",e),gl[e]=t,bl[e]=t.eventTypes[n].dependencies}function s(e,t,n){var r=e.type||"unknown-event";e.currentTarget=xl(n),a(r,t,void 0,e),e.currentTarget=null}function f(e,t){return null==t&&l("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function d(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}function p(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)s(e,t[r],n[r]);else t&&s(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function m(e,t){var n=e.stateNode;if(!n)return null;var r=kl(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(e=e.type,r=!("button"===e||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}return e?null:(n&&"function"!=typeof n&&l("231",t,typeof n),n)}function h(e){if(null!==e&&(El=f(El,e)),e=El,El=null,e&&(d(e,p),El&&l("95"),fl))throw e=dl,fl=!1,dl=null,e}function y(e){if(e[Cl])return e[Cl];for(;!e[Cl];){if(!e.parentNode)return null;e=e.parentNode}return e=e[Cl],5===e.tag||6===e.tag?e:null}function v(e){return e=e[Cl],!e||5!==e.tag&&6!==e.tag?null:e}function g(e){if(5===e.tag||6===e.tag)return e.stateNode;l("33")}function b(e){return e[Sl]||null}function k(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function w(e,t,n){(t=m(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=f(n._dispatchListeners,t),n._dispatchInstances=f(n._dispatchInstances,e))}function x(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=k(t);for(t=n.length;0<t--;)w(n[t],"captured",e);for(t=0;t<n.length;t++)w(n[t],"bubbled",e)}}function E(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=m(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=f(n._dispatchListeners,t),n._dispatchInstances=f(n._dispatchInstances,e))}function T(e){e&&e.dispatchConfig.registrationName&&E(e._targetInst,null,e)}function _(e){d(e,x)}function C(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}function S(e){if(Ol[e])return Ol[e];if(!Nl[e])return e;var t,n=Nl[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ml)return Ol[e]=n[t];return e}function P(){if(jl)return jl;var e,t,n=Ul,r=n.length,l="value"in Dl?Dl.value:Dl.textContent,i=l.length;for(e=0;e<r&&n[e]===l[e];e++);var o=r-e;for(t=1;t<=o&&n[r-t]===l[i-t];t++);return jl=l.slice(e,1<t?1-t:void 0)}function N(){return!0}function O(){return!1}function M(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface;for(var l in e)e.hasOwnProperty(l)&&((t=e[l])?this[l]=t(n):"target"===l?this.target=r:this[l]=n[l]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?N:O,this.isPropagationStopped=O,this}function L(e,t,n,r){if(this.eventPool.length){var l=this.eventPool.pop();return this.call(l,e,t,n,r),l}return new this(e,t,n,r)}function F(e){e instanceof this||l("279"),e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function R(e){e.eventPool=[],e.getPooled=L,e.release=F}function I(e,t){switch(e){case"keyup":return-1!==Hl.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function z(e){return e=e.detail,"object"==typeof e&&"data"in e?e.data:null}function D(e,t){switch(e){case"compositionend":return z(t);case"keypress":return 32!==t.which?null:(Yl=!0,Kl);case"textInput":return e=t.data,e===Kl&&Yl?null:e;default:return null}}function U(e,t){if(Xl)return"compositionend"===e||!Wl&&I(e,t)?(e=P(),jl=Ul=Dl=null,Xl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return $l&&"ko"!==t.locale?null:t.data;default:return null}}function j(e){if(e=wl(e)){"function"!=typeof Zl&&l("280");var t=kl(e.stateNode);Zl(e.stateNode,e.type,t)}}function A(e){Jl?ei?ei.push(e):ei=[e]:Jl=e}function B(){if(Jl){var e=Jl,t=ei;if(ei=Jl=null,j(e),t)for(e=0;e<t.length;e++)j(t[e])}}function H(e,t){return e(t)}function W(e,t,n){return e(t,n)}function V(){}function Q(e,t){if(ti)return e(t);ti=!0;try{return H(e,t)}finally{ti=!1,(null!==Jl||null!==ei)&&(V(),B())}}function $(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!ni[e.type]:"textarea"===t}function K(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function q(e){if(!Pl)return!1;e="on"+e;var t=e in document;return t||(t=document.createElement("div"),t.setAttribute(e,"return;"),t="function"==typeof t[e]),t}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function X(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function G(e){e._valueTracker||(e._valueTracker=X(e))}function Z(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function J(e){return null===e||"object"!=typeof e?null:(e=gi&&e[gi]||e["@@iterator"],"function"==typeof e?e:null)}function ee(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case pi:return"ConcurrentMode";case ui:return"Fragment";case ai:return"Portal";case si:return"Profiler";case ci:return"StrictMode";case hi:return"Suspense"}if("object"==typeof e)switch(e.$$typeof){case di:return"Context.Consumer";case fi:return"Context.Provider";case mi:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case yi:return ee(e.type);case vi:if(e=1===e._status?e._result:null)return ee(e)}return null}function te(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,l=e._debugSource,i=ee(e.type);n=null,r&&(n=ee(r.type)),r=i,i="",l?i=" (at "+l.fileName.replace(li,"")+":"+l.lineNumber+")":n&&(i=" (created by "+n+")"),n="\n in "+(r||"Unknown")+i}t+=n,e=e.return}while(e);return t}function ne(e){return!!ki.call(xi,e)||!ki.call(wi,e)&&(bi.test(e)?xi[e]=!0:(wi[e]=!0,!1))}function re(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}function le(e,t,n,r){if(null===t||void 0===t||re(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ie(e,t,n,r,l){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t}function oe(e){return e[1].toUpperCase()}function ae(e,t,n,r){var l=Ei.hasOwnProperty(t)?Ei[t]:null;(null!==l?0===l.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(le(t,n,l,r)&&(n=null),r||null===l?ne(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):l.mustUseProperty?e[l.propertyName]=null===n?3!==l.type&&"":n:(t=l.attributeName,r=l.attributeNamespace,null===n?e.removeAttribute(t):(l=l.type,n=3===l||4===l&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function ue(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ce(e,t){var n=t.checked;return al({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function se(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=ue(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function fe(e,t){null!=(t=t.checked)&&ae(e,"checked",t,!1)}function de(e,t){fe(e,t);var n=ue(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?me(e,t.type,n):t.hasOwnProperty("defaultValue")&&me(e,t.type,ue(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function pe(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,""!==n&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function me(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function he(e,t,n){return e=M.getPooled(_i.change,e,t,n),e.type="change",A(n),_(e),e}function ye(e){h(e)}function ve(e){if(Z(g(e)))return e}function ge(e,t){if("change"===e)return t}function be(){Ci&&(Ci.detachEvent("onpropertychange",ke),Si=Ci=null)}function ke(e){"value"===e.propertyName&&ve(Si)&&(e=he(Si,e,K(e)),Q(ye,e))}function we(e,t,n){"focus"===e?(be(),Ci=t,Si=n,Ci.attachEvent("onpropertychange",ke)):"blur"===e&&be()}function xe(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return ve(Si)}function Ee(e,t){if("click"===e)return ve(t)}function Te(e,t){if("input"===e||"change"===e)return ve(t)}function _e(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Mi[e])&&!!t[e]}function Ce(){return _e}function Se(e,t){return e===t&&(0!==e||1/e==1/t)||e!==e&&t!==t}function Pe(e,t){if(Se(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!Ai.call(t,n[r])||!Se(e[n[r]],t[n[r]]))return!1;return!0}function Ne(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(t=t.return,0!=(2&t.effectTag))return 1}return 3===t.tag?2:3}function Oe(e){2!==Ne(e)&&l("188")}function Me(e){var t=e.alternate;if(!t)return t=Ne(e),3===t&&l("188"),1===t?null:e;for(var n=e,r=t;;){var i=n.return,o=i?i.alternate:null;if(!i||!o)break;if(i.child===o.child){for(var a=i.child;a;){if(a===n)return Oe(i),e;if(a===r)return Oe(i),t;a=a.sibling}l("188")}if(n.return!==r.return)n=i,r=o;else{a=!1;for(var u=i.child;u;){if(u===n){a=!0,n=i,r=o;break}if(u===r){a=!0,r=i,n=o;break}u=u.sibling}if(!a){for(u=o.child;u;){if(u===n){a=!0,n=o,r=i;break}if(u===r){a=!0,r=o,n=i;break}u=u.sibling}a||l("189")}}n.alternate!==r&&l("190")}return 3!==n.tag&&l("188"),n.stateNode.current===n?e:t}function Le(e){if(!(e=Me(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Fe(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function Re(e,t){var n=e[0];e=e[1];var r="on"+(e[0].toUpperCase()+e.slice(1));t={phasedRegistrationNames:{bubbled:r,captured:r+"Capture"},dependencies:[n],isInteractive:t},Zi[e]=t,Ji[n]=t}function Ie(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r;for(r=n;r.return;)r=r.return;if(!(r=3!==r.tag?null:r.stateNode.containerInfo))break;e.ancestors.push(n),n=y(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var l=K(e.nativeEvent);r=e.topLevelType;for(var i=e.nativeEvent,o=null,a=0;a<yl.length;a++){var u=yl[a];u&&(u=u.extractEvents(r,t,i,l))&&(o=f(o,u))}h(o)}}function ze(e,t){if(!t)return null;var n=(to(e)?Ue:je).bind(null,e);t.addEventListener(e,n,!1)}function De(e,t){if(!t)return null;var n=(to(e)?Ue:je).bind(null,e);t.addEventListener(e,n,!0)}function Ue(e,t){W(je,e,t)}function je(e,t){if(ro){var n=K(t);if(n=y(n),null===n||"number"!=typeof n.tag||2===Ne(n)||(n=null),no.length){var r=no.pop();r.topLevelType=e,r.nativeEvent=t,r.targetInst=n,e=r}else e={topLevelType:e,nativeEvent:t,targetInst:n,ancestors:[]};try{Q(Ie,e)}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>no.length&&no.push(e)}}}function Ae(e){return Object.prototype.hasOwnProperty.call(e,oo)||(e[oo]=io++,lo[e[oo]]={}),lo[e[oo]]}function Be(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function He(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function We(e,t){var n=He(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=He(n)}}function Ve(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Ve(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function Qe(){for(var e=window,t=Be();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;e=t.contentWindow,t=Be(e.document)}return t}function $e(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function Ke(){var e=Qe();if($e(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var n=t.getSelection&&t.getSelection();if(n&&0!==n.rangeCount){t=n.anchorNode;var r=n.anchorOffset,l=n.focusNode;n=n.focusOffset;try{t.nodeType,l.nodeType}catch(e){t=null;break e}var i=0,o=-1,a=-1,u=0,c=0,s=e,f=null;t:for(;;){for(var d;s!==t||0!==r&&3!==s.nodeType||(o=i+r),s!==l||0!==n&&3!==s.nodeType||(a=i+n),3===s.nodeType&&(i+=s.nodeValue.length),null!==(d=s.firstChild);)f=s,s=d;for(;;){if(s===e)break t;if(f===t&&++u===r&&(o=i),f===l&&++c===n&&(a=i),null!==(d=s.nextSibling))break;s=f,f=s.parentNode}s=d}t=-1===o||-1===a?null:{start:o,end:a}}else t=null}t=t||{start:0,end:0}}else t=null;return{focusedElem:e,selectionRange:t}}function qe(e){var t=Qe(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ve(n.ownerDocument.documentElement,n)){if(null!==r&&$e(n))if(t=r.start,e=r.end,void 0===e&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=void 0===r.end?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=We(n,i);var o=We(n,r);l&&o&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}function Ye(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return po||null==co||co!==Be(n)?null:(n=co,"selectionStart"in n&&$e(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),fo&&Pe(fo,n)?null:(fo=n,e=M.getPooled(uo.select,so,e,t),e.type="select",e.target=co,_(e),e))}function Xe(e){var t="";return ol.Children.forEach(e,function(e){null!=e&&(t+=e)}),t}function Ge(e,t){return e=al({children:void 0},t),(t=Xe(t.children))&&(e.children=t),e}function Ze(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ue(n),t=null,l=0;l<e.length;l++){if(e[l].value===n)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==t||e[l].disabled||(t=e[l])}null!==t&&(t.selected=!0)}}function Je(e,t){return null!=t.dangerouslySetInnerHTML&&l("91"),al({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function et(e,t){var n=t.value;null==n&&(n=t.defaultValue,t=t.children,null!=t&&(null!=n&&l("92"),Array.isArray(t)&&(1>=t.length||l("93"),t=t[0]),n=t),null==n&&(n="")),e._wrapperState={initialValue:ue(n)}}function tt(e,t){var n=ue(t.value),r=ue(t.defaultValue);null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function nt(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function rt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function lt(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?rt(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function it(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function ot(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||go.hasOwnProperty(e)&&go[e]?(""+t).trim():t+"px"}function at(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),l=ot(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}function ut(e,t){t&&(ko[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&l("137",e,""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&l("60"),"object"==typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||l("61")),null!=t.style&&"object"!=typeof t.style&&l("62",""))}function ct(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function st(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=Ae(e);t=bl[t];for(var r=0;r<t.length;r++){var l=t[r];if(!n.hasOwnProperty(l)||!n[l]){switch(l){case"scroll":De("scroll",e);break;case"focus":case"blur":De("focus",e),De("blur",e),n.blur=!0,n.focus=!0;break;case"cancel":case"close":q(l)&&De(l,e);break;case"invalid":case"submit":case"reset":break;default:-1===zl.indexOf(l)&&ze(l,e)}n[l]=!0}}}function ft(){}function dt(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function pt(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}function mt(e,t,n,r,l){e[Sl]=l,"input"===n&&"radio"===l.type&&null!=l.name&&fe(e,l),ct(n,r),r=ct(n,l);for(var i=0;i<t.length;i+=2){var o=t[i],a=t[i+1];"style"===o?at(e,a):"dangerouslySetInnerHTML"===o?vo(e,a):"children"===o?it(e,a):ae(e,o,a,r)}switch(n){case"input":de(e,l);break;case"textarea":tt(e,l);break;case"select":t=e._wrapperState.wasMultiple,e._wrapperState.wasMultiple=!!l.multiple,n=l.value,null!=n?Ze(e,!!l.multiple,n,!1):t!==!!l.multiple&&(null!=l.defaultValue?Ze(e,!!l.multiple,l.defaultValue,!0):Ze(e,!!l.multiple,l.multiple?[]:"",!1))}}function ht(e){for(e=e.nextSibling;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}function yt(e){for(e=e.firstChild;e&&1!==e.nodeType&&3!==e.nodeType;)e=e.nextSibling;return e}function vt(e){0>Po||(e.current=So[Po],So[Po]=null,Po--)}function gt(e,t){Po++,So[Po]=e.current,e.current=t}function bt(e,t){var n=e.type.contextTypes;if(!n)return No;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l,i={};for(l in n)i[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function kt(e){return null!==(e=e.childContextTypes)&&void 0!==e}function wt(e){vt(Mo,e),vt(Oo,e)}function xt(e){vt(Mo,e),vt(Oo,e)}function Et(e,t,n){Oo.current!==No&&l("168"),gt(Oo,t,e),gt(Mo,n,e)}function Tt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;r=r.getChildContext();for(var i in r)i in e||l("108",ee(t)||"Unknown",i);return al({},n,r)}function _t(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||No,Lo=Oo.current,gt(Oo,t,e),gt(Mo,Mo.current,e),!0}function Ct(e,t,n){var r=e.stateNode;r||l("169"),n?(t=Tt(e,t,Lo),r.__reactInternalMemoizedMergedChildContext=t,vt(Mo,e),vt(Oo,e),gt(Oo,t,e)):vt(Mo,e),gt(Mo,n,e)}function St(e){return function(t){try{return e(t)}catch(e){}}}function Pt(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Fo=St(function(e){return t.onCommitFiberRoot(n,e)}),Ro=St(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function Nt(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Ot(e,t,n,r){return new Nt(e,t,n,r)}function Mt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Lt(e){if("function"==typeof e)return Mt(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===mi)return 11;if(e===yi)return 14}return 2}function Ft(e,t){var n=e.alternate;return null===n?(n=Ot(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Rt(e,t,n,r,i,o){var a=2;if(r=e,"function"==typeof e)Mt(e)&&(a=1);else if("string"==typeof e)a=5;else e:switch(e){case ui:return It(n.children,i,o,t);case pi:return zt(n,3|i,o,t);case ci:return zt(n,2|i,o,t);case si:return e=Ot(12,n,t,4|i),e.elementType=si,e.type=si,e.expirationTime=o,e;case hi:return e=Ot(13,n,t,i),e.elementType=hi,e.type=hi,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case fi:a=10;break e;case di:a=9;break e;case mi:a=11;break e;case yi:a=14;break e;case vi:a=16,r=null;break e}l("130",null==e?e:typeof e,"")}return t=Ot(a,n,t,i),t.elementType=e,t.type=r,t.expirationTime=o,t}function It(e,t,n,r){return e=Ot(7,e,r,t),e.expirationTime=n,e}function zt(e,t,n,r){return e=Ot(8,e,r,t),t=0==(1&t)?ci:pi,e.elementType=t,e.type=t,e.expirationTime=n,e}function Dt(e,t,n){return e=Ot(6,e,null,t),e.expirationTime=n,e}function Ut(e,t,n){return t=Ot(4,null!==e.children?e.children:[],e.key,t),t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function jt(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:n<t?e.earliestPendingTime=t:e.latestPendingTime>t&&(e.latestPendingTime=t),Wt(t,e)}function At(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{t<e.latestPingedTime&&(e.latestPingedTime=0);var n=e.latestPendingTime;0!==n&&(n>t?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),n=e.earliestSuspendedTime,0===n?jt(e,t):t<e.latestSuspendedTime?(e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0,jt(e,t)):t>n&&jt(e,t)}Wt(0,e)}function Bt(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:n<t?e.earliestSuspendedTime=t:r>t&&(e.latestSuspendedTime=t),Wt(t,e)}function Ht(e,t){var n=e.earliestPendingTime;return e=e.earliestSuspendedTime,n>t&&(t=n),e>t&&(t=e),t}function Wt(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,l=t.earliestPendingTime,i=t.latestPingedTime;l=0!==l?l:i,0===l&&(0===e||r<e)&&(l=r),e=l,0!==e&&n>e&&(e=n),t.nextExpirationTimeToWorkOn=l,t.expirationTime=e}function Vt(e,t){if(e&&e.defaultProps){t=al({},t),e=e.defaultProps;for(var n in e)void 0===t[n]&&(t[n]=e[n])}return t}function Qt(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,t=e._ctor,t=t(),t.then(function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)},function(t){0===e._status&&(e._status=2,e._result=t)}),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}function $t(e,t,n,r){t=e.memoizedState,n=n(r,t),n=null===n||void 0===n?t:al({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}function Kt(e,t,n,r,l,i,o){return e=e.stateNode,"function"==typeof e.shouldComponentUpdate?e.shouldComponentUpdate(r,i,o):!t.prototype||!t.prototype.isPureReactComponent||(!Pe(n,r)||!Pe(l,i))}function qt(e,t,n){var r=!1,l=No,i=t.contextType;return"object"==typeof i&&null!==i?i=Bn(i):(l=kt(t)?Lo:Oo.current,r=t.contextTypes,i=(r=null!==r&&void 0!==r)?bt(e,l):No),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=zo,e.stateNode=t,t._reactInternalFiber=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=i),t}function Yt(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&zo.enqueueReplaceState(t,t.state,null)}function Xt(e,t,n,r){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs=Io;var i=t.contextType;"object"==typeof i&&null!==i?l.context=Bn(i):(i=kt(t)?Lo:Oo.current,l.context=bt(e,i)),i=e.updateQueue,null!==i&&(Xn(e,i,n,l,r),l.state=e.memoizedState),i=t.getDerivedStateFromProps,"function"==typeof i&&($t(e,t,i,n),l.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof l.getSnapshotBeforeUpdate||"function"!=typeof l.UNSAFE_componentWillMount&&"function"!=typeof l.componentWillMount||(t=l.state,"function"==typeof l.componentWillMount&&l.componentWillMount(),"function"==typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),t!==l.state&&zo.enqueueReplaceState(l,l.state,null),null!==(i=e.updateQueue)&&(Xn(e,i,n,l,r),l.state=e.memoizedState)),"function"==typeof l.componentDidMount&&(e.effectTag|=4)}function Gt(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;n&&(1!==n.tag&&l("309"),r=n.stateNode),r||l("147",e);var i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=r.refs;t===Io&&(t=r.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}"string"!=typeof e&&l("284"),n._owner||l("290",e)}return e}function Zt(e,t){"textarea"!==e.type&&l("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Jt(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t,n){return e=Ft(e,t,n),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index,r<n?(t.effectTag=2,n):r):(t.effectTag=2,n):n}function a(t){return e&&null===t.alternate&&(t.effectTag=2),t}function u(e,t,n,r){return null===t||6!==t.tag?(t=Dt(n,e.mode,r),t.return=e,t):(t=i(t,n,r),t.return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?(r=i(t,n.props,r),r.ref=Gt(e,t,n),r.return=e,r):(r=Rt(n.type,n.key,n.props,null,e.mode,r),r.ref=Gt(e,t,n),r.return=e,r)}function s(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Ut(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[],r),t.return=e,t)}function f(e,t,n,r,l){return null===t||7!==t.tag?(t=It(n,e.mode,r,l),t.return=e,t):(t=i(t,n,r),t.return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return t=Dt(""+t,e.mode,n),t.return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case oi:return n=Rt(t.type,t.key,t.props,null,e.mode,n),n.ref=Gt(e,null,t),n.return=e,n;case ai:return t=Ut(t,e.mode,n),t.return=e,t}if(Do(t)||J(t))return t=It(t,e.mode,n,null),t.return=e,t;Zt(e,t)}return null}function p(e,t,n,r){var l=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==l?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case oi:return n.key===l?n.type===ui?f(e,t,n.props.children,r,l):c(e,t,n,r):null;case ai:return n.key===l?s(e,t,n,r):null}if(Do(n)||J(n))return null!==l?null:f(e,t,n,r,null);Zt(e,n)}return null}function m(e,t,n,r,l){if("string"==typeof r||"number"==typeof r)return e=e.get(n)||null,u(t,e,""+r,l);if("object"==typeof r&&null!==r){switch(r.$$typeof){case oi:return e=e.get(null===r.key?n:r.key)||null,r.type===ui?f(t,e,r.props.children,l,r.key):c(t,e,r,l);case ai:return e=e.get(null===r.key?n:r.key)||null,s(t,e,r,l)}if(Do(r)||J(r))return e=e.get(n)||null,f(t,e,r,l,null);Zt(t,r)}return null}function h(l,i,a,u){for(var c=null,s=null,f=i,h=i=0,y=null;null!==f&&h<a.length;h++){f.index>h?(y=f,f=null):y=f.sibling;var v=p(l,f,a[h],u);if(null===v){null===f&&(f=y);break}e&&f&&null===v.alternate&&t(l,f),i=o(v,i,h),null===s?c=v:s.sibling=v,s=v,f=y}if(h===a.length)return n(l,f),c;if(null===f){for(;h<a.length;h++)(f=d(l,a[h],u))&&(i=o(f,i,h),null===s?c=f:s.sibling=f,s=f);return c}for(f=r(l,f);h<a.length;h++)(y=m(f,l,h,a[h],u))&&(e&&null!==y.alternate&&f.delete(null===y.key?h:y.key),i=o(y,i,h),null===s?c=y:s.sibling=y,s=y);return e&&f.forEach(function(e){return t(l,e)}),c}function y(i,a,u,c){var s=J(u);"function"!=typeof s&&l("150"),null==(u=s.call(u))&&l("151");for(var f=s=null,h=a,y=a=0,v=null,g=u.next();null!==h&&!g.done;y++,g=u.next()){h.index>y?(v=h,h=null):v=h.sibling;var b=p(i,h,g.value,c);if(null===b){h||(h=v);break}e&&h&&null===b.alternate&&t(i,h),a=o(b,a,y),null===f?s=b:f.sibling=b,f=b,h=v}if(g.done)return n(i,h),s;if(null===h){for(;!g.done;y++,g=u.next())null!==(g=d(i,g.value,c))&&(a=o(g,a,y),null===f?s=g:f.sibling=g,f=g);return s}for(h=r(i,h);!g.done;y++,g=u.next())null!==(g=m(h,i,y,g.value,c))&&(e&&null!==g.alternate&&h.delete(null===g.key?y:g.key),a=o(g,a,y),null===f?s=g:f.sibling=g,f=g);return e&&h.forEach(function(e){return t(i,e)}),s}return function(e,r,o,u){var c="object"==typeof o&&null!==o&&o.type===ui&&null===o.key;c&&(o=o.props.children);var s="object"==typeof o&&null!==o;if(s)switch(o.$$typeof){case oi:e:{for(s=o.key,c=r;null!==c;){if(c.key===s){if(7===c.tag?o.type===ui:c.elementType===o.type){n(e,c.sibling),r=i(c,o.type===ui?o.props.children:o.props,u),r.ref=Gt(e,c,o),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}o.type===ui?(r=It(o.props.children,e.mode,u,o.key),r.return=e,e=r):(u=Rt(o.type,o.key,o.props,null,e.mode,u),u.ref=Gt(e,r,o),u.return=e,e=u)}return a(e);case ai:e:{for(c=o.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),r=i(r,o.children||[],u),r.return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}r=Ut(o,e.mode,u),r.return=e,e=r}return a(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),r=i(r,o,u),r.return=e,e=r):(n(e,r),r=Dt(o,e.mode,u),r.return=e,e=r),a(e);if(Do(o))return h(e,r,o,u);if(J(o))return y(e,r,o,u);if(s&&Zt(e,o),void 0===o&&!c)switch(e.tag){case 1:case 0:u=e.type,l("152",u.displayName||u.name||"Component")}return n(e,r)}}function en(e){return e===Ao&&l("174"),e}function tn(e,t){gt(Wo,t,e),gt(Ho,e,e),gt(Bo,Ao,e);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:lt(null,"");break;default:n=8===n?t.parentNode:t,t=n.namespaceURI||null,n=n.tagName,t=lt(t,n)}vt(Bo,e),gt(Bo,t,e)}function nn(e){vt(Bo,e),vt(Ho,e),vt(Wo,e)}function rn(e){en(Wo.current);var t=en(Bo.current),n=lt(t,e.type);t!==n&&(gt(Ho,e,e),gt(Bo,n,e))}function ln(e){Ho.current===e&&(vt(Bo,e),vt(Ho,e))}function on(){l("321")}function an(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Se(e[n],t[n]))return!1;return!0}function un(e,t,n,r,i,o){if(Jo=o,ea=t,na=null!==e?e.memoizedState:null,Zo.current=null===na?pa:ma,t=n(r,i),ca){do{ca=!1,fa+=1,na=null!==e?e.memoizedState:null,ia=ra,aa=la=ta=null,Zo.current=ma,t=n(r,i)}while(ca);sa=null,fa=0}return Zo.current=da,e=ea,e.memoizedState=ra,e.expirationTime=oa,e.updateQueue=aa,e.effectTag|=ua,e=null!==ta&&null!==ta.next,Jo=0,ia=la=ra=na=ta=ea=null,oa=0,aa=null,ua=0,e&&l("300"),t}function cn(){Zo.current=da,Jo=0,ia=la=ra=na=ta=ea=null,oa=0,aa=null,ua=0,ca=!1,sa=null,fa=0}function sn(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===la?ra=la=e:la=la.next=e,la}function fn(){if(null!==ia)la=ia,ia=la.next,ta=na,na=null!==ta?ta.next:null;else{null===na&&l("310"),ta=na;var e={memoizedState:ta.memoizedState,baseState:ta.baseState,queue:ta.queue,baseUpdate:ta.baseUpdate,next:null};la=null===la?ra=e:la.next=e,na=ta.next}return la}function dn(e,t){return"function"==typeof t?t(e):t}function pn(e){var t=fn(),n=t.queue;if(null===n&&l("311"),n.lastRenderedReducer=e,0<fa){var r=n.dispatch;if(null!==sa){var i=sa.get(n);if(void 0!==i){sa.delete(n);var o=t.memoizedState;do{o=e(o,i.action),i=i.next}while(null!==i);return Se(o,t.memoizedState)||(ba=!0),t.memoizedState=o,t.baseUpdate===n.last&&(t.baseState=o),n.lastRenderedState=o,[o,r]}}return[t.memoizedState,r]}r=n.last;var a=t.baseUpdate;if(o=t.baseState,null!==a?(null!==r&&(r.next=null),r=a.next):r=null!==r?r.next:null,null!==r){var u=i=null,c=r,s=!1;do{var f=c.expirationTime;f<Jo?(s||(s=!0,u=a,i=o),f>oa&&(oa=f)):o=c.eagerReducer===e?c.eagerState:e(o,c.action),a=c,c=c.next}while(null!==c&&c!==r);s||(u=a,i=o),Se(o,t.memoizedState)||(ba=!0),t.memoizedState=o,t.baseUpdate=u,t.baseState=i,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function mn(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===aa?(aa={lastEffect:null},aa.lastEffect=e.next=e):(t=aa.lastEffect,null===t?aa.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,aa.lastEffect=e)),e}function hn(e,t,n,r){var l=sn();ua|=e,l.memoizedState=mn(t,n,void 0,void 0===r?null:r)}function yn(e,t,n,r){var l=fn();r=void 0===r?null:r;var i=void 0;if(null!==ta){var o=ta.memoizedState;if(i=o.destroy,null!==r&&an(r,o.deps))return void mn(Vo,n,i,r)}ua|=e,l.memoizedState=mn(t,n,i,r)}function vn(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function gn(){}function bn(e,t,n){25>fa||l("301");var r=e.alternate;if(e===ea||null!==r&&r===ea)if(ca=!0,e={expirationTime:Jo,action:n,eagerReducer:null,eagerState:null,next:null},null===sa&&(sa=new Map),void 0===(n=sa.get(t)))sa.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{gr();var i=Ir();i=Tr(i,e);var o={expirationTime:i,action:n,eagerReducer:null,eagerState:null,next:null},a=t.last;if(null===a)o.next=o;else{var u=a.next;null!==u&&(o.next=u),a.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var c=t.lastRenderedState,s=r(c,n);if(o.eagerReducer=r,o.eagerState=s,Se(s,c))return}catch(e){}Pr(e,i)}}function kn(e,t){var n=Ot(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function wn(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function xn(e){if(va){var t=ya;if(t){var n=t;if(!wn(e,t)){if(!(t=ht(n))||!wn(e,t))return e.effectTag|=2,va=!1,void(ha=e);kn(ha,n)}ha=e,ya=yt(t)}else e.effectTag|=2,va=!1,ha=e}}function En(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;ha=e}function Tn(e){if(e!==ha)return!1;if(!va)return En(e),va=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!pt(t,e.memoizedProps))for(t=ya;t;)kn(e,t),t=ht(t);return En(e),ya=ha?ht(e.stateNode):null,!0}function _n(){ya=ha=null,va=!1}function Cn(e,t,n,r){t.child=null===e?jo(t,null,n,r):Uo(t,e.child,n,r)}function Sn(e,t,n,r,l){n=n.render;var i=t.ref;return An(t,l),r=un(e,t,n,r,i,l),null===e||ba?(t.effectTag|=1,Cn(e,t,r,l),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=l&&(e.expirationTime=0),zn(e,t,l))}function Pn(e,t,n,r,l,i){if(null===e){var o=n.type;return"function"!=typeof o||Mt(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?(e=Rt(n.type,null,r,null,t.mode,i),e.ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Nn(e,t,o,r,l,i))}return o=e.child,l<i&&(l=o.memoizedProps,n=n.compare,(n=null!==n?n:Pe)(l,r)&&e.ref===t.ref)?zn(e,t,i):(t.effectTag|=1,e=Ft(o,r,i),e.ref=t.ref,e.return=t,t.child=e)}function Nn(e,t,n,r,l,i){return null!==e&&Pe(e.memoizedProps,r)&&e.ref===t.ref&&(ba=!1,l<i)?zn(e,t,i):Mn(e,t,n,r,i)}function On(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Mn(e,t,n,r,l){var i=kt(n)?Lo:Oo.current;return i=bt(t,i),An(t,l),n=un(e,t,n,r,i,l),null===e||ba?(t.effectTag|=1,Cn(e,t,n,l),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=l&&(e.expirationTime=0),zn(e,t,l))}function Ln(e,t,n,r,l){if(kt(n)){var i=!0;_t(t)}else i=!1;if(An(t,l),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),qt(t,n,r,l),Xt(t,n,r,l),r=!0;else if(null===e){var o=t.stateNode,a=t.memoizedProps;o.props=a;var u=o.context,c=n.contextType;"object"==typeof c&&null!==c?c=Bn(c):(c=kt(n)?Lo:Oo.current,c=bt(t,c));var s=n.getDerivedStateFromProps,f="function"==typeof s||"function"==typeof o.getSnapshotBeforeUpdate;f||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(a!==r||u!==c)&&Yt(t,o,r,c),Pa=!1;var d=t.memoizedState;u=o.state=d;var p=t.updateQueue;null!==p&&(Xn(t,p,r,o,l),u=t.memoizedState),a!==r||d!==u||Mo.current||Pa?("function"==typeof s&&($t(t,n,s,r),u=t.memoizedState),(a=Pa||Kt(t,n,a,r,d,u,c))?(f||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||("function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"==typeof o.componentDidMount&&(t.effectTag|=4)):("function"==typeof o.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=u),o.props=r,o.state=u,o.context=c,r=a):("function"==typeof o.componentDidMount&&(t.effectTag|=4),r=!1)}else o=t.stateNode,a=t.memoizedProps,o.props=t.type===t.elementType?a:Vt(t.type,a),u=o.context,c=n.contextType,"object"==typeof c&&null!==c?c=Bn(c):(c=kt(n)?Lo:Oo.current,c=bt(t,c)),s=n.getDerivedStateFromProps,(f="function"==typeof s||"function"==typeof o.getSnapshotBeforeUpdate)||"function"!=typeof o.UNSAFE_componentWillReceiveProps&&"function"!=typeof o.componentWillReceiveProps||(a!==r||u!==c)&&Yt(t,o,r,c),Pa=!1,u=t.memoizedState,d=o.state=u,p=t.updateQueue,null!==p&&(Xn(t,p,r,o,l),d=t.memoizedState),a!==r||u!==d||Mo.current||Pa?("function"==typeof s&&($t(t,n,s,r),d=t.memoizedState),(s=Pa||Kt(t,n,a,r,u,d,c))?(f||"function"!=typeof o.UNSAFE_componentWillUpdate&&"function"!=typeof o.componentWillUpdate||("function"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,d,c),"function"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,d,c)),"function"==typeof o.componentDidUpdate&&(t.effectTag|=4),"function"==typeof o.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof o.componentDidUpdate||a===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),o.props=r,o.state=d,o.context=c,r=s):("function"!=typeof o.componentDidUpdate||a===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=4),"function"!=typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&u===e.memoizedState||(t.effectTag|=256),r=!1);return Fn(e,t,n,r,i,l)}function Fn(e,t,n,r,l,i){On(e,t);var o=0!=(64&t.effectTag);if(!r&&!o)return l&&Ct(t,n,!1),zn(e,t,i);r=t.stateNode,ga.current=t;var a=o&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&o?(t.child=Uo(t,e.child,null,i),t.child=Uo(t,null,a,i)):Cn(e,t,a,i),t.memoizedState=r.state,l&&Ct(t,n,!0),t.child}function Rn(e){var t=e.stateNode;t.pendingContext?Et(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Et(e,t.context,!1),tn(e,t.containerInfo)}function In(e,t,n){var r=t.mode,l=t.pendingProps,i=t.memoizedState;if(0==(64&t.effectTag)){i=null;var o=!1}else i={timedOutAt:null!==i?i.timedOutAt:0},o=!0,t.effectTag&=-65;if(null===e)if(o){var a=l.fallback;e=It(null,r,0,null),0==(1&t.mode)&&(e.child=null!==t.memoizedState?t.child.child:t.child),r=It(a,r,n,null),e.sibling=r,n=e,n.return=r.return=t}else n=r=jo(t,null,l.children,n);else null!==e.memoizedState?(r=e.child,a=r.sibling,o?(n=l.fallback,l=Ft(r,r.pendingProps,0),0==(1&t.mode)&&(o=null!==t.memoizedState?t.child.child:t.child)!==r.child&&(l.child=o),r=l.sibling=Ft(a,n,a.expirationTime),n=l,l.childExpirationTime=0,n.return=r.return=t):n=r=Uo(t,r.child,l.children,n)):(a=e.child,o?(o=l.fallback,l=It(null,r,0,null),l.child=a,0==(1&t.mode)&&(l.child=null!==t.memoizedState?t.child.child:t.child),r=l.sibling=It(o,r,n,null),r.effectTag|=2,n=l,l.childExpirationTime=0,n.return=r.return=t):r=n=Uo(t,a,l.children,n)),t.stateNode=e.stateNode;return t.memoizedState=i,t.child=n,r}function zn(e,t,n){if(null!==e&&(t.contextDependencies=e.contextDependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child&&l("153"),null!==t.child){for(e=t.child,n=Ft(e,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,n=n.sibling=Ft(e,e.pendingProps,e.expirationTime),n.return=t;n.sibling=null}return t.child}function Dn(e,t,n){var r=t.expirationTime;if(null!==e){if(e.memoizedProps!==t.pendingProps||Mo.current)ba=!0;else if(r<n){switch(ba=!1,t.tag){case 3:Rn(t),_n();break;case 5:rn(t);break;case 1:kt(t.type)&&_t(t);break;case 4:tn(t,t.stateNode.containerInfo);break;case 10:Un(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?In(e,t,n):(t=zn(e,t,n),null!==t?t.sibling:null)}return zn(e,t,n)}}else ba=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=bt(t,Oo.current);if(An(t,n),i=un(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,cn(),kt(r)){var o=!0;_t(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var a=r.getDerivedStateFromProps;"function"==typeof a&&$t(t,r,a,e),i.updater=zo,t.stateNode=i,i._reactInternalFiber=t,Xt(t,r,e,n),t=Fn(null,t,r,!0,o,n)}else t.tag=0,Cn(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),o=t.pendingProps,e=Qt(i),t.type=e,i=t.tag=Lt(e),o=Vt(e,o),a=void 0,i){case 0:a=Mn(null,t,e,o,n);break;case 1:a=Ln(null,t,e,o,n);break;case 11:a=Sn(null,t,e,o,n);break;case 14:a=Pn(null,t,e,Vt(e.type,o),r,n);break;default:l("306",e,"")}return a;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Vt(r,i),Mn(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Vt(r,i),Ln(e,t,r,i,n);case 3:return Rn(t),r=t.updateQueue,null===r&&l("282"),i=t.memoizedState,i=null!==i?i.element:null,Xn(t,r,t.pendingProps,null,n),r=t.memoizedState.element,r===i?(_n(),t=zn(e,t,n)):(i=t.stateNode,(i=(null===e||null===e.child)&&i.hydrate)&&(ya=yt(t.stateNode.containerInfo),ha=t,i=va=!0),i?(t.effectTag|=2,t.child=jo(t,null,r,n)):(Cn(e,t,r,n),_n()),t=t.child),t;case 5:return rn(t),null===e&&xn(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,a=i.children,pt(r,i)?a=null:null!==o&&pt(r,o)&&(t.effectTag|=16),On(e,t),1!==n&&1&t.mode&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Cn(e,t,a,n),t=t.child),t;case 6:return null===e&&xn(t),null;case 13:return In(e,t,n);case 4:return tn(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Uo(t,null,r,n):Cn(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Vt(r,i),Sn(e,t,r,i,n);case 7:return Cn(e,t,t.pendingProps,n),t.child;case 8:case 12:return Cn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,Un(t,o),null!==a){var u=a.value;if(0===(o=Se(u,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,o):1073741823))){if(a.children===i.children&&!Mo.current){t=zn(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var c=u.contextDependencies;if(null!==c){a=u.child;for(var s=c.first;null!==s;){if(s.context===r&&0!=(s.observedBits&o)){1===u.tag&&(s=Vn(n),s.tag=Ca,$n(u,s)),u.expirationTime<n&&(u.expirationTime=n),s=u.alternate,null!==s&&s.expirationTime<n&&(s.expirationTime=n),s=n;for(var f=u.return;null!==f;){var d=f.alternate;if(f.childExpirationTime<s)f.childExpirationTime=s,null!==d&&d.childExpirationTime<s&&(d.childExpirationTime=s);else{if(!(null!==d&&d.childExpirationTime<s))break;d.childExpirationTime=s}f=f.return}c.expirationTime<n&&(c.expirationTime=n);break}s=s.next}}else a=10===u.tag&&u.type===t.type?null:u.child;if(null!==a)a.return=u;else for(a=u;null!==a;){if(a===t){a=null;break}if(null!==(u=a.sibling)){u.return=a.return,a=u;break}a=a.return}u=a}}Cn(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,o=t.pendingProps,r=o.children,An(t,n),i=Bn(i,o.unstable_observedBits),r=r(i),t.effectTag|=1,Cn(e,t,r,n),t.child;case 14:return i=t.type,o=Vt(i,t.pendingProps),o=Vt(i.type,o),Pn(e,t,i,o,r,n);case 15:return Nn(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Vt(r,i),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,kt(r)?(e=!0,_t(t)):e=!1,An(t,n),qt(t,r,i,n),Xt(t,r,i,n),Fn(null,t,r,!0,e,n)}l("156")}function Un(e,t){var n=e.type._context;gt(ka,n._currentValue,e),n._currentValue=t}function jn(e){var t=ka.current;vt(ka,e),e.type._context._currentValue=t}function An(e,t){wa=e,Ea=xa=null;var n=e.contextDependencies;null!==n&&n.expirationTime>=t&&(ba=!0),e.contextDependencies=null}function Bn(e,t){return Ea!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(Ea=e,t=1073741823),t={context:e,observedBits:t,next:null},null===xa?(null===wa&&l("308"),xa=t,wa.contextDependencies={first:t,expirationTime:0}):xa=xa.next=t),e._currentValue}function Hn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Wn(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Vn(e){return{expirationTime:e,tag:Ta,payload:null,callback:null,next:null,nextEffect:null}}function Qn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function $n(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,l=null;null===r&&(r=e.updateQueue=Hn(e.memoizedState))}else r=e.updateQueue,l=n.updateQueue,null===r?null===l?(r=e.updateQueue=Hn(e.memoizedState),l=n.updateQueue=Hn(n.memoizedState)):r=e.updateQueue=Wn(l):null===l&&(l=n.updateQueue=Wn(r));null===l||r===l?Qn(r,t):null===r.lastUpdate||null===l.lastUpdate?(Qn(r,t),Qn(l,t)):(Qn(r,t),l.lastUpdate=t)}function Kn(e,t){var n=e.updateQueue;n=null===n?e.updateQueue=Hn(e.memoizedState):qn(e,n),null===n.lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function qn(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Wn(t)),t}function Yn(e,t,n,r,l,i){switch(n.tag){case _a:return e=n.payload,"function"==typeof e?e.call(i,r,l):e;case Sa:e.effectTag=-2049&e.effectTag|64;case Ta:if(e=n.payload,null===(l="function"==typeof e?e.call(i,r,l):e)||void 0===l)break;return al({},r,l);case Ca:Pa=!0}return r}function Xn(e,t,n,r,l){Pa=!1,t=qn(e,t);for(var i=t.baseState,o=null,a=0,u=t.firstUpdate,c=i;null!==u;){var s=u.expirationTime;s<l?(null===o&&(o=u,i=c),a<s&&(a=s)):(c=Yn(e,t,u,c,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=u:(t.lastEffect.nextEffect=u,t.lastEffect=u))),u=u.next}for(s=null,u=t.firstCapturedUpdate;null!==u;){var f=u.expirationTime;f<l?(null===s&&(s=u,null===o&&(i=c)),a<f&&(a=f)):(c=Yn(e,t,u,c,n,r),null!==u.callback&&(e.effectTag|=32,u.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=u:(t.lastCapturedEffect.nextEffect=u,t.lastCapturedEffect=u))),u=u.next}null===o&&(t.lastUpdate=null),null===s?t.lastCapturedUpdate=null:e.effectTag|=32,null===o&&null===s&&(i=c),t.baseState=i,t.firstUpdate=o,t.firstCapturedUpdate=s,e.expirationTime=a,e.memoizedState=c}function Gn(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),Zn(t.firstEffect,n),t.firstEffect=t.lastEffect=null,Zn(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function Zn(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;"function"!=typeof n&&l("191",n),n.call(r)}e=e.nextEffect}}function Jn(e,t){return{value:e,source:t,stack:te(t)}}function er(e){e.effectTag|=4}function tr(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=te(n)),null!==n&&ee(n.type),t=t.value,null!==e&&1===e.tag&&ee(e.type);try{console.error(t)}catch(e){setTimeout(function(){throw e})}}function nr(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Er(e,t)}else t.current=null}function rr(e,t,n){if(n=n.updateQueue,null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{if((r.tag&e)!==Vo){var l=r.destroy;r.destroy=void 0,void 0!==l&&l()}(r.tag&t)!==Vo&&(l=r.create,r.destroy=l()),r=r.next}while(r!==n)}}function lr(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)r.style.display="none";else{r=n.stateNode;var l=n.memoizedProps.style;l=void 0!==l&&null!==l&&l.hasOwnProperty("display")?l.display:null,r.style.display=ot("display",l)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else{if(13===n.tag&&null!==n.memoizedState){r=n.child.sibling,r.return=n,n=r;continue}if(null!==n.child){n.child.return=n,n=n.child;continue}}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ir(e){switch("function"==typeof Ro&&Ro(e),e.tag){case 0:case 11:case 14:case 15:var t=e.updateQueue;if(null!==t&&null!==(t=t.lastEffect)){var n=t=t.next;do{var r=n.destroy;if(void 0!==r){var l=e;try{r()}catch(e){Er(l,e)}}n=n.next}while(n!==t)}break;case 1:if(nr(e),t=e.stateNode,"function"==typeof t.componentWillUnmount)try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Er(e,t)}break;case 5:nr(e);break;case 4:ur(e)}}function or(e){return 5===e.tag||3===e.tag||4===e.tag}function ar(e){e:{for(var t=e.return;null!==t;){if(or(t)){var n=t;break e}t=t.return}l("160"),n=void 0}var r=t=void 0;switch(n.tag){case 5:t=n.stateNode,r=!1;break;case 3:case 4:t=n.stateNode.containerInfo,r=!0;break;default:l("161")}16&n.effectTag&&(it(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||or(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var i=e;;){if(5===i.tag||6===i.tag)if(n)if(r){var o=t,a=i.stateNode,u=n;8===o.nodeType?o.parentNode.insertBefore(a,u):o.insertBefore(a,u)}else t.insertBefore(i.stateNode,n);else r?(a=t,u=i.stateNode,8===a.nodeType?(o=a.parentNode,o.insertBefore(u,a)):(o=a,o.appendChild(u)),null!==(a=a._reactRootContainer)&&void 0!==a||null!==o.onclick||(o.onclick=ft)):t.appendChild(i.stateNode);else if(4!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===e)break;for(;null===i.sibling;){if(null===i.return||i.return===e)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}function ur(e){for(var t=e,n=!1,r=void 0,i=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&l("160"),n.tag){case 5:r=n.stateNode,i=!1;break e;case 3:case 4:r=n.stateNode.containerInfo,i=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag){e:for(var o=t,a=o;;)if(ir(a),null!==a.child&&4!==a.tag)a.child.return=a,a=a.child;else{if(a===o)break;for(;null===a.sibling;){if(null===a.return||a.return===o)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}i?(o=r,a=t.stateNode,8===o.nodeType?o.parentNode.removeChild(a):o.removeChild(a)):r.removeChild(t.stateNode)}else if(4===t.tag){if(null!==t.child){r=t.stateNode.containerInfo,i=!0,t.child.return=t,t=t.child;continue}}else if(ir(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,4===t.tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function cr(e,t){switch(t.tag){case 0:case 11:case 14:case 15:rr($o,Ko,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,o=t.updateQueue;t.updateQueue=null,null!==o&&mt(n,o,i,e,r,t)}break;case 6:null===t.stateNode&&l("162"),t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 12:break;case 13:if(n=t.memoizedState,r=void 0,e=t,null===n?r=!1:(r=!0,e=t.child,0===n.timedOutAt&&(n.timedOutAt=Ir())),null!==e&&lr(e,r),null!==(n=t.updateQueue)){t.updateQueue=null;var a=t.stateNode;null===a&&(a=t.stateNode=new Fa),n.forEach(function(e){var n=Cr.bind(null,t,e);a.has(e)||(a.add(e),e.then(n,n))})}break;case 17:break;default:l("163")}}function sr(e,t,n){n=Vn(n),n.tag=Sa,n.payload={element:null};var r=t.value;return n.callback=function(){Vr(r),tr(e,t)},n}function fr(e,t,n){n=Vn(n),n.tag=Sa;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var l=t.value;n.payload=function(){return r(l)}}var i=e.stateNode;return null!==i&&"function"==typeof i.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ya?Ya=new Set([this]):Ya.add(this));var n=t.value,l=t.stack;tr(e,t),this.componentDidCatch(n,{componentStack:null!==l?l:""})}),n}function dr(e){switch(e.tag){case 1:kt(e.type)&&wt(e);var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:return nn(e),xt(e),t=e.effectTag,0!=(64&t)&&l("285"),e.effectTag=-2049&t|64,e;case 5:return ln(e),null;case 13:return t=e.effectTag,2048&t?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 4:return nn(e),null;case 10:return jn(e),null;default:return null}}function pr(){if(null!==ja)for(var e=ja.return;null!==e;){var t=e;switch(t.tag){case 1:var n=t.type.childContextTypes;null!==n&&void 0!==n&&wt(t);break;case 3:nn(t),xt(t);break;case 5:ln(t);break;case 4:nn(t);break;case 10:jn(t)}e=e.return}Aa=null,Ba=0,Ha=-1,Wa=!1,ja=null}function mr(){for(;null!==Va;){var e=Va.effectTag;if(16&e&&it(Va.stateNode,""),128&e){var t=Va.alternate;null!==t&&null!==(t=t.ref)&&("function"==typeof t?t(null):t.current=null)}switch(14&e){case 2:ar(Va),Va.effectTag&=-3;break;case 6:ar(Va),Va.effectTag&=-3,cr(Va.alternate,Va);break;case 4:cr(Va.alternate,Va);break;case 8:e=Va,ur(e),e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,null!==(e=e.alternate)&&(e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null)}Va=Va.nextEffect}}function hr(){for(;null!==Va;){if(256&Va.effectTag)e:{var e=Va.alternate,t=Va;switch(t.tag){case 0:case 11:case 15:rr(Qo,Vo,t);break e;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?n:Vt(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break e;case 3:case 5:case 6:case 4:case 17:break e;default:l("163")}}Va=Va.nextEffect}}function yr(e,t){for(;null!==Va;){var n=Va.effectTag;if(36&n){var r=Va.alternate,i=Va,o=t;switch(i.tag){case 0:case 11:case 15:rr(qo,Yo,i);break;case 1:var a=i.stateNode;if(4&i.effectTag)if(null===r)a.componentDidMount();else{var u=i.elementType===i.type?r.memoizedProps:Vt(i.type,r.memoizedProps);a.componentDidUpdate(u,r.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}r=i.updateQueue,null!==r&&Gn(i,r,a,o);break;case 3:if(null!==(r=i.updateQueue)){if(a=null,null!==i.child)switch(i.child.tag){case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}Gn(i,r,a,o)}break;case 5:o=i.stateNode,null===r&&4&i.effectTag&&dt(i.type,i.memoizedProps)&&o.focus();break;case 6:case 4:case 12:case 13:case 17:break;default:l("163")}}128&n&&null!==(i=Va.ref)&&(o=Va.stateNode,"function"==typeof i?i(o):i.current=o),512&n&&($a=e),Va=Va.nextEffect}}function vr(e,t){qa=Ka=$a=null;var n=eu;eu=!0;do{if(512&t.effectTag){var r=!1,l=void 0;try{var i=t;rr(Go,Vo,i),rr(Vo,Xo,i)}catch(e){r=!0,l=e}r&&Er(t,l)}t=t.nextEffect}while(null!==t);eu=n,n=e.expirationTime,0!==n&&zr(e,n),ou||eu||Ar(1073741823,!1)}function gr(){null!==Ka&&Co(Ka),null!==qa&&qa()}function br(e,t){Qa=Ua=!0,e.current===t&&l("177");var n=e.pendingCommitExpirationTime;0===n&&l("261"),e.pendingCommitExpirationTime=0;var r=t.expirationTime,i=t.childExpirationTime;for(At(e,i>r?i:r),za.current=null,r=void 0,1<t.effectTag?null!==t.lastEffect?(t.lastEffect.nextEffect=t,r=t.firstEffect):r=t:r=t.firstEffect,wo=ro,xo=Ke(),ro=!1,Va=r;null!==Va;){i=!1;var o=void 0;try{hr()}catch(e){i=!0,o=e}i&&(null===Va&&l("178"),Er(Va,o),null!==Va&&(Va=Va.nextEffect))}for(Va=r;null!==Va;){i=!1,o=void 0;try{mr()}catch(e){i=!0,o=e}i&&(null===Va&&l("178"),Er(Va,o),null!==Va&&(Va=Va.nextEffect))}for(qe(xo),xo=null,ro=!!wo,wo=null,e.current=t,Va=r;null!==Va;){i=!1,o=void 0;try{yr(e,n)}catch(e){i=!0,o=e}i&&(null===Va&&l("178"),Er(Va,o),null!==Va&&(Va=Va.nextEffect))}if(null!==r&&null!==$a){var a=vr.bind(null,e,r);Ka=ul.unstable_runWithPriority(ul.unstable_NormalPriority,function(){return _o(a)}),qa=a}Ua=Qa=!1,"function"==typeof Fo&&Fo(t.stateNode),n=t.expirationTime,t=t.childExpirationTime,t=t>n?t:n,0===t&&(Ya=null),Rr(e,t)}function kr(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){ja=e;e:{var i=t;t=e;var o=Ba,a=t.pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:kt(t.type)&&wt(t);break;case 3:nn(t),xt(t),a=t.stateNode,a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),null!==i&&null!==i.child||(Tn(t),t.effectTag&=-3),Oa(t);break;case 5:ln(t);var u=en(Wo.current);if(o=t.type,null!==i&&null!=t.stateNode)Ma(i,t,o,a,u),i.ref!==t.ref&&(t.effectTag|=128);else if(a){var c=en(Bo.current);if(Tn(t)){a=t,i=a.stateNode;var s=a.type,f=a.memoizedProps,d=u;switch(i[Cl]=a,i[Sl]=f,o=void 0,u=s){case"iframe":case"object":ze("load",i);break;case"video":case"audio":for(s=0;s<zl.length;s++)ze(zl[s],i);break;case"source":ze("error",i);break;case"img":case"image":case"link":ze("error",i),ze("load",i);break;case"form":ze("reset",i),ze("submit",i);break;case"details":ze("toggle",i);break;case"input":se(i,f),ze("invalid",i),st(d,"onChange");break;case"select":i._wrapperState={wasMultiple:!!f.multiple},ze("invalid",i),st(d,"onChange");break;case"textarea":et(i,f),ze("invalid",i),st(d,"onChange")}ut(u,f),s=null;for(o in f)f.hasOwnProperty(o)&&(c=f[o],"children"===o?"string"==typeof c?i.textContent!==c&&(s=["children",c]):"number"==typeof c&&i.textContent!==""+c&&(s=["children",""+c]):gl.hasOwnProperty(o)&&null!=c&&st(d,o));switch(u){case"input":G(i),pe(i,f,!0);break;case"textarea":G(i),nt(i,f);break;case"select":case"option":break;default:"function"==typeof f.onClick&&(i.onclick=ft)}o=s,a.updateQueue=o,a=null!==o,a&&er(t)}else{f=t,d=o,i=a,s=9===u.nodeType?u:u.ownerDocument,c===ho.html&&(c=rt(d)),c===ho.html?"script"===d?(i=s.createElement("div"),i.innerHTML="<script><\/script>",s=i.removeChild(i.firstChild)):"string"==typeof i.is?s=s.createElement(d,{is:i.is}):(s=s.createElement(d),"select"===d&&(d=s,i.multiple?d.multiple=!0:i.size&&(d.size=i.size))):s=s.createElementNS(c,d),i=s,i[Cl]=f,i[Sl]=a,Na(i,t,!1,!1),d=i,s=o,f=a;var p=u,m=ct(s,f);switch(s){case"iframe":case"object":ze("load",d),u=f;break;case"video":case"audio":for(u=0;u<zl.length;u++)ze(zl[u],d);u=f;break;case"source":ze("error",d),u=f;break;case"img":case"image":case"link":ze("error",d),ze("load",d),u=f;break;case"form":ze("reset",d),ze("submit",d),u=f;break;case"details":ze("toggle",d),u=f;break;case"input":se(d,f),u=ce(d,f),ze("invalid",d),st(p,"onChange");break;case"option":u=Ge(d,f);break;case"select":d._wrapperState={wasMultiple:!!f.multiple},u=al({},f,{value:void 0}),ze("invalid",d),st(p,"onChange");break;case"textarea":et(d,f),u=Je(d,f),ze("invalid",d),st(p,"onChange");break;default:u=f}ut(s,u),c=void 0;var h=s,y=d,v=u;for(c in v)if(v.hasOwnProperty(c)){var g=v[c];"style"===c?at(y,g):"dangerouslySetInnerHTML"===c?null!=(g=g?g.__html:void 0)&&vo(y,g):"children"===c?"string"==typeof g?("textarea"!==h||""!==g)&&it(y,g):"number"==typeof g&&it(y,""+g):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(gl.hasOwnProperty(c)?null!=g&&st(p,c):null!=g&&ae(y,c,g,m))}switch(s){case"input":G(d),pe(d,f,!1);break;case"textarea":G(d),nt(d,f);break;case"option":null!=f.value&&d.setAttribute("value",""+ue(f.value));break;case"select":u=d,u.multiple=!!f.multiple,d=f.value,null!=d?Ze(u,!!f.multiple,d,!1):null!=f.defaultValue&&Ze(u,!!f.multiple,f.defaultValue,!0);break;default:"function"==typeof u.onClick&&(d.onclick=ft)}(a=dt(o,a))&&er(t),t.stateNode=i}null!==t.ref&&(t.effectTag|=128)}else null===t.stateNode&&l("166");break;case 6:i&&null!=t.stateNode?La(i,t,i.memoizedProps,a):("string"!=typeof a&&(null===t.stateNode&&l("166")),i=en(Wo.current),en(Bo.current),Tn(t)?(a=t,o=a.stateNode,i=a.memoizedProps,o[Cl]=a,(a=o.nodeValue!==i)&&er(t)):(o=t,a=(9===i.nodeType?i:i.ownerDocument).createTextNode(a),a[Cl]=t,o.stateNode=a));break;case 11:break;case 13:if(a=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=o,ja=t;break e}a=null!==a,o=null!==i&&null!==i.memoizedState,null!==i&&!a&&o&&null!==(i=i.child.sibling)&&(u=t.firstEffect,null!==u?(t.firstEffect=i,i.nextEffect=u):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8),(a||o)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:nn(t),Oa(t);break;case 10:jn(t);break;case 9:case 14:break;case 17:kt(t.type)&&wt(t);break;case 18:break;default:l("156")}ja=null}if(t=e,1===Ba||1!==t.childExpirationTime){for(a=0,o=t.child;null!==o;)i=o.expirationTime,u=o.childExpirationTime,i>a&&(a=i),u>a&&(a=u),o=o.sibling;t.childExpirationTime=a}if(null!==ja)return ja;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e))}else{if(null!==(e=dr(e,Ba)))return e.effectTag&=1023,e;null!==n&&(n.firstEffect=n.lastEffect=null,n.effectTag|=1024)}if(null!==r)return r;if(null===n)break;e=n}return null}function wr(e){var t=Dn(e.alternate,e,Ba);return e.memoizedProps=e.pendingProps,null===t&&(t=kr(e)),za.current=null,t}function xr(e,t){Ua&&l("243"),gr(),Ua=!0;var n=Ia.current;Ia.current=da;var r=e.nextExpirationTimeToWorkOn;r===Ba&&e===Aa&&null!==ja||(pr(),Aa=e,Ba=r,ja=Ft(Aa.current,null,Ba),e.pendingCommitExpirationTime=0);for(var i=!1;;){try{if(t)for(;null!==ja&&!Ur();)ja=wr(ja);else for(;null!==ja;)ja=wr(ja)}catch(t){if(Ea=xa=wa=null,cn(),null===ja)i=!0,Vr(t);else{null===ja&&l("271");var o=ja,a=o.return;if(null!==a){e:{var u=e,c=a,s=o,f=t;if(a=Ba,s.effectTag|=1024,s.firstEffect=s.lastEffect=null,null!==f&&"object"==typeof f&&"function"==typeof f.then){var d=f;f=c;var p=-1,m=-1;do{if(13===f.tag){var h=f.alternate;if(null!==h&&null!==(h=h.memoizedState)){m=10*(1073741822-h.timedOutAt);break}h=f.pendingProps.maxDuration,"number"==typeof h&&(0>=h?p=0:(-1===p||h<p)&&(p=h))}f=f.return}while(null!==f);f=c;do{if((h=13===f.tag)&&(h=void 0!==f.memoizedProps.fallback&&null===f.memoizedState),h){if(c=f.updateQueue,null===c?(c=new Set,c.add(d),f.updateQueue=c):c.add(d),0==(1&f.mode)){f.effectTag|=64,s.effectTag&=-1957,1===s.tag&&(null===s.alternate?s.tag=17:(a=Vn(1073741823),a.tag=Ca,$n(s,a))),s.expirationTime=1073741823;break e}s=u,c=a;var y=s.pingCache;null===y?(y=s.pingCache=new Ra,h=new Set,y.set(d,h)):void 0===(h=y.get(d))&&(h=new Set,y.set(d,h)),h.has(c)||(h.add(c),s=_r.bind(null,s,d,c),d.then(s,s)),-1===p?u=1073741823:(-1===m&&(m=10*(1073741822-Ht(u,a))-5e3),u=m+p),0<=u&&Ha<u&&(Ha=u),f.effectTag|=2048,f.expirationTime=a;break e}f=f.return}while(null!==f);f=Error((ee(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+te(s))}Wa=!0,f=Jn(f,s),u=c;do{switch(u.tag){case 3:u.effectTag|=2048,u.expirationTime=a,a=sr(u,f,a),Kn(u,a);break e;case 1:if(p=f,m=u.type,s=u.stateNode,0==(64&u.effectTag)&&("function"==typeof m.getDerivedStateFromError||null!==s&&"function"==typeof s.componentDidCatch&&(null===Ya||!Ya.has(s)))){u.effectTag|=2048,u.expirationTime=a,a=fr(u,p,a),Kn(u,a);break e}}u=u.return}while(null!==u)}ja=kr(o);continue}i=!0,Vr(t)}}break}if(Ua=!1,Ia.current=n,Ea=xa=wa=null,cn(),i)Aa=null,e.finishedWork=null;else if(null!==ja)e.finishedWork=null;else{if(n=e.current.alternate,null===n&&l("281"),Aa=null,Wa){if(i=e.latestPendingTime,o=e.latestSuspendedTime,a=e.latestPingedTime,0!==i&&i<r||0!==o&&o<r||0!==a&&a<r)return Bt(e,r),void Lr(e,n,r,e.expirationTime,-1);if(!e.didError&&t)return e.didError=!0,r=e.nextExpirationTimeToWorkOn=r,t=e.expirationTime=1073741823,void Lr(e,n,r,t,-1)}t&&-1!==Ha?(Bt(e,r),t=10*(1073741822-Ht(e,r)),t<Ha&&(Ha=t),t=10*(1073741822-Ir()),t=Ha-t,Lr(e,n,r,e.expirationTime,0>t?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Er(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ya||!Ya.has(r)))return e=Jn(t,e),e=fr(n,e,1073741823),$n(n,e),void Pr(n,1073741823);break;case 3:return e=Jn(t,e),e=sr(n,e,1073741823),$n(n,e),void Pr(n,1073741823)}n=n.return}3===e.tag&&(n=Jn(t,e),n=sr(e,n,1073741823),$n(e,n),Pr(e,1073741823))}function Tr(e,t){var n=ul.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(Ua&&!Qa)r=Ba;else{switch(n){case ul.unstable_ImmediatePriority:r=1073741823;break;case ul.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case ul.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case ul.unstable_LowPriority:case ul.unstable_IdlePriority:r=1;break;default:l("313")}null!==Aa&&r===Ba&&--r}return n===ul.unstable_UserBlockingPriority&&(0===ru||r<ru)&&(ru=r),r}function _r(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),null!==Aa&&Ba===n?Aa=null:(t=e.earliestSuspendedTime,r=e.latestSuspendedTime,0!==t&&n<=t&&n>=r&&(e.didError=!1,t=e.latestPingedTime,(0===t||t>n)&&(e.latestPingedTime=n),Wt(n,e),0!==(n=e.expirationTime)&&zr(e,n)))}function Cr(e,t){var n=e.stateNode;null!==n&&n.delete(t),t=Ir(),t=Tr(t,e),null!==(e=Sr(e,t))&&(jt(e,t),0!==(t=e.expirationTime)&&zr(e,t))}function Sr(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,l=null;if(null===r&&3===e.tag)l=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){l=r.stateNode;break}r=r.return}return l}function Pr(e,t){null!==(e=Sr(e,t))&&(!Ua&&0!==Ba&&t>Ba&&pr(),jt(e,t),Ua&&!Qa&&Aa===e||zr(e,e.expirationTime),pu>du&&(pu=0,l("185")))}function Nr(e,t,n,r,l){return ul.unstable_runWithPriority(ul.unstable_ImmediatePriority,function(){return e(t,n,r,l)})}function Or(){su=1073741822-((ul.unstable_now()-cu)/10|0)}function Mr(e,t){if(0!==Za){if(t<Za)return;null!==Ja&&ul.unstable_cancelCallback(Ja)}Za=t,e=ul.unstable_now()-cu,Ja=ul.unstable_scheduleCallback(jr,{timeout:10*(1073741822-t)-e})}function Lr(e,t,n,r,l){e.expirationTime=r,0!==l||Ur()?0<l&&(e.timeoutHandle=Eo(Fr.bind(null,e,t,n),l)):(e.pendingCommitExpirationTime=n,e.finishedWork=t)}function Fr(e,t,n){e.pendingCommitExpirationTime=n,e.finishedWork=t,Or(),fu=su,Br(e,n)}function Rr(e,t){e.expirationTime=t,e.finishedWork=null}function Ir(){return eu?fu:(Dr(),0!==nu&&1!==nu||(Or(),fu=su),fu)}function zr(e,t){null===e.nextScheduledRoot?(e.expirationTime=t,null===Ga?(Xa=Ga=e,e.nextScheduledRoot=e):(Ga=Ga.nextScheduledRoot=e,Ga.nextScheduledRoot=Xa)):t>e.expirationTime&&(e.expirationTime=t),eu||(ou?au&&(tu=e,nu=1073741823,Hr(e,1073741823,!1)):1073741823===t?Ar(1073741823,!1):Mr(e,t))}function Dr(){var e=0,t=null;if(null!==Ga)for(var n=Ga,r=Xa;null!==r;){var i=r.expirationTime;if(0===i){if((null===n||null===Ga)&&l("244"),r===r.nextScheduledRoot){Xa=Ga=r.nextScheduledRoot=null;break}if(r===Xa)Xa=i=r.nextScheduledRoot,Ga.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===Ga){Ga=n,Ga.nextScheduledRoot=Xa,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===Ga)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}tu=t,nu=e}function Ur(){return!!hu||!!ul.unstable_shouldYield()&&(hu=!0)}function jr(){try{if(!Ur()&&null!==Xa){Or();var e=Xa;do{var t=e.expirationTime;0!==t&&su<=t&&(e.nextExpirationTimeToWorkOn=su),e=e.nextScheduledRoot}while(e!==Xa)}Ar(0,!0)}finally{hu=!1}}function Ar(e,t){if(Dr(),t)for(Or(),fu=su;null!==tu&&0!==nu&&e<=nu&&!(hu&&su>nu);)Hr(tu,nu,su>nu),Dr(),Or(),fu=su;else for(;null!==tu&&0!==nu&&e<=nu;)Hr(tu,nu,!1),Dr();if(t&&(Za=0,Ja=null),0!==nu&&Mr(tu,nu),pu=0,mu=null,null!==uu)for(e=uu,uu=null,t=0;t<e.length;t++){var n=e[t];try{n._onComplete()}catch(e){lu||(lu=!0,iu=e)}}if(lu)throw e=iu,iu=null,lu=!1,e}function Br(e,t){eu&&l("253"),tu=e,nu=t,Hr(e,t,!1),Ar(1073741823,!1)}function Hr(e,t,n){if(eu&&l("245"),eu=!0,n){var r=e.finishedWork;null!==r?Wr(e,r,t):(e.finishedWork=null,r=e.timeoutHandle,-1!==r&&(e.timeoutHandle=-1,To(r)),xr(e,n),null!==(r=e.finishedWork)&&(Ur()?e.finishedWork=r:Wr(e,r,t)))}else r=e.finishedWork,null!==r?Wr(e,r,t):(e.finishedWork=null,r=e.timeoutHandle,-1!==r&&(e.timeoutHandle=-1,To(r)),xr(e,n),null!==(r=e.finishedWork)&&Wr(e,r,t));eu=!1}function Wr(e,t,n){var r=e.firstBatch;if(null!==r&&r._expirationTime>=n&&(null===uu?uu=[r]:uu.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===mu?pu++:(mu=e,pu=0),ul.unstable_runWithPriority(ul.unstable_ImmediatePriority,function(){br(e,t)})}function Vr(e){null===tu&&l("246"),tu.expirationTime=0,lu||(lu=!0,iu=e)}function Qr(e,t){var n=ou;ou=!0;try{return e(t)}finally{(ou=n)||eu||Ar(1073741823,!1)}}function $r(e,t){if(ou&&!au){au=!0;try{return e(t)}finally{au=!1}}return e(t)}function Kr(e,t,n){ou||eu||0===ru||(Ar(ru,!1),ru=0);var r=ou;ou=!0;try{return ul.unstable_runWithPriority(ul.unstable_UserBlockingPriority,function(){return e(t,n)})}finally{(ou=r)||eu||Ar(1073741823,!1)}}function qr(e,t,n,r,i){var o=t.current;e:if(n){n=n._reactInternalFiber;t:{2===Ne(n)&&1===n.tag||l("170");var a=n;do{switch(a.tag){case 3:a=a.stateNode.context;break t;case 1:if(kt(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break t}}a=a.return}while(null!==a);l("171"),a=void 0}if(1===n.tag){var u=n.type;if(kt(u)){n=Tt(n,u,a);break e}}n=a}else n=No;return null===t.context?t.context=n:t.pendingContext=n,t=i,i=Vn(r),i.payload={element:e},t=void 0===t?null:t,null!==t&&(i.callback=t),gr(),$n(o,i),Pr(o,r),r}function Yr(e,t,n,r){var l=t.current;return l=Tr(Ir(),l),qr(e,t,n,l,r)}function Xr(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Gr(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ai,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Zr(e){var t=1073741822-25*(1+((1073741822-Ir()+500)/25|0));t>=Da&&(t=Da-1),this._expirationTime=Da=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function Jr(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function el(e,t,n){t=Ot(3,null,null,t?3:0),e={current:t,containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},this._internalRoot=t.stateNode=e}function tl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function nl(e,t){if(t||(t=e?9===e.nodeType?e.documentElement:e.firstChild:null,t=!(!t||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new el(e,!1,t)}function rl(e,t,n,r,l){var i=n._reactRootContainer;if(i){if("function"==typeof l){var o=l;l=function(){var e=Xr(i._internalRoot);o.call(e)}}null!=e?i.legacy_renderSubtreeIntoContainer(e,t,l):i.render(t,l)}else{if(i=n._reactRootContainer=nl(n,r),"function"==typeof l){var a=l;l=function(){var e=Xr(i._internalRoot);a.call(e)}}$r(function(){null!=e?i.legacy_renderSubtreeIntoContainer(e,t,l):i.render(t,l)})}return Xr(i._internalRoot)}function ll(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return tl(t)||l("200"),Gr(e,t,null,n)}function il(e,t){return tl(e)||l("299","unstable_createRoot"),new el(e,!0,null!=t&&!0===t.hydrate)}/** @license React v16.8.6
|
15 |
* react-dom.production.min.js
|
16 |
*
|
17 |
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
18 |
*
|
19 |
* This source code is licensed under the MIT license found in the
|
20 |
* LICENSE file in the root directory of this source tree.
|
21 |
*/
|
22 |
+
var ol=n(0),al=n(1),ul=n(6);ol||l("227");var cl=!1,sl=null,fl=!1,dl=null,pl={onError:function(e){cl=!0,sl=e}},ml=null,hl={},yl=[],vl={},gl={},bl={},kl=null,wl=null,xl=null,El=null,Tl={injectEventPluginOrder:function(e){ml&&l("101"),ml=Array.prototype.slice.call(e),u()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];hl.hasOwnProperty(t)&&hl[t]===r||(hl[t]&&l("102",t),hl[t]=r,n=!0)}n&&u()}},_l=Math.random().toString(36).slice(2),Cl="__reactInternalInstance$"+_l,Sl="__reactEventHandlers$"+_l,Pl=!("undefined"==typeof window||!window.document||!window.document.createElement),Nl={animationend:C("Animation","AnimationEnd"),animationiteration:C("Animation","AnimationIteration"),animationstart:C("Animation","AnimationStart"),transitionend:C("Transition","TransitionEnd")},Ol={},Ml={};Pl&&(Ml=document.createElement("div").style,"AnimationEvent"in window||(delete Nl.animationend.animation,delete Nl.animationiteration.animation,delete Nl.animationstart.animation),"TransitionEvent"in window||delete Nl.transitionend.transition);var Ll=S("animationend"),Fl=S("animationiteration"),Rl=S("animationstart"),Il=S("transitionend"),zl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dl=null,Ul=null,jl=null;al(M.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=N)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=N)},persist:function(){this.isPersistent=N},isPersistent:O,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=O,this._dispatchInstances=this._dispatchListeners=null}}),M.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},M.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var l=new t;return al(l,n.prototype),n.prototype=l,n.prototype.constructor=n,n.Interface=al({},r.Interface,e),n.extend=r.extend,R(n),n},R(M);var Al=M.extend({data:null}),Bl=M.extend({data:null}),Hl=[9,13,27,32],Wl=Pl&&"CompositionEvent"in window,Vl=null;Pl&&"documentMode"in document&&(Vl=document.documentMode);var Ql=Pl&&"TextEvent"in window&&!Vl,$l=Pl&&(!Wl||Vl&&8<Vl&&11>=Vl),Kl=String.fromCharCode(32),ql={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Yl=!1,Xl=!1,Gl={eventTypes:ql,extractEvents:function(e,t,n,r){var l=void 0,i=void 0;if(Wl)e:{switch(e){case"compositionstart":l=ql.compositionStart;break e;case"compositionend":l=ql.compositionEnd;break e;case"compositionupdate":l=ql.compositionUpdate;break e}l=void 0}else Xl?I(e,n)&&(l=ql.compositionEnd):"keydown"===e&&229===n.keyCode&&(l=ql.compositionStart);return l?($l&&"ko"!==n.locale&&(Xl||l!==ql.compositionStart?l===ql.compositionEnd&&Xl&&(i=P()):(Dl=r,Ul="value"in Dl?Dl.value:Dl.textContent,Xl=!0)),l=Al.getPooled(l,t,n,r),i?l.data=i:null!==(i=z(n))&&(l.data=i),_(l),i=l):i=null,(e=Ql?D(e,n):U(e,n))?(t=Bl.getPooled(ql.beforeInput,t,n,r),t.data=e,_(t)):t=null,null===i?t:null===t?i:[i,t]}},Zl=null,Jl=null,ei=null,ti=!1,ni={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},ri=ol.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;ri.hasOwnProperty("ReactCurrentDispatcher")||(ri.ReactCurrentDispatcher={current:null});var li=/^(.*)[\\\/]/,ii="function"==typeof Symbol&&Symbol.for,oi=ii?Symbol.for("react.element"):60103,ai=ii?Symbol.for("react.portal"):60106,ui=ii?Symbol.for("react.fragment"):60107,ci=ii?Symbol.for("react.strict_mode"):60108,si=ii?Symbol.for("react.profiler"):60114,fi=ii?Symbol.for("react.provider"):60109,di=ii?Symbol.for("react.context"):60110,pi=ii?Symbol.for("react.concurrent_mode"):60111,mi=ii?Symbol.for("react.forward_ref"):60112,hi=ii?Symbol.for("react.suspense"):60113,yi=ii?Symbol.for("react.memo"):60115,vi=ii?Symbol.for("react.lazy"):60116,gi="function"==typeof Symbol&&Symbol.iterator,bi=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ki=Object.prototype.hasOwnProperty,wi={},xi={},Ei={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ei[e]=new ie(e,0,!1,e,null)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ei[t]=new ie(t,1,!1,e[1],null)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ei[e]=new ie(e,2,!1,e.toLowerCase(),null)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ei[e]=new ie(e,2,!1,e,null)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ei[e]=new ie(e,3,!1,e.toLowerCase(),null)}),["checked","multiple","muted","selected"].forEach(function(e){Ei[e]=new ie(e,3,!0,e,null)}),["capture","download"].forEach(function(e){Ei[e]=new ie(e,4,!1,e,null)}),["cols","rows","size","span"].forEach(function(e){Ei[e]=new ie(e,6,!1,e,null)}),["rowSpan","start"].forEach(function(e){Ei[e]=new ie(e,5,!1,e.toLowerCase(),null)});var Ti=/[\-:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ti,oe);Ei[t]=new ie(t,1,!1,e,null)}),"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ti,oe);Ei[t]=new ie(t,1,!1,e,"http://www.w3.org/1999/xlink")}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ti,oe);Ei[t]=new ie(t,1,!1,e,"http://www.w3.org/XML/1998/namespace")}),["tabIndex","crossOrigin"].forEach(function(e){Ei[e]=new ie(e,1,!1,e.toLowerCase(),null)});var _i={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},Ci=null,Si=null,Pi=!1;Pl&&(Pi=q("input")&&(!document.documentMode||9<document.documentMode));var Ni={eventTypes:_i,_isInputEventSupported:Pi,extractEvents:function(e,t,n,r){var l=t?g(t):window,i=void 0,o=void 0,a=l.nodeName&&l.nodeName.toLowerCase();if("select"===a||"input"===a&&"file"===l.type?i=ge:$(l)?Pi?i=Te:(i=xe,o=we):(a=l.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(i=Ee),i&&(i=i(e,t)))return he(i,n,r);o&&o(e,l,t),"blur"===e&&(e=l._wrapperState)&&e.controlled&&"number"===l.type&&me(l,"number",l.value)}},Oi=M.extend({view:null,detail:null}),Mi={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},Li=0,Fi=0,Ri=!1,Ii=!1,zi=Oi.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Ce,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Li;return Li=e.screenX,Ri?"mousemove"===e.type?e.screenX-t:0:(Ri=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Fi;return Fi=e.screenY,Ii?"mousemove"===e.type?e.screenY-t:0:(Ii=!0,0)}}),Di=zi.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Ui={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},ji={eventTypes:Ui,extractEvents:function(e,t,n,r){var l="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(l&&(n.relatedTarget||n.fromElement)||!i&&!l)return null;if(l=r.window===r?r:(l=r.ownerDocument)?l.defaultView||l.parentWindow:window,i?(i=t,t=(t=n.relatedTarget||n.toElement)?y(t):null):i=null,i===t)return null;var o=void 0,a=void 0,u=void 0,c=void 0;"mouseout"===e||"mouseover"===e?(o=zi,a=Ui.mouseLeave,u=Ui.mouseEnter,c="mouse"):"pointerout"!==e&&"pointerover"!==e||(o=Di,a=Ui.pointerLeave,u=Ui.pointerEnter,c="pointer");var s=null==i?l:g(i);if(l=null==t?l:g(t),e=o.getPooled(a,i,n,r),e.type=c+"leave",e.target=s,e.relatedTarget=l,n=o.getPooled(u,t,n,r),n.type=c+"enter",n.target=l,n.relatedTarget=s,r=t,i&&r)e:{for(t=i,l=r,c=0,o=t;o;o=k(o))c++;for(o=0,u=l;u;u=k(u))o++;for(;0<c-o;)t=k(t),c--;for(;0<o-c;)l=k(l),o--;for(;c--;){if(t===l||t===l.alternate)break e;t=k(t),l=k(l)}t=null}else t=null;for(l=t,t=[];i&&i!==l&&(null===(c=i.alternate)||c!==l);)t.push(i),i=k(i);for(i=[];r&&r!==l&&(null===(c=r.alternate)||c!==l);)i.push(r),r=k(r);for(r=0;r<t.length;r++)E(t[r],"bubbled",e);for(r=i.length;0<r--;)E(i[r],"captured",n);return[e,n]}},Ai=Object.prototype.hasOwnProperty,Bi=M.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Hi=M.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Wi=Oi.extend({relatedTarget:null}),Vi={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Qi={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},$i=Oi.extend({key:function(e){if(e.key){var t=Vi[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?(e=Fe(e),13===e?"Enter":String.fromCharCode(e)):"keydown"===e.type||"keyup"===e.type?Qi[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Ce,charCode:function(e){return"keypress"===e.type?Fe(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Fe(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ki=zi.extend({dataTransfer:null}),qi=Oi.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Ce}),Yi=M.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),Xi=zi.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),Gi=[["abort","abort"],[Ll,"animationEnd"],[Fl,"animationIteration"],[Rl,"animationStart"],["canplay","canPlay"],["canplaythrough","canPlayThrough"],["drag","drag"],["dragenter","dragEnter"],["dragexit","dragExit"],["dragleave","dragLeave"],["dragover","dragOver"],["durationchange","durationChange"],["emptied","emptied"],["encrypted","encrypted"],["ended","ended"],["error","error"],["gotpointercapture","gotPointerCapture"],["load","load"],["loadeddata","loadedData"],["loadedmetadata","loadedMetadata"],["loadstart","loadStart"],["lostpointercapture","lostPointerCapture"],["mousemove","mouseMove"],["mouseout","mouseOut"],["mouseover","mouseOver"],["playing","playing"],["pointermove","pointerMove"],["pointerout","pointerOut"],["pointerover","pointerOver"],["progress","progress"],["scroll","scroll"],["seeking","seeking"],["stalled","stalled"],["suspend","suspend"],["timeupdate","timeUpdate"],["toggle","toggle"],["touchmove","touchMove"],[Il,"transitionEnd"],["waiting","waiting"],["wheel","wheel"]],Zi={},Ji={};[["blur","blur"],["cancel","cancel"],["click","click"],["close","close"],["contextmenu","contextMenu"],["copy","copy"],["cut","cut"],["auxclick","auxClick"],["dblclick","doubleClick"],["dragend","dragEnd"],["dragstart","dragStart"],["drop","drop"],["focus","focus"],["input","input"],["invalid","invalid"],["keydown","keyDown"],["keypress","keyPress"],["keyup","keyUp"],["mousedown","mouseDown"],["mouseup","mouseUp"],["paste","paste"],["pause","pause"],["play","play"],["pointercancel","pointerCancel"],["pointerdown","pointerDown"],["pointerup","pointerUp"],["ratechange","rateChange"],["reset","reset"],["seeked","seeked"],["submit","submit"],["touchcancel","touchCancel"],["touchend","touchEnd"],["touchstart","touchStart"],["volumechange","volumeChange"]].forEach(function(e){Re(e,!0)}),Gi.forEach(function(e){Re(e,!1)});var eo={eventTypes:Zi,isInteractiveTopLevelEventType:function(e){return void 0!==(e=Ji[e])&&!0===e.isInteractive},extractEvents:function(e,t,n,r){var l=Ji[e];if(!l)return null;switch(e){case"keypress":if(0===Fe(n))return null;case"keydown":case"keyup":e=$i;break;case"blur":case"focus":e=Wi;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=zi;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=Ki;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=qi;break;case Ll:case Fl:case Rl:e=Bi;break;case Il:e=Yi;break;case"scroll":e=Oi;break;case"wheel":e=Xi;break;case"copy":case"cut":case"paste":e=Hi;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Di;break;default:e=M}return t=e.getPooled(l,t,n,r),_(t),t}},to=eo.isInteractiveTopLevelEventType,no=[],ro=!0,lo={},io=0,oo="_reactListenersID"+(""+Math.random()).slice(2),ao=Pl&&"documentMode"in document&&11>=document.documentMode,uo={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},co=null,so=null,fo=null,po=!1,mo={eventTypes:uo,extractEvents:function(e,t,n,r){var l,i=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(l=!i)){e:{i=Ae(i),l=bl.onSelect;for(var o=0;o<l.length;o++){var a=l[o];if(!i.hasOwnProperty(a)||!i[a]){i=!1;break e}}i=!0}l=!i}if(l)return null;switch(i=t?g(t):window,e){case"focus":($(i)||"true"===i.contentEditable)&&(co=i,so=t,fo=null);break;case"blur":fo=so=co=null;break;case"mousedown":po=!0;break;case"contextmenu":case"mouseup":case"dragend":return po=!1,Ye(n,r);case"selectionchange":if(ao)break;case"keydown":case"keyup":return Ye(n,r)}return null}};Tl.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),kl=b,wl=v,xl=g,Tl.injectEventPluginsByName({SimpleEventPlugin:eo,EnterLeaveEventPlugin:ji,ChangeEventPlugin:Ni,SelectEventPlugin:mo,BeforeInputEventPlugin:Gl});var ho={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},yo=void 0,vo=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,l){MSApp.execUnsafeLocalFunction(function(){return e(t,n)})}:e}(function(e,t){if(e.namespaceURI!==ho.svg||"innerHTML"in e)e.innerHTML=t;else{for(yo=yo||document.createElement("div"),yo.innerHTML="<svg>"+t+"</svg>",t=yo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),go={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bo=["Webkit","ms","Moz","O"];Object.keys(go).forEach(function(e){bo.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),go[t]=go[e]})});var ko=al({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),wo=null,xo=null,Eo="function"==typeof setTimeout?setTimeout:void 0,To="function"==typeof clearTimeout?clearTimeout:void 0,_o=ul.unstable_scheduleCallback,Co=ul.unstable_cancelCallback;new Set;var So=[],Po=-1,No={},Oo={current:No},Mo={current:!1},Lo=No,Fo=null,Ro=null,Io=(new ol.Component).refs,zo={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===Ne(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=Ir();r=Tr(r,e);var l=Vn(r);l.payload=t,void 0!==n&&null!==n&&(l.callback=n),gr(),$n(e,l),Pr(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=Ir();r=Tr(r,e);var l=Vn(r);l.tag=_a,l.payload=t,void 0!==n&&null!==n&&(l.callback=n),gr(),$n(e,l),Pr(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=Ir();n=Tr(n,e);var r=Vn(n);r.tag=Ca,void 0!==t&&null!==t&&(r.callback=t),gr(),$n(e,r),Pr(e,n)}},Do=Array.isArray,Uo=Jt(!0),jo=Jt(!1),Ao={},Bo={current:Ao},Ho={current:Ao},Wo={current:Ao},Vo=0,Qo=2,$o=4,Ko=8,qo=16,Yo=32,Xo=64,Go=128,Zo=ri.ReactCurrentDispatcher,Jo=0,ea=null,ta=null,na=null,ra=null,la=null,ia=null,oa=0,aa=null,ua=0,ca=!1,sa=null,fa=0,da={readContext:Bn,useCallback:on,useContext:on,useEffect:on,useImperativeHandle:on,useLayoutEffect:on,useMemo:on,useReducer:on,useRef:on,useState:on,useDebugValue:on},pa={readContext:Bn,useCallback:function(e,t){return sn().memoizedState=[e,void 0===t?null:t],e},useContext:Bn,useEffect:function(e,t){return hn(516,Go|Xo,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,hn(4,$o|Yo,vn.bind(null,t,e),n)},useLayoutEffect:function(e,t){return hn(4,$o|Yo,e,t)},useMemo:function(e,t){var n=sn();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=sn();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},e=e.dispatch=bn.bind(null,ea,e),[r.memoizedState,e]},useRef:function(e){var t=sn();return e={current:e},t.memoizedState=e},useState:function(e){var t=sn();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=t.queue={last:null,dispatch:null,lastRenderedReducer:dn,lastRenderedState:e},e=e.dispatch=bn.bind(null,ea,e),[t.memoizedState,e]},useDebugValue:gn},ma={readContext:Bn,useCallback:function(e,t){var n=fn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&an(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Bn,useEffect:function(e,t){return yn(516,Go|Xo,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,yn(4,$o|Yo,vn.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yn(4,$o|Yo,e,t)},useMemo:function(e,t){var n=fn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&an(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:pn,useRef:function(){return fn().memoizedState},useState:function(e){return pn(dn)},useDebugValue:gn},ha=null,ya=null,va=!1,ga=ri.ReactCurrentOwner,ba=!1,ka={current:null},wa=null,xa=null,Ea=null,Ta=0,_a=1,Ca=2,Sa=3,Pa=!1,Na=void 0,Oa=void 0,Ma=void 0,La=void 0;Na=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Oa=function(){},Ma=function(e,t,n,r,l){var i=e.memoizedProps;if(i!==r){var o=t.stateNode;switch(en(Bo.current),e=null,n){case"input":i=ce(o,i),r=ce(o,r),e=[];break;case"option":i=Ge(o,i),r=Ge(o,r),e=[];break;case"select":i=al({},i,{value:void 0}),r=al({},r,{value:void 0}),e=[];break;case"textarea":i=Je(o,i),r=Je(o,r),e=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(o.onclick=ft)}ut(n,r),o=n=void 0;var a=null;for(n in i)if(!r.hasOwnProperty(n)&&i.hasOwnProperty(n)&&null!=i[n])if("style"===n){var u=i[n];for(o in u)u.hasOwnProperty(o)&&(a||(a={}),a[o]="")}else"dangerouslySetInnerHTML"!==n&&"children"!==n&&"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&"autoFocus"!==n&&(gl.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var c=r[n];if(u=null!=i?i[n]:void 0,r.hasOwnProperty(n)&&c!==u&&(null!=c||null!=u))if("style"===n)if(u){for(o in u)!u.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(a||(a={}),a[o]="");for(o in c)c.hasOwnProperty(o)&&u[o]!==c[o]&&(a||(a={}),a[o]=c[o])}else a||(e||(e=[]),e.push(n,a)),a=c;else"dangerouslySetInnerHTML"===n?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(e=e||[]).push(n,""+c)):"children"===n?u===c||"string"!=typeof c&&"number"!=typeof c||(e=e||[]).push(n,""+c):"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&(gl.hasOwnProperty(n)?(null!=c&&st(l,n),e||u===c||(e=[])):(e=e||[]).push(n,c))}a&&(e=e||[]).push("style",a),l=e,(t.updateQueue=l)&&er(t)}},La=function(e,t,n,r){n!==r&&er(t)};var Fa="function"==typeof WeakSet?WeakSet:Set,Ra="function"==typeof WeakMap?WeakMap:Map,Ia=ri.ReactCurrentDispatcher,za=ri.ReactCurrentOwner,Da=1073741822,Ua=!1,ja=null,Aa=null,Ba=0,Ha=-1,Wa=!1,Va=null,Qa=!1,$a=null,Ka=null,qa=null,Ya=null,Xa=null,Ga=null,Za=0,Ja=void 0,eu=!1,tu=null,nu=0,ru=0,lu=!1,iu=null,ou=!1,au=!1,uu=null,cu=ul.unstable_now(),su=1073741822-(cu/10|0),fu=su,du=50,pu=0,mu=null,hu=!1;Zl=function(e,t,n){switch(t){case"input":if(de(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=b(r);i||l("90"),Z(r),de(r,i)}}}break;case"textarea":tt(e,n);break;case"select":null!=(t=n.value)&&Ze(e,!!n.multiple,t,!1)}},Zr.prototype.render=function(e){this._defer||l("250"),this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,r=new Jr;return qr(e,t,null,n,r._onCommit),r},Zr.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Zr.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(this._defer&&null!==t||l("251"),this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var r=null,i=t;i!==this;)r=i,i=i._next;null===r&&l("251"),r._next=i._next,this._next=t,e.firstBatch=this}this._defer=!1,Br(e,n),t=this._next,this._next=null,t=e.firstBatch=t,null!==t&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},Zr.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},Jr.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Jr.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];"function"!=typeof n&&l("191",n),n()}}},el.prototype.render=function(e,t){var n=this._internalRoot,r=new Jr;return t=void 0===t?null:t,null!==t&&r.then(t),Yr(e,n,null,r._onCommit),r},el.prototype.unmount=function(e){var t=this._internalRoot,n=new Jr;return e=void 0===e?null:e,null!==e&&n.then(e),Yr(null,t,null,n._onCommit),n},el.prototype.legacy_renderSubtreeIntoContainer=function(e,t,n){var r=this._internalRoot,l=new Jr;return n=void 0===n?null:n,null!==n&&l.then(n),Yr(t,r,e,l._onCommit),l},el.prototype.createBatch=function(){var e=new Zr(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime>=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},H=Qr,W=Kr,V=function(){eu||0===ru||(Ar(ru,!1),ru=0)};var yu={createPortal:ll,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?l("188"):l("268",Object.keys(e))),e=Le(t),e=null===e?null:e.stateNode},hydrate:function(e,t,n){return tl(t)||l("200"),rl(null,e,t,!0,n)},render:function(e,t,n){return tl(t)||l("200"),rl(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){return tl(n)||l("200"),(null==e||void 0===e._reactInternalFiber)&&l("38"),rl(e,t,n,!1,r)},unmountComponentAtNode:function(e){return tl(e)||l("40"),!!e._reactRootContainer&&($r(function(){rl(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return ll.apply(void 0,arguments)},unstable_batchedUpdates:Qr,unstable_interactiveUpdates:Kr,flushSync:function(e,t){eu&&l("187");var n=ou;ou=!0;try{return Nr(e,t)}finally{ou=n,Ar(1073741823,!1)}},unstable_createRoot:il,unstable_flushControlled:function(e){var t=ou;ou=!0;try{Nr(e)}finally{(ou=t)||eu||Ar(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[v,g,b,Tl.injectEventPluginsByName,vl,_,function(e){d(e,T)},A,B,je,h]}};!function(e){var t=e.findFiberByHostInstance;Pt(al({},e,{overrideProps:null,currentDispatcherRef:ri.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Le(e),null===e?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}({findFiberByHostInstance:y,bundleType:0,version:"16.8.6",rendererPackageName:"react-dom"});var vu={default:yu},gu=vu&&yu||vu;e.exports=gu.default||gu},function(e,t,n){"use strict";e.exports=n(7)},function(e,t,n){"use strict";(function(e){function n(){if(!m){var e=c.expirationTime;h?E():h=!0,x(i,e)}}function r(){var e=c,t=c.next;if(c===t)c=null;else{var r=c.previous;c=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var l=f,i=p;f=e,p=t;try{var o=r()}finally{f=l,p=i}if("function"==typeof o)if(o={callback:o,priorityLevel:e,expirationTime:t,next:null,previous:null},null===c)c=o.next=o.previous=o;else{r=null,e=c;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==c);null===r?r=c:r===c&&(c=o,n()),t=r.previous,t.next=r.previous=o,o.next=r,o.previous=t}}function l(){if(-1===d&&null!==c&&1===c.priorityLevel){m=!0;try{do{r()}while(null!==c&&1===c.priorityLevel)}finally{m=!1,null!==c?n():h=!1}}}function i(e){m=!0;var i=s;s=e;try{if(e)for(;null!==c;){var o=t.unstable_now();if(!(c.expirationTime<=o))break;do{r()}while(null!==c&&c.expirationTime<=o)}else if(null!==c)do{r()}while(null!==c&&!T())}finally{m=!1,s=i,null!==c?n():h=!1,l()}}function o(e){a=b(function(t){g(u),e(t)}),u=v(function(){k(a),e(t.unstable_now())},100)}/** @license React v0.13.6
|
23 |
+
* scheduler.production.min.js
|
24 |
+
*
|
25 |
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
26 |
+
*
|
27 |
+
* This source code is licensed under the MIT license found in the
|
28 |
+
* LICENSE file in the root directory of this source tree.
|
29 |
+
*/
|
30 |
+
Object.defineProperty(t,"__esModule",{value:!0});var a,u,c=null,s=!1,f=3,d=-1,p=-1,m=!1,h=!1,y=Date,v="function"==typeof setTimeout?setTimeout:void 0,g="function"==typeof clearTimeout?clearTimeout:void 0,b="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,k="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if("object"==typeof performance&&"function"==typeof performance.now){var w=performance;t.unstable_now=function(){return w.now()}}else t.unstable_now=function(){return y.now()};var x,E,T,_=null;if("undefined"!=typeof window?_=window:void 0!==e&&(_=e),_&&_._schedMock){var C=_._schedMock;x=C[0],E=C[1],T=C[2],t.unstable_now=C[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var S=null,P=function(e){if(null!==S)try{S(e)}finally{S=null}};x=function(e){null!==S?setTimeout(x,0,e):(S=e,setTimeout(P,0,!1))},E=function(){S=null},T=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof b&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof k&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var N=null,O=!1,M=-1,L=!1,F=!1,R=0,I=33,z=33;T=function(){return R<=t.unstable_now()};var D=new MessageChannel,U=D.port2;D.port1.onmessage=function(){O=!1;var e=N,n=M;N=null,M=-1;var r=t.unstable_now(),l=!1;if(0>=R-r){if(!(-1!==n&&n<=r))return L||(L=!0,o(j)),N=e,void(M=n);l=!0}if(null!==e){F=!0;try{e(l)}finally{F=!1}}};var j=function(e){if(null!==N){o(j);var t=e-R+z;t<z&&I<z?(8>t&&(t=8),z=t<I?I:t):I=t,R=e+z,O||(O=!0,U.postMessage(void 0))}else L=!1};x=function(e,t){N=e,M=t,F||0>t?U.postMessage(void 0):L||(L=!0,o(j))},E=function(){N=null,O=!1,M=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=f,i=d;f=e,d=t.unstable_now();try{return n()}finally{f=r,d=i,l()}},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var n=3;break;default:n=f}var r=f,i=d;f=n,d=t.unstable_now();try{return e()}finally{f=r,d=i,l()}},t.unstable_scheduleCallback=function(e,r){var l=-1!==d?d:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=l+r.timeout;else switch(f){case 1:r=l+-1;break;case 2:r=l+250;break;case 5:r=l+1073741823;break;case 4:r=l+1e4;break;default:r=l+5e3}if(e={callback:e,priorityLevel:f,expirationTime:r,next:null,previous:null},null===c)c=e.next=e.previous=e,n();else{l=null;var i=c;do{if(i.expirationTime>r){l=i;break}i=i.next}while(i!==c);null===l?l=c:l===c&&(c=e,n()),r=l.previous,r.next=l.previous=e,e.next=l,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)c=null;else{e===c&&(c=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=f;return function(){var r=f,i=d;f=n,d=t.unstable_now();try{return e.apply(this,arguments)}finally{f=r,d=i,l()}}},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_shouldYield=function(){return!s&&(null!==c&&c.expirationTime<p||T())},t.unstable_continueExecution=function(){null!==c&&n()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return c}}).call(t,n(8))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(a),c=function(e){function t(e){r(this,t);var n=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={hasError:!1},n}return i(t,e),o(t,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0}),console.log("Builder UI Error:",e,t)}},{key:"render",value:function(){return this.state.hasError,this.props.children}}]),t}(u.default.Component);t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(0),c=r(u),s=n(11),f=r(s),d=n(13),p=n(15),m=function(e){function t(){return l(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return o(t,e),a(t,[{key:"render",value:function(){return c.default.createElement(u.Fragment,null,c.default.createElement(f.default,null),c.default.createElement(d.NotificationsManager,null),c.default.createElement(p.SVGSymbols,null))}}]),t}(u.Component);t.default=m},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0);n(12);var u=function(e){function t(e){r(this,t);var n=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i=n.props.postId;return n.layoutClass=".fl-builder-content-"+(i||FLBuilderConfig.postId),n}return i(t,e),o(t,[{key:"componentDidMount",value:function(){this.setupHooks=this.setupHooks.bind(this),this.hooked=!1,jQuery(document).on("tinymce-editor-init",this.setupHooks),this.setupHooks()}},{key:"setupHooks",value:function(){if(window.tinymce&&!this.hooked&&FLBuilderConfig.inlineEnabled){var e=this.initEditables.bind(this),t=this.refreshEditables.bind(this),n=(this.destroyEditables.bind(this),this.destroyAllEditables.bind(this)),r=this.destroyLoadingEditables.bind(this);FLBuilder&&(FLBuilder.addHook("settingsConfigLoaded",e),FLBuilder.addHook("restartEditingSession",e),FLBuilder.addHook("endEditingSession",n),FLBuilder.addHook("didStartNodeLoading",r),FLBuilder.addHook("didRenderLayoutComplete",t),FLBuilder.addHook("didDeleteRow",t),FLBuilder.addHook("didDeleteColumn",t),FLBuilder.addHook("didDeleteModule",t)),this.initEditables(),this.hooked=!0}}},{key:"initEditables",value:function(){var e=this,t=FLBuilderSettingsConfig,n=t.editables,r=jQuery(this.layoutClass);if(r.length)for(var l in n){var i='.fl-module[data-type="'+l+'"]:not(.fl-editable):not(.fl-node-global)';r.find(i).each(function(t,n){n=jQuery(n),n.addClass("fl-editable"),n.delegate(".fl-block-overlay","click.fl-inline-editing-init",function(t){return e.initEditable(t,n)})})}}},{key:"initEditable",value:function(e,t){var n=this,r=FLBuilder,l=r.preview;if(l){if(t.parents(".fl-node-"+l.nodeId).length&&l._settingsHaveChanged())return}this.setupEditable(t,function(){n.onModuleOverlayClick(e)}),t.undelegate(".fl-block-overlay","click.fl-inline-editing-init")}},{key:"setupEditable",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},r=e.data("node"),l=FLBuilderSettingsConfig.nodes[r];if(void 0===l)return!1;var i=e.data("type"),o=FLBuilderSettingsConfig.editables[i],a=".fl-node-"+r+" ",u="fl-inline-editor-"+r,c=jQuery('<div id="'+u+'" class="fl-inline-editor"></div>'),s=jQuery(".fl-builder-settings[data-node="+r+"]"),f=l.connections;e.append(c),e.delegate(".fl-block-overlay","click",this.onModuleOverlayClick.bind(this)),e.on("mouseleave",this.onModuleMouseleave.bind(this));for(var d in o){(function(e){var r=o[e],l=FLBuilderPreview.getFormattedSelector(a,r.selector),i=jQuery(l),c=i.html(),d=s.find("#fl-field-"+e+" .fl-field-connection-value");i.length&&(d.length&&""!==d.val()||(!d.length&&f&&f[e]||(i.hasClass("mce-content-body")?tinymce.execCommand("mceRemoveEditor",!0,i.attr("id")):(i.data("field",r.field),i.on("drop",t.onEditorDrop.bind(t))),tinymce.init({selector:l,inline:!0,menubar:!1,paste_as_text:!0,relative_urls:!1,convert_urls:!1,skin:!FLBuilder&&"lightgray",skin_url:!FLBuilder&&tinyMCEPreInit.baseURL+"/skins/lightgray/",theme:"modern",theme_url:tinyMCEPreInit.baseURL+"/themes/modern/",fixed_toolbar_container:"#"+u,plugins:t.getEditorPluginConfig(r.field.type),toolbar:"string"==typeof r.field.toolbar?r.field.toolbar:t.getEditorToolbarConfig(r.field.type),init_instance_callback:function(e){t.onEditorInit(e),i.html(c),n()}}))))})(d)}}},{key:"getEditorPluginConfig",value:function(e){switch(e){case"editor":return"wordpress, wplink, lists, paste";default:return"paste"}}},{key:"getEditorToolbarConfig",value:function(e){switch(e){case"editor":return"bold italic strikethrough link underline | alignleft aligncenter alignright";case"unit":return!1;default:return"bold italic strikethrough underline"}}},{key:"destroyEditables",value:function(e){var t=e.find(".mce-content-body"),n=e.find(".fl-inline-editor"),r=jQuery(".wplink-autocomplete, .ui-helper-hidden-accessible");t.removeAttr("contenteditable"),e.undelegate(".fl-block-overlay","click"),e.off("mouseleave"),e.removeClass("fl-editable"),n.remove(),r.remove()}},{key:"destroyAllEditables",value:function(){var e=jQuery(this.layoutClass),t=e.find(".fl-editable");this.destroyEditables(t)}},{key:"destroyLoadingEditables",value:function(e,t){var n=jQuery(t);n.hasClass("fl-module")||(n=n.find(".fl-module")),this.destroyEditables(n)}},{key:"refreshEditables",value:function(){this.initEditables(),tinymce.editors.map(function(e,t){e.inline&&!jQuery("#"+e.id).length&&setTimeout(function(){return tinymce.execCommand("mceRemoveEditor",!0,e.id)},1)})}},{key:"getEditorEventVars",value:function(e){var t=jQuery(e).closest(".mce-content-body"),n=tinymce.get(t.attr("id")),r=t.data("field"),l=t.closest(".fl-module");return{editable:t,module:l,editor:n,field:r,nodeId:l.data("node")}}},{key:"onEditorInit",value:function(e){e.on("change",this.onEditorChange.bind(this)),e.on("keyup",this.onEditorChange.bind(this)),e.on("undo",this.onEditorChange.bind(this)),e.on("redo",this.onEditorChange.bind(this)),e.on("focus",this.onEditorFocus.bind(this)),e.on("blur",this.onEditorBlur.bind(this)),e.on("mousedown",this.onEditorMousedown.bind(this))}},{key:"onEditorChange",value:function(e){var t=e.target.bodyElement?e.target.bodyElement:e.target,n=this.getEditorEventVars(t),r=(n.editable,n.editor),l=n.field,i=n.nodeId,o=jQuery('.fl-builder-settings[data-node="'+i+'"]'),a=r.getContent();if(o.length)if("editor"===l.type){var u=o.find("#fl-field-"+l.name+" textarea.wp-editor-area"),c=u.attr("id");u.closest(".tmce-active").length?tinymce.get(c).setContent(a):u.val(a)}else{var s=document.createElement("textarea");s.innerHTML=a,o.find('[name="'+l.name+'"]').val(s.value)}}},{key:"onEditorFocus",value:function(e){var t=this.getEditorEventVars(e.target.bodyElement),n=t.editable,r=t.editor,l=t.module,i=t.field,o=t.nodeId,a=l.find(".fl-inline-editor"),u=this.getSettingHTML(o,i);this.matchHTML(r.getContent(),u)||(n.data("original",{settingHTML:u,editableHTML:n.html()}),n.css("min-height",n.height()),r.setContent(u),r.selection.select(r.getBody(),!0),r.selection.collapse(!1)),r.settings.toolbar?a.removeClass("fl-inline-editor-no-toolbar"):a.addClass("fl-inline-editor-no-toolbar"),l.addClass("fl-editable-focused"),this.showEditorOverlay(l),this.showModuleSettings(l)}},{key:"onEditorBlur",value:function(e){var t=this.getEditorEventVars(e.target.bodyElement),n=t.editable,r=t.editor,l=t.module,i=l.find(".fl-inline-editor"),o=n.data("original");i.removeClass("fl-inline-editor-no-toolbar"),l.removeClass("fl-editable-focused"),o&&this.matchHTML(r.getContent(),o.settingHTML)&&(n.html(o.editableHTML),n.css("min-height",""))}},{key:"onEditorMousedown",value:function(e){var t=this.getEditorEventVars(e.target),n=t.module;this.showEditorOverlay(n)}},{key:"onEditorDrop",value:function(e){return e.preventDefault(),!1}},{key:"onModuleOverlayClick",value:function(e){var t=jQuery(e.target).closest(".fl-block-overlay-actions"),n=jQuery(e.currentTarget).closest(".fl-module"),r=n.find(".mce-content-body").first().attr("id");t.length||FLBuilder._colResizing||r&&(tinymce.get(r).focus(),n.addClass("fl-editable-focused"))}},{key:"onModuleMouseleave",value:function(e){jQuery(".mce-inline-toolbar-grp:visible, .mce-floatpanel:visible").length||(this.hideEditorOverlays(),this.showNodeOverlays())}},{key:"showEditorOverlay",value:function(e){var t=e.find(".fl-inline-editor");this.hideNodeOverlays(),this.hideEditorOverlays(),t.show(),jQuery(".fl-inline-editor-active-toolbar").removeClass("fl-inline-editor-active-toolbar"),t.find("> .mce-panel:visible").addClass("fl-inline-editor-active-toolbar")}},{key:"hideEditorOverlays",value:function(){jQuery(".fl-inline-editor, .mce-floatpanel").hide()}},{key:"showNodeOverlays",value:function(){jQuery(".fl-block-overlay").show()}},{key:"hideNodeOverlays",value:function(){jQuery(".fl-block-overlay").hide()}},{key:"showModuleSettings",value:function(e){var t=e.data("type"),n=e.data("node"),r=e.closest(".fl-col").data("node"),l=e.hasClass("fl-node-global");jQuery('.fl-builder-settings[data-node="'+n+'"]').length||FLBuilder._showModuleSettings({type:t,nodeId:n,parentId:r,global:l})}},{key:"getSettingValue",value:function(e,t){var n=jQuery('.fl-builder-settings[data-node="'+e+'"]'),r={};return r=n.length?FLBuilder._getSettings(n):FLBuilderSettingsConfig.nodes[e],r[t]}},{key:"getSettingHTML",value:function(e,t){var n=this.getSettingValue(e,t.name);return"editor"===t.type&&""!==n?wp.editor.autop(n):n}},{key:"matchHTML",value:function(e,t){return this.cleanHTML(e)===this.cleanHTML(t)}},{key:"cleanHTML",value:function(e){var t=/(\r\n|\n|\r)/gm;return jQuery("<div>"+e+"</div>").html().trim().replace(t,"")}},{key:"render",value:function(){return null}}]),t}(a.Component);t.default=u},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.NotificationsManager=void 0;var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),u=function(e){return e&&e.__esModule?e:{default:e}}(a);n(14);var c=function(e){return u.default.createElement("div",{dangerouslySetInnerHTML:{__html:e}})},s=FLBuilderConfig.lite,f=function(e){var t={__html:e.children},n=new Date(e.date).toDateString(),r=void 0;if("string"==typeof e.url&&""!==e.url){var l=s?e.url+"?utm_medium=bb-lite&utm_source=builder-ui&utm_campaign=notification-center":e.url+"?utm_medium=bb-pro&utm_source=builder-ui&utm_campaign=notification-center";r=u.default.createElement("a",{className:"fl-builder-ui-post",href:l,target:"_blank",rel:"noopener"},u.default.createElement("div",{className:"fl-builder-ui-post-date"},n),u.default.createElement("div",{className:"fl-builder-ui-post-title"},e.title),u.default.createElement("div",{className:"fl-builder-ui-post-content",dangerouslySetInnerHTML:t}))}else r=u.default.createElement("span",{className:"fl-builder-ui-post"},u.default.createElement("div",{className:"fl-builder-ui-post-date"},n),u.default.createElement("div",{className:"fl-builder-ui-post-title"},e.title),u.default.createElement("div",{className:"fl-builder-ui-post-content",dangerouslySetInnerHTML:t}));return r},d=function(e){function t(e){return r(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),o(t,[{key:"getPosts",value:function(e){var t=void 0,n=void 0,r=FLBuilderStrings.notifications;return e.length>0?(n=e.map(function(e){return u.default.createElement(f,{key:e.id,title:c(e.title.rendered),date:e.date,url:e.meta._fl_notification[0]},e.content.rendered)}),t=u.default.createElement(a.Fragment,null,n)):t=u.default.createElement("div",{className:"fl-panel-no-message"},r.none),t}},{key:"componentDidMount",value:function(){FLBuilder._initScrollbars()}},{key:"componentDidUpdate",value:function(){FLBuilder._initScrollbars()}},{key:"render",value:function(){var e=this.getPosts(this.props.posts),t=FLBuilderStrings.notifications;return u.default.createElement("div",{className:"fl-notifications-panel"},u.default.createElement("div",{className:"fl-panel-title"},t.title),u.default.createElement("div",{className:"fl-nanoscroller",ref:this.setupScroller},u.default.createElement("div",{className:"fl-nanoscroller-content"},e)))}}]),t}(a.Component);t.NotificationsManager=function(e){function t(e){r(this,t);var n=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),i="",o=FLBuilderConfig.notifications,a=(o.read,o.data);try{i=JSON.parse(a)}catch(e){i={}}return n.state={shouldShowNotifications:!1,posts:i},FLBuilder.addHook("toggleNotifications",n.onToggleNotifications.bind(n)),n}return i(t,e),o(t,[{key:"onToggleNotifications",value:function(){this.setState({shouldShowNotifications:!this.state.shouldShowNotifications})}},{key:"render",value:function(){var e=this.state,t=e.shouldShowNotifications,n=e.posts;return FLBuilder.triggerHook("notificationsLoaded"),u.default.createElement(a.Fragment,null,t&&u.default.createElement(d,{posts:n}))}}]),t}(a.Component)},function(e,t){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SVGSymbols=void 0;var r=n(0),l=function(e){return e&&e.__esModule?e:{default:e}}(r);n(16);t.SVGSymbols=function(e){return l.default.createElement(r.Fragment,null,l.default.createElement("svg",{id:"fl-symbol-container",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},l.default.createElement("symbol",{id:"fl-down-caret",viewBox:"0 0 11 6"},l.default.createElement("polygon",{points:"0 0 2.05697559 0 5.49235478 3.74058411 8.93443824 0 11 0 5.5 6"}))))}},function(e,t){},function(e,t){}]);
|
js/build/components.bundle.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var e={};r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},r.p="",r(r.s=
|
1 |
+
!function(t){function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var e={};r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},r.p="",r(r.s=18)}({18:function(t,r,e){"use strict"}});
|
js/build/wp-editor.bundle.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=
|
1 |
+
!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=19)}({19:function(e,t,n){"use strict";n(20),n(21),n(23)},20:function(e,t,n){"use strict";var r=wp.data.registerStore,o={launching:!1},i={setLaunching:function(e){return{type:"SET_LAUNCHING",launching:e}}},c={isLaunching:function(e){return e.launching}};r("fl-builder",{reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments[1];switch(t.type){case"SET_LAUNCHING":e.launching=t.launching}return e},actions:i,selectors:c})},21:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();n(22);var u=FLBuilderConfig,l=u.builder,s=u.strings,a=u.urls,p=wp.blocks,f=p.registerBlockType,d=p.rawHandler,h=p.serialize,b=wp.components,v=b.Button,m=b.Placeholder,g=b.Spinner,y=wp.compose.compose,k=wp.data,w=k.subscribe,B=k.withDispatch,P=k.withSelect,L=wp.element,O=L.Component,_=L.RawHTML,C=function(e){function t(){r(this,t);var e=o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments));return e.unsubscribe=w(e.storeDidUpdate.bind(e)),e}return i(t,e),c(t,[{key:"storeDidUpdate",value:function(){var e=this.props,t=e.isLaunching,n=e.isSavingPost;t&&!n&&(this.unsubscribe(),this.redirectToBuilder())}},{key:"componentDidMount",value:function(){1===this.props.blockCount&&this.toggleEditor("disable")}},{key:"componentWillUnmount",value:function(){this.unsubscribe(),this.toggleEditor("enable")}},{key:"render",value:function(){var e=this.props,t=e.blockCount,n=(e.onReplace,e.isLaunching),r=void 0,o=void 0,i=void 0;return 1===t?(r=l.access?s.launch:s.view,o=this.launchBuilder.bind(this)):(r=s.convert,o=this.convertToBuilder.bind(this)),i=l.enabled?s.active:s.description,React.createElement(m,{key:"placeholder",instructions:i,icon:"welcome-widgets-menus",label:s.title,className:"fl-builder-layout-launch-view"},n&&React.createElement(g,null),!n&&React.createElement(v,{isLarge:!0,isPrimary:!0,type:"submit",onClick:o},r),!n&&React.createElement(v,{isLarge:!0,type:"submit",onClick:this.convertToBlocks.bind(this)},s.editor))}},{key:"toggleEditor",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"enable",t=document.body.classList,n="fl-builder-layout-enabled";"enable"===e?t.contains(n)&&t.remove(n):t.contains(n)||t.add(n)}},{key:"redirectToBuilder",value:function(){window.location.href=l.access?a.edit:a.view}},{key:"launchBuilder",value:function(){var e=this.props,t=e.savePost;(0,e.setLaunching)(!0),t()}},{key:"convertToBuilder",value:function(){var e=this.props,t=e.clientId,n=e.blocks,r=e.setAttributes,o=e.removeBlocks,i=h(n),c=n.map(function(e){return e.clientId}).filter(function(e){return e!==t});r({content:i.replace(/<!--(.*?)-->/g,"")}),o(c),this.launchBuilder()}},{key:"convertToBlocks",value:function(){var e=this.props,t=e.attributes,n=e.clientId,r=e.replaceBlocks,o=e.onReplace;t.content&&!confirm(s.warning)||(t.content?r([n],d({HTML:t.content,mode:"BLOCKS"})):o([]))}}]),t}(O),E=y(B(function(e,t){var n=e("core/editor"),r=e("fl-builder");return{savePost:n.savePost,removeBlocks:n.removeBlocks,replaceBlocks:n.replaceBlocks,setLaunching:r.setLaunching}}),P(function(e){var t=e("core/editor"),n=e("fl-builder");return{blockCount:t.getBlockCount(),blocks:t.getBlocks(),isSavingPost:t.isSavingPost(),isLaunching:n.isLaunching()}}))(C);(l.access&&l.unrestricted||l.enabled)&&f("fl-builder/layout",{title:s.title,description:s.description,icon:"welcome-widgets-menus",category:"layout",useOnce:!0,supports:{customClassName:!1,className:!1,html:!1},attributes:{content:{type:"string",source:"html"}},edit:E,save:function(e){var t=e.attributes;return React.createElement(_,null,t.content)}})},22:function(e,t){},23:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();n(24);var u=FLBuilderConfig,l=u.strings,s=wp.blocks,a=s.createBlock,p=s.serialize,f=(wp.components.Button,wp.compose.compose),d=wp.data,h=d.withDispatch,b=d.withSelect,v=wp.editPost.PluginSidebarMoreMenuItem,m=wp.element.Component,g=wp.plugins.registerPlugin,y=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),c(t,[{key:"render",value:function(){return React.createElement(v,null,React.createElement("div",{className:"fl-builder-plugin-sidebar-button",onClick:this.menuItemClicked.bind(this)}),this.hasBuilderBlock()?l.launch:l.convert)}},{key:"hasBuilderBlock",value:function(){return!!this.props.blocks.filter(function(e){return"fl-builder/layout"===e.name}).length}},{key:"menuItemClicked",value:function(){var e=this.props.closeGeneralSidebar;this.hasBuilderBlock()?this.launchBuilder():this.convertToBuilder(),setTimeout(e,100)}},{key:"convertToBuilder",value:function(){var e=this.props,t=e.blocks,n=e.insertBlock,r=e.removeBlocks,o=t.map(function(e){return e.clientId}),i=p(t).replace(/<!--(.*?)-->/g,"");n(a("fl-builder/layout",{content:i}),0),r(o)}},{key:"launchBuilder",value:function(){var e=this.props,t=e.savePost;(0,e.setLaunching)(!0),t()}}]),t}(m);g("fl-builder-plugin-sidebar",{icon:"welcome-widgets-menus",render:f(h(function(e,t){var n=e("core/editor"),r=e("core/edit-post"),o=e("fl-builder");return{savePost:n.savePost,insertBlock:n.insertBlock,removeBlocks:n.removeBlocks,closeGeneralSidebar:r.closeGeneralSidebar,setLaunching:o.setLaunching}}),b(function(e){return{blocks:e("core/editor").getBlocks()}}))(y)})},24:function(e,t){}});
|
js/fl-builder-layout.js
CHANGED
@@ -422,6 +422,7 @@
|
|
422 |
webmType = wrap.data( 'webm-type' ),
|
423 |
fallback = wrap.data( 'fallback' ),
|
424 |
loaded = wrap.data( 'loaded' ),
|
|
|
425 |
fallbackTag = '',
|
426 |
videoTag = null,
|
427 |
mp4Tag = null,
|
@@ -463,14 +464,21 @@
|
|
463 |
videoTag.append( webmTag );
|
464 |
}
|
465 |
|
466 |
-
//
|
467 |
-
if (
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
|
|
|
|
|
|
|
|
|
|
472 |
}
|
473 |
else {
|
|
|
|
|
474 |
wrap.append( videoTag );
|
475 |
}
|
476 |
|
@@ -487,16 +495,14 @@
|
|
487 |
*/
|
488 |
_initYoutubeBgVideo: function()
|
489 |
{
|
490 |
-
var playerWrap
|
491 |
-
videoId
|
492 |
videoPlayer = playerWrap.find('.fl-bg-video-player'),
|
493 |
enableAudio = playerWrap.data('enable-audio'),
|
494 |
audioButton = playerWrap.find('.fl-bg-video-audio'),
|
495 |
-
startTime
|
496 |
-
endTime
|
497 |
-
loop
|
498 |
-
vidPlayed = false,
|
499 |
-
didUnmute = false,
|
500 |
stateCount = 0,
|
501 |
player;
|
502 |
|
@@ -508,10 +514,10 @@
|
|
508 |
videoId: videoId,
|
509 |
events: {
|
510 |
onReady: function(event) {
|
511 |
-
if ( "no" === enableAudio ) {
|
512 |
event.target.mute();
|
513 |
}
|
514 |
-
else if ("yes" === enableAudio && event.target.isMuted ) {
|
515 |
event.target.unMute();
|
516 |
}
|
517 |
|
@@ -522,7 +528,7 @@
|
|
522 |
// Queue the video.
|
523 |
event.target.playVideo();
|
524 |
|
525 |
-
if ( audioButton.length > 0 ) {
|
526 |
audioButton.on( 'click', {button: audioButton, player: player}, FLBuilderLayout._toggleBgVideoAudio );
|
527 |
}
|
528 |
},
|
@@ -555,6 +561,7 @@
|
|
555 |
}
|
556 |
},
|
557 |
playerVars: {
|
|
|
558 |
controls: 0,
|
559 |
showinfo: 0,
|
560 |
rel : 0,
|
422 |
webmType = wrap.data( 'webm-type' ),
|
423 |
fallback = wrap.data( 'fallback' ),
|
424 |
loaded = wrap.data( 'loaded' ),
|
425 |
+
videoMobile = wrap.data( 'video-mobile' ),
|
426 |
fallbackTag = '',
|
427 |
videoTag = null,
|
428 |
mp4Tag = null,
|
464 |
videoTag.append( webmTag );
|
465 |
}
|
466 |
|
467 |
+
// This is either desktop, or mobile is enabled.
|
468 |
+
if ( ! FLBuilderLayout._isMobile() || ( FLBuilderLayout._isMobile() && "yes" == videoMobile ) ) {
|
469 |
+
if ( 'undefined' != typeof youtube ) {
|
470 |
+
FLBuilderLayout._initYoutubeBgVideo.apply( this );
|
471 |
+
}
|
472 |
+
else if ( 'undefined' != typeof vimeo ) {
|
473 |
+
FLBuilderLayout._initVimeoBgVideo.apply( this );
|
474 |
+
}
|
475 |
+
else {
|
476 |
+
wrap.append( videoTag );
|
477 |
+
}
|
478 |
}
|
479 |
else {
|
480 |
+
// if we are here, it means we are on mobile and NO is set so remove video src and use fallback
|
481 |
+
videoTag.attr('src', '')
|
482 |
wrap.append( videoTag );
|
483 |
}
|
484 |
|
495 |
*/
|
496 |
_initYoutubeBgVideo: function()
|
497 |
{
|
498 |
+
var playerWrap = $(this),
|
499 |
+
videoId = playerWrap.data('video-id'),
|
500 |
videoPlayer = playerWrap.find('.fl-bg-video-player'),
|
501 |
enableAudio = playerWrap.data('enable-audio'),
|
502 |
audioButton = playerWrap.find('.fl-bg-video-audio'),
|
503 |
+
startTime = 'undefined' !== typeof playerWrap.data('start') ? playerWrap.data('start') : 0,
|
504 |
+
endTime = 'undefined' !== typeof playerWrap.data('end') ? playerWrap.data('end') : 0,
|
505 |
+
loop = 'undefined' !== typeof playerWrap.data('loop') ? playerWrap.data('loop') : 1,
|
|
|
|
|
506 |
stateCount = 0,
|
507 |
player;
|
508 |
|
514 |
videoId: videoId,
|
515 |
events: {
|
516 |
onReady: function(event) {
|
517 |
+
if ( "no" === enableAudio || FLBuilderLayout._isMobile() ) {
|
518 |
event.target.mute();
|
519 |
}
|
520 |
+
else if ( "yes" === enableAudio && event.target.isMuted ) {
|
521 |
event.target.unMute();
|
522 |
}
|
523 |
|
528 |
// Queue the video.
|
529 |
event.target.playVideo();
|
530 |
|
531 |
+
if ( audioButton.length > 0 && ! FLBuilderLayout._isMobile() ) {
|
532 |
audioButton.on( 'click', {button: audioButton, player: player}, FLBuilderLayout._toggleBgVideoAudio );
|
533 |
}
|
534 |
},
|
561 |
}
|
562 |
},
|
563 |
playerVars: {
|
564 |
+
playsinline: FLBuilderLayout._isMobile() ? 1 : 0,
|
565 |
controls: 0,
|
566 |
showinfo: 0,
|
567 |
rel : 0,
|
js/fl-builder.js
CHANGED
@@ -307,6 +307,12 @@
|
|
307 |
*/
|
308 |
_multipleAudiosSelector : null,
|
309 |
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
/**
|
311 |
* Initializes the builder interface.
|
312 |
*
|
@@ -5829,6 +5835,7 @@
|
|
5829 |
FLBuilder._initSections();
|
5830 |
FLBuilder._initButtonGroupFields();
|
5831 |
FLBuilder._initCompoundFields();
|
|
|
5832 |
FLBuilder._initCodeFields();
|
5833 |
FLBuilder._initColorPickers();
|
5834 |
FLBuilder._initGradientPickers();
|
@@ -6187,6 +6194,10 @@
|
|
6187 |
{
|
6188 |
var form = $('.fl-builder-settings').last();
|
6189 |
|
|
|
|
|
|
|
|
|
6190 |
form.validate({
|
6191 |
ignore: '.fl-ignore-validation',
|
6192 |
rules: rules,
|
@@ -6997,6 +7008,18 @@
|
|
6997 |
/* Code Fields
|
6998 |
----------------------------------------------------------*/
|
6999 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7000 |
/**
|
7001 |
* Initializes all code fields in a settings form.
|
7002 |
*
|
@@ -7006,7 +7029,9 @@
|
|
7006 |
*/
|
7007 |
_initCodeFields: function()
|
7008 |
{
|
7009 |
-
|
|
|
|
|
7010 |
},
|
7011 |
|
7012 |
/**
|
@@ -7417,7 +7442,9 @@
|
|
7417 |
|
7418 |
// Resize code editor fields.
|
7419 |
$( prefix + inputArray[i] + suffix ).parent().find( '.fl-field[data-type="code"]' ).each( function() {
|
7420 |
-
|
|
|
|
|
7421 |
} );
|
7422 |
}
|
7423 |
}
|
307 |
*/
|
308 |
_multipleAudiosSelector : null,
|
309 |
|
310 |
+
|
311 |
+
/**
|
312 |
+
* @since 2.2.5
|
313 |
+
*/
|
314 |
+
_codeDisabled: false,
|
315 |
+
|
316 |
/**
|
317 |
* Initializes the builder interface.
|
318 |
*
|
5835 |
FLBuilder._initSections();
|
5836 |
FLBuilder._initButtonGroupFields();
|
5837 |
FLBuilder._initCompoundFields();
|
5838 |
+
FLBuilder._CodeFieldSSLCheck();
|
5839 |
FLBuilder._initCodeFields();
|
5840 |
FLBuilder._initColorPickers();
|
5841 |
FLBuilder._initGradientPickers();
|
6194 |
{
|
6195 |
var form = $('.fl-builder-settings').last();
|
6196 |
|
6197 |
+
if ( ! messages ) {
|
6198 |
+
messages = {}
|
6199 |
+
}
|
6200 |
+
|
6201 |
form.validate({
|
6202 |
ignore: '.fl-ignore-validation',
|
6203 |
rules: rules,
|
7008 |
/* Code Fields
|
7009 |
----------------------------------------------------------*/
|
7010 |
|
7011 |
+
/**
|
7012 |
+
* SiteGround ForceSSL fix
|
7013 |
+
*/
|
7014 |
+
_CodeFieldSSLCheck: function() {
|
7015 |
+
$('body').append('<div class="sg-test" style="display:none"><svg xmlns="http://www.w3.org/2000/svg"></svg></div>');
|
7016 |
+
|
7017 |
+
if ( 'https://www.w3.org/2000/svg' === $('.sg-test').find('svg').attr('xmlns') ) {
|
7018 |
+
FLBuilder._codeDisabled = true;
|
7019 |
+
}
|
7020 |
+
$('.sg-test').remove()
|
7021 |
+
},
|
7022 |
+
|
7023 |
/**
|
7024 |
* Initializes all code fields in a settings form.
|
7025 |
*
|
7029 |
*/
|
7030 |
_initCodeFields: function()
|
7031 |
{
|
7032 |
+
if ( ! FLBuilder._codeDisabled ) {
|
7033 |
+
$( '.fl-builder-settings:visible' ).find( '.fl-code-field' ).each( FLBuilder._initCodeField );
|
7034 |
+
}
|
7035 |
},
|
7036 |
|
7037 |
/**
|
7442 |
|
7443 |
// Resize code editor fields.
|
7444 |
$( prefix + inputArray[i] + suffix ).parent().find( '.fl-field[data-type="code"]' ).each( function() {
|
7445 |
+
if ( ! FLBuilder._codeDisabled ) {
|
7446 |
+
$( this ).data( 'editor' ).resize();
|
7447 |
+
}
|
7448 |
} );
|
7449 |
}
|
7450 |
}
|
js/fl-builder.min.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
var FLBuilderColorPicker;!function(e,i){function t(){var i,t,l="backgroundImage";f?h="filter":(i=e('<div id="iris-gradtest" />'),t="linear-gradient(top,#fff,#000)",e.each(g,function(e,n){if(i.css(l,n+t),i.css(l).match("gradient"))return h=e,!1}),h===!1&&(i.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),i.css(this.bgImageString).match("gradient")&&(h="webkit")),i.remove())}function l(i,t){return i="top"===i?"top":"left",t=e.isArray(t)?t:Array.prototype.slice.call(arguments,1),"webkit"===h?s(i,t):g[h]+"linear-gradient("+i+", "+t.join(", ")+")"}function n(i,t){var l,n,s,r,a,d,u,c,f;i="top"===i?"top":"left",t=e.isArray(t)?t:Array.prototype.slice.call(arguments,1),l="top"===i?0:1,n=e(this),s=t.length-1,r="filter",a=1===l?"left":"top",d=1===l?"right":"bottom",u=1===l?"height":"width",c='<div class="iris-ie-gradient-shim" style="position:absolute;'+u+":100%;"+a+":%start%;"+d+":%end%;"+r+':%filter%;" data-color:"%color%"></div>',f="","static"===n.css("position")&&n.css({position:"relative"}),t=o(t),e.each(t,function(e,i){var n,o,r;return e!==s&&(n=t[e+1],void(i.stop!==n.stop&&(o=100-parseFloat(n.stop)+"%",i.octoHex=new FLBuilderColor(i.color).toIEOctoHex(),n.octoHex=new FLBuilderColor(n.color).toIEOctoHex(),r="progid:DXImageTransform.Microsoft.Gradient(GradientType="+l+", StartColorStr='"+i.octoHex+"', EndColorStr='"+n.octoHex+"')",f+=c.replace("%start%",i.stop).replace("%end%",o).replace("%filter%",r))))}),n.find(".iris-ie-gradient-shim").remove(),e(f).prependTo(n)}function s(i,t){var l=[];return i="top"===i?"0% 0%,0% 100%,":"0% 100%,100% 100%,",t=o(t),e.each(t,function(e,i){l.push("color-stop("+parseFloat(i.stop)/100+", "+i.color+")")}),"-webkit-gradient(linear,"+i+l.join(",")+")"}function o(i){var t=[],l=[],n=[],s=i.length-1;return e.each(i,function(e,i){var n=i,s=!1,o=i.match(/1?[0-9]{1,2}%$/);o&&(n=i.replace(/\s?1?[0-9]{1,2}%$/,""),s=o.shift()),t.push(n),l.push(s)}),l[0]===!1&&(l[0]="0%"),l[s]===!1&&(l[s]="100%"),l=r(l),e.each(l,function(e){n[e]={color:t[e],stop:l[e]}}),n}function r(i){var t,l,n,s,o=0,a=i.length-1,d=0,u=!1;if(i.length<=2||e.inArray(!1,i)<0)return i;for(;d<i.length-1;)u||i[d]!==!1?u&&i[d]!==!1&&(a=d,d=i.length):(o=d-1,u=!0),d++;for(l=a-o,s=parseInt(i[o].replace("%"),10),t=(parseFloat(i[a].replace("%"))-s)/l,d=o+1,n=1;d<a;)i[d]=s+n*t+"%",n++,d++;return r(i)}var a=[],d=navigator.userAgent.toLowerCase(),u="Microsoft Internet Explorer"===navigator.appName,c=u?parseFloat(d.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,f=u&&c<10,h=!1,g=["-moz-","-webkit-","-o-","-ms-"];flBuilderParseColorValue=function(e){var i=e.replace(/\s+/g,""),t=i.indexOf("rgba")!==-1?parseFloat(100*i.replace(/^.*,(.+)\)/,"$1")):100,l=t<100;return{value:i,alpha:t,rgba:l}},e.fn.flBuilderColorPickerGradient=function(){var i=arguments;return this.each(function(){f?n.apply(this,i):e(this).css("backgroundImage",l.apply(this,i))})},e.fn.flBuilderColorPickerRaninbowGradient=function(i,t){var l,n,s,o;for(i=i||"top",l=e.extend({},{s:100,l:50},t),n="hsl(%h%,"+l.s+"%,"+l.l+"%)",s=0,o=[];s<=360;)o.push(n.replace("%h%",s)),s+=30;return this.each(function(){e(this).flBuilderColorPickerGradient(i,o)})},FLBuilderColorPicker=function(i){this._html='<div class="fl-color-picker-ui"><div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="javascript:void(0);"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div></div>';var t={elements:null,color:"",mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},target:!1,width:200,presets:[],labels:{colorPresets:"Color Presets",colorPicker:"Color Picker",placeholder:"Paste color here...",removePresetConfirm:"Are you sure?",noneColorSelected:"None color selected.",alreadySaved:"%s is already a saved preset.",noPresets:"Add a color preset first.",presetAdded:"%s added to presets!"}};this.options=e.extend({},t,i),(f===!1||f===!0&&c>7)&&this._init()},FLBuilderColorPicker.prototype={_html:"",_color:"",_currentElement:"",_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_init:function(){var i=this;e(i.options.elements);return e("html").hasClass("fl-color-picker-init")?void this._prepareColorFields():(this._color=new FLBuilderColor("#ff0000").setHSpace(i.options.mode),a=this.options.presets,h===!1&&t(),i.picker=e(this._html).appendTo("body"),u?9===c?i.picker.addClass("iris-ie-9"):c<=8&&i.picker.addClass("iris-ie-lt9"):d.indexOf("compatible")<0&&d.indexOf("khtml")<0&&d.match(/mozilla/)&&i.picker.addClass("iris-mozilla"),i.controls={square:i.picker.find(".iris-square"),squareDrag:i.picker.find(".iris-square-value"),horiz:i.picker.find(".iris-square-horiz"),vert:i.picker.find(".iris-square-vert"),strip:i.picker.find(".iris-strip"),stripSlider:i.picker.find(".iris-strip .iris-slider-offset")},"hsv"===i.options.mode&&i._has("l",i.options.controls)?i.options.controls=i._defaultHSVControls:"hsl"===i.options.mode&&i._has("v",i.options.controls)&&(i.options.controls=i._defaultHSLControls),i.hue=i._color.h(),this._setTemplates(),this._ui=e(".fl-color-picker-ui"),this._iris=e(".iris-picker"),this._wrapper=e("body"),this._ui.prepend(this._hexHtml).append(this._presetsHtml),i.element=this._ui.find(".fl-color-picker-input"),i._initControls(),i.active="external",i._change(),i._addInputListeners(i.element),this._buildUI(),this._prepareColorFields(),this._pickerControls(),this._presetsControls(),this._buildAlphaUI(),void e("html").addClass("fl-color-picker-init"))},_prepareColorFields:function(){var i=this;e(".fl-color-picker-value").each(function(){var t=e(this),l=t.val(),n=t.parent().find(".fl-color-picker-color"),s=flBuilderParseColorValue(l),o="";if(l){if(n.hasClass("fl-color-picker-alpha-enabled")&&s.rgba)o=t.val().toString();else if(!n.hasClass("fl-color-picker-alpha-enabled")&&s.rgba){var r=l.replace("rgba","rgb");r=r.substr(0,r.lastIndexOf(","))+")",i._color._alpha=1,o=r,t.val(r)}else o="#"+t.val().toString();n.css({backgroundColor:o})}})},_setTemplates:function(){this._alphaHtml='<div class="fl-alpha-wrap"><div class="fl-alpha-slider"></div><div class="fl-alpha-slider-offset"></div><div class="fl-alpha-text"></div></div>',this._presetsHtml='<div class="fl-color-picker-presets"><div class="fl-color-picker-presets-toggle"><div class="fl-color-picker-presets-open-label fl-color-picker-active">'+this.options.labels.colorPresets+' <span class="fl-color-picker-icon-arrow-up"></span></div><div class="fl-color-picker-presets-close-label">'+this.options.labels.colorPicker+' <span class="fl-color-picker-icon-arrow-down"></span></div></div><ul class="fl-color-picker-presets-list"></ul></div>',this._hexHtml='<input type="text" class="fl-color-picker-input" placeholder="'+this.options.labels.placeholder+'"><div class="fl-color-picker-preset-add"></div>',this._presetsTpl='<li class="fl-color-picker-preset"><span class="fl-color-picker-preset-color"></span> <span class="fl-color-picker-preset-label"></span> <span class="fl-color-picker-preset-remove fl-color-picker-icon-remove"></span></li>',this._noPresetsTpl='<li class="fl-color-picker-no-preset"><span class="fl-color-picker-preset-label">'+this.options.labels.noPresets+"</span></li>"},_has:function(i,t){var l=!1;return e.each(t,function(e,t){if(i===t)return l=!0,!1}),l},_buildUI:function(){var i=this;i._presetsList=this._ui.find(".fl-color-picker-presets-list"),i._presetsList.html(""),this.options.presets.length>0?e.each(this.options.presets,function(e,t){i._addPresetView(t)}):i._presetsList.append(this._noPresetsTpl)},_addPresetView:function(i){var t=this._presetsList.find(".fl-color-picker-no-preset");t.length>0&&t.remove();var l=e(this._presetsTpl),n=FLBuilderColor(i);l.attr("data-color",i).find(".fl-color-picker-preset-color").css({backgroundColor:n.toString()}).end().find(".fl-color-picker-preset-label").html(n.toString()),this._presetsList.append(l)},_addPresetFeedback:function(){this._ui.append('<div class="fl-color-picker-added"><div class="fl-color-picker-added-text"><div class="fl-color-picker-icon-check"></div> "'+this.options.labels.presetAdded.replace("%s",this._color.toString())+'"</div></div>'),this._ui.find(".fl-color-picker-added").hide().fadeIn(200).delay(2e3).fadeOut(200,function(){e(this).remove()})},_pickerControls:function(){var i=this;this._wrapper.on("click",".fl-color-picker-color",function(){var t=e(this);i._currentElement=t.parent().find(".fl-color-picker-value"),i._ui.position({my:"left top",at:"left bottom",of:t,collision:"flip",using:function(e,t){i._togglePicker(e)}})}).on("click",".fl-color-picker-clear",function(){var t=e(this);i._currentElement=t.parent().find(".fl-color-picker-value"),t.prev(".fl-color-picker-color").css({backgroundColor:"transparent"}).addClass("fl-color-picker-empty"),i._setColor(""),i.element.val(""),i._currentElement.val("").trigger("change")}),e(document).on("mousedown",function(i){0===e(i.target).closest(".fl-color-picker-ui").length&&e(".fl-color-picker-ui.fl-color-picker-active").removeClass("fl-color-picker-active")})},_presetsControls:function(){var i=this,t=i._ui.find(".fl-color-picker-preset-add"),l=i._ui.find(".fl-color-picker-presets"),n=l.find(".fl-color-picker-presets-open-label"),s=l.find(".fl-color-picker-presets-close-label"),o=l.find(".fl-color-picker-presets-list");t.off("click").on("click",function(){i._addPreset(i.element.val())}),o.css({height:i.element.innerHeight()+i._iris.innerHeight()+14+"px"}).hide(),l.off("click").on("click",".fl-color-picker-presets-toggle",function(){n.toggleClass("fl-color-picker-active"),s.toggleClass("fl-color-picker-active"),o.slideToggle(500)}).on("click",".fl-color-picker-preset",function(t){var l=new FLBuilderColor(e(this).data("color").toString());i._setColor(l),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:l.toString()}).removeClass("fl-color-picker-empty"),n.toggleClass("fl-color-picker-active"),s.toggleClass("fl-color-picker-active"),o.slideToggle(500)}).on("click",".fl-color-picker-preset-remove",function(t){t.stopPropagation(),i._removePreset(e(this).parent().data("color"))})},_removePreset:function(i){if(confirm(this.options.labels.removePresetConfirm)){var t=i.toString(),l=a.indexOf(t);l>-1&&(a.splice(l,1),this.options.presets=a,this._presetsList.find('.fl-color-picker-preset[data-color="'+t+'"]').slideUp(function(){e(this).remove()})),a.length<1&&this._presetsList.append(this._noPresetsTpl),e(this).trigger("presetRemoved",{presets:a})}},_addPreset:function(i){if(!this._CheckValidColor(i))return alert(this.options.labels.noneColorSelected),!1;var t=i.toString().replace(/^#/,"");""===t?alert(this.options.labels.noneColorSelected):a.indexOf(t)>-1?alert(this.options.labels.alreadySaved.replace("%s","#"+t)):(this._addPresetView(t),this._addPresetFeedback(),a.push(t),this.options.presets=a,e(this).trigger("presetAdded",{presets:a}))},_CheckValidColor:function(e){if(!e.match(/^#/)&&!e.match(/^rgb/)&&!e.match(/^hsl/))return!1;var i=document.getElementById("divValidColor");i||(i=document.createElement("div"),i.id="divValidColor"),i.style.borderColor="",i.style.borderColor=e;var t=i.style.borderColor;return 0!=t.length},_togglePicker:function(e){var i=this;this._ui.hasClass("fl-color-picker-active")?(this._ui.removeClass("fl-color-picker-active"),e&&setTimeout(function(){i._ui.css(e),i._ui.addClass("fl-color-picker-active"),i._setColor(i._currentElement.val())},200)):(e&&i._ui.css(e),setTimeout(function(){i._ui.addClass("fl-color-picker-active"),i._setColor(i._currentElement.val())},200))},_paint:function(){var e=this;e._paintDimension("right","strip"),e._paintDimension("top","vert"),e._paintDimension("left","horiz")},_paintDimension:function(e,i){var t,l=this,n=l._color,s=l.options.mode,o=l._getHSpaceColor(),r=l.controls[i],a=l.options.controls;if(i!==l.active&&("square"!==l.active||"strip"===i))switch(a[i]){case"h":if("hsv"===s){switch(o=n.clone(),i){case"horiz":o[a.vert](100);break;case"vert":o[a.horiz](100);break;case"strip":o.setHSpace("hsl")}t=o.toHsl()}else t="strip"===i?{s:o.s,l:o.l}:{s:100,l:o.l};r.flBuilderColorPickerRaninbowGradient(e,t);break;case"s":"hsv"===s?"vert"===i?t=[n.clone().a(0).s(0).toCSS("rgba"),n.clone().a(1).s(0).toCSS("rgba")]:"strip"===i?t=[n.clone().s(100).toCSS("hsl"),n.clone().s(0).toCSS("hsl")]:"horiz"===i&&(t=["#fff","hsl("+o.h+",100%,50%)"]):t="vert"===i&&"h"===l.options.controls.horiz?["hsla(0, 0%, "+o.l+"%, 0)","hsla(0, 0%, "+o.l+"%, 1)"]:["hsl("+o.h+",0%,50%)","hsl("+o.h+",100%,50%)"],r.flBuilderColorPickerGradient(e,t);break;case"l":t="strip"===i?["hsl("+o.h+",100%,100%)","hsl("+o.h+", "+o.s+"%,50%)","hsl("+o.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],r.flBuilderColorPickerGradient(e,t);break;case"v":t="strip"===i?[n.clone().v(100).toCSS(),n.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],r.flBuilderColorPickerGradient(e,t)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(e){var i,t=this,l=t.options,n=t.controls,s=n.square,o=t.picker.find(".iris-strip"),r="77.5%",a="12%",d=20,u=l.border?l.width-d:l.width;if(e&&(s.css("width",""),o.css("width",""),t.picker.css({width:"",height:""})),r=u*(parseFloat(r)/100),a=u*(parseFloat(a)/100),i=l.border?r+d:r,s.width(r).height(r),o.height(r).width(a),t.picker.css({width:l.width,height:i}),!l.palettes)return t.picker.css("paddingBottom","")},_addInputListeners:function(e){var i=this,t=100,l=function(t){var l=new FLBuilderColor(e.val()),n=e.val().replace(/^#/,""),s=i._currentElement.hasClass("fl-color-picker-empty");if(e.removeClass("iris-error"),l.error)""!==n&&e.addClass("iris-error");else if(l.toString()!==i._color.toString()||""!==i._color.toString()&&s)if("keyup"===t.type){if(n.match(/^[0-9a-fA-F]{3}$/))return;i._setColor(n),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:FLBuilderColor(n).toString()}).removeClass("fl-color-picker-empty"),i._currentElement.val(n).trigger("change")}else if("paste"===t.type)return n=t.originalEvent.clipboardData.getData("text").replace(/^#/,""),hex=FLBuilderColor(n).toString(),i._setColor(n),e.val(hex),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:hex}).removeClass("fl-color-picker-empty"),i._currentElement.val(n).trigger("change"),!1};e.on("change",l).on("keyup",i._debounce(l,t))},_initControls:function(){var i=this,t=i.controls,l=t.square,n=i.options.controls,s=i._scale[n.strip];t.stripSlider.slider({orientation:"horizontal",max:s,slide:function(e,t){i.active="strip","h"===n.strip&&(t.value=s-t.value),i._color[n.strip](t.value),i._change.apply(i,arguments)}}),t.squareDrag.draggable({containment:t.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(e,t){i._squareDrag(e,t)},start:function(){l.addClass("iris-dragging"),e(this).addClass("ui-state-focus")},stop:function(){l.removeClass("iris-dragging"),e(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(t){var l="ui-state-focus";t.preventDefault(),"mousedown"===t.type?(i.picker.find("."+l).removeClass(l).blur(),e(this).addClass(l).focus()):e(this).removeClass(l)}).on("keydown",function(e){var l=t.square,n=t.squareDrag,s=n.position(),o=2;switch(e.altKey&&(o*=10),e.keyCode){case 37:s.left-=o;break;case 38:s.top-=o;break;case 39:s.left+=o;break;case 40:s.top+=o;break;default:return!0}s.left=Math.max(0,Math.min(s.left,l.width())),s.top=Math.max(0,Math.min(s.top,l.height())),n.css(s),i._squareDrag(e,{position:s}),e.preventDefault()}),l.mousedown(function(t){var l,n;1===t.which&&e(t.target).is("div")&&(l=i.controls.square.offset(),n={top:t.pageY-l.top,left:t.pageX-l.left},t.preventDefault(),i._squareDrag(t,{position:n}),t.target=i.controls.squareDrag.get(0),i.controls.squareDrag.css(n).trigger(t))})},_squareDrag:function(e,i){var t=this,l=t.options.controls,n=t._squareDimensions(),s=Math.round((n.h-i.position.top)/n.h*t._scale[l.vert]),o=t._scale[l.horiz]-Math.round((n.w-i.position.left)/n.w*t._scale[l.horiz]);t._color[l.horiz](o)[l.vert](s),t.active="square",t._change.apply(t,arguments)},_setColor:function(e){var i,t,l=this,n=l.options.color,s="#ff0000";""===e?(e=s,l["default"]=!0):l["default"]=!1,l.options.color=e,e=""+e,i=e.replace(/^#/,""),t=new FLBuilderColor(e).setHSpace(l.options.mode),t.error?l.options.color=n:(l._color=t,l.options.color=l._color.toString(),l.active="external",l._change())},_squareDimensions:function(e){var t,l,n=this.controls.square;return e!==i&&n.data("dimensions")?n.data("dimensions"):(l=this.controls.squareDrag,t={w:n.width(),h:n.height()},n.data("dimensions",t),t)},_isNonHueControl:function(e,i){return"square"===e&&"h"===this.options.controls.strip||"external"!==i&&("h"!==i||"strip"!==e)},_change:function(){var i=this,t=i.controls,l=i._getHSpaceColor(),n=["square","strip"],s=i.options.controls,o=s[i.active]||"external",r=i.hue;"strip"===i.active?n=[]:"external"!==i.active&&n.pop(),e.each(n,function(e,n){var o,r,a;if(n!==i.active)switch(n){case"strip":o="h"===s.strip?i._scale[s.strip]-l[s.strip]:l[s.strip],t.stripSlider.slider("value",o);break;case"square":r=i._squareDimensions(),a={left:l[s.horiz]/i._scale[s.horiz]*r.w,top:r.h-l[s.vert]/i._scale[s.vert]*r.h},i.controls.squareDrag.css(a)}}),l.h!==r&&i._isNonHueControl(i.active,o)&&i._color.h(r),i.hue=i._color.h(),i.options.color=i._color.toString(),i.element.is(":input")&&!i._color.error&&(i.element.removeClass("iris-error"),i.element.val()!==i._color.toString()&&(i.element.val(i._color.toString()),this._currentElement&&(!i["default"]||i["default"]&&"external"!==i.active?this._currentElement.val(i._color.toString().replace(/^#/,"")).parent().find(".fl-color-picker-color").css({backgroundColor:i._color.toString()}).removeClass("fl-color-picker-empty"):this._currentElement.val(""),i._wrapper.find(".fl-alpha-slider-offset").css("background-color",i._color.toString()),this._currentElement.trigger("change")))),i._paint(),i._inited=!0,i.active=!1},_debounce:function(e,i,t){var l,n;return function(){var s,o,r=this,a=arguments;return s=function(){l=null,t||(n=e.apply(r,a))},o=t&&!l,clearTimeout(l),l=setTimeout(s,i),o&&(n=e.apply(r,a)),n}},_buildAlphaUI:function(){var i=this;i._wrapper.on("click",".fl-color-picker-color",function(){var t=e(this);i._currentElement.val();t.hasClass("fl-color-picker-alpha-enabled")?(i._ui.find(".fl-alpha-wrap").length<=0&&e(i._alphaHtml).insertAfter(i._iris),i.picker.addClass("fl-color-alpha-enabled"),i._pickerAlphaControls()):(i.picker.removeClass("fl-color-alpha-enabled"),i._ui.find(".fl-alpha-wrap").remove())})},_pickerAlphaControls:function(){var e=this,i=e._currentElement,t=flBuilderParseColorValue(i.val()),l=parseFloat(t.alpha/100),n=e._wrapper,s=e._ui,o=s.find(".fl-alpha-wrap"),r=o.find(".fl-alpha-slider"),a=o.find(".fl-alpha-text"),d=o.find(".fl-alpha-slider-offset");alphaHandle=o.find(".ui-slider-handle"),a.text(l<1?l:""),r.slider({orientation:"vertical",slide:function(i,t){var l=parseFloat(t.value/100);e._color._alpha=l,a.text(l<1?l:""),e._change.apply(e,arguments)},create:function(){d.css({backgroundColor:t.value}),n.on("click",".fl-color-picker-clear",function(){e._color._alpha=1,a.text(""),r.slider("value",100).trigger("slide")})},value:t.alpha,step:1,min:0,max:100})}}}(jQuery),function(e,i){var t=function(e,i){return this instanceof t?this._init(e,i):new t(e,i)};t.fn=t.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(e){var t="noop";switch(typeof e){case"object":return e.a!==i&&this.a(e.a),t=e.r!==i?"fromRgb":e.l!==i?"fromHsl":e.v!==i?"fromHsv":t,this[t](e);case"string":return this.fromCSS(e);case"number":return this.fromInt(parseInt(e,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var e=new t(this.toInt()),i=["_alpha","_hSpace","_hsl","_hsv","error"],l=i.length-1;l>=0;l--)e[i[l]]=this[i[l]];return e},setHSpace:function(e){return this._hSpace="hsv"===e?e:"hsl",this},noop:function(){return this},fromCSS:function(e){var i,t=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,e=e.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,""),e.match(t)&&e.match(/\)$/)){if(i=e.replace(/(\s|%)/g,"").replace(t,"").replace(/,?\);?$/,"").split(","),i.length<3)return this._error();if(4===i.length&&(this.a(parseFloat(i.pop())),this.error))return this;for(var l=i.length-1;l>=0;l--)if(i[l]=parseInt(i[l],10),isNaN(i[l]))return this._error();return e.match(/^rgb/)?this.fromRgb({r:i[0],g:i[1],b:i[2]}):e.match(/^hsv/)?this.fromHsv({h:i[0],s:i[1],v:i[2]}):this.fromHsl({h:i[0],s:i[1],l:i[2]})}return this.fromHex(e)},fromRgb:function(e,t){return"object"!=typeof e||e.r===i||e.g===i||e.b===i?this._error():(this.error=!1,this.fromInt(parseInt((e.r<<16)+(e.g<<8)+e.b,10),t))},fromHex:function(e){return e=e.replace(/^#/,"").replace(/^0x/,""),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),this.error=!/^[0-9A-F]{6}$/i.test(e),this.fromInt(parseInt(e,16))},fromHsl:function(e){var t,l,n,s,o,r,a,d;return"object"!=typeof e||e.h===i||e.s===i||e.l===i?this._error():(this._hsl=e,this._hSpace="hsl",r=e.h/360,a=e.s/100,d=e.l/100,0===a?t=l=n=d:(s=d<.5?d*(1+a):d+a-d*a,o=2*d-s,t=this.hue2rgb(o,s,r+1/3),l=this.hue2rgb(o,s,r),n=this.hue2rgb(o,s,r-1/3)),this.fromRgb({r:255*t,g:255*l,b:255*n},!0))},fromHsv:function(e){var t,l,n,s,o,r,a,d,u,c,f;if("object"!=typeof e||e.h===i||e.s===i||e.v===i)return this._error();switch(this._hsv=e,this._hSpace="hsv",t=e.h/360,l=e.s/100,n=e.v/100,a=Math.floor(6*t),d=6*t-a,u=n*(1-l),c=n*(1-d*l),f=n*(1-(1-d)*l),a%6){case 0:s=n,o=f,r=u;break;case 1:s=c,o=n,r=u;break;case 2:s=u,o=n,r=f;break;case 3:s=u,o=c,r=n;break;case 4:s=f,o=u,r=n;break;case 5:s=n,o=u,r=c}return this.fromRgb({r:255*s,g:255*o,b:255*r},!0)},fromInt:function(e,t){return this._color=parseInt(e,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),t===i&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(e,i,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(i-e)*t:t<.5?i:t<2/3?e+(i-e)*(2/3-t)*6:e},toString:function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var i=6-e.length-1;i>=0;i--)e="0"+e;return"#"+e},toCSS:function(e,i){switch(e=e||"hex",i=parseFloat(i||this._alpha),e){case"rgb":case"rgba":var t=this.toRgb();return i<1?"rgba( "+t.r+", "+t.g+", "+t.b+", "+i+" )":"rgb( "+t.r+", "+t.g+", "+t.b+" )";case"hsl":case"hsla":var l=this.toHsl();return i<1?"hsla( "+l.h+", "+l.s+"%, "+l.l+"%, "+i+" )":"hsl( "+l.h+", "+l.s+"%, "+l.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var e,i,t=this.toRgb(),l=t.r/255,n=t.g/255,s=t.b/255,o=Math.max(l,n,s),r=Math.min(l,n,s),a=(o+r)/2;if(o===r)e=i=0;else{var d=o-r;switch(i=a>.5?d/(2-o-r):d/(o+r),o){case l:e=(n-s)/d+(n<s?6:0);break;case n:e=(s-l)/d+2;break;case s:e=(l-n)/d+4}e/=6}return e=Math.round(360*e),0===e&&this._hsl.h!==e&&(e=this._hsl.h),i=Math.round(100*i),0===i&&this._hsl.s&&(i=this._hsl.s),{h:e,s:i,l:Math.round(100*a)}},toHsv:function(){var e,i,t=this.toRgb(),l=t.r/255,n=t.g/255,s=t.b/255,o=Math.max(l,n,s),r=Math.min(l,n,s),a=o,d=o-r;if(i=0===o?0:d/o,o===r)e=i=0;else{switch(o){case l:e=(n-s)/d+(n<s?6:0);break;case n:e=(s-l)/d+2;break;case s:e=(l-n)/d+4}e/=6}return e=Math.round(360*e),0===e&&this._hsv.h!==e&&(e=this._hsv.h),i=Math.round(100*i),0===i&&this._hsv.s&&(i=this._hsv.s),{h:e,s:i,v:Math.round(100*a)}},toInt:function(){return this._color},toIEOctoHex:function(){var e=this.toString(),i=parseInt(255*this._alpha,10).toString(16);return 1===i.length&&(i="0"+i),"#"+i+e.replace(/^#/,"")},toLuminosity:function(){var e=this.toRgb();return.2126*Math.pow(e.r/255,2.2)+.7152*Math.pow(e.g/255,2.2)+.0722*Math.pow(e.b/255,2.2)},getDistanceLuminosityFrom:function(e){if(!(e instanceof t))throw"getDistanceLuminosityFrom requires a Color object";var i=this.toLuminosity(),l=e.toLuminosity();return i>l?(i+.05)/(l+.05):(l+.05)/(i+.05)},getMaxContrastColor:function(){var e=this.toLuminosity(),i=e>=.5?"000000":"ffffff";return new t(i)},getReadableContrastingColor:function(e,l){if(!(e instanceof t))return this;var n=l===i?5:l,s=e.getDistanceLuminosityFrom(this),o=e.getMaxContrastColor(),r=o.getDistanceLuminosityFrom(e);if(r<=n)return o;if(s>=n)return this;for(var a=0===o.toInt()?-1:1;s<n&&(this.l(a,!0),s=this.getDistanceLuminosityFrom(e),0!==this._color&&16777215!==this._color););return this},a:function(e){if(e===i)return this._alpha;var t=parseFloat(e);return isNaN(t)?this._error():(this._alpha=t,this)},darken:function(e){return e=e||5,this.l(-e,!0)},lighten:function(e){return e=e||5,this.l(e,!0)},saturate:function(e){return e=e||15,this.s(e,!0)},desaturate:function(e){return e=e||15,this.s(-e,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(e){e=e||1;var i=180+30*e;return this.h(i,!0)},getAnalog:function(e){e=e||1;var i=30*e;return this.h(i,!0)},getTetrad:function(e){e=e||1;var i=60*e;return this.h(i,!0)},getTriad:function(e){e=e||1;var i=120*e;return this.h(i,!0)},_partial:function(e){var t=l[e];return function(l,n){var s=this._spaceFunc("to",t.space);return l===i?s[e]:(n===!0&&(l=s[e]+l),t.mod&&(l%=t.mod),t.range&&(l=l<t.range[0]?t.range[0]:l>t.range[1]?t.range[1]:l),s[e]=l,this._spaceFunc("from",t.space,s))}},_spaceFunc:function(e,i,t){var l=i||this._hSpace,n=e+l.charAt(0).toUpperCase()+l.substr(1);return this[n](t)}};var l={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var n in l)l.hasOwnProperty(n)&&(t.fn[n]=t.fn._partial(n));"object"==typeof exports?module.exports=t:(e.FLBuilderColor=t,e.Color=t)}(this),function(e){FLLightbox=function(e){this._init(e)},FLLightbox.closeParent=function(i){var t=e(i).closest(".fl-lightbox-wrap").attr("data-instance-id");_.isUndefined(t)||FLLightbox._instances[t].close()},FLLightbox.getResizableControlClass=function(){var i=e(".fl-lightbox-resizable").eq(0),t="far fa-window-maximize";return i.length&&i.hasClass("fl-lightbox-width-full")&&(t="far fa-window-minimize"),t},FLLightbox.unbindAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e]._unbind()},FLLightbox.bindAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e]._bind()},FLLightbox.closeAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e].close()},FLLightbox._instances={},FLLightbox.prototype={_id:null,_node:null,_visible:!1,_allowClosing:!0,_resizeTimer:null,_defaults:{className:"",destroyOnClose:!1,resizable:!1},open:function(e){var i=this._node.find(".fl-lightbox"),t=i.closest(".fl-builder-ui-pinned").length,l=this._getPositionSettings();!t&&l&&this._defaults.resizable&&i.css(l),this._bind(),this._node.show(),this._visible=!0,"undefined"!=typeof e?this.setContent(e):this._resize(),this.trigger("open"),FLBuilder.triggerHook("didShowLightbox",this)},close:function(){var e=this._node.data("parent");this._allowClosing&&(this.trigger("beforeCloseLightbox"),this._unbind(),this._node.hide(),this._visible=!1,this.trigger("close"),FLBuilder.triggerHook("didHideLightbox"),this._defaults.resizable&&_.isUndefined(e)&&FLBuilder.triggerHook("didHideAllLightboxes"),this._defaults.destroyOnClose&&this.destroy())},disableClose:function(){this._allowClosing=!1},enableClose:function(){this._allowClosing=!0},setContent:function(e){this._node.find(".fl-lightbox-content").html(e),this._resize()},empty:function(){this._node.find(".fl-lightbox-content").empty()},on:function(e,i){this._node.on(e,i)},off:function(e,i){this._node.off(e,i)},trigger:function(e,i){this._node.trigger(e,i)},destroy:function(){this._node.empty(),this._node.remove(),FLLightbox._instances[this._id]="undefined";try{delete FLLightbox._instances[this._id]}catch(e){}},_init:function(i){var t=0,l=null;for(l in FLLightbox._instances)t++;this._defaults=e.extend({},this._defaults,i),this._id=(new Date).getTime()+t,FLLightbox._instances[this._id]=this,this._render(),this._resizable()},_render:function(){this._node=e('<div class="fl-lightbox-wrap" data-instance-id="'+this._id+'"><div class="fl-lightbox-mask"></div><div class="fl-lightbox"><div class="fl-lightbox-content-wrap"><div class="fl-lightbox-content"></div></div></div></div>'),this._node.addClass(this._defaults.className),e("body").append(this._node)},_bind:function(){e(window).on("resize.fl-lightbox-"+this._id,this._delayedResize.bind(this))},_unbind:function(){e(window).off("resize.fl-lightbox-"+this._id)},_resizable:function(){var i=(e("body"),this._node.find(".fl-lightbox-mask")),t=this._node.find(".fl-lightbox"),l=e(".fl-lightbox-resizable").eq(0);this._defaults.resizable?(i.hide(),t.addClass("fl-lightbox-resizable"),t.delegate(".fl-lightbox-resize-toggle","click",this._resizeClicked.bind(this)),t.draggable({cursor:"move",handle:".fl-lightbox-header"}).resizable({handles:"all",minHeight:500,minWidth:380,start:this._resizeStart.bind(this),stop:this._resizeStop.bind(this)}),l.length&&l.hasClass("fl-lightbox-width-full")?(t.addClass("fl-lightbox-width-full"),t.draggable("disable")):this._restorePosition()):i.show(),this._resize()},_delayedResize:function(){clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout(this._resize.bind(this),250)},_resize:function(){var i=this._node.find(".fl-lightbox"),t=parseInt(this._node.css("padding-top")),l=parseInt(this._node.css("padding-bottom")),n=parseInt(this._node.css("padding-left")),s=parseInt(this._node.css("padding-right")),o=i.height(),r=i.width(),a=e(window),d=a.height()-t-l,u=(a.width()-n-s,"0px");this._defaults.resizable?(r<600?i.addClass("fl-lightbox-width-slim"):i.removeClass("fl-lightbox-width-slim"),r<450?i.addClass("fl-lightbox-width-micro"):i.removeClass("fl-lightbox-width-micro"),this._resizeEditors()):(d>o&&(u=(d-o-46)/2+"px"),i.attr("style","").css("margin",u+" auto 0")),this.trigger("resized")},_resizeStart:function(){e("body").addClass("fl-builder-resizable-is-resizing"),e(".fl-builder-lightbox:visible").append('<div class="fl-builder-resizable-iframe-fix"></div>'),FLBuilder._destroyOverlayEvents(),FLBuilder._removeAllOverlays()},_resizeStop:function(i,t){var l=e(".fl-lightbox-resizable:visible");parseInt(l.css("top"))<0&&l.css("top","0"),this._savePosition(),e("body").removeClass("fl-builder-resizable-is-resizing"),e(".fl-builder-resizable-iframe-fix").remove(),FLBuilder._bindOverlayEvents()},_resizeClicked:function(){var i=e(".fl-lightbox-resizable"),t=(i.find(".fl-lightbox-resize-toggle"),this._node.find(".fl-lightbox"));t.hasClass("fl-lightbox-width-full")?this._resizeExitFull():this._resizeEnterFull(),this._resize()},_resizeEnterFull:function(){var i=e(".fl-lightbox-resizable"),t=i.find(".fl-lightbox-resize-toggle");this._node.find(".fl-lightbox");t.removeClass("fa-window-maximize").addClass("fa-window-minimize"),i.addClass("fl-lightbox-width-full"),i.draggable("disable"),i.resizable("disable")},_resizeExitFull:function(){var i=e(".fl-lightbox-resizable"),t=i.find(".fl-lightbox-resize-toggle");this._node.find(".fl-lightbox");t.removeClass("fa-window-minimize").addClass("fa-window-maximize"),i.removeClass("fl-lightbox-width-full"),i.draggable("enable"),i.resizable("enable")},_resizeEditors:function(){e(".fl-lightbox-resizable").each(function(){var i=e(this),t=i.find(".fl-builder-settings-fields").height(),l=i.find(".mce-edit-area > iframe, textarea.wp-editor-area, .ace_editor"),n=null;t<350&&(t=350),l.each(function(){n=e(this),n.hasClass("ace_editor")?(n.height(t-60),n.closest(".fl-field").data("editor").resize()):n.closest(".mce-container-body").find(".mce-toolbar-grp .mce-toolbar.mce-last").is(":visible")?n.height(t-175):n.height(t-150);
|
2 |
-
})})},_savePosition:function(){var e=this._node.find(".fl-lightbox"),i={width:e.width(),height:e.height(),top:parseInt(e.css("top"))<0?"0px":e.css("top"),left:e.css("left")};e.closest(".fl-builder-ui-pinned").length||(FLBuilderConfig.userSettings.lightbox=i,FLBuilder.ajax({action:"save_lightbox_position",data:i}))},_restorePosition:function(){var e=this._node.find(".fl-lightbox"),i=this._getPositionSettings();i?(wleft=parseInt(i.left),wtop=parseInt(i.top),wleft>screen.width&&(i.left="100px"),wtop>screen.height&&(i.top="100px"),e.css(i)):e.css({top:25,left:FLBuilderConfig.isRtl?"-25":25})},_getPositionSettings:function(){var e=FLBuilderConfig.userSettings.lightbox;if(!e)return!1;var i=window.innerHeight,t=parseInt(e.height);return t>i&&i>546&&(e.height=i-50,e.top=0),e}}}(jQuery),function(e){FLIconSelector={_content:null,_lightbox:null,_rendered:!1,_filterText:"",open:function(e){FLIconSelector._rendered||FLIconSelector._render(),null===FLIconSelector._content?(FLIconSelector._lightbox.open('<div class="fl-builder-lightbox-loading"></div>'),FLBuilder.ajax({action:"render_icon_selector"},FLIconSelector._getContentComplete)):FLIconSelector._lightbox.open(),FLIconSelector._lightbox.on("icon-selected",function(i,t){FLIconSelector._lightbox.off("icon-selected"),FLIconSelector._lightbox.close(),e(t)})},_render:function(){FLIconSelector._lightbox=new FLLightbox({className:"fl-icon-selector"}),FLIconSelector._rendered=!0,FLBuilder.addHook("endEditingSession",function(){FLIconSelector._lightbox.close()})},_getContentComplete:function(i){var t=FLBuilder._jsonParse(i);FLIconSelector._content=t.html,FLIconSelector._lightbox.setContent(t.html),e(".fl-icons-filter-select").on("change",FLIconSelector._filter),e(".fl-icons-filter-text").on("keyup",FLIconSelector._filter),e(".fl-icons-list i").on("click",FLIconSelector._select),e(".fl-icon-selector-cancel").on("click",e.proxy(FLIconSelector._lightbox.close,FLIconSelector._lightbox))},_filter:function(){var i=e(".fl-icons-filter-select").val(),t=e(".fl-icons-filter-text").val();"all"==i?e(".fl-icons-section").show():(e(".fl-icons-section").hide(),e(".fl-"+i).show()),FLIconSelector._filterText=t,""!==t?e(".fl-icons-list i").each(FLIconSelector._filterIcon):e(".fl-icons-list i").show()},_filterIcon:function(){var i=e(this);-1==i.attr("class").indexOf(FLIconSelector._filterText)?i.hide():i.show()},_select:function(){var i=e(this).attr("class");FLIconSelector._lightbox.trigger("icon-selected",i)}}}(jQuery),function(e){FLStyleSheet=function(i){"object"==typeof i&&e.extend(this,i),this._createSheet()},FLStyleSheet.prototype={id:null,_sheet:null,_sheetElement:null,updateRule:function(e,i,t){for(var l=this._sheet.cssRules?this._sheet.cssRules:this._sheet.rules,n=null,s=0;s<l.length;s++)l[s].selectorText.toLowerCase().replace(/\s/g,"")==e.toLowerCase().replace(/\s/g,"")&&(n=l[s]);if(n)if("object"==typeof i)for(s in i)this.setProperty(n,s,i[s]);else this.setProperty(n,i,t);else this.addRule(e,i,t)},setProperty:function(e,i,t){var l="";e.style.setProperty?(t.indexOf("!important")>-1&&(l="important",t=t.replace("!important","").trim()),e.style.setProperty(i,t,l)):e.style[this._toCamelCase(i)]=t},addRule:function(e,i,t){var l="",n="";if("object"==typeof i)for(n in i)l+=n+":"+i[n]+";";else l=i+":"+t+";";this._sheet.insertRule?this._sheet.insertRule(e+" { "+l+" }",this._sheet.cssRules.length):this._sheet.addRule(e,l)},destroy:function(){this._sheetElement&&(this._sheetElement.remove(),this._sheetElement=null),this._sheet&&(this._sheet=null)},disable:function(){this._sheet.disabled=!0},enable:function(){this._sheet.disabled=!1},_createSheet:function(){var i=this.id?' id="'+this.id+'"':"",t=this.className?' class="'+this.className+'"':"";this._sheet||(this._sheetElement=e('<style type="text/css"'+i+t+"></style>"),e("body").append(this._sheetElement),this._sheet=this._sheetElement[0].sheet)},_toCamelCase:function(e){return e.toLowerCase().replace(/-(.)/g,function(e,i){return i.toUpperCase()})}}}(jQuery),function(e){FLBuilder={preview:null,_actionsLightbox:null,_ajaxQueue:[],_ajaxRequest:null,_colResizeData:null,_colResizing:!1,_contentClass:!1,_dragEnabled:!1,_dragging:!1,_dragInitialScrollTop:0,_exitUrl:null,_layout:null,_layoutQueue:[],_layoutSettingsCSSCache:null,_layoutSettingsCSSTimeout:null,_lightbox:null,_lightboxScrollbarTimeout:null,_loadedModuleAssets:[],_moduleHelpers:{},_multiplePhotoSelector:null,_newColParent:null,_newColPosition:0,_newColGroupParent:null,_newColGroupPosition:0,_newModuleParent:null,_newModulePosition:0,_newRowPosition:0,_selectedTemplateId:null,_selectedTemplateType:null,_singlePhotoSelector:null,_singleVideoSelector:null,_multipleAudiosSelector:null,_init:function(){FLBuilder._initJQueryReadyFix(),FLBuilder._initGlobalErrorHandling(),FLBuilder._initPostLock(),FLBuilder._initClassNames(),FLBuilder._initMediaUploader(),FLBuilder._initOverflowFix(),FLBuilder._initScrollbars(),FLBuilder._initLightboxes(),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder._initStrings(),FLBuilder._initTipTips(),FLBuilder._initTinyMCE(),FLBuilder._bindEvents(),FLBuilder._bindOverlayEvents(),FLBuilder._setupEmptyLayout(),FLBuilder._highlightEmptyCols(),FLBuilder.addHook("didInitUI",FLBuilder._showTourOrTemplates.bind(FLBuilder)),FLBuilder.addHook("endEditingSession",FLBuilder._doStats.bind(this)),FLBuilder.triggerHook("init")},_initJQueryReadyFix:function(){FLBuilderConfig.debug||(jQuery.fn.oldReady=jQuery.fn.ready,jQuery.fn.ready=function(i){return jQuery.fn.oldReady(function(){try{"function"==typeof i&&i(e)}catch(t){FLBuilder.logError(t)}})})},_initGlobalErrorHandling:function(){FLBuilderConfig.debug||(window.onerror=function(e,i,t,l,n){return FLBuilder.logGlobalError(e,i,t,l,n),!0})},_initPostLock:function(){"undefined"!=typeof wp.heartbeat&&(wp.heartbeat.interval(30),wp.heartbeat.enqueue("fl_builder_post_lock",{post_id:FLBuilderConfig.postId}))},_initClassNames:function(){e("html").addClass("fl-builder-edit"),e("body").addClass("fl-builder"),FLBuilderConfig.simpleUi&&e("body").addClass("fl-builder-simple"),FLBuilder._contentClass=".fl-builder-content-"+FLBuilderConfig.postId,e(FLBuilder._contentClass).addClass("fl-builder-content-editing")},_initMediaUploader:function(){wp.media.model.settings.post.id=FLBuilderConfig.postId},_initOverflowFix:function(){e(FLBuilder._contentClass).parents().css("overflow","visible")},_initScrollbars:function(){var i=e(".fl-nanoscroller").nanoScroller({alwaysVisible:!0,preventPageScrolling:!0,paneClass:"fl-nanoscroller-pane",sliderClass:"fl-nanoscroller-slider",contentClass:"fl-nanoscroller-content"}),t=i.filter(".fl-builder-settings-fields"),l=t.find(".fl-nanoscroller-pane");if(l.length){var n=l.get(0).style.display,s=t.find(".fl-nanoscroller-content");"none"===n?s.removeClass("has-scrollbar"):s.addClass("has-scrollbar")}},_initSortables:function(){var i={appendTo:"body",cursor:"move",cursorAt:{left:85,top:20},distance:1,helper:FLBuilder._blockDragHelper,start:FLBuilder._blockDragStart,sort:FLBuilder._blockDragSort,change:FLBuilder._blockDragChange,stop:FLBuilder._blockDragStop,placeholder:"fl-builder-drop-zone",tolerance:"intersect"},t="",l="",n="";n="row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-content":"column"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-col-content":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col:not(.fl-builder-node-loading):not(.fl-node-global) .fl-col-content",l="row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target",t=FLBuilderConfig.nestedColumns?n:"row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target",e(".fl-builder-rows").sortable(e.extend({},i,{connectWith:t,items:".fl-builder-block-row",stop:FLBuilder._rowDragStop})),e(".fl-builder-row-templates").sortable(e.extend({},i,{connectWith:FLBuilder._contentClass+" .fl-row-drop-target",items:".fl-builder-block-row-template",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-rows").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:FLBuilder._contentClass+" .fl-row-drop-target",items:".fl-builder-block-saved-row",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-columns").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:l,items:".fl-builder-block-saved-column",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-modules, .fl-builder-widgets").sortable(e.extend({},i,{connectWith:n,items:".fl-builder-block-module",stop:FLBuilder._moduleDragStop})),e(".fl-builder-module-templates").sortable(e.extend({},i,{connectWith:n,items:".fl-builder-block-module-template",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-modules").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:n,items:".fl-builder-block-saved-module",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-row-sortable-proxy").sortable(e.extend({},i,{connectWith:FLBuilder._contentClass+" .fl-row-drop-target",helper:FLBuilder._rowDragHelper,start:FLBuilder._rowDragStart,stop:FLBuilder._rowDragStop})),e(".fl-col-sortable-proxy").sortable(e.extend({},i,{connectWith:n,helper:FLBuilder._colDragHelper,start:FLBuilder._colDragStart,stop:FLBuilder._colDragStop})),e(FLBuilder._contentClass+" .fl-col-content").sortable(e.extend({},i,{connectWith:n,handle:".fl-module-overlay .fl-block-overlay-actions .fl-block-move",helper:FLBuilder._moduleDragHelper,items:".fl-module, .fl-col-group",start:FLBuilder._moduleDragStart,stop:FLBuilder._moduleDragStop})),e(FLBuilder._contentClass+" .fl-row-drop-target").sortable(i),e(FLBuilder._contentClass+" .fl-col-group-drop-target").sortable(i),e(FLBuilder._contentClass+" .fl-col-drop-target").sortable(i)},_refreshSortables:function(){e(".ui-sortable").sortable("refresh")},_initStrings:function(){e.validator.messages.required=FLBuilderStrings.validateRequiredMessage},_bindEvents:function(){$excludedLinks=e(".fl-builder-bar a, .fl-builder--content-library-panel a, .fl-page-nav .nav a"),e("a").not($excludedLinks).on("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").on("click",FLBuilder._headerLinkClicked),e("body").delegate(".fl-builder-content a","click",FLBuilder._preventDefault),e("body").delegate("button.fl-builder-button","mouseup",this._buttonMouseUp.bind(this)),e(document).on("heartbeat-tick",FLBuilder._initPostLock),e(window).on("beforeunload",FLBuilder._warnBeforeUnload),e("body").delegate(".fl-builder-has-submenu","click",FLBuilder._submenuParentClicked),e("body").delegate(".fl-builder-has-submenu a","click",FLBuilder._submenuChildClicked),e("body").delegate(".fl-builder-submenu","mouseenter",FLBuilder._submenuMouseenter),e("body").delegate(".fl-builder-submenu","mouseleave",FLBuilder._submenuMouseleave),e("body").delegate(".fl-builder-submenu .fl-builder-has-submenu","mouseenter",FLBuilder._submenuNestedParentMouseenter),e(".fl-builder-panel-actions .fl-builder-panel-close").on("click",FLBuilder._closePanel),e(".fl-builder-blocks-section-title").on("click",FLBuilder._blockSectionTitleClicked),e("body").delegate(".fl-builder-node-template-actions","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-edit","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-delete","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-edit","click",FLBuilder._editNodeTemplateClicked),e("body").delegate(".fl-builder-node-template-delete","click",FLBuilder._deleteNodeTemplateClicked),e("body").delegate(".fl-builder-block","mousedown",FLBuilder._blockDragInit),e("body").on("mouseup",FLBuilder._blockDragCancel),e("body").delegate(".fl-builder-actions .fl-builder-cancel-button","click",FLBuilder._cancelButtonClicked),e("body").delegate(".fl-builder-save-user-template-button","click",FLBuilder._saveUserTemplateClicked),e("body").delegate(".fl-builder-duplicate-layout-button","click",FLBuilder._duplicateLayoutClicked),e("body").delegate(".fl-builder-layout-settings-button","click",FLBuilder._layoutSettingsClicked),e("body").delegate(".fl-builder-layout-settings .fl-builder-settings-save","click",FLBuilder._saveLayoutSettingsClicked),e("body").delegate(".fl-builder-layout-settings .fl-builder-settings-cancel","click",FLBuilder._cancelLayoutSettingsClicked),e("body").delegate(".fl-builder-global-settings-button","click",FLBuilder._globalSettingsClicked),e("body").delegate(".fl-builder-global-settings .fl-builder-settings-save","click",FLBuilder._saveGlobalSettingsClicked),e("body").delegate(".fl-builder-global-settings .fl-builder-settings-cancel","click",FLBuilder._cancelLayoutSettingsClicked),e("body").delegate(".fl-user-template","click",FLBuilder._userTemplateClicked),e("body").delegate(".fl-user-template-edit","click",FLBuilder._editUserTemplateClicked),e("body").delegate(".fl-user-template-delete","click",FLBuilder._deleteUserTemplateClicked),e("body").delegate(".fl-builder-template-replace-button","click",FLBuilder._templateReplaceClicked),e("body").delegate(".fl-builder-template-append-button","click",FLBuilder._templateAppendClicked),e("body").delegate(".fl-builder-template-actions .fl-builder-cancel-button","click",FLBuilder._templateCancelClicked),e("body").delegate(".fl-builder-user-template-settings .fl-builder-settings-save","click",FLBuilder._saveUserTemplateSettings),e("body").delegate(".fl-builder-help-tour-button","click",FLBuilder._startHelpTour),e("body").delegate(".fl-builder-knowledge-base-button","click",FLBuilder._viewKnowledgeBaseClicked),e("body").delegate(".fl-builder-forums-button","click",FLBuilder._visitForumsClicked),e("body").delegate(".fl-builder-no-tour-button","click",FLBuilder._noTourButtonClicked),e("body").delegate(".fl-builder-yes-tour-button","click",FLBuilder._yesTourButtonClicked),e("body").delegate(".fl-builder-alert-close","click",FLBuilder._alertClose),e("body").delegate(".fl-block-overlay","contextmenu",FLBuilder._onContextmenu),e("body").delegate(".fl-row-overlay .fl-block-remove","click",FLBuilder._deleteRowClicked),e("body").delegate(".fl-row-overlay .fl-block-copy","click",FLBuilder._rowCopyClicked),e("body").delegate(".fl-row-overlay .fl-block-move","mousedown",FLBuilder._rowDragInit),e("body").delegate(".fl-row-overlay .fl-block-settings","click",FLBuilder._rowSettingsClicked),e("body").delegate(".fl-row-overlay","click",FLBuilder._rowSettingsClicked),e("body").delegate(".fl-builder-row-settings .fl-builder-settings-save","click",FLBuilder._saveSettings),e("body").delegate(".fl-block-col-submenu .fl-block-row-reset","click",FLBuilder._resetRowWidthClicked),e("body").delegate(".fl-col-overlay .fl-block-move","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-copy","click",FLBuilder._copyColClicked),e("body").delegate(".fl-col-overlay .fl-block-remove","click",FLBuilder._deleteColClicked),e("body").delegate(".fl-col-overlay .fl-block-settings","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-col-overlay","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-builder-col-settings .fl-builder-settings-save","click",FLBuilder._saveSettings),e("body").delegate(".fl-block-col-submenu .fl-block-col-move","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-submenu .fl-block-col-edit","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-block-col-submenu .fl-block-col-delete","click",FLBuilder._deleteColClicked),e("body").delegate(".fl-block-col-submenu .fl-block-col-reset","click",FLBuilder._resetColumnWidthsClicked),e("body").delegate(".fl-block-col-submenu li","mouseenter",FLBuilder._showColHighlightGuide),e("body").delegate(".fl-block-col-submenu li","mouseleave",FLBuilder._removeColHighlightGuides),e("body").delegate(".fl-block-col-submenu .fl-block-col-move-parent","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-submenu .fl-block-col-edit-parent","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-module-overlay .fl-block-remove","click",FLBuilder._deleteModuleClicked),e("body").delegate(".fl-module-overlay .fl-block-copy","click",FLBuilder._moduleCopyClicked),e("body").delegate(".fl-module-overlay .fl-block-move","mousedown",FLBuilder._blockDragInit),e("body").delegate(".fl-module-overlay .fl-block-settings","click",FLBuilder._moduleSettingsClicked),e("body").delegate(".fl-module-overlay","click",FLBuilder._moduleSettingsClicked),e("body").delegate(".fl-builder-module-settings .fl-builder-settings-save","click",FLBuilder._saveModuleClicked),e("body").delegate(".fl-module-overlay .fl-block-col-settings","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-builder-settings-save-as","click",FLBuilder._showNodeTemplateSettings),e("body").delegate(".fl-builder-node-template-settings .fl-builder-settings-save","click",FLBuilder._saveNodeTemplate),e("body").delegate(".fl-builder-settings-tabs a","click",FLBuilder._settingsTabClicked),e("body").delegate(".fl-builder-settings-tabs a","show",FLBuilder._calculateSettingsTabsOverflow),e("body").delegate(".fl-builder-settings-tabs a","hide",FLBuilder._calculateSettingsTabsOverflow),e("body").delegate(".fl-builder-settings-cancel","click",FLBuilder._settingsCancelClicked),e("body").delegate(".fl-builder-settings-tabs-overflow-menu > a","click",FLBuilder._settingsTabsToOverflowMenuItemClicked.bind(this)),e("body").delegate(".fl-builder-settings-tabs-more","click",FLBuilder._toggleTabsOverflowMenu.bind(this)),e("body").delegate(".fl-builder-settings-tabs-overflow-click-mask","click",FLBuilder._hideTabsOverflowMenu.bind(this)),e("body").delegate(".fl-help-tooltip-icon","mouseover",FLBuilder._showHelpTooltip),e("body").delegate(".fl-help-tooltip-icon","mouseout",FLBuilder._hideHelpTooltip),e("body").delegate(".fl-builder-field-add","click",FLBuilder._addFieldClicked),e("body").delegate(".fl-builder-field-copy","click",FLBuilder._copyFieldClicked),e("body").delegate(".fl-builder-field-delete","click",FLBuilder._deleteFieldClicked),e("body").delegate(".fl-photo-field .fl-photo-select","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-edit","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-replace","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-remove","click",FLBuilder._singlePhotoRemoved),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-select","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-edit","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-add","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-video-field .fl-video-select","click",FLBuilder._selectSingleVideo),e("body").delegate(".fl-video-field .fl-video-replace","click",FLBuilder._selectSingleVideo),e("body").delegate(".fl-video-field .fl-video-remove","click",FLBuilder._singleVideoRemoved),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-select","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-edit","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-add","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-icon-field .fl-icon-select","click",FLBuilder._selectIcon),e("body").delegate(".fl-icon-field .fl-icon-replace","click",FLBuilder._selectIcon),e("body").delegate(".fl-icon-field .fl-icon-remove","click",FLBuilder._removeIcon),e("body").delegate(".fl-form-field .fl-form-field-edit","click",FLBuilder._formFieldClicked),e("body").delegate(".fl-form-field-settings .fl-builder-settings-save","click",FLBuilder._saveFormFieldClicked),e("body").delegate(".fl-layout-field-option","click",FLBuilder._layoutFieldClicked),e("body").delegate(".fl-link-field-select","click",FLBuilder._linkFieldSelectClicked),e("body").delegate(".fl-link-field-search-cancel","click",FLBuilder._linkFieldSelectCancelClicked),e("body").delegate(".fl-loop-data-source-select select[name=data_source]","change",FLBuilder._loopDataSourceChange),e("body").delegate(".fl-custom-query select[name=post_type]","change",FLBuilder._customQueryPostTypeChange),e("body").delegate(".fl-text-field-add-value","change",FLBuilder._textFieldAddValueSelectChange),e("body").delegate(".fl-field input[type=number]","focus",FLBuilder._onNumberFieldFocus),e("body").delegate(".fl-field input[type=number]","blur",FLBuilder._onNumberFieldBlur),FLBuilder.addHook("didCompleteAJAX",FLBuilder._refreshSettingsPreviewReference),FLBuilder.addHook("didRenderLayoutComplete",FLBuilder._refreshSettingsPreviewReference)},_unbindEvents:function(){e("a").off("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").off("click",FLBuilder._headerLinkClicked),e("body").undelegate(".fl-builder-content a","click",FLBuilder._preventDefault)},_rebindEvents:function(){e("a").on("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").on("click",FLBuilder._headerLinkClicked),e("body").delegate(".fl-builder-content a","click",FLBuilder._preventDefault)},_bindOverlayEvents:function(){var i=e(FLBuilder._contentClass);i.delegate(".fl-row","mouseenter",FLBuilder._rowMouseenter),i.delegate(".fl-row","mouseleave",FLBuilder._rowMouseleave),i.delegate(".fl-row-overlay","mouseleave",FLBuilder._rowMouseleave),i.delegate(".fl-col","mouseenter",FLBuilder._colMouseenter),i.delegate(".fl-col","mouseleave",FLBuilder._colMouseleave),i.delegate(".fl-module","mouseenter",FLBuilder._moduleMouseenter),i.delegate(".fl-module","mouseleave",FLBuilder._moduleMouseleave)},_destroyOverlayEvents:function(){var i=e(FLBuilder._contentClass);i.undelegate(".fl-row","mouseenter",FLBuilder._rowMouseenter),i.undelegate(".fl-row","mouseleave",FLBuilder._rowMouseleave),i.undelegate(".fl-row-overlay","mouseleave",FLBuilder._rowMouseleave),i.undelegate(".fl-col","mouseenter",FLBuilder._colMouseenter),i.undelegate(".fl-col","mouseleave",FLBuilder._colMouseleave),i.undelegate(".fl-module","mouseenter",FLBuilder._moduleMouseenter),i.undelegate(".fl-module","mouseleave",FLBuilder._moduleMouseleave)},_onContextmenu:function(i){e(this).hide()},_preventDefault:function(e){e.preventDefault()},_stopPropagation:function(e){e.stopPropagation()},_headerLinkClicked:function(i){var t=e(this),l=t.attr("href");this.hash||(i.preventDefault(),FLBuilderConfig.isUserTemplate||(FLBuilder._exitUrl=l.indexOf("?")>-1?l:l+"?fl_builder",FLBuilder.triggerHook("triggerDone")))},_warnBeforeUnload:function(){var i=e(".fl-builder-row-settings").length>0,t=e(".fl-builder-col-settings").length>0,l=e(".fl-builder-module-settings").length>0;if(i||t||l)return FLBuilderStrings.unloadWarning},_initTipTips:function(){e(".fl-tip:not(.fl-has-tip)").each(function(){var i=e(this);i.addClass("fl-has-tip"),void 0==i.attr("data-title")&&i.attr("data-title",i.attr("title"))}).tipTip({defaultPosition:"top",delay:1e3})},_hideTipTips:function(){e("#tiptip_holder").stop().hide()},_submenuParentClicked:function(i){var t=e("body"),l=e(this),n=l.find(".fl-builder-submenu");l.hasClass("fl-builder-submenu-open")?(t.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-right")):(l.offset().left+n.width()>e(window).width()&&l.addClass("fl-builder-submenu-right"),t.addClass("fl-builder-submenu-open"),l.addClass("fl-builder-submenu-open")),n.closest(".fl-row-overlay").addClass("fl-row-menu-active"),FLBuilder._hideTipTips(),i.preventDefault(),i.stopPropagation()},_submenuChildClicked:function(i){var t=e("body"),l=e(this).parents(".fl-builder-has-submenu");l.parents(".fl-builder-has-submenu").length||(t.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-open"))},_submenuMouseenter:function(i){var t=e(this),l=t.data("timeout");"undefined"!=typeof l&&clearTimeout(l)},_submenuMouseleave:function(i){var t=e("body"),l=e(this),n=setTimeout(function(){t.removeClass("fl-builder-submenu-open"),l.closest(".fl-builder-has-submenu").removeClass("fl-builder-submenu-open")},500);l.closest(".fl-row-overlay").removeClass("fl-row-menu-active"),l.data("timeout",n)},_submenuNestedParentMouseenter:function(i){var t=e(this),l=t.find(".fl-builder-submenu");t.width()+t.offset().left+l.width()>e(window).width()&&t.addClass("fl-builder-submenu-right")},_closeAllSubmenus:function(){e(".fl-builder-submenu-open").removeClass("fl-builder-submenu-open")},_upgradeClicked:function(){window.open(FLBuilderConfig.upgradeUrl)},_buttonMouseUp:function(i){e(i.currentTarget).blur()},_closePanel:function(){FLBuilder.triggerHook("hideContentPanel")},_showPanel:function(){FLBuilder.triggerHook("showContentPanel")},_togglePanel:function(){FLBuilder.triggerHook("toggleContentPanel")},_blockSectionTitleClicked:function(){var i=e(this),t=i.parent();t.hasClass("fl-active")?t.removeClass("fl-active"):(e(".fl-builder-blocks-section").removeClass("fl-active"),t.addClass("fl-active")),FLBuilder._initScrollbars()},_publishLayout:function(e){if(FLBuilder._triggerSettingsSave(!1,!0)){if(_.isUndefined(e))var e=!0;FLBuilder.ajax({action:"save_layout"},this._onPublishComplete.bind(this,e))}},_publishButtonClicked:function(e){FLBuilder._publishLayout(e)},_onPublishComplete:function(i){i&&(FLBuilderConfig.shouldRefreshOnPublish?FLBuilder._exit():FLBuilder._exitWithoutRefresh()),e("#wp-admin-bar-fl-builder-frontend-edit-link .fl-builder-admin-bar-status-dot").css("color","#6bc373"),FLBuilder.triggerHook("didPublishLayout")},_draftButtonClicked:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"save_draft"},FLBuilder._exit)},_discardButtonClicked:function(){var e=confirm(FLBuilderStrings.discardMessage);e?(FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"clear_draft_layout"},FLBuilder._exit)):FLBuilder.triggerHook("didCancelDiscard")},_cancelButtonClicked:function(){FLBuilder._exitUrl=null,FLBuilder._actionsLightbox.close()},_exit:function(){var e=window.location.href;try{var i="undefined"!=typeof window.opener.FLBuilder}catch(t){var i=!1}FLBuilderConfig.isUserTemplate&&"undefined"!=typeof window.opener&&window.opener?(i&&("undefined"==typeof FLBuilderGlobalNodeId?window.opener.FLBuilder._updateLayout():window.opener.FLBuilder._updateNode(FLBuilderGlobalNodeId)),window.close()):(FLBuilder._exitUrl?e=FLBuilder._exitUrl:(e=e.replace("?fl_builder&","?"),e=e.replace("?fl_builder",""),e=e.replace("&fl_builder","")),window.location.href=e)},_exitWithoutRefresh:function(){window.location.href;try{var e="undefined"!=typeof window.opener.FLBuilder}catch(i){var e=!1}FLBuilderConfig.isUserTemplate&&e&&window.opener?(e&&("undefined"==typeof FLBuilderGlobalNodeId?window.opener.FLBuilder._updateLayout():window.opener.FLBuilder._updateNode(FLBuilderGlobalNodeId)),window.close()):FLBuilder.triggerHook("endEditingSession")},_duplicateLayoutClicked:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"duplicate_post"},FLBuilder._duplicateLayoutComplete)},_duplicateLayoutComplete:function(e){var i=FLBuilderConfig.adminUrl;window.location.href=i+"post.php?post="+e+"&action=edit"},_layoutSettingsClicked:function(){FLBuilderSettingsForms.render({id:"layout",className:"fl-builder-layout-settings",settings:FLBuilderSettingsConfig.settings.layout},function(){FLBuilder._layoutSettingsInitCSS()})},_layoutSettingsInitCSS:function(){var i=e(".fl-builder-settings #fl-field-css textarea:not(.ace_text-input)");i.on("change",FLBuilder._layoutSettingsCSSChanged),FLBuilder._layoutSettingsCSSCache=i.val()},_layoutSettingsCSSChanged:function(){FLBuilder._layoutSettingsCSSTimeout&&clearTimeout(FLBuilder._layoutSettingsCSSTimeout),FLBuilder._layoutSettingsCSSTimeout=setTimeout(e.proxy(FLBuilder._layoutSettingsCSSDoChange,this),600)},_layoutSettingsCSSDoChange:function(){var i=e(".fl-builder-settings"),t=e(this),l=t.parents("#fl-field-css");l.find(".ace_error").length>0||(i.hasClass("fl-builder-layout-settings")?e("#fl-builder-layout-css").html(t.val()):e("#fl-builder-global-css").html(t.val()),FLBuilder._layoutSettingsCSSTimeout=null)},_saveLayoutSettingsClicked:function(){for(var i=e(this).closest(".fl-builder-settings"),t=i.serializeArray(),l={},n=0;n<t.length;n++)l[t[n].name]=t[n].value;FLBuilder.showAjaxLoader(),FLBuilder._lightbox.close(),FLBuilder._layoutSettingsCSSCache=null,FLBuilder.ajax({action:"save_layout_settings",settings:l},function(){FLBuilder.triggerHook("didSaveLayoutSettingsComplete",l),FLBuilder._updateLayout()})},_cancelLayoutSettingsClicked:function(){var i=e(".fl-builder-settings");i.hasClass("fl-builder-layout-settings")?e("#fl-builder-layout-css").html(FLBuilder._layoutSettingsCSSCache):e("#fl-builder-global-css").html(FLBuilder._layoutSettingsCSSCache),FLBuilder._layoutSettingsCSSCache=null},_globalSettingsClicked:function(){FLBuilderSettingsForms.render({id:"global",className:"fl-builder-global-settings",settings:FLBuilderSettingsConfig.settings.global},function(){FLBuilder._layoutSettingsInitCSS()})},_saveGlobalSettingsClicked:function(){var i=e(this).closest(".fl-builder-settings"),t=i.validate().form(),l=FLBuilder._getSettings(i);t&&(FLBuilder.showAjaxLoader(),FLBuilder._layoutSettingsCSSCache=null,FLBuilder.ajax({action:"save_global_settings",settings:l},FLBuilder._saveGlobalSettingsComplete),FLBuilder._lightbox.close())},_saveGlobalSettingsComplete:function(e){FLBuilderConfig.global=FLBuilder._jsonParse(e),FLBuilder.triggerHook("didSaveGlobalSettingsComplete",FLBuilderConfig.global),FLBuilder._updateLayout()},_initTemplateSelector:function(){var i=e(FLBuilder._contentClass).find(".fl-row"),t=i.length>0;t||FLBuilder.ContentPanel.show("modules")},_requestTemplateInsert:function(e,i){FLBuilder.layoutHasContent()?0==e?confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._lightbox._node.hide(),FLBuilder._applyTemplate(0,!1,i)):(FLBuilder._selectedTemplateId=e,FLBuilder._selectedTemplateType=i,FLBuilder._showTemplateActions(),FLBuilder._lightbox._node.hide()):FLBuilder._applyTemplate(e,!1,i)},_showTemplateActions:function(){var e=[];e[10]={key:"template-replace",label:FLBuilderStrings.templateReplace},e[20]={key:"template-append",label:FLBuilderStrings.templateAppend},FLBuilder._showActionsLightbox({className:"fl-builder-template-actions",title:FLBuilderStrings.actionsLightboxTitle,buttons:e})},_templateReplaceClicked:function(){confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._actionsLightbox.close(),FLBuilder._applyTemplate(FLBuilder._selectedTemplateId,!1,FLBuilder._selectedTemplateType));
|
3 |
},_templateAppendClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilder._applyTemplate(FLBuilder._selectedTemplateId,!0,FLBuilder._selectedTemplateType)},_templateCancelClicked:function(){FLBuilder.triggerHook("showContentPanel")},_applyTemplate:function(e,i,t){i="undefined"!=typeof i&&i?"1":"0",t="undefined"==typeof t?"core":t,FLBuilder._lightbox.close(),FLBuilder.showAjaxLoader(),"core"==t?FLBuilder.ajax({action:"apply_template",template_id:e,append:i},FLBuilder._applyTemplateComplete):FLBuilder.ajax({action:"apply_user_template",template_id:e,append:i},FLBuilder._applyUserTemplateComplete),FLBuilder.triggerHook("didApplyTemplate")},_applyTemplateComplete:function(e){var i=FLBuilder._jsonParse(e);FLBuilder._renderLayout(i.layout),FLBuilder.triggerHook("didApplyTemplateComplete",i.config)},_applyUserTemplateComplete:function(i){var t=FLBuilder._jsonParse(i);null!==t.layout_css&&e("#fl-builder-layout-css").html(t.layout_css),FLBuilder._renderLayout(t.layout),FLBuilder.triggerHook("didApplyTemplateComplete",t.config)},_saveUserTemplateClicked:function(){FLBuilderSettingsForms.render({id:"user_template",className:"fl-builder-user-template-settings",rules:{name:{required:!0}}})},_saveUserTemplateSettings:function(){var i=e(this).closest(".fl-builder-settings"),t=i.validate().form(),l=FLBuilder._getSettings(i);t&&(FLBuilder.ajax({action:"save_user_template",settings:l},FLBuilder._saveUserTemplateSettingsComplete),FLBuilder._lightbox.close())},_saveUserTemplateSettingsComplete:function(e){if(e){var e=FLBuilder._jsonParse(e);FLBuilderConfig.contentItems.template.push(e),FLBuilder.triggerHook("contentItemsChanged")}},_userTemplateClicked:function(){var i=e(this).attr("data-id");e(FLBuilder._contentClass).children(".fl-row").length>0?"blank"==i?confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._lightbox._node.hide(),FLBuilder._applyTemplate("blank",!1,"user")):(FLBuilder._selectedTemplateId=i,FLBuilder._selectedTemplateType="user",FLBuilder._showTemplateActions(),FLBuilder._lightbox._node.hide()):FLBuilder._applyTemplate(i,!1,"user")},_editUserTemplateClicked:function(i){i.preventDefault(),i.stopPropagation(),window.open(e(this).attr("href"))},_deleteUserTemplateClicked:function(i){var t=e(this).closest(".fl-user-template"),l=t.attr("data-id"),n=(e(".fl-user-template[data-id="+l+"]"),null),s=null,o=null;if(confirm(FLBuilderStrings.deleteTemplate)){FLBuilder.ajax({action:"delete_user_template",template_id:l});for(s in FLBuilderConfig.contentItems.template)o=FLBuilderConfig.contentItems.template[s],o.postId==l&&(n=s);_.isNull(n)||(FLBuilderConfig.contentItems.template.splice(n,1),FLBuilder.triggerHook("contentItemsChanged"))}i.stopPropagation()},_viewKnowledgeBaseClicked:function(){window.open(FLBuilderConfig.help.knowledge_base_url)},_visitForumsClicked:function(){window.open(FLBuilderConfig.help.forums_url)},_showTourOrTemplates:function(){FLBuilderConfig.simpleUi||FLBuilderConfig.isUserTemplate||(FLBuilderConfig.help.tour&&FLBuilderConfig.newUser?FLBuilder._showTourLightbox():FLBuilder._initTemplateSelector())},_doStats:function(){1==FLBuilderConfig.statsEnabled&&(args={"screen-width":screen.width,"screen-height":screen.height,"pixel-ratio":window.devicePixelRatio,"user-agent":window.navigator.userAgent,isrtl:FLBuilderConfig.isRtl},FLBuilder.ajax({action:"save_browser_stats",browser_data:args}))},_showTourLightbox:function(){var e=wp.template("fl-tour-lightbox");FLBuilder._actionsLightbox.open(e())},_noTourButtonClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilder._initTemplateSelector()},_yesTourButtonClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilderTour.start()},_startHelpTour:function(){FLBuilder._actionsLightbox.close(),FLBuilderTour.start()},_setupEmptyLayout:function(){var i=e(FLBuilder._contentClass);FLBuilderConfig.isUserTemplate&&"module"==FLBuilderConfig.userTemplateType||FLBuilderConfig.isUserTemplate&&"column"==FLBuilderConfig.userTemplateType||(i.removeClass("fl-builder-empty"),i.find(".fl-builder-empty-message").remove(),i.find(".fl-row, .fl-builder-block").length||(i.addClass("fl-builder-empty"),i.append('<span class="fl-builder-empty-message">'+FLBuilderStrings.emptyMessage+"</span>"),FLBuilder._initSortables()))},_updateNode:function(i,t){e(".fl-node-"+i).length&&(FLBuilder._showNodeLoading(i),FLBuilder.ajax({action:"render_node",node_id:i},function(e){FLBuilder._renderLayout(FLBuilder._jsonParse(e),t)}.bind(this)))},_updateLayout:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"render_layout"},FLBuilder._renderLayout)},_renderLayout:function(e,i){FLBuilder._layout?FLBuilder._layoutQueue.push({data:e,callback:i}):FLBuilder._layout=new FLBuilderAJAXLayout(e,i)},_renderLayoutComplete:function(){if(FLBuilder._layout&&(FLBuilder._layout._complete(),FLBuilder._layout=null),FLBuilder._layoutQueue.length){var e=FLBuilder._layoutQueue.shift();FLBuilder._layout=new FLBuilderAJAXLayout(e.data,e.callback)}},_resizeLayout:function(){e(window).trigger("resize"),"undefined"!=typeof YUI&&YUI().use("node-event-simulate",function(e){e.one(window).simulate("resize")})},layoutHasContent:function(){return e(FLBuilder._contentClass).children(".fl-row").length>0},_initMediaElements:function(){var i={};"undefined"!=typeof e.fn.mediaelementplayer&&("undefined"!=typeof _wpmejsSettings&&(i.pluginPath=_wpmejsSettings.pluginPath),e(".wp-audio-shortcode, .wp-video-shortcode").not(".mejs-container").mediaelementplayer(i))},_initDropTargets:function(){var i="row"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)",t=e(FLBuilder._contentClass+" .fl-row"),l=null,n=e(FLBuilder._contentClass+" .fl-row"+i).find(".fl-col-group"),s=null,o=null,r="column"==FLBuilderConfig.userTemplateType?e(FLBuilder._contentClass+"> .fl-col").eq(0):null,a=0;for(e(".fl-col-drop-target").remove(),e(".fl-col-group-drop-target").remove(),e(".fl-row-drop-target").remove(),e(FLBuilder._contentClass).append('<div class="fl-drop-target fl-row-drop-target"></div>'),t.prepend('<div class="fl-drop-target fl-row-drop-target"></div>'),t.append('<div class="fl-drop-target fl-drop-target-last fl-row-drop-target fl-row-drop-target-last"></div>');a<t.length;a++)l=t.eq(a),0===l.find(".fl-col-group").length&&l.find(".fl-row-content").prepend('<div class="fl-drop-target fl-col-group-drop-target"></div>');for(r&&0===n.length&&(n=r.find(".fl-col-group"),r.append('<div class="fl-drop-target fl-col-drop-target"></div>'),r.append('<div class="fl-drop-target fl-drop-target-last fl-col-drop-target fl-col-drop-target-last"></div>')),a=0;a<n.length;a++)s=n.eq(a),o=s.find("> .fl-col"),s.hasClass("fl-col-group-nested")||(s.append('<div class="fl-drop-target fl-col-group-drop-target"></div>'),s.append('<div class="fl-drop-target fl-drop-target-last fl-col-group-drop-target fl-col-group-drop-target-last"></div>')),o.append('<div class="fl-drop-target fl-col-drop-target"></div>'),o.append('<div class="fl-drop-target fl-drop-target-last fl-col-drop-target fl-col-drop-target-last"></div>')},_blockDragHelper:function(e,i){var t=i.clone();return i.clone().insertAfter(i),t.addClass("fl-builder-block-drag-helper"),t},_blockDragInit:function(i){var t=e(i.currentTarget),l=null,n=e(window).scrollTop(),s=0;FLBuilder._dragEnabled=!0,FLBuilder._dragInitialScrollTop=n,t.closest("[data-node]").length>0?(l=t.closest("[data-node]"),l.addClass("fl-node-drag-init")):t.hasClass("fl-builder-block")&&e(".fl-row").each(function(){null===l&&e(this).offset().top-n>0&&(l=e(this))}),null!==l&&(s=l.offset().top-n),FLBuilder._highlightRowsAndColsForDrag(t),FLBuilder._adjustColHeightsForDrag(),FLBuilder._disableGlobalRows(),FLBuilder._disableGlobalCols(),FLBuilder._destroyOverlayEvents(),FLBuilder._removeAllOverlays(),FLBuilder._initSortables(),e("body").addClass("fl-builder-dragging"),e(".fl-builder-empty-message").hide(),e(".fl-sortable-disabled").removeClass("fl-sortable-disabled"),s>0&&scrollTo(0,l.offset().top-s),FLBuilder.triggerHook("didInitDrag")},_blockDragStart:function(i,t){FLBuilder._dragging=!0,e(".fl-node-drag-init").removeClass("fl-node-drag-init"),FLBuilder.triggerHook("didStartDrag")},_blockDragSort:function(i,t){var l=t.placeholder.parent(),n=FLBuilderStrings.insert;FLBuilder._blockPreventSort(t.item,l)||(l.hasClass("fl-col-content")?n=t.item.hasClass("fl-builder-block-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-col-sortable-proxy-item")?FLBuilderStrings.column:t.item.hasClass("fl-builder-block-module")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-module")||t.item.hasClass("fl-builder-block-module-template")?t.item.find(".fl-builder-block-title").text():t.item.attr("data-name"):l.hasClass("fl-col-drop-target")?n="":l.hasClass("fl-col-group-drop-target")?n="":l.hasClass("fl-row-drop-target")&&(n=t.item.hasClass("fl-builder-block-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-column")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-row-sortable-proxy-item")?FLBuilderStrings.row:FLBuilderStrings.newRow),t.placeholder.html(n),t.item.hasClass("fl-node-global")||t.item.hasClass("fl-builder-block-global")||e(".fl-node-dragging").hasClass("fl-node-global")?t.placeholder.addClass("fl-builder-drop-zone-global"):t.placeholder.removeClass("fl-builder-drop-zone-global"))},_blockDragChange:function(e,i){i.placeholder.css("opacity","0"),i.placeholder.animate({opacity:"1"},100)},_blockPreventSort:function(i,t){var l=!1,n=i.hasClass("fl-builder-block-row"),s=i.hasClass("fl-col-sortable-proxy-item"),o=t.hasClass("fl-col-content"),r=t.hasClass("fl-col-drop-target"),a=t.parents(".fl-col-group:not(.fl-col-group-nested)"),d=t.parents(".fl-col-group-nested");return(n||s)&&o&&d.length>0&&(l=!0),o&&!t.find(".fl-module, .fl-col").length&&(n&&"1-col"==i.data("cols")?l=!0:s&&(l=!0)),n&&o&&e.inArray(i.data("cols"),["5-cols","6-cols"])>-1&&(l=!0),s&&e(".fl-node-dragging").find(".fl-col-group-nested").length>0&&(o||r&&d.length>0)&&(l=!0),r&&a.length>0&&0===d.length&&a.find("> .fl-col:visible").length>11&&(l=!0),r&&d.length>0&&d.find(".fl-col:visible").length>3&&(l=!0),l&&t.addClass("fl-sortable-disabled"),l},_blockDragStop:function(i,t){var l=e(window).scrollTop(),n=t.item.parent(),s=null;n.hasClass("fl-drop-target")&&n.closest("[data-node]").length?(n=n.closest("[data-node]"),s=n.offset().top-l):s=n.offset().top-l,n.hasClass("fl-builder-blocks-section-content")&&FLBuilder._showPanel(),FLBuilder._dragEnabled=!1,FLBuilder._dragging=!1,FLBuilder._bindOverlayEvents(),FLBuilder._removeEmptyRowAndColHighlights(),FLBuilder._highlightEmptyCols(),FLBuilder._enableGlobalRows(),FLBuilder._enableGlobalCols(),FLBuilder._setupEmptyLayout(),e("body").removeClass("fl-builder-dragging"),scrollTo(0,n.offset().top-s),FLBuilder.triggerHook("didStopDrag")},_blockDragCancel:function(){FLBuilder._dragEnabled&&!FLBuilder._dragging&&(FLBuilder._dragEnabled=!1,FLBuilder._dragging=!1,FLBuilder._bindOverlayEvents(),FLBuilder._removeEmptyRowAndColHighlights(),FLBuilder._highlightEmptyCols(),FLBuilder._enableGlobalRows(),FLBuilder._setupEmptyLayout(),e("body").removeClass("fl-builder-dragging"),e(".fl-node-drag-init").removeClass("fl-node-drag-init"),e(".fl-node-dragging").removeClass("fl-node-dragging"),scrollTo(0,FLBuilder._dragInitialScrollTop))},_reorderNode:function(e,i){FLBuilder.ajax({action:"reorder_node",node_id:e,position:i})},_moveNode:function(e,i,t){FLBuilder.ajax({action:"move_node",new_parent:e,node_id:i,position:t})},_removeAllOverlays:function(){FLBuilder._removeRowOverlays(),FLBuilder._removeColOverlays(),FLBuilder._removeColHighlightGuides(),FLBuilder._removeModuleOverlays(),FLBuilder._hideTipTips(),FLBuilder._closeAllSubmenus()},_appendOverlay:function(e,i){var t=0,l=null,n=e.hasClass("fl-row"),s=n?e.find("> .fl-row-content-wrap"):e.find("> .fl-node-content"),o={top:parseInt(s.css("margin-top"),10),bottom:parseInt(s.css("margin-bottom"),10)};return e.append(i),e.addClass("fl-block-overlay-active"),FLBuilder._initTipTips(),l=e.find("> .fl-block-overlay"),o.top<0&&(t=parseInt(l.css("top"),10),t=isNaN(t)?0:t,l.css("top",o.top+t+"px")),o.bottom<0&&(t=parseInt(l.css("bottom"),10),t=isNaN(t)?0:t,l.css("bottom",o.bottom+t+"px")),l},_buildOverlayOverflowMenu:function(e){var i=e.find(".fl-block-overlay-header"),t=e.find(".fl-block-overlay-actions"),l=e.find(".fl-block-has-rules"),n=t.data("original"),s=0,o=null,r=0,a=null,d=0,u=[],c=[],f=[],h=wp.template("fl-overlay-overflow-menu");for(void 0!=n&&(t.after(n),t.remove(),t=n),t.data("original",t.clone()),s=Math.floor(t[0].getBoundingClientRect().width)-8,o=t.find(" > i, > span.fl-builder-has-submenu"),l.length&&s+l.outerWidth()>i.outerWidth()&&(r+=l.outerWidth());d<o.length;d++)a=o.eq(d),r+=Math.floor(a[0].getBoundingClientRect().width),r>s?(c.push(a),a.remove()):u.push(a);if(c.length>0){for(u.length>0&&c.unshift(u.pop().remove()),d=0;d<c.length;d++)c[d].is(".fl-builder-has-submenu")?f.push({type:"submenu",label:c[d].find(".fa, .fas, .far").data("title"),submenu:c[d].find(".fl-builder-submenu")[0].outerHTML}):f.push({type:"action",label:c[d].data("title"),className:c[d].removeClass(function(e,i){return i.replace(/fl-block-([^\s]+)/,"")}).attr("class")});t.append(h(f)),FLBuilder._initTipTips()}},_removeRowOverlays:function(){e(".fl-row").removeClass("fl-block-overlay-active"),e(".fl-row-overlay").remove(),e(".fl-module").removeClass("fl-module-adjust-height"),e("body").removeClass("fl-builder-row-resizing"),FLBuilder._closeAllSubmenus()},_disableGlobalRows:function(){"row"!=FLBuilderConfig.userTemplateType&&e(".fl-row.fl-node-global").addClass("fl-node-disabled")},_disableGlobalCols:function(){"column"!=FLBuilderConfig.userTemplateType&&e(".fl-row:not(.fl-node-global) .fl-col.fl-node-global").addClass("fl-node-disabled")},_enableGlobalRows:function(){"row"!=FLBuilderConfig.userTemplateType&&e(".fl-node-disabled").removeClass("fl-node-disabled")},_enableGlobalCols:function(){"column"!=FLBuilderConfig.userTemplateType&&e(".fl-node-disabled").removeClass("fl-node-disabled")},_rowMouseenter:function(){var i=e(this),t=i.offset().top,l=null,n=null,s=wp.template("fl-row-overlay"),o=FLBuilderResponsiveEditing._mode;i.closest(".fl-builder-node-loading").length||i.hasClass("fl-block-overlay-active")||(n=FLBuilder._appendOverlay(i,s({node:i.attr("data-node"),global:i.hasClass("fl-node-global"),hasRules:i.hasClass("fl-node-has-rules")})),i.find(".fl-node-content:visible").each(function(){var i=e(this).offset().top;l=null===l||l>i?i:l}),null!==l&&l<t&&n.css("top",l-t-30+"px"),("default"===o&&n.offset().top<43||"default"!==o&&0===i.index())&&n.addClass("fl-row-overlay-header-bottom"),i.find(".fl-module").each(function(){var i=e(this);i.outerHeight(!0)<20&&i.addClass("fl-module-adjust-height")}),FLBuilder._buildOverlayOverflowMenu(n))},_rowMouseleave:function(i){var t=e(i.toElement)||e(i.relatedTarget),l=t.hasClass("fl-row-overlay"),n=t.closest(".fl-row-overlay").length>0,s=t.is("#tiptip_holder"),o=t.closest("#tiptip_holder").length>0;l||n||s||o||FLBuilder._removeRowOverlays()},_rowDragHelper:function(){return e('<div class="fl-builder-block-drag-helper">'+FLBuilderStrings.row+"</div>")},_rowDragInit:function(i){var t=e(i.target),l=e(".fl-row-sortable-proxy-item"),n=t.closest(".fl-row");n.addClass("fl-node-dragging"),FLBuilder._blockDragInit(i),i.target=l[0],l.trigger(i)},_rowDragStart:function(i,t){var l=e(FLBuilder._contentClass+" .fl-row"),n=e(".fl-node-dragging");1===l.length&&e(FLBuilder._contentClass).addClass("fl-builder-empty"),n.hide(),FLBuilder._blockDragStart(i,t)},_rowDragStop:function(i,t){var l=t.item,n=l.parent(),s=null,o=null,r=0;if(FLBuilder._blockDragStop(i,t),n.hasClass("fl-builder-rows"))return void l.remove();if(n.hasClass("fl-row-sortable-proxy"))return void e(".fl-node-dragging").removeClass("fl-node-dragging").show();if(l.hasClass("fl-builder-block")){if(n.hasClass("fl-sortable-disabled"))return l.remove(),void FLBuilder._showPanel();n.hasClass("fl-col-content")?FLBuilder._addColGroup(l.closest(".fl-col").attr("data-node"),l.attr("data-cols"),n.find("> .fl-module, .fl-col-group, .fl-builder-block").index(l)):n.hasClass("fl-col-drop-target")?FLBuilder._addCols(n.closest(".fl-col"),n.hasClass("fl-col-drop-target-last")?"after":"before",l.attr("data-cols"),n.closest(".fl-col-group-nested").length>0):n.hasClass("fl-col-group-drop-target")?(o=l.closest(".fl-col-group"),r=l.closest(".fl-row").find(".fl-row-content > .fl-col-group").index(o),FLBuilder._addColGroup(l.closest(".fl-row").attr("data-node"),l.attr("data-cols"),n.hasClass("fl-drop-target-last")?r+1:r)):(s=l.closest(".fl-row"),r=s.length?e(FLBuilder._contentClass+" > .fl-row").index(s):0,FLBuilder._addRow(l.attr("data-cols"),n.hasClass("fl-drop-target-last")?r+1:r)),l.remove(),FLBuilder._showPanel(),e(".fl-builder-modules").siblings(".fl-builder-blocks-section-title").eq(0).trigger("click")}else s=e(".fl-node-dragging").removeClass("fl-node-dragging").show(),n.parent().hasClass("fl-builder-content")||(n.hasClass("fl-drop-target-last")?n.parent().after(s):n.parent().before(s),FLBuilder._reorderNode(s.attr("data-node"),s.index())),e(".fl-row-sortable-proxy").append(t.item)},_addRow:function(i,t,l){FLBuilder._showNodeLoadingPlaceholder(e(FLBuilder._contentClass),t),FLBuilder._newRowPosition=t,FLBuilder.ajax({action:"render_new_row",cols:i,position:t,module:l},FLBuilder._addRowComplete)},_addRowComplete:function(i){var t="object"==typeof i?i:FLBuilder._jsonParse(i),l=e(FLBuilder._contentClass),n=e(t.html).data("node");t.nodeParent=l,t.nodePosition=FLBuilder._newRowPosition,FLBuilder._renderLayout(t,function(){FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+n)),FLBuilder.triggerHook("didAddRow",n)})},_deleteRowClicked:function(i){var t=e(this).closest(".fl-row"),l=null;t.find(".fl-module").length?(l=confirm(FLBuilderStrings.deleteRowMessage),l&&FLBuilder._deleteRow(t)):FLBuilder._deleteRow(t),FLBuilder._removeAllOverlays(),i.stopPropagation()},_deleteRow:function(e){var i=e.attr("data-node");FLBuilder.ajax({action:"delete_node",node_id:i}),e.empty(),e.remove(),FLBuilder._setupEmptyLayout(),FLBuilder._removeRowOverlays(),FLBuilder.triggerHook("didDeleteRow",i)},_rowCopyClicked:function(i){var t=e(window),l=e(this).closest(".fl-row"),n=l.attr("data-node"),s=l.clone(),o=e(".fl-builder-settings[data-node]"),r=o.attr("data-node"),a=r===n?l:l.find('[data-node="'+r+'"]'),d=null;o.length&&a.length&&(d=FLBuilder._getSettings(o),FLBuilderSettingsConfig.nodes[r]=d),s.addClass("fl-node-"+n+"-clone fl-builder-node-clone"),s.find(".fl-block-overlay").remove(),l.after(s),FLBuilder._showNodeLoading(n+"-clone"),t.scrollTop()+t.height()<s.offset().top&&e("html, body").animate({scrollTop:s.offset().top+s.height()-t.height()},500),FLBuilder.ajax({action:"copy_row",node_id:n,settings:d,settings_id:r},function(i){var t=FLBuilder._jsonParse(i);t.nodeParent=e(FLBuilder._contentClass),t.nodePosition=e(FLBuilder._contentClass+" > .fl-row").index(s),t.duplicatedRow=n,t.onAddNewHTML=function(){s.remove()},FLBuilder._rowCopyComplete(t)}),i.stopPropagation()},_rowCopyComplete:function(e){FLBuilder._renderLayout(e,function(){FLBuilder.triggerHook("didDuplicateRow",{newNodeId:e.nodeId,oldNodeId:e.duplicatedRow})})},_rowSettingsClicked:function(i){var t=e(this),l=t.closest(".fl-row").attr("data-node"),n=t.closest(".fl-block-overlay-global").length>0,s=null;n&&"row"!=FLBuilderConfig.userTemplateType?FLBuilderConfig.userCanEditGlobalTemplates&&(s=window.open(e('.fl-row[data-node="'+l+'"]').attr("data-template-url")),s.FLBuilderGlobalNodeId=l):t.hasClass("fl-block-settings")&&FLBuilderSettingsForms.render({id:"row",nodeId:l,className:"fl-builder-row-settings",attrs:'data-node="'+l+'"',buttons:n||FLBuilderConfig.lite||FLBuilderConfig.simpleUi?[]:["save-as"],badges:n?[FLBuilderStrings.global]:[],settings:FLBuilderSettingsConfig.nodes[l],preview:{type:"row"}},function(){e("#fl-field-width select").on("change",FLBuilder._rowWidthChanged),e("#fl-field-content_width select").on("change",FLBuilder._rowWidthChanged)}),i.stopPropagation()},_rowWidthChanged:function(){var i=e("#fl-field-width select").val(),t=e("#fl-field-content_width select").val(),l=e("#fl-field-max_content_width");"fixed"==i||"full"==i&&"fixed"==t?l.show():l.hide()},_resetRowWidthClicked:function(i){var t=e(this),l=t.closest(".fl-row"),n=l.attr("data-node"),s=l.find(".fl-row-content"),o=FLBuilderConfig.global.row_width+"px",r=e(".fl-builder-row-settings");l.hasClass("fl-row-fixed-width")&&l.css("max-width",o),s.css("max-width",o),r.length&&r.find("[name=max_content_width]").val(""),FLBuilder.ajax({action:"resize_row_content",node:n,width:""}),FLBuilder._closeAllSubmenus(),FLBuilder.triggerHook("didResetRowWidth",n),i.stopPropagation()},_highlightEmptyCols:function(){var i="row"==FLBuilderConfig.userTemplateType||"column"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)",t=(e(FLBuilder._contentClass+" .fl-row"+i),e(FLBuilder._contentClass+" .fl-col"+i));t.removeClass("fl-col-highlight").find(".fl-col-content").css("height",""),t.each(function(){var i=e(this);0===i.find(".fl-module, .fl-col").length&&i.addClass("fl-col-highlight")})},_highlightRowsAndColsForDrag:function(i){var t="row"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)";"column"==FLBuilderConfig.userTemplateType&&(t=":not(:first)"),e(FLBuilder._contentClass+" .fl-row").addClass("fl-row-highlight"),i&&i.closest(".fl-row-overlay").length||e(FLBuilder._contentClass+" .fl-col"+t).addClass("fl-col-highlight")},_removeEmptyRowAndColHighlights:function(){e(".fl-row-highlight").removeClass("fl-row-highlight"),e(".fl-col-highlight").removeClass("fl-col-highlight")},_adjustColHeightsForDrag:function(){var i="row"==FLBuilderConfig.userTemplateType?"":".fl-row:not(.fl-node-global) ",t="column"==FLBuilderConfig.userTemplateType?"":".fl-col:not(.fl-node-global) ",l=e(FLBuilder._contentClass),n=l.find(i+".fl-col-group:not(.fl-col-group-nested) > "+t+"> .fl-col-content"),s=l.find(i+".fl-col-group-nested "+t+".fl-col-content"),o=0;for(e(".fl-node-drag-init").hide();o<s.length;o++)FLBuilder._adjustColHeightForDrag(s.eq(o));for(o=0;o<n.length;o++)FLBuilder._adjustColHeightForDrag(n.eq(o));e(".fl-node-drag-init").show()},_adjustColHeightForDrag:function(e){e.find(".fl-module:visible, .fl-col:visible").length&&e.height(e.height()+45)},_showColHighlightGuide:function(){var i=e(this),t=i.find("a"),l=i.closest(".fl-col"),n=l.parents(".fl-col"),s=e('<div class="fl-col-highlight-guide"></div>'),o=null,r=i.closest(".fl-block-overlay").offset().top;(t.hasClass("fl-block-col-move-parent")||t.hasClass("fl-block-col-edit-parent"))&&(l=n),l.hasClass("fl-col-highlight")||(l.find("> .fl-col-content").append(s),l.addClass("fl-col-has-highlight-guide"),o=s.offset().top,o>r&&s.css("top",r-o+4+"px"))},_removeColHighlightGuides:function(){e(".fl-col-has-highlight-guide").removeClass("fl-col-has-highlight-guide"),e(".fl-col-highlight-guide").remove()},_colMouseenter:function(){var i=e(this),t=i.closest(".fl-col-group"),l=t.hasClass("fl-col-group-has-child-loading"),n=i.hasClass("fl-node-global"),s=i.parents(".fl-node-global").length>0,o=i.closest(".fl-col-group").find("> .fl-col").length,r=t.find("> .fl-col").index(i),a=0===r,d=o===r+1,u=i.find(".fl-col").length>0,c=i.find(".fl-module").length>0,f=i.parents(".fl-col"),h=f.closest(".fl-col-group"),g=f.length>0,p="undefined"!=typeof i.data("template-url"),b="column"==FLBuilderConfig.userTemplateType&&!g;numParentCols=g?h.find("> .fl-col").length:0,parentIndex=h.find("> .fl-col").index(f),parentFirst=!!g&&0===parentIndex,parentLast=!!g&&numParentCols===parentIndex+1,row=i.closest(".fl-row"),rowIsFixedWidth=!!row.find(".fl-row-fixed-width").addBack(".fl-row-fixed-width").length,userCanResizeRows=FLBuilderConfig.rowResize.userCanResizeRows,hasRules=i.hasClass("fl-node-has-rules"),template=wp.template("fl-col-overlay"),overlay=null,FLBuilderConfig.simpleUi&&!n||n&&s&&c&&!p||n&&"column"==FLBuilderConfig.userTemplateType&&c||!n&&i.find(".fl-module").length>0||i.find(".fl-builder-node-loading-placeholder").length>0||!c&&u||s&&u&&!p||i.closest(".fl-builder-node-loading").length||(i.hasClass("fl-block-overlay-active")||(FLBuilder._removeColOverlays(),FLBuilder._removeModuleOverlays(),overlay=FLBuilder._appendOverlay(i,template({global:n,groupLoading:l,numCols:o,first:a,last:d,isRootCol:b,hasChildCols:u,hasParentCol:g,parentFirst:parentFirst,parentLast:parentLast,numParentCols:numParentCols,rowIsFixedWidth:rowIsFixedWidth,userCanResizeRows:userCanResizeRows,hasRules:hasRules})),FLBuilder._buildOverlayOverflowMenu(overlay),FLBuilder._initColDragResizing()),e("body").addClass("fl-block-overlay-muted"))},_colMouseleave:function(i){var t=e(this),l=e(i.toElement)||e(i.relatedTarget),n=t.find(".fl-module").length>0,s=(t.hasClass("fl-node-global"),"undefined"!=typeof t.data("template-url")),o=l.is("#tiptip_holder"),r=l.closest("#tiptip_holder").length>0;o||r||n&&!s||(FLBuilder._removeColOverlays(),FLBuilder._removeColHighlightGuides(),FLBuilder._closeAllSubmenus())},_removeColOverlays:function(){var i=e(".fl-col");i.removeClass("fl-block-overlay-active"),i.find(".fl-col-overlay").remove(),e("body").removeClass("fl-block-overlay-muted"),FLBuilder._closeAllSubmenus()},_colDragHelper:function(){return e('<div class="fl-builder-block-drag-helper">'+FLBuilderStrings.column+"</div>")},_colDragInit:function(i){var t=e(i.target),l=e(".fl-col-sortable-proxy-item"),n=t.closest(".fl-col");t.hasClass("fl-block-col-move-parent")&&(n=n.parents(".fl-col")),n.addClass("fl-node-dragging"),FLBuilder._blockDragInit(i),FLBuilder._removeColHighlightGuides(),i.target=l[0],l.trigger(i)},_colDragStart:function(i,t){var l=e(".fl-node-dragging");l.hide(),FLBuilder._resetColumnWidths(l.parent()),FLBuilder._blockDragStart(i,t)},_colDragStop:function(i,t){FLBuilder._blockDragStop(i,t);var l=e(".fl-node-dragging").removeClass("fl-node-dragging").show(),n=l.attr("data-node"),s=t.item.parent(),o=l.parent(),r=o.attr("data-node");newGroup=s.closest(".fl-col-group"),newGroupId=newGroup.attr("data-node"),newRow=s.closest(".fl-row"),position=0,s.closest('[data-node="'+n+'"]').length?FLBuilder._resetColumnWidths(o):s.hasClass("fl-sortable-disabled")?FLBuilder._resetColumnWidths(o):s.hasClass("fl-col-sortable-proxy")?FLBuilder._resetColumnWidths(o):s.hasClass("fl-col-content")?(l.remove(),0===o.find(".fl-col").length&&o.remove(),position=s.find("> .fl-module, .fl-col-group, .fl-col-sortable-proxy-item").index(t.item),FLBuilder._addColGroup(s.closest(".fl-col").attr("data-node"),n,position)):s.hasClass("fl-col-drop-target")?(s.hasClass("fl-col-drop-target-last")?s.parent().after(l):s.parent().before(l),FLBuilder._resetColumnWidths(newGroup),r==newGroupId?FLBuilder.ajax({action:"reorder_col",node_id:n,position:l.index()}):FLBuilder.ajax({action:"move_col",node_id:n,new_parent:newGroupId,position:l.index(),resize:[r,newGroupId]}),FLBuilder._resizeLayout()):s.hasClass("fl-col-group-drop-target")?(l.remove(),0===o.find(".fl-col").length&&o.remove(),position=newRow.find(".fl-row-content > .fl-col-group").index(newGroup),position=s.hasClass("fl-drop-target-last")?position+1:position,FLBuilder._addColGroup(newRow.attr("data-node"),n,position)):s.hasClass("fl-row-drop-target")&&(l.remove(),position=s.closest(".fl-builder-content").find(".fl-row").index(newRow),position=s.hasClass("fl-drop-target-last")?position+1:position,FLBuilder._addRow(n,position)),0===o.find(".fl-col").length&&o.remove(),e(".fl-col-sortable-proxy").append(t.item),FLBuilder._highlightEmptyCols(),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder._closeAllSubmenus()},_colSettingsClicked:function(i){var t=e(this),l=t.closest(".fl-col"),n=(l.find("> .fl-col-content"),t.parent().find("ul.fl-builder-submenu").length>0),s=t.closest(".fl-block-overlay-global").length>0,o=t.closest(".fl-block-overlay-global").hasClass("fl-col-overlay"),r="column"!=FLBuilderConfig.userTemplateType&&"undefined"!=typeof l.attr("data-template-url"),a=null;FLBuilder._colResizing||s&&!FLBuilderConfig.userCanEditGlobalTemplates||n&&!t.hasClass("fl-col-overlay")||(t.hasClass("fl-block-col-edit-parent")&&(l=l.parents(".fl-col")),a=l.attr("data-node"),s&&o&&r?FLBuilderConfig.userCanEditGlobalTemplates&&(win=window.open(e('.fl-col[data-node="'+a+'"]').attr("data-template-url")),win.FLBuilderGlobalNodeId=a):FLBuilderSettingsForms.render({id:"col",nodeId:a,className:"fl-builder-col-settings",attrs:'data-node="'+a+'"',buttons:s||FLBuilderConfig.lite||FLBuilderConfig.simpleUi?[]:["save-as"],badges:s?[FLBuilderStrings.global]:[],settings:FLBuilderSettingsConfig.nodes[a],preview:{type:"col"}},function(){0===l.siblings(".fl-col").length&&e("#fl-field-size, #fl-field-equal_height, #fl-field-content_alignment").hide()}),i.stopPropagation())},_copyColClicked:function(i){var t=e(this).closest(".fl-col"),l=t.attr("data-node"),n=t.clone(),s=t.parent(),o=e(".fl-builder-settings[data-node]"),r=o.attr("data-node"),a=r===l?t:t.find('[data-node="'+r+'"]'),d=null;o.length&&a.length&&(d=FLBuilder._getSettings(o),FLBuilderSettingsConfig.nodes[r]=d),n.addClass("fl-node-"+l+"-clone fl-builder-node-clone"),n.find(".fl-block-overlay").remove(),t.after(n),FLBuilder._showNodeLoading(l+"-clone"),FLBuilder._resetColumnWidths(s),FLBuilder.ajax({action:"copy_col",node_id:l,settings:d,settings_id:r},function(e){var i=FLBuilder._jsonParse(e);i.nodeParent=s,i.nodePosition=n.index(),i.duplicatedColumn=l,i.onAddNewHTML=function(){n.remove()},FLBuilder._copyColComplete(i)}),i.stopPropagation()},_copyColComplete:function(e){FLBuilder._renderLayout(e,function(){FLBuilder._resetColumnWidths(e.nodeParent),FLBuilder.triggerHook("didDuplicateColumn",{newNodeId:e.nodeId,oldNodeId:e.duplicatedColumn})})},_deleteColClicked:function(i){var t=e(this),l=t.closest(".fl-col"),n=l.closest(".fl-col-group"),s=l.parents(".fl-col"),o=s.length>0,r=s.find("> .fl-col-content > .fl-module, > .fl-col-content > .fl-col-group"),a=l.siblings(".fl-col"),d=!0;l.find(".fl-module").length>0&&(d=confirm(FLBuilderStrings.deleteColumnMessage)),o&&1===r.length&&(0===a.length?l=s:1!==a.length||a.find(".fl-module").length||(l=n)),d&&(FLBuilder._deleteCol(l),FLBuilder._removeAllOverlays(),FLBuilder._highlightEmptyCols(),FLBuilder._resizeLayout()),i.stopPropagation()},_deleteCol:function(e){var i=e.attr("data-node"),t=e.closest(".fl-row"),l=e.closest(".fl-col-group"),n=0;e.remove(),rowCols=t.find(".fl-row-content > .fl-col-group > .fl-col"),groupCols=l.find(" > .fl-col"),0===rowCols.length&&"row"!=FLBuilderConfig.userTemplateType&&"column"!=FLBuilderConfig.userTemplateType?FLBuilder._deleteRow(t):(0===groupCols.length?l.remove():(n=6===groupCols.length?16.65:7===groupCols.length?14.28:Math.round(100/groupCols.length*100)/100,groupCols.css("width",n+"%"),FLBuilder.triggerHook("didResetColumnWidths",{cols:groupCols})),FLBuilder.ajax({action:"delete_col",node_id:i,new_width:n}),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder.triggerHook("didDeleteColumn",i))},_addCols:function(e,i,t,l,n){var s=e.closest(".fl-col-group"),o=s.find(".fl-col").index(e);t="undefined"==typeof t?"1-col":t,l="undefined"!=typeof l&&l,"after"==i&&o++,FLBuilder._showNodeLoadingPlaceholder(s,o),FLBuilder._removeAllOverlays(),FLBuilder.ajax({action:"render_new_columns",node_id:e.attr("data-node"),insert:i,type:t,nested:l?1:0,module:n},FLBuilder._addColsComplete)},_addColsComplete:function(i){var t="object"==typeof i?i:FLBuilder._jsonParse(i);t.nodeParent=FLBuilder._newColParent,t.nodePosition=FLBuilder._newColPosition,FLBuilder._renderLayout(t,function(){FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+t.nodeId)),FLBuilder.triggerHook("didAddColumn",t.nodeId),FLBuilder.triggerHook("didResetColumnWidths",{cols:e(".fl-node-"+t.nodeId).find("> .fl-col")})})},_addColGroup:function(i,t,l,n){var s=e(".fl-node-"+i);FLBuilder._newColGroupPosition=l,s.hasClass("fl-col")?FLBuilder._newColGroupParent=s.find(" > .fl-col-content"):FLBuilder._newColGroupParent=s.find(".fl-row-content"),
|
4 |
-
FLBuilder._showNodeLoadingPlaceholder(FLBuilder._newColGroupParent,l),FLBuilder.ajax({action:"render_new_column_group",cols:t,node_id:i,position:l,module:n},FLBuilder._addColGroupComplete)},_addColGroupComplete:function(i){var t=FLBuilder._jsonParse(i),l=e(t.html),n=l.data("node");l.find(".fl-col").data("node");t.nodeParent=FLBuilder._newColGroupParent,t.nodePosition=FLBuilder._newColGroupPosition,FLBuilder._renderLayout(t,function(){t.nodeParent.hasClass("fl-col-content")&&t.nodeParent.parents(".fl-col").addClass("fl-col-has-cols"),FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+n)),FLBuilder.triggerHook("didAddColumnGroup",n)})},_initColDragResizing:function(){e(".fl-block-col-resize").not(".fl-block-row-resize").draggable({axis:"x",start:FLBuilder._colDragResizeStart,drag:FLBuilder._colDragResize,stop:FLBuilder._colDragResizeStop})},_colDragResizeStart:function(i,t){var l=e(t.helper),n="",s=l.hasClass("fl-block-col-resize-parent"),o=s?l.closest(".fl-col").parents(".fl-col"):null,r=s?o.parents(".fl-col-group"):l.closest(".fl-col-group"),a=r.find("> .fl-col"),d=s?o:l.closest(".fl-col"),u=d.attr("data-node"),c=e("[data-node="+u+"] #fl-field-size input"),f=null,h=null,g=null,p=100,b=0,m=null,v=null;for(l.hasClass("fl-block-col-resize-e")?(n="e",f=d.nextAll(".fl-col").first()):(n="w",f=d.prevAll(".fl-col").first()),h=f.attr("data-node"),g=e("[data-node="+h+"] #fl-field-size input");b<a.length;b++)a.eq(b).data("node")!=d.data("node")&&a.eq(b).data("node")!=f.data("node")&&(p-=parseFloat(a.eq(b)[0].style.width));c.length?(m=c,v="col"):g.length&&(m=g,v="sibling"),FLBuilder._colResizeData={handle:l,feedbackLeft:l.find(".fl-block-col-resize-feedback-left"),feedbackRight:l.find(".fl-block-col-resize-feedback-right"),direction:n,groupWidth:r.outerWidth(),col:d,colWidth:parseFloat(d[0].style.width)/100,sibling:f,offset:t.position.left,availWidth:p,setting:m,settingType:v},FLBuilder._colResizing=!0,e("body").addClass("fl-builder-col-resizing"),FLBuilder._closePanel(),FLBuilder._destroyOverlayEvents(),FLBuilder.triggerHook("col-resize-start")},_colDragResize:function(e,i){var t=FLBuilder._colResizeData,l=FLBuilderConfig.isRtl?"w":"e",n=t.handle.closest(".fl-block-overlay"),s=(t.offset-i.position.left)/t.groupWidth,o=l==t.direction?100*(t.colWidth-s):100*(t.colWidth+s),r=Math.round(100*o)/100,a=t.availWidth-o,d=Math.round(100*a)/100,u=8,c=Math.round(100*(t.availWidth-u))/100;r<u?(r=u,d=c):d<u&&(r=c,d=u),l==t.direction?(t.feedbackLeft.html(r.toFixed(1)+"%").show(),t.feedbackRight.html(d.toFixed(1)+"%").show()):(t.feedbackLeft.html(d.toFixed(1)+"%").show(),t.feedbackRight.html(r.toFixed(1)+"%").show()),t.col.css("width",r+"%"),t.sibling.css("width",d+"%"),t.setting&&("col"===t.settingType?t.setting.val(parseFloat(t.col[0].style.width)):"sibling"===t.settingType&&t.setting.val(parseFloat(t.sibling[0].style.width))),FLBuilder._buildOverlayOverflowMenu(n),FLBuilder.triggerHook("col-resize-drag")},_colDragResizeStop:function(i,t){var l=FLBuilder._colResizeData,n=FLBuilder._colResizeData.handle.closest(".fl-block-overlay"),s=l.col.data("node"),o=parseFloat(l.col[0].style.width),r=l.sibling.data("node"),a=parseFloat(l.sibling[0].style.width);FLBuilder._colResizeData.feedbackLeft.hide(),FLBuilder._colResizeData.feedbackRight.hide(),FLBuilder.ajax({action:"resize_cols",col_id:s,col_width:o,sibling_id:r,sibling_width:a}),FLBuilder._buildOverlayOverflowMenu(n),FLBuilder._colResizeData=null,e("body").removeClass("fl-builder-col-resizing"),FLBuilder._bindOverlayEvents(),setTimeout(function(){FLBuilder._colResizing=!1},50),FLBuilder.triggerHook("col-resize-stop"),FLBuilder.triggerHook("didResizeColumn",{colId:s,colWidth:o,siblingId:r,siblingWidth:a})},_resetColumnWidthsClicked:function(i){var t=e(this),l=!!t.closest(".fl-row-overlay").length,n=null,s=null,o=[],r=null,a=0,d=e(".fl-builder-col-settings"),u=null;s=l?t.closest(".fl-row").find(".fl-row-content > .fl-col-group"):t.parents(".fl-col-group").last(),s.each(function(){for(n=e(this),r=n.find(".fl-col-group"),o.push(n.data("node")),FLBuilder._resetColumnWidths(n),a=0;a<r.length;a++)FLBuilder._resetColumnWidths(r.eq(a)),o.push(r.eq(a).data("node"))}),d.length&&(u=e(".fl-node-"+d.attr("data-node")),d.find("#fl-field-size input").val(parseFloat(u[0].style.width))),FLBuilder.ajax({action:"reset_col_widths",group_id:o}),FLBuilder.triggerHook("col-reset-widths"),FLBuilder._closeAllSubmenus(),i.stopPropagation()},_resetColumnWidths:function(e){var i=e.find(" > .fl-col:visible"),t=0;t=6===i.length?16.65:7===i.length?14.28:Math.round(100/i.length*100)/100,i.css("width",t+"%"),FLBuilder.triggerHook("didResetColumnWidths",{cols:i})},_moduleMouseenter:function(){var i=e(this),t=i.attr("data-name"),l=i.hasClass("fl-node-global"),n=i.parents(".fl-node-global").length>0,s=i.parents(".fl-col-group").last(),o=s.hasClass("fl-col-group-has-child-loading"),r=i.closest(".fl-col-group").find("> .fl-col").length,a=i.closest(".fl-col"),d=0===a.index(),u=r===a.index()+1,c=a.parents(".fl-col"),f=c.length>0,h=f?c.closest(".fl-col-group").find("> .fl-col").length:0,g=!!f&&0===c.index(),p=!!f&&h===c.index()+1,b="column"==FLBuilderConfig.userTemplateType&&!f,m=i.closest(".fl-row"),v=m.hasClass("fl-node-global"),_=!!m.find(".fl-row-fixed-width").addBack(".fl-row-fixed-width").length,w=FLBuilderConfig.rowResize.userCanResizeRows,L=i.hasClass("fl-node-has-rules"),F=a.hasClass("fl-node-has-rules"),C=wp.template("fl-module-overlay"),y=null;FLBuilder._removeColOverlays(),FLBuilder._removeModuleOverlays(),l&&n&&"row"!=FLBuilderConfig.userTemplateType&&v||l&&n&&"column"!=FLBuilderConfig.userTemplateType&&!v||i.closest(".fl-builder-node-loading").length||i.find(".fl-inline-editor:visible").length||(i.hasClass("fl-block-overlay-active")||(y=FLBuilder._appendOverlay(i,C({global:l,moduleName:t,groupLoading:o,numCols:r,colFirst:d,colLast:u,isRootCol:b,hasParentCol:f,numParentCols:h,parentFirst:g,parentLast:p,rowIsFixedWidth:_,userCanResizeRows:w,hasRules:L,colHasRules:F})),FLBuilder._buildOverlayOverflowMenu(y),FLBuilder._initColDragResizing()),e("body").addClass("fl-block-overlay-muted"))},_moduleMouseleave:function(i){var t=(e(this),e(i.toElement)||e(i.relatedTarget)),l=t.is("#tiptip_holder"),n=t.closest("#tiptip_holder").length>0;l||n||(FLBuilder._removeModuleOverlays(),FLBuilder._removeColHighlightGuides())},_removeModuleOverlays:function(){var i=e(".fl-module");i.removeClass("fl-block-overlay-active"),i.find(".fl-module-overlay").remove(),e("body").removeClass("fl-block-overlay-muted"),FLBuilder._closeAllSubmenus()},_moduleDragHelper:function(i,t){return e('<div class="fl-builder-block-drag-helper">'+t.attr("data-name")+"</div>")},_moduleDragStart:function(i,t){e(t.item).data("original-position",t.item.index()),FLBuilder._blockDragStart(i,t)},_moduleDragStop:function(i,t){FLBuilder._blockDragStop(i,t);var l=t.item,n=l.parent(),s=null,o=0,r=0;if(n.hasClass("fl-builder-modules")||n.hasClass("fl-builder-widgets"))return void l.remove();if(l.hasClass("fl-builder-block")){if(n.hasClass("fl-sortable-disabled"))return l.remove(),void FLBuilder._showPanel();n.hasClass("fl-row-drop-target")?(n=l.closest(".fl-builder-content"),r=0,s=l.closest(".fl-row"),o=n.find(".fl-row").index(s)):n.hasClass("fl-col-group-drop-target")?(n=l.closest(".fl-row-content"),r=n.closest(".fl-row").attr("data-node"),s=l.closest(".fl-col-group"),o=n.find(" > .fl-col-group").index(s)):n.hasClass("fl-col-drop-target")?(n=l.closest(".fl-col-group"),r=n.attr("data-node"),s=l.closest(".fl-col"),o=n.find(" > .fl-col").index(s)):(o=n.find("> .fl-module, .fl-col-group, .fl-builder-block").index(l),r=l.closest(".fl-col").attr("data-node")),l.closest(".fl-drop-target-last").length&&(o+=1),FLBuilder._addModule(n,r,l.attr("data-type"),o,l.attr("data-widget"),l.attr("data-alias")),l.remove()}else{if(n.hasClass("fl-sortable-disabled"))return e(i.target).append(t.item),e(i.target).children().eq(t.item.data("original-position")).before(t.item),void FLBuilder._highlightEmptyCols();n.hasClass("fl-row-drop-target")?(s=l.closest(".fl-row"),o=l.closest(".fl-builder-content").children(".fl-row").index(s),o=l.closest(".fl-drop-target-last").length?o+1:o,FLBuilder._addRow("1-col",o,l.attr("data-node")),l.remove()):n.hasClass("fl-col-group-drop-target")?(s=l.closest(".fl-col-group"),o=l.closest(".fl-row-content ").find(" > .fl-col-group").index(s),o=l.closest(".fl-drop-target-last").length?o+1:o,FLBuilder._addColGroup(l.closest(".fl-row").attr("data-node"),"1-col",o,l.attr("data-node")),l.remove()):n.hasClass("fl-col-drop-target")?(s=l.closest(".fl-col"),o=l.closest(".fl-col-drop-target-last").length?"after":"before",FLBuilder._addCols(s,o,"1-col",l.closest(".fl-col-group-nested").length>0,l.attr("data-node")),l.remove()):FLBuilder._reorderModule(l)}FLBuilder._resizeLayout()},_reorderModule:function(e){var i=e.closest(".fl-col").attr("data-node"),t=e.attr("data-parent"),l=e.attr("data-node"),n=e.index();i==t?FLBuilder._reorderNode(l,n):(e.attr("data-parent",i),FLBuilder._moveNode(i,l,n))},_deleteModuleClicked:function(i){var t=e(this).closest(".fl-module"),l=confirm(FLBuilderStrings.deleteModuleMessage);l&&(FLBuilder._deleteModule(t),FLBuilder._removeAllOverlays()),i.stopPropagation()},_deleteModule:function(e){var i=e.closest(".fl-row"),t=e.attr("data-node");FLBuilder.ajax({action:"delete_node",node_id:t}),e.empty(),e.remove(),i.removeClass("fl-block-overlay-muted"),FLBuilder._highlightEmptyCols(),FLBuilder._removeAllOverlays(),FLBuilder.triggerHook("didDeleteModule",t)},_moduleCopyClicked:function(i){var t=e(window),l=e(this).closest(".fl-module"),n=l.attr("data-node"),s=l.parent(),o=l.clone(),r=e(".fl-builder-module-settings[data-node="+n+"]"),a=null;r.length&&(a=FLBuilder._getSettings(r),FLBuilderSettingsConfig.nodes[n]=a),o.addClass("fl-node-"+n+"-clone fl-builder-node-clone"),o.find(".fl-block-overlay").remove(),l.after(o),FLBuilder._showNodeLoading(n+"-clone"),t.scrollTop()+t.height()<o.offset().top&&e("html, body").animate({scrollTop:o.offset().top+o.height()-t.height()},500),FLBuilder.ajax({action:"copy_module",node_id:n,settings:a},function(e){var i=FLBuilder._jsonParse(e);i.nodeParent=s,i.nodePosition=s.find(" > .fl-col-group, > .fl-module").index(o),i.duplicatedModule=n,i.onAddNewHTML=function(){o.remove()},FLBuilder._moduleCopyComplete(i)}),i.stopPropagation()},_moduleCopyComplete:function(e){FLBuilder._renderLayout(e,function(){FLBuilder.triggerHook("didDuplicateModule",{newNodeId:e.nodeId,oldNodeId:e.duplicatedModule})})},_moduleSettingsClicked:function(i){var t=e(this),l=t.closest(".fl-module").attr("data-type"),n=t.closest(".fl-module").attr("data-node"),s=t.closest(".fl-col").attr("data-node"),o=t.closest(".fl-block-overlay-global").length>0;i.stopPropagation(),FLBuilder._colResizing||o&&!FLBuilderConfig.userCanEditGlobalTemplates||FLBuilder._showModuleSettings({type:l,nodeId:n,parentId:s,global:o})},_showModuleSettings:function(i,t){if(FLBuilderSettingsConfig.modules){var l=FLBuilderSettingsConfig.modules[i.type],n=i.settings?i.settings:FLBuilderSettingsConfig.nodes[i.nodeId],s=e("head");-1===e.inArray(i.type,FLBuilder._loadedModuleAssets)&&(""!==l.assets.css&&s.append(l.assets.css),""!==l.assets.js&&s.append(l.assets.js),FLBuilder._loadedModuleAssets.push(i.type)),FLBuilderSettingsForms.render({type:"module",id:i.type,nodeId:i.nodeId,className:"fl-builder-module-settings fl-builder-"+i.type+"-settings",attrs:'data-node="'+i.nodeId+'" data-parent="'+i.parentId+'" data-type="'+i.type+'"',buttons:i.global||FLBuilderConfig.lite||FLBuilderConfig.simpleUi?[]:["save-as"],badges:i.global?[FLBuilderStrings.global]:[],settings:n,legacy:i.legacy,helper:FLBuilder._moduleHelpers[i.type],rules:FLBuilder._moduleHelpers[i.type]?FLBuilder._moduleHelpers[i.type].rules:null,messages:FLBuilder._moduleHelpers[i.type]?FLBuilder._moduleHelpers[i.type].messages:null,hide:!(FLBuilderConfig.userCanEditGlobalTemplates||!i.global),preview:{type:"module",layout:i.layout,callback:function(){FLBuilder.triggerHook("didAddModule",i.nodeId)}}},t)}},_saveModuleClicked:function(){var i=e(this).closest(".fl-builder-settings"),t=i.attr("data-type"),l=(i.attr("data-node"),FLBuilder._moduleHelpers[t]),n=!0;"undefined"!=typeof l&&(i.find("label.error").remove(),i.validate().hideErrors(),n=i.validate().form(),n&&(n=l.submit())),n?FLBuilder._saveSettings():FLBuilder._toggleSettingsTabErrors()},_addModule:function(e,i,t,l,n,s){FLBuilder._showNodeLoadingPlaceholder(e,l),e.hasClass("fl-col-group")?(FLBuilder._newModuleParent=null,FLBuilder._newModulePosition=0):(FLBuilder._newModuleParent=e,FLBuilder._newModulePosition=l),FLBuilder.ajax({action:"render_new_module",parent_id:i,type:t,position:l,node_preview:1,widget:"undefined"==typeof n?"":n,alias:"undefined"==typeof s?"":s},FLBuilder._addModuleComplete)},_addModuleComplete:function(i){var t=FLBuilder._jsonParse(i);t.layout&&(FLBuilder._newModuleParent&&FLBuilder._newModuleParent.find(".fl-builder-node-loading-placeholder").hide(),t.layout.nodeParent=FLBuilder._newModuleParent,t.layout.nodePosition=FLBuilder._newModulePosition),t.settings||(t.settings=FLBuilderSettingsConfig.defaults.modules[t.type]),e("form.fl-builder-settings").length?t.layout&&FLBuilder._renderLayout(t.layout):FLBuilder._showModuleSettings(t,function(){e(".fl-builder-module-settings").data("new-module","1")})},registerModuleHelper:function(i,t){var l={rules:{},init:function(){},submit:function(){return!0},preview:function(){}};FLBuilder._moduleHelpers[i]=e.extend({},l,t)},_registerModuleHelper:function(e,i){FLBuilder.registerModuleHelper(e,i)},_showNodeTemplateSettings:function(i){var t=e(".fl-builder-settings-lightbox .fl-builder-settings"),l=t.attr("data-node"),n=FLBuilderStrings.saveModule;return t.hasClass("fl-builder-row-settings")?n=FLBuilderStrings.saveRow:t.hasClass("fl-builder-col-settings")&&(n=FLBuilderStrings.saveColumn),!!FLBuilder._triggerSettingsSave(!1,!1,!1)&&void FLBuilderSettingsForms.render({id:"node_template",nodeId:l,title:n,attrs:'data-node="'+l+'"',className:"fl-builder-node-template-settings",rules:{name:{required:!0}}},function(){FLBuilderConfig.userCanEditGlobalTemplates||e("#fl-field-global").hide()})},_saveNodeTemplate:function(){var i=e(".fl-builder-node-template-settings"),t=i.attr("data-node"),l=i.validate().form();l&&(FLBuilder._showNodeLoading(t),FLBuilder.ajax({action:"save_node_template",node_id:t,settings:FLBuilder._getSettings(i)},function(e){FLBuilder._saveNodeTemplateComplete(e),FLBuilder._hideNodeLoading(t)}),FLBuilder._lightbox.close())},_saveNodeTemplateComplete:function(i){var t=FLBuilder._jsonParse(i),l=e(".fl-builder-saved-"+t.type+"s"),n=l.find(".fl-builder-block"),s=null,o="",r=t.name.toLowerCase(),a=0,d=wp.template("fl-node-template-block"),u={name:t.name,isGlobal:t.global,content:t.type,id:t.id,postID:t.postID,kind:"template",type:"user",link:t.link,category:{uncategorized:FLBuilderStrings.uncategorized}};if(FLBuilderConfig.contentItems.template.push(u),FLBuilder.triggerHook("contentItemsChanged"),t.layout&&(FLBuilder._renderLayout(t.layout),FLBuilder.triggerHook("didSaveGlobalNodeTemplate",t.config)),0===n.length)l.append(d(t));else for(;a<n.length;a++){if(s=n.eq(a),o=s.text().toLowerCase().trim(),0===a&&r<o){l.prepend(d(t));break}if(r<o){s.before(d(t));break}if(n.length-1===a){l.append(d(t));break}}l.find(".fl-builder-block-no-node-templates").remove()},_nodeTemplateDragStop:function(i,t){FLBuilder._blockDragStop(i,t);var l=t.item,n=l.parent(),s=null,o=0,r=null,a="",d=null;if(n.hasClass("fl-builder-blocks-section-content"))return void l.remove();if(l.hasClass("fl-builder-block-saved-row")||l.hasClass("fl-builder-block-row-template"))r=l.closest(".fl-row"),o=r.length?e(FLBuilder._contentClass+" .fl-row").index(r):0,o=n.hasClass("fl-drop-target-last")?o+1:o,s=null,a="render_new_row_template",d=FLBuilder._addRowComplete,FLBuilder._newRowPosition=o,FLBuilder._showNodeLoadingPlaceholder(e(FLBuilder._contentClass),o);else if(l.hasClass("fl-builder-block-saved-column")){if(r=l.closest(".fl-col"),colGroup=n.closest(".fl-col-group"),colGroupId=colGroup.attr("data-node"),a="render_new_col_template",d=FLBuilder._addColsComplete,n.hasClass("fl-sortable-disabled"))return l.remove(),void FLBuilder._showPanel();n.hasClass("fl-row-drop-target")?(r=l.closest(".fl-row"),s=0,n=e(FLBuilder._contentClass),o=r.length?n.find(".fl-row").index(r):0):n.hasClass("fl-col-group-drop-target")?(n=l.closest(".fl-row-content"),s=l.closest(".fl-row").attr("data-node"),o=l.closest(".fl-row").find(".fl-row-content > .fl-col-group").index(l.closest(".fl-col-group"))):n.hasClass("fl-col-drop-target")&&(n=l.closest(".fl-col-group"),o=n.children(".fl-col").index(l.closest(".fl-col")),s=n.attr("data-node")),l.closest(".fl-drop-target-last").length&&(o+=1),n.hasClass("fl-col-group")?FLBuilder._newColParent=null:FLBuilder._newColParent=n,FLBuilder._newColPosition=o,FLBuilder._showNodeLoadingPlaceholder(n,o)}else if(l.hasClass("fl-builder-block-saved-module")||l.hasClass("fl-builder-block-module-template")){if(a="render_new_module",d=FLBuilder._addModuleComplete,n.hasClass("fl-sortable-disabled"))return l.remove(),void FLBuilder._showPanel();n.hasClass("fl-row-drop-target")?(n=l.closest(".fl-builder-content"),s=0,o=n.find(".fl-row").index(l.closest(".fl-row"))):n.hasClass("fl-col-group-drop-target")?(n=l.closest(".fl-row-content"),s=n.closest(".fl-row").attr("data-node"),o=n.find(" > .fl-col-group").index(l.closest(".fl-col-group"))):n.hasClass("fl-col-drop-target")?(n=l.closest(".fl-col-group"),o=n.children(".fl-col").index(l.closest(".fl-col")),s=n.attr("data-node")):(o=n.children(".fl-module, .fl-builder-block").index(l),s=l.closest(".fl-col").attr("data-node")),l.closest(".fl-drop-target-last").length&&(o+=1),n.hasClass("fl-col-group")?(FLBuilder._newModuleParent=null,FLBuilder._newModulePosition=0):(FLBuilder._newModuleParent=n,FLBuilder._newModulePosition=o),FLBuilder._showNodeLoadingPlaceholder(n,o)}FLBuilder.ajax({action:a,template_id:l.attr("data-id"),template_type:l.attr("data-type"),parent_id:s,position:o},function(e){if(a.indexOf("row")>-1){var i=FLBuilder._jsonParse(e);FLBuilder.triggerHook("didApplyRowTemplateComplete",i.config),d(i.layout)}else if(a.indexOf("col")>-1){var i=FLBuilder._jsonParse(e);FLBuilder.triggerHook("didApplyColTemplateComplete",i.config),d(i.layout)}else d(e)}),l.remove()},_editNodeTemplateClicked:function(i){i.preventDefault(),i.stopPropagation(),window.open(e(this).attr("href"))},_deleteNodeTemplateClicked:function(i){var t=e(i.target),l=t.closest(".fl-builder-blocks-section"),n=l.find(".fl-builder-blocks-section-content"),s=n.find(".fl-builder-block"),o=t.closest(".fl-builder-block"),r=o.hasClass("fl-builder-block-global"),a=r?FLBuilder._updateLayout:void 0,d=r?FLBuilderStrings.deleteGlobalTemplate:FLBuilderStrings.deleteTemplate,u=null;confirm(d)&&(o.remove(),1===s.length&&(o.hasClass("fl-builder-block-saved-row")?n.append('<span class="fl-builder-block-no-node-templates">'+FLBuilderStrings.noSavedRows+"</span>"):n.append('<span class="fl-builder-block-no-node-templates">'+FLBuilderStrings.noSavedModules+"</span>")),o.hasClass("fl-builder-block-global")&&FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"delete_node_template",template_id:o.attr("data-id")},a),u=_.findIndex(FLBuilderConfig.contentItems.template,{id:o.attr("data-id"),type:"user"}),FLBuilderConfig.contentItems.template.splice(u,1),FLBuilder.triggerHook("contentItemsChanged"))},_initSettingsForms:function(){FLBuilder._initSections(),FLBuilder._initButtonGroupFields(),FLBuilder._initCompoundFields(),FLBuilder._initCodeFields(),FLBuilder._initColorPickers(),FLBuilder._initGradientPickers(),FLBuilder._initIconFields(),FLBuilder._initPhotoFields(),FLBuilder._initSelectFields(),FLBuilder._initEditorFields(),FLBuilder._initMultipleFields(),FLBuilder._initAutoSuggestFields(),FLBuilder._initLinkFields(),FLBuilder._initFontFields(),FLBuilder._initOrderingFields(),FLBuilder._initTimezoneFields(),FLBuilder._initDimensionFields(),FLBuilder._initFieldPopupSliders(),FLBuilder._initPresetFields(),FLBuilder._focusFirstSettingsControl(),FLBuilder._calculateSettingsTabsOverflow(),FLBuilder._lightbox._resizeEditors(),e(".fl-builder-settings-fields").css("visibility","visible"),e(".fl-builder-settings button").on("click",function(e){e.preventDefault()}),FLBuilder.triggerHook("settings-form-init")},_destroySettingsForms:function(){FLBuilder._destroyEditorFields()},_setSettingsFormContent:function(i){e(".fl-legacy-settings").remove(),e("body").append(i)},_settingsTabClicked:function(i){var t=e(this),l=t.closest(".fl-builder-settings"),n=t.attr("href").split("#").pop();FLBuilder._resetSettingsTabsState(),l.find(".fl-builder-settings-tab").removeClass("fl-active"),l.find("#"+n).addClass("fl-active"),l.find(".fl-builder-settings-tabs .fl-active").removeClass("fl-active"),l.find("a[href*="+n+"]").addClass("fl-active"),FLBuilder._focusFirstSettingsControl(),i.preventDefault()},_resetSettingsTabsState:function(){var i=e(".fl-lightbox:visible");FLBuilder._hideTabsOverflowMenu(),i.find(".fl-builder-settings-tabs .fl-active").removeClass("fl-active"),i.find(".fl-builder-settings-tabs-overflow-menu .fl-active").removeClass("fl-active"),i.find(".fl-contains-active").removeClass("fl-contains-active")},_calculateSettingsTabsOverflow:function(){var i=e(".fl-lightbox:visible"),t=i.outerWidth(),l=i.hasClass("fl-lightbox-width-slim"),n=i.find(".fl-builder-settings-tabs"),s=i.find(".fl-builder-settings-tabs-overflow-menu"),o=i.find(".fl-builder-settings-tabs-more"),r=n.find("a"),a=!1,d=t-60,u=0,c=l?16:30;s.html(""),FLBuilder._hideTabsOverflowMenu(),r.removeClass("fl-overflowed"),r.each(function(){if(!e(this).is(":visible"))return!0;if(!a){var i=e(this).textWidth()+c+12;u+=i,u>=d&&(a=!0)}if(a){var t=e(this).html(),l=e(this).attr("href"),n="";e(this).hasClass("fl-active")&&(n="fl-active"),e(this).hasClass("error")&&(n+=" error"),""!==n&&(n='class="'+n+'"');var o=e('<a href="'+l+'" '+n+">"+t+"</a>");s.append(o),e(this).addClass("fl-overflowed")}else e(this).removeClass("fl-overflowed")}),a?i.addClass("fl-lightbox-has-tab-overflow"):i.removeClass("fl-lightbox-has-tab-overflow"),s.find(".fl-active").length>0?o.addClass("fl-contains-active"):o.removeClass("fl-contains-active"),s.find(".error").length>0?o.addClass("fl-contains-errors"):o.removeClass("fl-contains-errors")},_settingsTabsToOverflowMenuItemClicked:function(i){var t=e(i.currentTarget),l=t.attr("href"),n=t.closest(".fl-lightbox-header-wrap").find(".fl-builder-settings-tabs"),s=n.find('a[href="'+l+'"]'),o=n.find(".fl-builder-settings-tabs-more");FLBuilder._resetSettingsTabsState(),s.trigger("click"),t.addClass("fl-active"),o.addClass("fl-contains-active"),FLBuilder._hideTabsOverflowMenu(),i.preventDefault()},_hasOverflowTabs:function(){var i=e(".fl-lightbox:visible"),t=i.find(".fl-builder-settings-tabs-overflow-menu a");return t.length>0},_showTabsOverflowMenu:function(){if(FLBuilder._hasOverflowTabs()){var i=e(".fl-lightbox:visible");i.find(".fl-builder-settings-tabs-overflow-menu").css("display","flex"),i.find(".fl-builder-settings-tabs-overflow-click-mask").show(),this.isShowingSettingsTabsOverflowMenu=!0}},_hideTabsOverflowMenu:function(){var i=e(".fl-lightbox:visible");i.find(".fl-builder-settings-tabs-overflow-menu").css("display","none"),i.find(".fl-builder-settings-tabs-overflow-click-mask").hide(),this.isShowingSettingsTabsOverflowMenu=!1},_toggleTabsOverflowMenu:function(e){FLBuilder.isShowingSettingsTabsOverflowMenu?FLBuilder._hideTabsOverflowMenu():FLBuilder._showTabsOverflowMenu(),e.stopPropagation()},_settingsCancelClicked:function(i){var t=e(".fl-builder-lightbox[data-parent]"),l=e(".fl-builder-module-settings"),n=null,s=null,o=null,r=null,a="column"==FLBuilderConfig.userTemplateType;return t.length>0?void FLBuilder._closeNestedSettings():(l.length>0&&"undefined"!=typeof l.data("new-module")?(n=e(FLBuilder.preview.state.html),s=e(".fl-node-"+l.data("node")),o=s.closest(".fl-col"),r=n.find(".fl-node-"+o.data("node")),r.length>0||a?FLBuilder._deleteModule(s):FLBuilder._deleteCol(o)):FLBuilder.preview&&FLBuilder.preview.revert(),FLBuilder.preview=null,void FLLightbox.closeParent(this))},_focusFirstSettingsControl:function(){var i=e(".fl-builder-settings:visible"),t=i.find(".fl-builder-settings-tab.fl-active"),l=i.data("node"),n=t.find(".fl-field").first(),s=n.find('input:not([type="hidden"]), textarea, select, button, a, .fl-editor-field').first();if(!l||!e(".fl-node-"+l+" .fl-inline-editor").length){if("undefined"!=typeof tinyMCE&&s.hasClass("fl-editor-field")){var o=s.find("textarea.wp-editor-area").attr("id");tinyMCE.get(o).focus()}else setTimeout(function(){s.focus().css("animation-name","fl-grab-attention")},300);n.css("animation-name","fl-grab-attention"),n.on("animationend",function(){n.css("animation-name","")})}},_initSettingsValidation:function(i,t){var l=e(".fl-builder-settings").last();l.validate({ignore:".fl-ignore-validation",rules:i,messages:t,errorPlacement:FLBuilder._settingsErrorPlacement})},_settingsErrorPlacement:function(e,i){e.appendTo(i.parent())},_toggleSettingsTabErrors:function(){for(var i=e(".fl-builder-settings:visible"),t=i.find(".fl-builder-settings-tab"),l=null,n=null,s=0;s<t.length;s++)l=t.eq(s),n=l.find("label.error"),tabLink=i.find(".fl-builder-settings-tabs a[href*="+l.attr("id")+"]"),tabLink.find(".fl-error-icon").remove(),tabLink.removeClass("error"),n.length>0&&(tabLink.append('<span class="fl-error-icon"></span>'),tabLink.addClass("error"));FLBuilder._calculateSettingsTabsOverflow()},_getSettings:function(i){FLBuilder._updateEditorFields();var t=i.serializeArray(),l=0,n=0,s="",o="",r="",a=[],d=[],u={};for(l=0;l<t.length;l++)if(s=t[l].value.replace(/\r/gm,"").replace(/'/g,"'"),!(t[l].name.indexOf("flrich")>-1))if(t[l].name.indexOf("[")>-1){for(o=t[l].name.replace(/\[(.*)\]/,""),r=t[l].name.replace(o,""),a=[],d=r.match(/\[[^\]]*\]/g),n=0;n<d.length;n++)"[]"!=d[n]&&a.push(d[n].replace(/\[|\]/g,""));r.match(/\[\]\[[^\]]*\]\[[^\]]+\]/)||r.match(/\[\]\[[^\]]*\]\[\]\[[^\]]+\]/)?("undefined"==typeof u[o]&&(u[o]={}),"undefined"==typeof u[o][a[0]]&&(u[o][a[0]]={}),u[o][a[0]][a[1]]=s):r.match(/\[\]\[[^\]]*\]\[\]/)?("undefined"==typeof u[o]&&(u[o]={}),"undefined"==typeof u[o][a[0]]&&(u[o][a[0]]=[]),u[o][a[0]].push(s)):r.match(/\[\]\[[^\]]*\]/)?("undefined"==typeof u[o]&&(u[o]={}),u[o][a[0]]=s):r.match(/\[\]/)&&("undefined"==typeof u[o]&&(u[o]=[]),u[o].push(s))}else u[t[l].name]=s;for(r in u)if("undefined"!=typeof u["as_values_"+r]){u[r]=e.grep(u["as_values_"+r].split(","),function(e){return""!==e}).join(",");try{delete u["as_values_"+r]}catch(c){}}return e.each(i.find("[name]"),function(i,t){var l=e(t).attr("name").replace(/\[(.*)\]/,"");l in u||(u[l]="")}),u=e.extend({},FLBuilder._getOriginalSettings(i),u)},_getSettingsJSONForHTML:function(e){return JSON.stringify(e).replace(/\'/g,"'").replace("<wbr />","<wbr>")},_getOriginalSettings:function(i,t){var l=i.find(".fl-builder-settings-json"),n=i.data("node"),s=FLBuilderSettingsConfig.nodes,o=null,r={};if(n&&s[n]?o=s[n]:l.length&&(o=FLBuilder._jsonParse(l.val().replace(/'/g,"'"))),o)for(key in o)(e("#fl-field-"+key).length||t)&&(r[key]=o[key]);return r},_getSettingsForChangedCheck:function(i,t){var l=FLBuilder._getSettings(t);if(i){var n=e(".fl-node-"+i);if(n.hasClass("fl-module")){var s=n.data("type"),o=FLBuilderSettingsConfig.editables[s];if(o&&FLBuilderSettingsConfig.nodes[i])for(var r in o)l[r]=FLBuilderSettingsConfig.nodes[i][r]}}return l},_saveSettings:function(i){var t=e(".fl-builder-settings-lightbox .fl-builder-settings"),l=t.data("new-module"),n=t.attr("data-node"),s=FLBuilder._getSettings(t),o=FLBuilder.preview;return!FLBuilder.isUndefined(i)&&FLBuilder.isBoolean(i)||(i=!0),o&&!o._settingsHaveChanged()&&FLBuilder.isUndefined(l)?void FLBuilder._lightbox.close():(FLBuilder._showNodeLoading(n),FLBuilderSettingsConfig.nodes[n]=s,FLBuilder.ajax({action:"save_settings",node_id:n,settings:s},FLBuilder._saveSettingsComplete.bind(this,i,o)),FLBuilder.triggerHook("didSaveNodeSettings",{nodeId:n,settings:s}),void FLBuilder._lightbox.close())},_saveSettingsComplete:function(e,i,t){var l=FLBuilder._jsonParse(t),n=function(){i&&l.layout.partial&&l.layout.nodeId===i.nodeId&&(i.clear(),i=null)};!0===e?FLBuilder._renderLayout(l.layout,n):n(),FLBuilder.triggerHook("didSaveNodeSettingsComplete",{nodeId:l.node_id,settings:l.settings})},_triggerSettingsSave:function(i,t,l){var n=FLBuilder._lightbox._node.find("form.fl-builder-settings"),s=FLBuilder._lightbox._node.data("instance-id"),o=FLLightbox._instances[s],r=e(".fl-lightbox-wrap[data-parent]:visible"),a=!1,d=!0;return i=!_.isUndefined(i)&&i,t=!_.isUndefined(t)&&t,l=!!_.isUndefined(l)||l,n.length&&(r.length&&(r.find(".fl-builder-settings-save").trigger("click"),(r.find("label.error").length||e(".fl-builder-alert-lightbox:visible").length)&&(d=!1)),d&&!n.validate().form()&&(d=!1),a=FLBuilderSettingsForms.settingsHaveChanged(),d&&a&&(i&&o.disableClose(),n.find(".fl-builder-settings-save").trigger("click"),i&&o.enableClose(),(n.find("label.error").length||e(".fl-builder-alert-lightbox:visible").length)&&(d=!1)),l&&(FLBuilder._destroySettingsForms(),!a&&FLBuilder.preview&&(FLBuilder.preview.clear(),FLBuilder.preview=null)),a||i||o.close()),d||(FLBuilder.triggerHook("didFailSettingsSave"),FLBuilder._toggleSettingsTabErrors(),t&&!e(".fl-builder-alert-lightbox:visible").length&&FLBuilder.alert(FLBuilderStrings.settingsHaveErrors)),d},_refreshSettingsPreviewReference:function(){FLBuilder.preview&&FLBuilder.preview._initElementsAndClasses()},_openNestedSettings:function(i){i.className&&-1===i.className.indexOf("fl-builder-settings-lightbox")&&(i.className+=" fl-builder-settings-lightbox"),i=e.extend({className:"fl-builder-lightbox fl-builder-settings-lightbox",destroyOnClose:!0,resizable:!0},i);var t=e(".fl-lightbox-wrap:visible"),l=t.find(".fl-lightbox"),n=new FLLightbox(i),s=n._node,o=s.find(".fl-lightbox");return t.hide(),s.attr("data-parent",t.attr("data-instance-id")),o.attr("style",l.attr("style")),n.on("resized",FLBuilder._calculateSettingsTabsOverflow),n.open('<div class="fl-builder-lightbox-loading"></div>'),n},_closeNestedSettings:function(){var i=e(".fl-builder-lightbox[data-parent]:visible"),t=i.find(".fl-lightbox"),l=i.attr("data-instance-id"),n=FLLightbox._instances[l],s=i.attr("data-parent"),o=e('[data-instance-id="'+s+'"]'),r=o.find(".fl-lightbox"),a=o.find("form"),d=FLLightbox._instances[s];n.on("close",function(){r.attr("style",t.attr("style")),o.show(),d._resize(),o.find("label.error").remove(),a.validate().hideErrors(),FLBuilder._toggleSettingsTabErrors()}),n.close()},_showHelpTooltip:function(){e(this).siblings(".fl-help-tooltip-text").fadeIn()},_hideHelpTooltip:function(){e(this).siblings(".fl-help-tooltip-text").fadeOut()},_initSections:function(){e(".fl-builder-settings:visible").find(".fl-builder-settings-section").each(FLBuilder._initSection)},_initSection:function(){var i=e(this),t=i.find(".fl-builder-settings-section-header");t.on("click",function(){i.toggleClass("fl-builder-settings-section-collapsed")})},_initButtonGroupFields:function(){e(".fl-builder-settings:visible").find(".fl-button-group-field").each(FLBuilder._initButtonGroupField)},_initButtonGroupField:function(){var i=e(this),t=i.find(".fl-button-group-field-option"),l=i.find("input");t.on("click",function(){var i=e(this);"1"==i.attr("data-selected")?(i.attr("data-selected","0"),l.val("").trigger("change")):(t.attr("data-selected","0"),i.attr("data-selected","1"),l.val(i.data("value")).trigger("change"))}),l.on("change",function(e){var i=l.val(),n=t.filter('[data-value="'+i+'"]');t.attr("data-selected","0"),n.attr("data-selected","1")})},_initCompoundFields:function(){e(".fl-builder-settings:visible").find(".fl-compound-field").each(FLBuilder._initCompoundField)},_initCompoundField:function(){var i=e(this),t=i.find(".fl-compound-field-section"),l=i.find(".fl-compound-field-section-toggle"),n=i.find(".fl-compound-field-setting").has(".fl-dimension-field-units");t.each(function(){var i=e(this);i.find(".fl-compound-field-section-toggle").length||i.addClass("fl-compound-field-section-visible");
|
5 |
-
}),l.on("click",function(){var i=e(this),t=i.closest(".fl-field"),l=i.closest(".fl-compound-field-section"),n="."+l.attr("class").split(" ").join(".");t.find(n).toggleClass("fl-compound-field-section-visible")}),n.each(function(){var i=e(this),t=i.find(".fl-compound-field-label"),l='<i class="fl-dimension-field-link fl-tip dashicons dashicons-admin-links" title="Link Values"></i>';t.length&&!i.find(".fl-shadow-field").length&&t.append(l)})},_initAutoSuggestFields:function(){var i=e(".fl-builder-settings:visible .fl-suggest-field"),t=null,l=null,n=null,s=[];i.each(function(){t=e(this),""!==t.attr("data-value")&&(FLBuilderSettingsForms.showFieldLoader(t),s.push({name:t.attr("name"),value:t.attr("data-value"),action:t.attr("data-action"),data:t.attr("data-action-data")}))}),s.length?FLBuilder.ajax({action:"get_autosuggest_values",fields:s},function(t){l=FLBuilder._jsonParse(t);for(n in l)e('.fl-suggest-field[name="'+n+'"]').attr("data-value",l[n]);i.each(FLBuilder._initAutoSuggestField)}):i.each(FLBuilder._initAutoSuggestField)},_initAutoSuggestField:function(){var i=e(this);i.autoSuggest(FLBuilder._ajaxUrl({fl_action:"fl_builder_autosuggest",fl_as_action:i.data("action"),fl_as_action_data:i.data("action-data"),_wpnonce:FLBuilderConfig.ajaxNonce}),e.extend({},{asHtmlID:i.attr("name"),selectedItemProp:"name",searchObjProps:"name",minChars:2,keyDelay:1e3,fadeOut:!1,usePlaceholder:!0,emptyText:FLBuilderStrings.noResultsFound,showResultListWhenNoMatch:!0,preFill:i.data("value"),queryParam:"fl_as_query",afterSelectionAdd:FLBuilder._updateAutoSuggestField,afterSelectionRemove:FLBuilder._updateAutoSuggestField,selectionLimit:i.data("limit"),canGenerateNewSelections:!1},i.data("args"))),FLBuilderSettingsForms.hideFieldLoader(i)},_updateAutoSuggestField:function(i,t,l){e(this).siblings(".as-values").val(l.join(",")).trigger("change")},_initCodeFields:function(){e(".fl-builder-settings:visible").find(".fl-code-field").each(FLBuilder._initCodeField)},_initCodeField:function(){var i=e(this),t=i.closest(".fl-builder-settings"),l=i.find("textarea"),n=(l.attr("id"),l.data("editor")),s=l.data("wrap"),o=e("<div>",{position:"absolute",height:20*parseInt(l.attr("rows"),10)}),r=null;o.insertBefore(l),l.css("display","none"),ace.require("ace/ext/language_tools"),r=ace.edit(o[0]),r.$blockScrolling=1/0,r.getSession().setValue(l.val()),r.getSession().setMode("ace/mode/"+n),s&&r.getSession().setUseWrapMode(!0),r.setOptions(FLBuilderConfig.AceEditorSettings),r.getSession().on("change",function(e){l.val(r.getSession().getValue()).trigger("change")}),r.getSession().on("changeAnnotation",function(){for(var e=r.getSession().getAnnotations(),i=t.find(".fl-builder-settings-save"),l=t.find(".fl-builder-settings-error"),n=!1,s=0;s<e.length;s++)if(!(e[s].text.indexOf("DOCTYPE")>-1||e[s].text.indexOf("Named entity expected")>-1||e[s].text.indexOf("@supports")>-1||"error"!==e[s].type)){n=!0;break}n&&!l.length&&FLBuilderConfig.CheckCodeErrors?(i.addClass("fl-builder-settings-error"),i.on("click",FLBuilder._showCodeFieldError)):!n&&l.length&&(l.removeClass("fl-builder-settings-error"),l.off("click",FLBuilder._showCodeFieldError))}),l.closest(".fl-field").data("editor",r)},_showCodeFieldError:function(i){i.stopImmediatePropagation(),FLBuilder.confirm({message:FLBuilderStrings.codeError,cancel:function(){var i=e(".fl-builder-settings:visible .fl-builder-settings-save");i.removeClass("fl-builder-settings-error"),i.off("click",FLBuilder._showCodeFieldError),i.trigger("click")},strings:{ok:FLBuilderStrings.codeErrorFix,cancel:FLBuilderStrings.codeErrorIgnore}})},_initMultipleFields:function(){var i=e(".fl-builder-settings:visible .fl-builder-field-multiples"),t=null,l=null,n=0,s=FLBuilderConfig.isRtl?{left:10}:{right:10},o=e("#fl-field-testimonials").attr("data-limit")||0,r=e("tbody.fl-builder-field-multiples").find("tr").length||0;for(parseInt(o)>0&&r-1>=parseInt(o)?(e(".fl-builder-field-copy").hide(),e(".fl-builder-field-add").fadeOut()):e(".fl-builder-field-copy, .fl-builder-field-add").show();n<i.length;n++)t=i.eq(n),l=t.find(".fl-builder-field-multiple"),1===l.length?l.eq(0).find(".fl-builder-field-actions").addClass("fl-builder-field-actions-single"):l.find(".fl-builder-field-actions").removeClass("fl-builder-field-actions-single");e(".fl-builder-field-multiples").sortable({items:".fl-builder-field-multiple",cursor:"move",cursorAt:s,distance:5,opacity:.5,placeholder:"fl-builder-field-dd-zone",stop:FLBuilder._fieldDragStop,tolerance:"pointer",axis:"y"})},_addFieldClicked:function(){var i=e(this),t=i.attr("data-field"),l=i.closest("tr").siblings("tr[data-field="+t+"]").last(),n=l.clone(),s=n.find(".fl-form-field"),o=null,r=null,a=parseInt(l.find("label span.fl-builder-field-index").html(),10)+1;n.find("th label span.fl-builder-field-index").html(a),n.find(".fl-form-field-preview-text").html(""),n.find(".fl-form-field-before").remove(),n.find(".fl-form-field-after").remove(),n.find("input, textarea, select").val(""),l.after(n),FLBuilder._initMultipleFields(),s.length?(o=s.find(".fl-form-field-edit").data("type"),s.find("input").val(JSON.stringify(FLBuilderSettingsConfig.defaults.forms[o]))):(s=i.closest("form.fl-builder-settings"),o=s.data("type"),o&&s.hasClass("fl-builder-module-settings")&&(r=FLBuilderSettingsConfig.defaults.modules[o][t][0],n.find("input, textarea, select").val(r)))},_copyFieldClicked:function(){var i=e(this),t=i.closest("tr"),l=t.clone(),n=parseInt(t.find("label span.fl-builder-field-index").html(),10)+1;l.find("th label span.fl-builder-field-index").html(n),t.after(l),FLBuilder._renumberFields(t.parent()),FLBuilder._initMultipleFields(),FLBuilder.preview.delayPreview()},_deleteFieldClicked:function(){var i=e(this).closest("tr"),t=i.parent(),l=confirm(FLBuilderStrings.deleteFieldMessage);l&&(i.remove(),FLBuilder._renumberFields(t),FLBuilder._initMultipleFields(),FLBuilder.preview.delayPreview())},_renumberFields:function(e){for(var i=e.find(".fl-builder-field-multiple"),t=0;t<i.length;t++)i.eq(t).find("th label span.fl-builder-field-index").html(t+1)},_fieldDragHelper:function(){return e('<div class="fl-builder-field-dd-helper"></div>')},_fieldDragStop:function(e,i){FLBuilder._renumberFields(i.item.parent()),FLBuilder.preview.delayPreview()},_initSelectFields:function(){var i=e(".fl-builder-settings:visible").find("select");i.on("change",FLBuilder._settingsSelectChanged),i.trigger("change"),i.on("change",FLBuilder._calculateSettingsTabsOverflow);var t=e(".fl-builder-settings:visible").find(".fl-button-group-field input[type=hidden]");t.on("change",FLBuilder._settingsSelectChanged),t.trigger("change"),t.on("change",FLBuilder._calculateSettingsTabsOverflow)},_settingsSelectChanged:function(){var i=e(this),t=i.attr("data-toggle"),l=i.attr("data-hide"),n=i.attr("data-trigger"),s=i.val(),o=0;if("undefined"!=typeof t){t=FLBuilder._jsonParse(t);for(o in t)FLBuilder._settingsSelectToggle(t[o].fields,"hide","#fl-field-"),FLBuilder._settingsSelectToggle(t[o].sections,"hide","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(t[o].tabs,"hide","a[href*=fl-builder-settings-tab-","]");"undefined"!=typeof t[s]&&(FLBuilder._settingsSelectToggle(t[s].fields,"show","#fl-field-"),FLBuilder._settingsSelectToggle(t[s].sections,"show","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(t[s].tabs,"show","a[href*=fl-builder-settings-tab-","]"))}if("undefined"!=typeof l){l=FLBuilder._jsonParse(l);for(o in l)FLBuilder._settingsSelectToggle(l[o].fields,"show","#fl-field-"),FLBuilder._settingsSelectToggle(l[o].sections,"show","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(l[o].tabs,"show","a[href*=fl-builder-settings-tab-","]");"undefined"!=typeof l[s]&&(FLBuilder._settingsSelectToggle(l[s].fields,"hide","#fl-field-"),FLBuilder._settingsSelectToggle(l[s].sections,"hide","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(l[s].tabs,"hide","a[href*=fl-builder-settings-tab-","]"))}if("undefined"!=typeof n&&(n=FLBuilder._jsonParse(n),"undefined"!=typeof n[s]&&"undefined"!=typeof n[s].fields))for(o=0;o<n[s].fields.length;o++)e("#fl-field-"+n[s].fields[o]).find("select").trigger("change")},_settingsSelectToggle:function(i,t,l,n){var s=0;if(n="undefined"==typeof n?"":n,"undefined"!=typeof i)for(;s<i.length;s++)e(".fl-builder-settings:visible").find(l+i[s]+n)[t](),e(l+i[s]+n).parent().find('.fl-field[data-type="code"]').each(function(){e(this).data("editor").resize()})},_initColorPickers:function(){var i=FLBuilderConfig.colorPresets?FLBuilderConfig.colorPresets:[];FLBuilder.colorPicker=new FLBuilderColorPicker({mode:"hsv",elements:".fl-color-picker .fl-color-picker-value",presets:i,labels:{colorPresets:FLBuilderStrings.colorPresets,colorPicker:FLBuilderStrings.colorPicker,placeholder:FLBuilderStrings.placeholder,removePresetConfirm:FLBuilderStrings.removePresetConfirm,noneColorSelected:FLBuilderStrings.noneColorSelected,alreadySaved:FLBuilderStrings.alreadySaved,noPresets:FLBuilderStrings.noPresets,presetAdded:FLBuilderStrings.presetAdded}}),e(FLBuilder.colorPicker).on("presetRemoved presetAdded",function(e,i){FLBuilder.ajax({action:"save_color_presets",presets:i.presets})})},_initGradientPickers:function(){e(".fl-builder-settings:visible .fl-gradient-picker").each(FLBuilder._initGradientPicker)},_initGradientPicker:function(){var i=e(this),t=i.find(".fl-gradient-picker-type-select"),l=i.find(".fl-gradient-picker-angle-wrap"),n=i.find(".fl-gradient-picker-position");t.on("change",function(){"linear"===e(this).val()?(l.show(),n.hide()):(l.hide(),n.show())})},_initPhotoFields:function(){var i=e(".fl-builder-settings:visible").find(".fl-photo-field select");i.on("change",FLBuilder._toggleSettingsOnIconChange),i.trigger("change")},_initSinglePhotoSelector:function(){null===FLBuilder._singlePhotoSelector&&(FLBuilder._singlePhotoSelector=wp.media({title:FLBuilderStrings.selectPhoto,button:{text:FLBuilderStrings.selectPhoto},library:{type:"image"},multiple:!1}),FLBuilder._singlePhotoSelector.on("open",FLBuilder._wpmedia_reset_errors),_wpPluploadSettings.defaults.multipart_params.fl_upload_type="photo")},_selectSinglePhoto:function(){FLBuilder._initSinglePhotoSelector(),FLBuilder._singlePhotoSelector.once("open",e.proxy(FLBuilder._singlePhotoOpened,this)),FLBuilder._singlePhotoSelector.once("select",e.proxy(FLBuilder._singlePhotoSelected,this)),FLBuilder._singlePhotoSelector.open()},_singlePhotoOpened:function(){var i=FLBuilder._singlePhotoSelector.state().get("selection"),t=e(this).closest(".fl-photo-field"),l=t.find("input[type=hidden]"),n=l.val(),s=null;e(this).hasClass("fl-photo-replace")?(i.reset(),t.addClass("fl-photo-empty"),l.val("")):""!==n?(s=wp.media.attachment(n),s.fetch(),i.add(s?[s]:[])):i.reset()},_singlePhotoSelected:function(){var i=FLBuilder._singlePhotoSelector.state().get("selection").first().toJSON(),t=e(this).closest(".fl-photo-field"),l=t.find("input[type=hidden]"),n=t.find(".fl-photo-preview img"),s=t.find("select");l.val(i.id),n.attr("src",FLBuilder._getPhotoSrc(i)),t.removeClass("fl-photo-empty").removeClass("fl-photo-no-attachment"),t.find("label.error").remove(),s.show(),s.html(FLBuilder._getPhotoSizeOptions(i)),s.trigger("change"),FLBuilderSettingsConfig.attachments[i.id]=i},_singlePhotoRemoved:function(){FLBuilder._initSinglePhotoSelector();var i=FLBuilder._singlePhotoSelector.state(),t="undefined"!=typeof i?i.get("selection"):null,l=e(this).closest(".fl-photo-field"),n=l.find("input[type=hidden]"),s=l.find("select");t&&t.reset(),l.addClass("fl-photo-empty"),n.val(""),s.html('<option value="" selected></option>'),s.trigger("change")},_getPhotoSrc:function(e){return"undefined"==typeof e.sizes?e.url:"undefined"!=typeof e.sizes.thumbnail?e.sizes.thumbnail.url:e.sizes.full.url},_getPhotoSizeOptions:function(e,i){var t="",l=null,n=null,s="",o={full:FLBuilderStrings.fullSize,large:FLBuilderStrings.large,medium:FLBuilderStrings.medium,thumbnail:FLBuilderStrings.thumbnail};if("undefined"==typeof e.sizes||0===e.sizes.length)t+='<option value="'+e.url+'">'+FLBuilderStrings.fullSize+"</option>";else{i&&(i=i.split(/[\\\/]/).pop());for(l in e.sizes)s="undefined"!=typeof o[l]?o[l]+" - ":"undefined"!=typeof FLBuilderConfig.customImageSizeTitles[l]?FLBuilderConfig.customImageSizeTitles[l]+" - ":"",n="",i?i===e.sizes[l].url.split(/[\\\/]/).pop()&&(n=' selected="selected"'):n="full"==l?' selected="selected"':"",t+='<option value="'+e.sizes[l].url+'"'+n+">"+s+e.sizes[l].width+" x "+e.sizes[l].height+"</option>"}return t},_selectMultiplePhotos:function(){var i=e(this).closest(".fl-multiple-photos-field"),t=i.find("input[type=hidden]"),l=t.val(),n=""===l?"":FLBuilder._jsonParse(l),s=wp.media.gallery.defaults.id,o='[gallery ids="-1"]',r=null,a=null,d=null,u=null,c=[];if("object"==typeof n){for(u in n)c.push(n[u]);o='[gallery ids="'+c.join()+'"]'}r=wp.shortcode.next("gallery",o).shortcode,_.isUndefined(r.get("id"))&&!_.isUndefined(s)&&r.set("id",s),a=wp.media.gallery.attachments(r),d=new wp.media.model.Selection(a.models,{props:a.props.toJSON(),multiple:!0}),d.gallery=a.gallery,d.more().done(function(){d.length||FLBuilder._multiplePhotoSelector.setState("gallery-library"),d.props.set({query:!1}),d.unmirror(),d.props.unset("orderby")}),FLBuilder._multiplePhotoSelector&&FLBuilder._multiplePhotoSelector.dispose(),FLBuilder._multiplePhotoSelector=wp.media({frame:"post",state:e(this).hasClass("fl-multiple-photos-edit")?"gallery-edit":"gallery-library",title:wp.media.view.l10n.editGalleryTitle,editing:!0,multiple:!0,selection:d}).open(),e(FLBuilder._multiplePhotoSelector.views.view.el).addClass("fl-multiple-photos-lightbox"),FLBuilder._multiplePhotoSelector.once("update",e.proxy(FLBuilder._multiplePhotosSelected,this))},_multiplePhotosSelected:function(i){for(var t=e(this).closest(".fl-multiple-photos-field"),l=t.find("input[type=hidden]"),n=t.find(".fl-multiple-photos-count"),s=[],o=0;o<i.models.length;o++)s.push(i.models[o].id);1==s.length?n.html("1 "+FLBuilderStrings.photoSelected):n.html(s.length+" "+FLBuilderStrings.photosSelected),t.removeClass("fl-multiple-photos-empty"),t.find("label.error").remove(),l.val(JSON.stringify(s)).trigger("change")},_initSingleVideoSelector:function(){null===FLBuilder._singleVideoSelector&&(FLBuilder._singleVideoSelector=wp.media({title:FLBuilderStrings.selectVideo,button:{text:FLBuilderStrings.selectVideo},library:{type:"video"},multiple:!1}),FLBuilder._singleVideoSelector.on("open",FLBuilder._wpmedia_reset_errors),_wpPluploadSettings.defaults.multipart_params.fl_upload_type="video")},_selectSingleVideo:function(){FLBuilder._initSingleVideoSelector(),FLBuilder._singleVideoSelector.once("select",e.proxy(FLBuilder._singleVideoSelected,this)),FLBuilder._singleVideoSelector.open()},_singleVideoSelected:function(){var i=FLBuilder._singleVideoSelector.state().get("selection").first().toJSON(),t=e(this).closest(".fl-video-field"),l=t.find(".fl-video-preview-img"),n=t.find(".fl-video-preview-filename"),s=t.find("input[type=hidden]");l.html('<span class="dashicons dashicons-media-video"></span>'),n.html(i.filename),t.removeClass("fl-video-empty"),t.find("label.error").remove(),s.val(i.id).trigger("change"),FLBuilderSettingsConfig.attachments[i.id]=i},_singleVideoRemoved:function(){FLBuilder._initSingleVideoSelector();var i=FLBuilder._singleVideoSelector.state(),t="undefined"!=typeof i?i.get("selection"):null,l=e(this).closest(".fl-video-field"),n=l.find(".fl-video-preview-img img"),s=l.find(".fl-video-preview-filename"),o=l.find("input[type=hidden]");t&&t.reset(),n.attr("src",""),s.html(""),l.addClass("fl-video-empty"),o.val("").trigger("change")},_selectMultipleAudios:function(){var i=e(this).closest(".fl-multiple-audios-field"),t=i.find("input[type=hidden]"),l=t.val(),n=""==l?'[playlist ids="-1"]':'[playlist ids="'+FLBuilder._jsonParse(l).join()+'"]',s=wp.shortcode.next("playlist",n).shortcode,o=wp.media.playlist.defaults.id,r=null,a=null;_.isUndefined(s.get("id"))&&!_.isUndefined(o)&&s.set("id",o),r=wp.media.playlist.attachments(s),a=new wp.media.model.Selection(r.models,{props:r.props.toJSON(),multiple:!0}),a.playlist=r.playlist,a.more().done(function(){a.props.set({query:!1}),a.unmirror(),a.props.unset("orderby")}),FLBuilder._multipleAudiosSelector&&FLBuilder._multipleAudiosSelector.dispose(),FLBuilder._multipleAudiosSelector=wp.media({frame:"post",state:e(this).hasClass("fl-multiple-audios-edit")?"playlist-edit":"playlist-library",title:wp.media.view.l10n.editPlaylistTitle,editing:!0,multiple:!0,selection:a}).open(),FLBuilder._multipleAudiosSelector.content.get("view").sidebar.unset("playlist"),FLBuilder._multipleAudiosSelector.on("content:render:browse",function(e){e&&e.sidebar.on("ready",function(){e.sidebar.unset("playlist")})}),FLBuilder._multipleAudiosSelector.once("update",e.proxy(FLBuilder._multipleAudiosSelected,this))},_multipleAudiosSelected:function(i){for(var t=e(this).closest(".fl-multiple-audios-field"),l=t.find(".fl-multiple-audios-count"),n=t.find("input[type=hidden]"),s=[],o=0;o<i.models.length;o++)s.push(i.models[o].id);1==s.length?l.html("1 "+FLBuilderStrings.audioSelected):l.html(s.length+" "+FLBuilderStrings.audiosSelected),n.val(JSON.stringify(s)).trigger("change"),t.removeClass("fl-multiple-audios-empty"),t.find("label.error").remove()},_initIconFields:function(){var i=e(".fl-builder-settings:visible").find(".fl-icon-field input");i.on("change",FLBuilder._toggleSettingsOnIconChange),i.trigger("change")},_toggleSettingsOnIconChange:function(){var i=e(this),t=i.val(),l=i.attr("data-show");"undefined"!=typeof l&&(l=FLBuilder._jsonParse(l),FLBuilder._settingsSelectToggle(l.fields,"hide","#fl-field-"),FLBuilder._settingsSelectToggle(l.sections,"hide","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(l.tabs,"hide","a[href*=fl-builder-settings-tab-","]"),t&&(FLBuilder._settingsSelectToggle(l.fields,"show","#fl-field-"),FLBuilder._settingsSelectToggle(l.sections,"show","#fl-builder-settings-section-"),FLBuilder._settingsSelectToggle(l.tabs,"show","a[href*=fl-builder-settings-tab-","]"),FLBuilder._calculateSettingsTabsOverflow()))},_selectIcon:function(){var e=this;FLIconSelector.open(function(i){FLBuilder._iconSelected.apply(e,[i])})},_iconSelected:function(i){var t=e(this).closest(".fl-icon-field"),l=t.find("input[type=hidden]"),n=t.find("i"),s=n.attr("data-icon");l.val(i).trigger("change"),n.removeClass(s),n.addClass(i),n.attr("data-icon",i),t.removeClass("fl-icon-empty"),t.find("label.error").remove()},_removeIcon:function(){var i=e(this).closest(".fl-icon-field"),t=i.find("input[type=hidden]"),l=i.find("i");t.val("").trigger("change"),l.removeClass(),l.attr("data-icon",""),i.addClass("fl-icon-empty")},_formFieldClicked:function(){var i=e(this),t=i.closest(".fl-builder-settings"),l=i.attr("data-type"),n=i.siblings("input").val(),s=FLBuilder._moduleHelpers[l],o=(FLBuilderSettingsConfig.forms[l],FLBuilder._openNestedSettings({className:"fl-builder-lightbox fl-form-field-settings"}));""===n&&(n=JSON.stringify(FLBuilderSettingsConfig.forms[l])),FLBuilderSettingsForms.render({id:l,nodeId:t.attr("data-node"),nodeSettings:FLBuilder._getSettings(t),settings:FLBuilder._jsonParse(n.replace(/'/g,"'")),lightbox:o,helper:s,rules:s?s.rules:null},function(){i.attr("id","fl-"+o._node.attr("data-instance-id")),o._node.find("form.fl-builder-settings").attr("data-type",l)})},_saveFormFieldClicked:function(){var i=e(this).closest(".fl-builder-settings"),t=e(this).closest(".fl-lightbox-wrap").attr("data-instance-id"),l=i.attr("data-type"),n=FLBuilder._getSettings(i),s={},o=FLBuilder._moduleHelpers[l],r=e(".fl-builder-settings #fl-"+t),a=r.parent().attr("data-preview-text"),d=i.find("#fl-field-"+a),u=n[a],c=e('select[name="'+a+'"]'),f=document.createElement("div"),h=!0;return c.length>0&&(u=c.find('option[value="'+n[a]+'"]').text()),"undefined"!=typeof o&&(i.find("label.error").remove(),i.validate().hideErrors(),h=i.validate().form(),h&&(h=o.submit())),h?("undefined"!=typeof a&&"undefined"!=typeof u&&("icon"===d.data("type")?u='<i class="'+u+'"></i>':u.length>35&&(f.innerHTML=u,u=(f.textContent||f.innerText||"").replace(/^(.{35}[^\s]*).*/,"$1")+"..."),r.siblings(".fl-form-field-preview-text").html(u)),s=r.siblings("input").val().replace(/'/g,"'"),""!=s&&(n=e.extend(FLBuilder._jsonParse(s),n)),r.siblings("input").val(JSON.stringify(n)).trigger("change"),FLBuilder._closeNestedSettings(),!0):(FLBuilder._toggleSettingsTabErrors(),!1)},_layoutFieldClicked:function(){var i=e(this);i.siblings().removeClass("fl-layout-field-option-selected"),i.addClass("fl-layout-field-option-selected"),i.siblings("input").val(i.attr("data-value"))},_initLinkFields:function(){e(".fl-builder-settings:visible .fl-link-field").each(FLBuilder._initLinkField)},_initLinkField:function(){var i=e(this),t=i.find(".fl-link-field-search-input"),l=i.find(".fl-link-field-options-wrap input[type=checkbox]");t.autoSuggest(FLBuilder._ajaxUrl({fl_action:"fl_builder_autosuggest",fl_as_action:"fl_as_links",_wpnonce:FLBuilderConfig.ajaxNonce}),{asHtmlID:t.attr("name"),selectedItemProp:"name",searchObjProps:"name",minChars:3,keyDelay:1e3,fadeOut:!1,usePlaceholder:!0,emptyText:FLBuilderStrings.noResultsFound,showResultListWhenNoMatch:!0,queryParam:"fl_as_query",selectionLimit:1,afterSelectionAdd:FLBuilder._updateLinkField}),l.on("click",FLBuilder._linkFieldCheckboxClicked)},_updateLinkField:function(e,i,t){var l=e.closest(".fl-link-field"),n=l.find(".fl-link-field-search"),s=l.find(".fl-link-field-search-input"),o=l.find(".fl-link-field-input");o.val(i.value).trigger("keyup"),s.autoSuggest("remove",i.value),n.hide()},_linkFieldSelectClicked:function(){var i=e(this).closest(".fl-link-field").find(".fl-link-field-search");i.show(),i.find("input").focus()},_linkFieldSelectCancelClicked:function(){var i=e(this);i.parent().hide(),i.closest(".fl-link-field").find("input.fl-link-field-input").focus()},_linkFieldCheckboxClicked:function(){var i=e(this),t=i.is(":checked"),l=i.siblings("input[type=hidden]"),n="";n=i.hasClass("fl-link-field-target-cb")?t?"_blank":"_self":t?"yes":"no",l.val(n)},_initFontFields:function(){e(".fl-builder-settings:visible .fl-font-field").each(FLBuilder._initFontField)},_initFontField:function(){var i=e(this),t=i.attr("data-value"),l=i.find(".fl-font-field-font"),n=i.find(".fl-font-field-weight");l.on("change",function(){FLBuilder._getFontWeights(l)}),t.indexOf("family")>-1&&(t=FLBuilder._jsonParse(t),l.val(t.family),l.trigger("change"),n.find("option[value="+t.weight+"]").length&&n.val(t.weight))},_getFontWeights:function(i){var t=i.closest(".fl-font-field").find(".fl-font-field-weight"),l=i.val(),n=t.val(),s=FLBuilderConfig.FontWeights,o={},r=i.closest(".fl-font-field").find(".recent-fonts option");if(t.html(""),r.length>0){var a=e(r).filter(function(e,i){return i.value===l}).length>0;!1===a&&i.closest(".fl-font-field").find(".recent-fonts").append(e("<option>",{value:l,text:l}))}o="undefined"!=typeof FLBuilderFontFamilies.system[l]?FLBuilderFontFamilies.system[l].weights:"undefined"!=typeof FLBuilderFontFamilies.google[l]?FLBuilderFontFamilies.google[l]:FLBuilderFontFamilies["default"][l],e.each(o,function(e,i){var l=n===i?" selected":"";t.append('<option value="'+i+'"'+l+">"+s[i]+"</option>")})},_initTinyMCE:function(){"object"==typeof tinymce&&"undefined"!=typeof tinymce.ui.FloatPanel&&(tinymce.ui.FloatPanel.zIndex=100100),e(".fl-builder-hidden-editor").each(FLBuilder._initEditorField)},_initEditorFields:function(){e(".fl-builder-settings:visible .fl-editor-field").each(FLBuilder._initEditorField)},_initEditorField:function(){var i=e(this),t=i.find("textarea"),l=i.attr("data-name"),n="flrich"+(new Date).getTime()+"_"+l,s=FLBuilderConfig.wp_editor,o=tinyMCEPreInit,r=Number(i.attr("data-buttons")),a=i.attr("data-rows"),d=null,u=null;s=s.replace(/flbuildereditor/g,n),o=FLBuilder._jsonParse(JSON.stringify(o).replace(/flbuildereditor/g,n)),o=JSONfn.parse(JSONfn.stringify(o).replace(/flbuildereditor/g,n)),t.after(s).remove(),e("textarea#"+n).val(t.val()),void 0!==typeof tinymce&&void 0!==o.mceInit[n]&&(d=o.mceInit[n],d.setup=function(e){e.on("SaveContent",function(e){e.content=e.content.replace(/<a href="(\.\.\/){1,2}/g,'<a href="'+FLBuilderConfig.homeUrl+"/"),e.content=e.content.replace(/src="(\.\.\/){1,2}/g,'src="'+FLBuilderConfig.homeUrl+"/")})},u=tinymce.$("#wp-"+n+"-wrap"),u.find("textarea").attr("rows",a),r||u.find(".wp-media-buttons").remove(),!u.hasClass("tmce-active")&&o.qtInit.hasOwnProperty(n)||d.wp_skip_init||tinymce.init(d)),void 0!==typeof quicktags&&quicktags(o.qtInit[n]),window.wpActiveEditor=n},_reinitEditorFields:function(){e(".fl-lightbox-resizable:visible").length&&setTimeout(function(){var i,t;if("undefined"!=typeof tinymce){for(i=tinymce.editors.length-1;i>-1;i--)tinymce.editors[i].inline||(t=tinymce.editors[i].id,tinyMCE.execCommand("mceRemoveEditor",!0,t),tinyMCE.execCommand("mceAddEditor",!0,t));FLBuilder.preview&&FLBuilder.preview._initDefaultFieldPreviews(e('.fl-field[data-type="editor"]'))}},1)},_destroyEditorFields:function(){var i;if("undefined"!=typeof tinymce){for(i=tinymce.editors.length-1;i>-1;i--)tinymce.editors[i].inline||tinyMCE.execCommand("mceRemoveEditor",!0,tinymce.editors[i].id);e(".wplink-autocomplete").remove(),e(".ui-helper-hidden-accessible").remove()}},_updateEditorFields:function(){var i=e(".fl-builder-settings:visible textarea.wp-editor-area");i.each(FLBuilder._updateEditorField)},_updateEditorField:function(){var i=e(this),t=i.closest(".fl-editor-field"),l=(i.closest(".fl-builder-settings"),i.closest(".wp-editor-wrap")),n=i.attr("id"),s=t.attr("data-name"),o="undefined"!=typeof tinymce&&tinymce.get(n),r=i.siblings('textarea[name="'+s+'"]'),a=t.data("wpautop");0===r.length&&(r=e('<textarea name="'+s+'"></textarea>').hide(),i.after(r)),a?o&&l.hasClass("tmce-active")?r.val(o.getContent()):"undefined"!=typeof switchEditors?r.val(switchEditors.wpautop(i.val())):r.val(i.val()):(o&&l.hasClass("tmce-active")&&o.save(),r.val(i.val()))},_loopDataSourceChange:function(){var i=e(this).val();e(".fl-loop-data-source").hide(),e('.fl-loop-data-source[data-source="'+i+'"]').show()},_customQueryPostTypeChange:function(){var i=e(this).val();e(".fl-custom-query-filter").hide(),e(".fl-custom-query-"+i+"-filter").show()},_initOrderingFields:function(){e(".fl-builder-settings:visible .fl-ordering-field-options").each(FLBuilder._initOrderingField)},_initOrderingField:function(){e(this).sortable({items:".fl-ordering-field-option",containment:"parent",tolerance:"pointer",stop:FLBuilder._updateOrderingField})},_updateOrderingField:function(i){var t=e(i.target),l=t.siblings("input[type=hidden]"),n=[];t.find(".fl-ordering-field-option").each(function(){n.push(e(this).attr("data-key"))}),l.val(JSON.stringify(n)).trigger("change")},_textFieldAddValueSelectChange:function(){var i=e(this),t=e('input[name="'+i.data("target")+'"]'),l=t.val(),n=i.val(),s="";-1==l.indexOf(n)&&(s=(l.trim()+" "+n.trim()).trim(),t.val(s).trigger("change").trigger("keyup")),i.val("")},_onNumberFieldFocus:function(i){var t=e(i.currentTarget);t.addClass("mousetrap"),Mousetrap.bind("up",function(){t.attr("step",1)}),Mousetrap.bind("down",function(){t.attr("step",1)}),Mousetrap.bind("shift+up",function(){t.attr("step",10)}),Mousetrap.bind("shift+down",function(){t.attr("step",10)})},_onNumberFieldBlur:function(i){var t=e(i.currentTarget);t.attr("step","any").removeClass("mousetrap")},_initTimezoneFields:function(){e(".fl-builder-settings:visible .fl-field[data-type=timezone]").each(FLBuilder._initTimezoneField)},_initTimezoneField:function(){var i=e(this).find("select"),t=i.attr("data-value");i.find('option[value="'+t+'"]').prop("selected",!0)},_initDimensionFields:function(){var i=e(".fl-builder-settings:visible");i.find(".fl-field[data-type=dimension]").each(FLBuilder._initDimensionField),i.find(".fl-dimension-field-link").on("click",FLBuilder._dimensionFieldLinkClicked),FLBuilder.addHook("responsive-editing-switched",this._initResponsiveDimensionFieldLinking),i.find(".fl-compound-field-setting").has(".fl-dimension-field-link").each(FLBuilder._initDimensionFieldLinking)},_initDimensionField:function(){var i=e(this),t=i.find(".fl-field-label label"),l=i.find(".fl-field-control-wrapper"),n='<i class="fl-dimension-field-link fl-tip dashicons dashicons-admin-links" title="Link Values"></i>';t.append(n),l.prepend(n),FLBuilder._initTipTips(),FLBuilder._initDimensionFieldLinking.apply(this)},_initDimensionFieldLinking:function(){var i=e(this),t=i.find(".fl-dimension-field-link"),l=FLBuilder._getDimensionFieldLinkingInputs(i),n=FLBuilder._dimensionFieldInputsAreEqual(l);n?(t.removeClass("dashicons-admin-links"),t.addClass("dashicons-editor-unlink"),l.off("input",FLBuilder._dimensionFieldLinkedValueChange),l.on("input",FLBuilder._dimensionFieldLinkedValueChange)):(t.addClass("dashicons-admin-links"),t.removeClass("dashicons-editor-unlink"))},_initResponsiveDimensionFieldLinking:function(){var i=e(".fl-builder-settings:visible");i.find(".fl-field[data-type=dimension]").each(FLBuilder._initDimensionFieldLinking)},_dimensionFieldLinkClicked:function(){var i=e(this),t=i.closest(".fl-compound-field-setting"),l=t.length?t:i.closest(".fl-field"),n=l.find(".fl-dimension-field-link"),s=n.hasClass("dashicons-editor-unlink"),o=FLBuilder._getDimensionFieldLinkingInputs(l);n.toggleClass("dashicons-admin-links"),n.toggleClass("dashicons-editor-unlink"),s?o.off("input",FLBuilder._dimensionFieldLinkedValueChange):(o.val(o.eq(0).val()).trigger("input"),o.on("input",FLBuilder._dimensionFieldLinkedValueChange))},_dimensionFieldLinkedValueChange:function(){var i=e(this),t=i.attr("name"),l=i.closest(".fl-dimension-field-units"),n=l.find('input:not([name="'+t+'"])');n.off("input",FLBuilder._dimensionFieldLinkedValueChange),n.val(i.val()).trigger("input"),n.on("input",FLBuilder._dimensionFieldLinkedValueChange)},_getDimensionFieldLinkingInputs:function(e){var i=!!e.find(".fl-field-responsive-setting").length,t=FLBuilderResponsiveEditing._mode,l=null;return l=i?e.find(".fl-field-responsive-setting-"+t+" input"):e.find(".fl-dimension-field-unit input")},_dimensionFieldInputsAreEqual:function(e){var i=e.eq(0).val();if(""===i)return!1;for(var t=1;t<4;t++)if(e.eq(t).val()!==i)return!1;return!0},_initFieldPopupSliders:function(){var i=e(".fl-builder-settings:visible"),t=i.find(".fl-field-popup-slider");t.each(FLBuilder._initFieldPopupSlider)},_initFieldPopupSlider:function(){var i=e("body"),t=e(this),l=t.find(".fl-field-popup-slider-input"),n=t.find(".fl-field-popup-slider-arrow"),s=t.data("input"),o=e('input[name="'+s+'"]');o.on("click",function(){l.hasClass("fl-field-popup-slider-init")||(l.slider({value:o.val(),slide:function(e,i){o.val(i.value).trigger("input")}}),o.on("input",function(){l.slider("value",e(this).val())}),l.addClass("fl-field-popup-slider-init"),l.find(".ui-slider-handle").removeAttr("tabindex")),FLBuilder._setFieldPopupSliderMinMax(l),FLBuilder._hideFieldPopupSliders(),i.on("mousedown",FLBuilder._hideFieldPopupSliders),o.addClass("fl-field-popup-slider-focus"),t.show();var s=e(".fl-builder-settings:visible .fl-builder-settings-tab.fl-active"),r=s.offset(),a=o.offset(),d=o.width(),u=t.offset();u.top+t.outerHeight()>r.top+s.outerHeight()&&t.addClass("fl-field-popup-slider-top"),n.css("left",2+a.left-u.left+d/2+"px")}),o.on("focus",function(){FLBuilder._hideFieldPopupSliders()})},_hideFieldPopupSliders:function(i){var t=i?e(i.target):null,l=e("body"),n=e(".fl-field-popup-slider:visible"),s=e(".fl-field-popup-slider-focus");if(t){if(t.closest(".fl-field-popup-slider").length)return;if(t.closest(".fl-field-popup-slider-focus").length)return}l.off("mousedown",FLBuilder._hideFieldPopupSliders),s.removeClass("fl-field-popup-slider-focus"),n.hide()},_setFieldPopupSliderMinMax:function(e){var i=e.parent(),t=i.parent().parent(),l=t.find("select.fl-field-unit-select"),n=l.val(),s=i.data("slider"),o=0,r=100,a=1;""!==n&&"em"!==n&&"rem"!==n||(r=10,a=.1),"object"==typeof s&&(o=s.min?parseFloat(s.min):o,r=s.max?parseFloat(s.max):r,a=s.step?parseFloat(s.step):a,l.length&&s[n]&&(o=s[n].min?parseFloat(s[n].min):o,
|
6 |
-
r=s[n].max?parseFloat(s[n].max):r,a=s[n].step?parseFloat(s[n].step):a)),e.slider({min:o,max:r,step:a})},_initPresetFields:function(){var i=e(".fl-builder-settings:visible"),t=i.find(".fl-preset-select-controls");t.each(FLBuilder._initPresetField)},_initPresetField:function(){var i=e(this),t=i.find("select"),l=i.data("presets"),n=i.data("prefix");t.on("change",FLBuilder._setFormPreset.bind(this,l,n))},_setFormPreset:function(i,t,l){var n=e(l.currentTarget).val();if(presetLists=FLBuilderConfig.presets,presets=presetLists[i],form=e(".fl-builder-settings:visible"),"undefined"!==presets&&"undefined"!==presets[n]){var s=presets[n].settings;for(var o in s){var r,n=s[o];r="undefined"!=typeof t&&""!==t?form.find('[name="'+t+o+'"]'):form.find('[name="'+o+'"]'),r.val(n).trigger("change").trigger("input")}}},ajax:function(i,t){var l;if(FLBuilder._ajaxRequest)return void FLBuilder._ajaxQueue.push({data:i,callback:t});FLBuilder.triggerHook("didBeginAJAX",i);for(l in i)"undefined"==typeof i[l]&&(i[l]=null);return i._wpnonce=FLBuilderConfig.ajaxNonce,i.post_id=FLBuilderConfig.postId,i.fl_builder=1,i.fl_action=i.action,"undefined"!=typeof i.settings&&(i.settings=FLBuilder._ajaxModSecFix(e.extend(!0,{},i.settings))),"undefined"!=typeof i.node_settings&&(i.node_settings=FLBuilder._ajaxModSecFix(e.extend(!0,{},i.node_settings))),i.settings=FLBuilder._inputVarsCheck(i.settings),i.node_settings=FLBuilder._inputVarsCheck(i.node_settings),"error"===i.settings||"error"===i.node_settings?0:(i={fl_builder_data:i},FLBuilder._ajaxRequest=e.post(FLBuilder._ajaxUrl(),i,function(e){"undefined"!=typeof t&&t.call(this,e),FLBuilder.triggerHook("didCompleteAJAX",i)}).always(FLBuilder._ajaxComplete).fail(function(e,i,t){switch(msg=!1,e.status){case 403:case 409:msg="Something you entered has triggered a "+e.status+" error.<br /><br />This is nearly always due to mod_security settings from your hosting provider.",window.crash_vars.white_label||(msg+='<br /><br />See this <a target="_blank" style="color: #428bca;font-size:inherit" href="https://kb.wpbeaverbuilder.com/article/40-403-forbidden-or-blocked-error">Knowledge Base</a> article for more info.</br />')}msg&&(console.log(e),console.log(t),FLBuilder.alert(msg))}),FLBuilder._ajaxRequest)},_inputVarsCheck:function(i){var t=FLBuilderConfig.MaxInputVars||0;return"undefined"!=typeof i&&t>0&&(count=e.map(i,function(e,i){return i}).length,count>t)?(FLBuilder.alert('<h1 style="font-size:2em;text-align:center">Critical Issue</h1><br />The number of settings being saved ('+count+") exceeds the PHP Max Input Vars setting ("+t+").<br />Please contact your host to have this value increased, the default is 1000."),console.log("Vars Count: "+count),console.log("Max Input: "+t),"error"):i},_ajaxComplete:function(){if(FLBuilder._ajaxRequest=null,FLBuilder.hideAjaxLoader(),FLBuilder._ajaxQueue.length){var e=FLBuilder._ajaxQueue.shift();FLBuilder.ajax(e.data,e.callback)}},_ajaxUrl:function(e){var i=window.location.href.split("#").shift(),t=null;if("undefined"!=typeof e)for(t in e)i+=i.indexOf("?")>-1?"&":"?",i+=t+"="+e[t];return i},showAjaxLoader:function(){0===e(".fl-builder-lightbox-loading").length&&e(".fl-builder-loading").show()},hideAjaxLoader:function(){e(".fl-builder-loading").hide()},_showNodeLoading:function(i){var t=e(".fl-node-"+i);t.addClass("fl-builder-node-loading"),FLBuilder._removeAllOverlays(),FLBuilder.triggerHook("didStartNodeLoading",t)},_hideNodeLoading:function(i){var t=e(".fl-node-"+i);t.removeClass("fl-builder-node-loading")},_showNodeLoadingPlaceholder:function(i,t){var l=e('<div class="fl-builder-node-loading-placeholder"></div>');e(".fl-builder-node-loading-placeholder").remove(),i.hasClass("fl-builder-content")?siblings=i.find(" > .fl-row"):i.hasClass("fl-row-content")?siblings=i.find(" > .fl-col-group"):i.hasClass("fl-col-group")?(i.addClass("fl-col-group-has-child-loading"),siblings=i.find(" > .fl-col")):siblings=i.find(" > .fl-col-group, > .fl-module"),0===siblings.length||siblings.length==t?i.append(l):siblings.eq(t).before(l)},_removeNodeLoadingPlaceholder:function(e){var i=e.prev(".fl-builder-node-loading-placeholder"),t=e.next(".fl-builder-node-loading-placeholder");i.length?i.remove():t.remove()},_ajaxModSecFix:function(e){var i;if(FLBuilderConfig.modSecFix&&"undefined"!=typeof btoa)if("string"==typeof e)e=FLBuilder._btoa(e);else for(i in e)"string"==typeof e[i]?e[i]=FLBuilder._btoa(e[i]):"object"==typeof e[i]&&(e[i]=FLBuilder._ajaxModSecFix(e[i]));return e},_btoa:function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,i){return String.fromCharCode("0x"+i)}))},_wpmedia_reset_errors:function(){e(".upload-error").remove(),e(".media-uploader-status").removeClass("errors").hide()},_initLightboxes:function(){FLBuilder._lightbox=new FLLightbox({className:"fl-builder-lightbox fl-builder-settings-lightbox",resizable:!0}),FLBuilder._lightbox.on("resized",FLBuilder._calculateSettingsTabsOverflow),FLBuilder._lightbox.on("close",FLBuilder._lightboxClosed),FLBuilder._lightbox.on("beforeCloseLightbox",FLBuilder._destroyEditorFields),FLBuilder._actionsLightbox=new FLLightbox({className:"fl-builder-actions-lightbox"})},_showLightbox:function(e){e||(e='<div class="fl-builder-lightbox-loading"></div>'),FLBuilder._lightbox.open(e),FLBuilder._initLightboxScrollbars()},_setLightboxContent:function(e){FLBuilder._lightbox.setContent(e)},_initLightboxScrollbars:function(){FLBuilder._initScrollbars(),clearTimeout(FLBuilder._lightboxScrollbarTimeout),FLBuilder._lightboxScrollbarTimeout=setTimeout(FLBuilder._initLightboxScrollbars,500)},_lightboxClosed:function(){FLBuilder.triggerHook("settings-lightbox-closed"),FLBuilder._lightbox.empty(),clearTimeout(FLBuilder._lightboxScrollbarTimeout),FLBuilder._lightboxScrollbarTimeout=null},_showActionsLightbox:function(e){var i=wp.template("fl-actions-lightbox");FLBuilder.triggerHook("actions-lightbox-settings",e),FLBuilder._actionsLightbox.open(i(e))},alert:function(e){var i=new FLLightbox({className:"fl-builder-alert-lightbox",destroyOnClose:!0}),t=wp.template("fl-alert-lightbox");i.open(t({message:e}))},crashMessage:function(e){FLLightbox.closeAll();var i=new FLLightbox({className:"fl-builder-alert-lightbox fl-builder-crash-lightbox",destroyOnClose:!0}),t=wp.template("fl-crash-lightbox"),l=window.crash_vars.product,n=window.crash_vars.white_label,s=window.crash_vars.labeled_txt;message=l+" has detected a plugin conflict that is preventing the page from saving.<p>( In technical terms there’s probably a PHP error in Ajax. )</p>",info="If you contact Beaver Builder Support, we need to know what the error is in the JavaScript console in your browser.<p>To open the JavaScript console:<br />Chrome: View > Developer > JavaScript Console<br />Firefox: Tools > Web Developer > Browser Console<br />Safari: Develop > Show JavaScript console</p>Copy the errors you find there and submit them with your Support ticket. It saves us having to ask you that as a second step.<br /><br />If you want to troubleshoot further, you can check our <a class='link' target='_blank' href='https://kb.wpbeaverbuilder.com/article/42-known-beaver-builder-incompatibilities'>Knowledge Base</a> for plugins we know to be incompatible. Then deactivate your plugins one by one while you try to save the page in the Beaver Builder editor. When the page saves normally, you have identified the plugin causing the conflict. <a class='link' target='_blank' href='https://www.wpbeaverbuilder.com/beaver-builder-support/'>Contact Support</a> if you need further help.",FLBuilderConfig.MaxInputVars<=3e3&&(info+="<br /><br />The PHP config value max_input_vars is only set to "+FLBuilderConfig.MaxInputVars+'. If you are using 3rd party addons this could very likely be the cause of this error. [<a class="link" href="https://kb.wpbeaverbuilder.com/article/746-troubleshooting-number-of-settings-being-saved-exceeds-php-max-input-vars">doc link</a>].'),e=!1,n&&(info=s),i.open(t({message:message,info:info,debug:e}))},_alertClose:function(){FLLightbox.closeParent(this)},confirm:function(i){var t={message:"",ok:function(){},cancel:function(){},strings:{ok:FLBuilderStrings.ok,cancel:FLBuilderStrings.cancel}},l=e.extend({},t,"undefined"==typeof i?{}:i);lightbox=new FLLightbox({className:"fl-builder-confirm-lightbox fl-builder-alert-lightbox",destroyOnClose:!0}),template=wp.template("fl-confirm-lightbox"),lightbox.open(template(l)),lightbox._node.find(".fl-builder-confirm-ok").on("click",l.ok),lightbox._node.find(".fl-builder-confirm-cancel").on("click",l.cancel)},triggerHook:function(i,t){e("body").trigger("fl-builder."+i,t)},addHook:function(i,t){e("body").on("fl-builder."+i,t)},removeHook:function(i,t){e("body").off("fl-builder."+i,t)},log:function(e){"undefined"!=typeof window.console&&"undefined"!=typeof window.console.log&&console.log(e)},logError:function(i,t){var l=null;"undefined"!=typeof i&&("undefined"!=typeof i.stack?l=i.stack:"undefined"!=typeof i.message&&(l=i.message),l&&(FLBuilder.log("************************************************************************"),FLBuilder.log(FLBuilderStrings.errorMessage),FLBuilder.log(l),"undefined"!=typeof t&&t&&(FLBuilder.log("Debug Info"),console.log(t)),e.each(window.crash_vars.vars,function(e,i){console.log(e+": "+i)}),FLBuilder.log("************************************************************************"),"undefined"!=typeof t&&t&&(l=t+"\n"+l),FLBuilder.crashMessage(l)))},logGlobalError:function(e,i,t,l,n){FLBuilder.log("************************************************************************"),FLBuilder.log(FLBuilderStrings.errorMessage),FLBuilder.log(FLBuilderStrings.globalErrorMessage.replace("{message}",e).replace("{line}",t).replace("{file}",i)),"undefined"!=typeof n&&"undefined"!=typeof n.stack&&FLBuilder.log(n.stack),FLBuilder.log("************************************************************************")},_jsonParse:function(e){try{e=JSON.parse(e)}catch(i){FLBuilder.logError(i,FLBuilder._parseError(e))}return e},_parseError:function(i){if(i.indexOf("</head>"))return"AJAX returned HTML page instead of data. (Possible 404 or max_input_vars)";if(php=i.match(/^<.*/gm)||!1,php&&php.length>0){var t="";return e.each(php,function(e,i){t+=i}),e(t).text()}return!1},isUndefined:function(e){return void 0===e},isBoolean:function(e){return e===!0||e===!1}},e(function(){FLBuilder._init()})}(jQuery),function(e){FLBuilderAJAXLayout=function(i,t){this._data=e.extend({},this._defaults,"string"==typeof i?FLBuilder._jsonParse(i):i),this._callback=t,this._post=FLBuilderConfig.postId,this._head=e("head").eq(0),this._body=e("body").eq(0),this._data.css&&("inline"===FLBuilderConfig.enqueueMethod?(this._oldCss=e("#fl-builder-layout-"+this._post+"-inline-css"),this._newCss=e('<style id="fl-builder-layout-'+this._post+'-inline-css" type="text/css">'+this._data.css+"</style>")):(this._loader=e('<img src="'+this._data.css+'" />'),this._oldCss=e('link[href*="/cache/'+this._post+'-layout"]'),this._newCss=e('<link rel="stylesheet" id="fl-builder-layout-'+this._post+'-css" href="'+this._data.css+'" />'))),this._data.partial?(this._data.js&&(this._oldJs=e("#fl-builder-partial-refresh-js"),this._newJs=e('<script type="text/javascript" id="fl-builder-partial-refresh-js">'+this._data.js+"</script>")),this._data.nodeId&&(this._data.oldNodeId?(this._oldScriptsStyles=e('.fl-builder-node-scripts-styles[data-node="'+this._data.oldNodeId+'"]'),this._content=e(".fl-node-"+this._data.oldNodeId)):(this._oldScriptsStyles=e('.fl-builder-node-scripts-styles[data-node="'+this._data.nodeId+'"]'),this._content=e(".fl-node-"+this._data.nodeId).eq(0)))):("inline"===FLBuilderConfig.enqueueMethod?(this._oldJs=e("#fl-builder-layout-"+this._post+"-inline-js"),this._newJs=e('<script id="fl-builder-layout-'+this._post+'-inline-js">'+this._data.js+"</script>")):(this._oldJs=e('script[src*="/cache/'+this._post+'"]'),this._newJs=e('<script src="'+this._data.js+'"></script>')),this._oldScriptsStyles=e(".fl-builder-layout-scripts-styles"),this._content=e(FLBuilder._contentClass)),this._init()},FLBuilderAJAXLayout.prototype={_defaults:{partial:!1,nodeId:null,nodeType:null,nodeParent:null,nodePosition:null,oldNodeId:null,html:null,scriptsStyles:null,css:null,js:null},_data:null,_callback:function(){},_post:null,_head:null,_body:null,_loader:null,_oldCss:null,_newCss:null,_oldJs:null,_newJs:null,_oldScriptsStyles:null,_content:null,_init:function(){this._body.height(this._body.height()),this._data.css?"inline"===FLBuilderConfig.enqueueMethod?(this._addNewCSS(),this._finish()):"onload"in document.createElement("link")?(this._newCss.on("load",e.proxy(this._finish,this)),this._addNewCSS()):(this._loader.on("error",e.proxy(this._loadNewCSSFallbackComplete,this)),this._body.append(this._loader)):this._finish()},_loadNewCSSFallbackComplete:function(){this._loader.remove(),this._addNewCSS(),setTimeout(e.proxy(this._finish,this),250)},_addNewCSS:function(){this._oldCss.length>0?this._oldCss.after(this._newCss):this._head.append(this._newCss)},_finish:function(){this._removeOldContentAndAssets(),this._cleanNewHTML(),this._cleanNewAssets(),this._addNewHTML(),this._addNewScriptsStyles(),this._addNewJS(),e(FLBuilder._contentClass).trigger("fl-builder.layout-rendered"),FLBuilder.hideAjaxLoader()},_removeOldContentAndAssets:function(){this._content&&this._content.empty(),this._oldCss&&this._oldCss.remove(),this._oldJs&&this._oldJs.remove(),this._oldScriptsStyles&&this._oldScriptsStyles.remove()},_cleanNewHTML:function(){if(this._data.scriptsStyles){var i=e("<div>"+this._data.html+"</div>"),t="fl-row",l=this._data.scriptsStyles,n="";this._data.partial&&(t="column-group"==this._data.nodeType?"fl-col-group":"column"==this._data.nodeType?"fl-col":"fl-"+this._data.nodeType),i.find("> *, script").each(function(){e(this).hasClass(t)||"application/json"==e(this).attr("type")||(n=e(this).remove(),l+=n[0].outerHTML)}),""!==l&&(l=this._data.partial?'<div class="fl-builder-node-scripts-styles" data-node="'+this._data.nodeId+'">'+l+"<div>":'<div class="fl-builder-node-scripts-styles">'+l+"<div>"),this._data.html=i.html(),this._data.scriptsStyles=l}},_addNewHTML:function(){var i;if(this._data.partial?this._data.nodeParent?(i=this._data.nodeParent.hasClass("fl-builder-content")?this._data.nodeParent.find(" > .fl-row"):this._data.nodeParent.hasClass("fl-row-content")?this._data.nodeParent.find(" > .fl-col-group"):this._data.nodeParent.hasClass("fl-col-group")?this._data.nodeParent.find(" > .fl-col"):this._data.nodeParent.find(" > .fl-col-group, > .fl-module"),i=i.filter(":not(.fl-builder-node-clone)"),0===i.length||this._data.nodePosition>=i.length?this._data.nodeParent.append(this._data.html):i.eq(this._data.nodePosition).before(this._data.html),this._data.nodeId&&FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+this._data.nodeId))):(this._content.after(this._data.html),this._content.remove()):this._content.append(this._data.html),FLBuilder.preview&&this._data.nodeId&&this._data.nodeId!=FLBuilder.preview.nodeId){var t=e(FLBuilder.preview.classes.node),l=t.closest(".fl-node-"+this._data.nodeId).length;l&&t.html(FLBuilder.preview.elements.node.html())}this._data.onAddNewHTML&&this._data.onAddNewHTML()},_cleanNewAssets:function(){var i=this;this._data.html=this._removeDuplicateAssets(this._data.html),this._data.scriptsStyles&&""!==this._data.scriptsStyles&&(this._data.scriptsStyles=this._removeDuplicateAssets(this._data.scriptsStyles)),this._data.partial?e(".fl-builder-node-scripts-styles").each(function(){i._data.html.indexOf("fl-node-"+e(this).data("node"))>-1&&e(this).remove()}):(e("#fl-builder-partial-refresh-js").remove(),e(".fl-builder-node-scripts-styles").remove())},_removeDuplicateAssets:function(i){var t=e("<div>"+i+"</div>"),l="",n=null,s="",o=null,r=window.location,a=r.protocol+"//"+r.hostname+(r.port?":"+r.port:"");return t.find("script").each(function(){l=e(this).attr("src"),"undefined"!=typeof l&&(l=l.replace(a,""),n=e('script[src*="'+l+'"]'),n.length>0&&e(this).remove())}),t.find("link").each(function(){s=e(this).attr("href"),"undefined"!=typeof s&&(s=s.replace(a,""),o=e('link[href*="'+s+'"]'),o.length>0&&e(this).remove())}),t.html()},_addNewScriptsStyles:function(){this._data.scriptsStyles&&""!==this._data.scriptsStyles&&this._body.append(this._data.scriptsStyles)},_addNewJS:function(){setTimeout(e.proxy(function(){this._newJs&&this._head.append(this._newJs),FLBuilder.triggerHook("didRenderLayoutJSComplete")},this),50)},_complete:function(){FLBuilder._dragging?(FLBuilder._highlightRowsAndColsForDrag(),FLBuilder._refreshSortables()):(FLBuilder._setupEmptyLayout(),FLBuilder._highlightEmptyCols(),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder._resizeLayout()),FLBuilder._initMediaElements(),FLBuilderLayout.init(),FLBuilderResponsiveEditing.refreshPreview(this._callback),FLBuilder.triggerHook("didRenderLayoutComplete"),this._body.height("auto")}}}(jQuery),function(e){FLBuilderPreview=function(e){this.id=(new Date).getTime(),this.type=e.type,this._saveState(),e.layout?FLBuilder._renderLayout(e.layout,function(){this._init(),e.callback&&e.callback()}.bind(this)):this._init()},FLBuilderPreview._fontsList={},FLBuilderPreview.getFormattedSelector=function(e,i){for(var t="",l=i.split(","),n=0;n<l.length;n++)t+=l[n].indexOf("{node}")>-1?l[n].replace("{node}",e):l[n].indexOf("{node_id}")>-1?l[n].replace(/{node_id}/g,this.nodeId):e+" "+l[n],n!=l.length-1&&(t+=", ");return t},FLBuilderPreview.prototype={id:"",type:"",nodeId:null,classes:{},elements:{},state:null,_savedSettings:null,_styleSheet:null,_styleSheetMedium:null,_styleSheetResponsive:null,_timeout:null,_loaderTimeout:null,_lastClassName:null,_xhr:null,_init:function(){switch(this.nodeId=e(".fl-builder-settings").data("node"),this._saveSettings(),this._initElementsAndClasses(),this._createSheets(),this._initResponsivePreviews(),this._initDefaultFieldPreviews(),this.type){case"row":this._initRow();break;case"col":this._initColumn();break;case"module":this._initModule()}FLBuilder.triggerHook("preview-init",this)},_saveSettings:function(){var i=e(".fl-builder-settings-lightbox .fl-builder-settings");this._savedSettings=FLBuilder._getSettingsForChangedCheck(this.nodeId,i)},_settingsHaveChanged:function(){var i=e(".fl-builder-settings-lightbox .fl-builder-settings"),t=FLBuilder._getSettings(i);return JSON.stringify(this._savedSettings)!=JSON.stringify(t)},_initElementsAndClasses:function(){var i;i="row"==this.type?".fl-row-content-wrap":".fl-"+this.type+"-content",e.extend(this.classes,{settings:".fl-builder-"+this.type+"-settings",settingsHeader:".fl-builder-"+this.type+"-settings .fl-lightbox-header",node:FLBuilder._contentClass+" .fl-node-"+this.nodeId,content:FLBuilder._contentClass+" .fl-node-"+this.nodeId+" > "+i}),e.extend(this.elements,{settings:e(this.classes.settings),settingsHeader:e(this.classes.settingsHeader),node:e(this.classes.node),content:e(this.classes.content)})},_createSheets:function(){this._destroySheets(),this._styleSheet||(this._styleSheet=new FLStyleSheet({id:"fl-builder-preview",className:"fl-builder-preview-style"})),this._styleSheetMedium||(this._styleSheetMedium=new FLStyleSheet({id:"fl-builder-preview-medium",className:"fl-builder-preview-style"}),this._styleSheetMedium.disable()),this._styleSheetResponsive||(this._styleSheetResponsive=new FLStyleSheet({id:"fl-builder-preview-responsive",className:"fl-builder-preview-style"}),this._styleSheetResponsive.disable())},_destroySheets:function(){this._styleSheet&&(this._styleSheet.destroy(),this._styleSheet=null),this._styleSheetMedium&&(this._styleSheetMedium.destroy(),this._styleSheetMedium=null),this._styleSheetResponsive&&(this._styleSheetResponsive.destroy(),this._styleSheetResponsive=null)},_disableStyles:function(){var e=FLBuilderResponsiveEditing._mode,i=FLBuilderConfig.global,t=this.elements.node;"responsive"===e?(FLBuilderSimulateMediaQuery.disableStyles(i.responsive_breakpoint),this._styleSheetResponsive.disable()):"medium"===e?(FLBuilderSimulateMediaQuery.disableStyles(i.medium_breakpoint),this._styleSheetMedium.disable()):t.removeClass(function(e,i){return(i.match(/fl-node-[^\s]*/g)||[]).join(" ")})},_enableStyles:function(){var e=FLBuilderResponsiveEditing._mode,i=this.elements.node;"responsive"===e?(FLBuilderSimulateMediaQuery.enableStyles(),this._styleSheetResponsive.enable()):"medium"===e?(FLBuilderSimulateMediaQuery.enableStyles(),this._styleSheetMedium.enable()):i.addClass("fl-node-"+i.data("node"))},_getDefaultValue:function(i,t){var l="",n=e(i),s=n.closest("[data-node]"),o=["line-height","font-weight"];return"width"===t?l="auto":-1===e.inArray(t,o)&&s.length&&(this._disableStyles(),l=n.css(t),this._enableStyles()),l},updateCSSRule:function(e,i,t,l){var n=FLBuilderResponsiveEditing._mode,s="";""!==t&&"null"!==t||(t=this._getDefaultValue(e,i)),l?(s="string"==typeof l?this.toUpperCaseWords(l):"default"===n?"":this.toUpperCaseWords(n),this["_styleSheet"+s].updateRule(e,i,t)):this._styleSheet.updateRule(e,i,t)},delay:function(e,i){this._cancelDelay(),this._timeout=setTimeout(i,e)},_cancelDelay:function(){null!==this._timeout&&clearTimeout(this._timeout)},hexToRgb:function(e){var i=parseInt(e,16),t=i>>16&255,l=i>>8&255,n=255&i;return[t,l,n]},hexOrRgb:function(e){return e.indexOf("rgb")<0&&e.indexOf("#")<0&&(e="#"+e),e},parseFloat:function(e){return isNaN(parseFloat(e))?0:parseFloat(e)},_initResponsivePreviews:function(){var i=".preview-"+this.id;FLBuilder.addHook("responsive-editing-switched"+i,e.proxy(this._responsiveEditingSwitched,this)),FLBuilder.addHook("responsive-editing-before-preview-fields"+i,e.proxy(this._responsiveEditingPreviewFields,this))},_destroyResponsivePreviews:function(){var e=".preview-"+this.id;FLBuilder.removeHook("responsive-editing-switched"+e),FLBuilder.removeHook("responsive-editing-before-preview-fields"+e)},_responsiveEditingSwitched:function(e,i){"default"==i?(this._styleSheetMedium.disable(),this._styleSheetResponsive.disable()):"medium"==i?(this._styleSheetMedium.enable(),this._styleSheetResponsive.disable()):"responsive"==i&&(this._styleSheetMedium.enable(),this._styleSheetResponsive.enable())},_responsiveEditingPreviewFields:function(e,i){"medium"===i&&"col"===this.type&&this.elements.node[0].style.width&&(size=parseFloat(this.elements.node[0].style.width),this.elements.size.val(size))},updateResponsiveCSSRule:function(e,i,t){this.updateCSSRule(e,i,t,!0)},_saveState:function(){var i=FLBuilderConfig.postId,t=e('link[href*="/cache/'+i+'"]').attr("href"),l=e('script[src*="/cache/'+i+'"]').attr("src"),n=e(FLBuilder._contentClass).html();this.state={css:t,js:l,html:n}},preview:function(){var i=e(".fl-builder-settings-lightbox .fl-builder-settings"),t=i.attr("data-node"),l=FLBuilder._getSettings(i);return FLBuilder._showNodeLoading(t),this._cancelPreview(),l=FLBuilder._inputVarsCheck(l),"error"===l?0:void(this._xhr=FLBuilder.ajax({action:"render_layout",node_id:t,node_preview:l},e.proxy(this._renderPreview,this)))},delayPreview:function(i){var t="undefined"==typeof i?[]:e(i.target).closest("tr").find("th"),l=e(".fl-builder-widget-settings .fl-builder-settings-title"),n=e(".fl-builder-settings .fl-lightbox-header"),s=FLBuilderLayoutConfig.paths.pluginUrl+"img/ajax-loader-small.svg",o=e('<img class="fl-builder-preview-loader" src="'+s+'" />');this.delay(1e3,e.proxy(this.preview,this)),this._loaderTimeout=setTimeout(function(){e(".fl-builder-preview-loader").remove(),t.length>0?t.append(o):l.length>0?l.append(o):n.length>0&&n.append(o)},1500)},_cancelPreview:function(){this._xhr&&(this._xhr.abort(),this._xhr=null)},_renderPreview:function(i){this._xhr=null,FLBuilder._renderLayout(i,e.proxy(this._renderPreviewComplete,this))},_renderPreviewComplete:function(){this._createSheets(),this._initElementsAndClasses(),this._initDefaultFieldPreviews(),null!==this._loaderTimeout&&clearTimeout(this._loaderTimeout),e(".fl-builder-preview-loader").remove(),e(FLBuilder._contentClass).trigger("fl-builder.preview-rendered")},revert:function(){var e=this.nodeId;return this._settingsHaveChanged()?("col"===this.type&&(e=this.elements.node.closest(".fl-col-group").data("node")),void FLBuilder._updateNode(e,function(){this.clear()}.bind(this))):void this.clear()},cancel:function(){this._cancelDelay(),this._cancelPreview()},clear:function(){this.cancel(),this._destroySheets(),this._destroyResponsivePreviews()},_initNodeTextColor:function(){e.extend(this.elements,{textColor:e(this.classes.settings+" input[name=text_color]"),linkColor:e(this.classes.settings+" input[name=link_color]"),hoverColor:e(this.classes.settings+" input[name=hover_color]"),headingColor:e(this.classes.settings+" input[name=heading_color]")}),this.elements.textColor.on("change",e.proxy(this._textColorChange,this)),this.elements.linkColor.on("change",e.proxy(this._textColorChange,this)),this.elements.hoverColor.on("change",e.proxy(this._textColorChange,this)),this.elements.headingColor.on("change",e.proxy(this._textColorChange,this))},_textColorChange:function(i){var t=this.elements.textColor.val(),l=this.elements.linkColor.val(),n=this.elements.hoverColor.val(),s=this.elements.headingColor.val();l=""===l?t:l,n=""===n?t:n,s=""===s?t:s,t&&t.indexOf("rgb")<0&&(t="#"+t),l&&l.indexOf("rgb")<0&&(l="#"+l),n&&n.indexOf("rgb")<0&&(n="#"+n),s&&s.indexOf("rgb")<0&&(s="#"+s),this.delay(50,e.proxy(function(){""===t?this.updateCSSRule(this.classes.node,"color",""):this.updateCSSRule(this.classes.node,"color",t),""===l?this.updateCSSRule(this.classes.node+" a","color",""):this.updateCSSRule(this.classes.node+" a","color",l),""===n?this.updateCSSRule(this.classes.node+" a:hover","color",""):this.updateCSSRule(this.classes.node+" a:hover","color",n),""===s?(this.updateCSSRule(this.classes.node+" h1","color",""),this.updateCSSRule(this.classes.node+" h2","color",""),this.updateCSSRule(this.classes.node+" h3","color",""),this.updateCSSRule(this.classes.node+" h4","color",""),this.updateCSSRule(this.classes.node+" h5","color",""),this.updateCSSRule(this.classes.node+" h6","color",""),this.updateCSSRule(this.classes.node+" h1 a","color",""),this.updateCSSRule(this.classes.node+" h2 a","color",""),this.updateCSSRule(this.classes.node+" h3 a","color",""),this.updateCSSRule(this.classes.node+" h4 a","color",""),this.updateCSSRule(this.classes.node+" h5 a","color",""),this.updateCSSRule(this.classes.node+" h6 a","color","")):(this.updateCSSRule(this.classes.node+" h1","color",s),this.updateCSSRule(this.classes.node+" h2","color",s),this.updateCSSRule(this.classes.node+" h3","color",s),this.updateCSSRule(this.classes.node+" h4","color",s),this.updateCSSRule(this.classes.node+" h5","color",s),this.updateCSSRule(this.classes.node+" h6","color",s),this.updateCSSRule(this.classes.node+" h1 a","color",s),this.updateCSSRule(this.classes.node+" h2 a","color",s),this.updateCSSRule(this.classes.node+" h3 a","color",s),this.updateCSSRule(this.classes.node+" h4 a","color",s),this.updateCSSRule(this.classes.node+" h5 a","color",s),this.updateCSSRule(this.classes.node+" h6 a","color",s))},this))},_initNodeBg:function(){e.extend(this.elements,{bgType:e(this.classes.settings+" select[name=bg_type]"),bgColor:e(this.classes.settings+" input[name=bg_color]"),bgColorPicker:e(this.classes.settings+" .fl-picker-bg_color"),bgGradientType:e(this.classes.settings+" select.fl-gradient-picker-type-select"),bgVideoSource:e(this.classes.settings+" select[name=bg_video_source]"),bgVideo:e(this.classes.settings+" input[name=bg_video]"),bgVideoServiceUrl:e(this.classes.settings+" input[name=bg_video_service_url]"),bgVideoFallbackSrc:e(this.classes.settings+" select[name=bg_video_fallback_src]"),bgSlideshowSource:e(this.classes.settings+" select[name=ss_source]"),bgSlideshowPhotos:e(this.classes.settings+" input[name=ss_photos]"),bgSlideshowFeedUrl:e(this.classes.settings+" input[name=ss_feed_url]"),bgSlideshowSpeed:e(this.classes.settings+" input[name=ss_speed]"),bgSlideshowTrans:e(this.classes.settings+" select[name=ss_transition]"),bgSlideshowTransSpeed:e(this.classes.settings+" input[name=ss_transitionDuration]"),bgParallaxImageSrc:e(this.classes.settings+" select[name=bg_parallax_image_src]"),bgOverlayType:e(this.classes.settings+" select[name=bg_overlay_type]"),bgOverlayColor:e(this.classes.settings+" input[name=bg_overlay_color]"),bgOverlayGradient:e(this.classes.settings+" #fl-field-bg_overlay_gradient select")}),this.elements.bgType.on("change",e.proxy(this._bgTypeChange,this)),this.elements.bgColor.on("change",e.proxy(this._bgColorChange,this)),this.elements.bgVideoServiceUrl.on("change",e.proxy(this._bgVideoChange,this)),this.elements.bgSlideshowSource.on("change",e.proxy(this._bgSlideshowChange,this)),this.elements.bgSlideshowPhotos.on("change",e.proxy(this._bgSlideshowChange,this)),this.elements.bgSlideshowFeedUrl.on("keyup",e.proxy(this._bgSlideshowChange,this)),this.elements.bgSlideshowSpeed.on("keyup",e.proxy(this._bgSlideshowChange,this)),this.elements.bgSlideshowTrans.on("change",e.proxy(this._bgSlideshowChange,this)),this.elements.bgSlideshowTransSpeed.on("keyup",e.proxy(this._bgSlideshowChange,this)),this.elements.bgParallaxImageSrc.on("change",e.proxy(this._bgParallaxChange,this)),this.elements.bgOverlayType.on("change",e.proxy(this._bgOverlayChange,this)),this.elements.bgOverlayColor.on("change",e.proxy(this._bgOverlayChange,this))},_bgTypeChange:function(e){var i=this.elements.bgType.val(),t=FLBuilderResponsiveEditing._mode;this.elements.node.removeClass("fl-row-bg-video"),this.elements.node.removeClass("fl-row-bg-slideshow"),this.elements.node.removeClass("fl-row-bg-parallax"),this.elements.node.find(".fl-bg-video").remove(),this.elements.node.find(".fl-bg-slideshow").remove(),this.elements.content.css("background-image",""),this.updateCSSRule(this.classes.content,"background-color","transparent"),this.updateCSSRule(this.classes.content,"background-image","none"),this.updateCSSRule(this.classes.content,"background-image","none","medium"),this.updateCSSRule(this.classes.content,"background-image","none","responsive"),"none"==i?this._bgOverlayClear():"color"==i?(this.elements.bgColor.trigger("change"),this._bgOverlayClear()):"gradient"==i?(this.elements.bgGradientType.trigger("change"),this._bgOverlayClear()):"photo"==i?(this.elements.bgColor.trigger("change"),this.elements.settings.find('[data-device="'+t+'"] select[name*="bg_"]').trigger("change")):"video"==i?(this.elements.bgColor.trigger("change"),this._bgVideoChange()):"slideshow"==i?(this.elements.bgColor.trigger("change"),this._bgSlideshowChange()):"parallax"==i&&(this.elements.bgColor.trigger("change"),this.elements.bgParallaxImageSrc.trigger("change"))},_bgColorChange:function(i){var t;""===this.elements.bgColor.val()?this.updateCSSRule(this.classes.content,"background-color","transparent"):(t=this.hexOrRgb(this.elements.bgColor.val()),this.delay(100,e.proxy(function(){this.updateCSSRule(this.classes.content,"background-color",t)},this)))},_bgVideoChange:function(i){var t=this.elements,l=t.bgVideoSource.val(),n=t.bgVideo.val(),s=t.bgVideoServiceUrl.val(),o="https://www.youtube.com/iframe_api",r="https://player.vimeo.com/api/player.js",a=e("<script>");"video_service"==l&&""!=s?(/^(?:(?:(?:https?:)?\/\/)?(?:www.)?(?:youtu(?:be.com|.be))\/(?:watch\?v\=|v\/|embed\/)?([\w\-]+))/i.test(s)&&e('script[src*="youtube.com"').length<1?a.attr("src",o):/^(http\:\/\/|https\:\/\/)?(www\.)?(vimeo\.com\/)([0-9]+)$/.test(s)&&e('script[src*="vimeo.com"').length<1&&a.attr("src",r),a.attr("type","text/javascript").appendTo("head"),this.delay(500,e.proxy(this.preview,this))):""!=n&&this.preview()},_bgSlideshowChange:function(i){var t=this.elements,l=t.bgSlideshowSource.val(),n=t.bgSlideshowPhotos.val(),s=t.bgSlideshowFeedUrl.val(),o=t.bgSlideshowSpeed.val(),r=t.bgSlideshowTransSpeed.val();"wordpress"==l&&""===n||"smugmug"==l&&""===s||isNaN(parseInt(o))||isNaN(parseInt(r))||this.delay(500,e.proxy(this.preview,this))},_bgParallaxChange:function(e){this.elements.bgParallaxImageSrc.val()&&this.updateCSSRule(this.classes.content,{"background-image":"url("+this.elements.bgParallaxImageSrc.val()+")",
|
7 |
-
"background-repeat":"no-repeat","background-position":"center center","background-attachment":"fixed","background-size":"cover"})},_bgOverlayChange:function(i){var t,l=this.elements.bgOverlayType.val(),n=this.elements.bgOverlayColor.val();"color"===l?(""===n?(this.elements.node.removeClass("fl-row-bg-overlay"),this.elements.node.removeClass("fl-col-bg-overlay"),this.updateCSSRule(this.classes.content+"::after","background-color","transparent")):(t=this.hexOrRgb(this.elements.bgOverlayColor.val()),this.delay(100,e.proxy(function(){this._bgOverlayAddClasses(),this.updateCSSRule(this.classes.content+"::after","background-color",t)},this))),this.updateCSSRule(this.classes.content+"::after","background-image","none")):"gradient"===l?(this._bgOverlayAddClasses(),this.updateCSSRule(this.classes.content+"::after","background-color","transparent"),this.elements.bgOverlayGradient.trigger("change")):(this.elements.node.removeClass("fl-row-bg-overlay"),this.elements.node.removeClass("fl-col-bg-overlay"),this.updateCSSRule(this.classes.content+"::after","background-color","transparent"),this.updateCSSRule(this.classes.content+"::after","background-image","none"))},_bgOverlayAddClasses:function(){this.elements.node.hasClass("fl-col")?this.elements.node.addClass("fl-col-bg-overlay"):this.elements.node.addClass("fl-row-bg-overlay")},_bgOverlayClear:function(e){this.elements.bgOverlayColor.prev(".fl-color-picker-clear").trigger("click"),this.elements.bgOverlayType.val("color").trigger("change")},_initNodeClassName:function(){e.extend(this.elements,{className:e(this.classes.settings+" input[name=class]")}),this.elements.className.on("keyup",e.proxy(this._classNameChange,this)),this._lastClassName=this.elements.className.val()},_classNameChange:function(e){var i=this.elements.className.val();null!==this._lastClassName&&this.elements.node.removeClass(this._lastClassName),this.elements.node.addClass(i),this._lastClassName=i},_initNodeDimensions:function(i){var t={},l=["Top","Bottom","Left","Right"],n=["","Medium","Responsive"],s=this.classes.settings,o="",r="",a=null,d=null;for(a=0;a<l.length;a++)for(d=0;d<n.length;d++)o=i+l[a]+n[d],r=i+"_"+l[a].toLowerCase(),""!=n[d]&&(r+="_"+n[d].toLowerCase()),t[o]=e(s+" input[name="+r+"]");e.extend(this.elements,t)},_initRow:function(){e.extend(this.elements,{width:e(this.classes.settings+" select[name=width]"),contentWidth:e(this.classes.settings+" select[name=content_width]"),maxContentWidth:e(this.classes.settings+" input[name=max_content_width]"),maxContentWidthUnit:e(this.classes.settings+" select[name=max_content_width_unit]"),height:e(this.classes.settings+" select[name=full_height]"),minHeight:e(this.classes.settings+" input[name=min_height]"),align:e(this.classes.settings+" select[name=content_alignment]")}),this.elements.width.on("change",e.proxy(this._rowWidthChange,this)),this.elements.contentWidth.on("change",e.proxy(this._rowContentWidthChange,this)),this.elements.maxContentWidth.on("input",e.proxy(this._rowMaxContentWidthChange,this)),this.elements.maxContentWidthUnit.on("change",e.proxy(this._rowMaxContentWidthChange,this)),this.elements.height.on("change",e.proxy(this._rowHeightChange,this)),this.elements.align.on("change",e.proxy(this._rowHeightChange,this)),this._initNodeTextColor(),this._initNodeBg(),this._initNodeClassName(),this._initNodeDimensions("border"),this._initNodeDimensions("margin"),this._initNodeDimensions("padding")},_rowWidthChange:function(e){var i=(FLBuilderConfig.global,this.elements.node),t=this.elements.content.find(".fl-row-content");this.elements.maxContentWidth.val(),this.elements.maxContentWidthUnit.val();i.css("max-width","none"),t.css("max-width","none"),"full"==this.elements.width.val()?(i.removeClass("fl-row-fixed-width"),i.addClass("fl-row-full-width")):(i.removeClass("fl-row-full-width"),i.addClass("fl-row-fixed-width")),this._rowMaxContentWidthChange()},_rowContentWidthChange:function(e){var i=(FLBuilderConfig.global,this.elements.node),t=this.elements.content.find(".fl-row-content");this.elements.maxContentWidth.val(),this.elements.maxContentWidthUnit.val();i.css("max-width","none"),t.css("max-width","none"),"full"==this.elements.contentWidth.val()?(t.removeClass("fl-row-fixed-width"),t.addClass("fl-row-full-width")):(t.removeClass("fl-row-full-width"),t.addClass("fl-row-fixed-width"),this._rowMaxContentWidthChange())},_rowMaxContentWidthChange:function(e){var i=FLBuilderConfig.global,t=this.elements.node,l=this.elements.content.find(".fl-row-content"),n=this.elements.maxContentWidth.val(),s=this.elements.maxContentWidthUnit.val();""==n?n=i.row_width+i.row_width_unit:n+=s,"fixed"===this.elements.width.val()&&t.css("max-width",n),l.css("max-width",n)},_rowHeightChange:function(e){var i=this.elements.node;this.elements.content;i.removeClass("fl-row-align-top"),i.removeClass("fl-row-align-center"),i.removeClass("fl-row-align-bottom"),i.removeClass("fl-row-full-height"),i.removeClass("fl-row-custom-height"),"full"==this.elements.height.val()?(i.addClass("fl-row-full-height"),i.addClass("fl-row-align-"+this.elements.align.val()),this.elements.minHeight.val("").trigger("input")):"custom"==this.elements.height.val()?(i.addClass("fl-row-custom-height"),i.addClass("fl-row-align-"+this.elements.align.val()),this.elements.minHeight.trigger("input")):this.elements.minHeight.val("").trigger("input")},_initColumn:function(){e.extend(this.elements,{size:e(this.classes.settings+" input[name=size]"),sizeMedium:e(this.classes.settings+" input[name=size_medium]"),sizeResponsive:e(this.classes.settings+" input[name=size_responsive]"),columnHeight:e(this.classes.settings+" select[name=equal_height]"),columnAlign:e(this.classes.settings+" select[name=content_alignment]"),responsiveOrder:e(this.classes.settings+" select[name=responsive_order]")}),this.elements.size.on("input",e.proxy(this._colSizeChange,this)),this.elements.sizeMedium.on("input",e.proxy(this._colSizeChange,this)),this.elements.sizeResponsive.on("input",e.proxy(this._colSizeChange,this)),this.elements.columnHeight.on("change",e.proxy(this._colHeightChange,this)),this.elements.columnAlign.on("change",e.proxy(this._colHeightChange,this)),this.elements.responsiveOrder.on("change",e.proxy(this._colResponsiveOrder,this)),this._initNodeTextColor(),this._initNodeBg(),this._initNodeClassName(),this._initNodeDimensions("border"),this._initNodeDimensions("margin"),this._initNodeDimensions("padding")},_colSizeChange:function(i){var t=e(i.target),l=8,n=100-l,s=parseFloat(t.val()),o=this.elements.node.closest(".fl-col-group"),r=this.elements.node.prev(".fl-col"),a=this.elements.node.next(".fl-col"),d=0===a.length?r:a,u=this.elements.node.siblings(".fl-col"),c=0,f=FLBuilderResponsiveEditing._mode;0!==u.length&&(isNaN(s)&&("medium"===f?s=this.elements.size.val():"responsive"===f&&(s=this.elements.sizeMedium.val()?this.elements.sizeMedium.val():"auto"),"auto"!==s&&isNaN(s)&&(s=l)),"default"===f?(u.each(function(){e(this).data("node")!=d.data("node")&&(n-=parseFloat(e(this)[0].style.width),c+=parseFloat(e(this)[0].style.width))}),s<l&&(s=l),s>n&&(s=n),this.elements.node.css("width",s+"%"),d.css("width",100-c-s+"%")):(s>100&&(s=100,t.val(100)),this.updateCSSRule(this.classes.node,{"max-width":("auto"===s?100:s)+"% !important",width:("auto"===s?s:s+"%")+" !important"},void 0,!0),"responsive"===f&&(t.val()?(this.updateCSSRule(this.classes.node,"float",FLBuilderConfig.isRtl?"right":"left",!0),this.updateCSSRule(this.classes.node,"clear","none",!0)):(this.updateCSSRule(this.classes.node,"float","none",!0),this.updateCSSRule(this.classes.node,"clear","both",!0)),t.val()||this._colsHaveCustomResponsiveWidth(u)?o.addClass("fl-col-group-custom-width"):o.removeClass("fl-col-group-custom-width"))))},_colsHaveCustomResponsiveWidth:function(i){var t=FLBuilderSettingsConfig.nodes,l=!1;return i.each(function(){var i=e(this).data("node");t[i]&&t[i].size_responsive&&(l=!0)}),l},_colHeightChange:function(){var e=this.elements.node.parent(".fl-col-group");e.removeClass("fl-col-group-align-top"),e.removeClass("fl-col-group-align-center"),e.removeClass("fl-col-group-align-bottom"),"yes"==this.elements.columnHeight.val()?(e.addClass("fl-col-group-equal-height"),e.addClass("fl-col-group-align-"+this.elements.columnAlign.val())):e.removeClass("fl-col-group-equal-height")},_colResponsiveOrder:function(){var e=this.elements.node.parent(".fl-col-group");"reversed"==this.elements.responsiveOrder.val()?e.addClass("fl-col-group-responsive-reversed"):e.removeClass("fl-col-group-responsive-reversed")},_initModule:function(){this._initNodeClassName(),this._initNodeDimensions("margin")},_initDefaultFieldPreviews:function(e){for(var e=FLBuilder.isUndefined(e)?this.elements.settings.find(".fl-field"):e,i=null,t=null,l=null,n=0;n<e.length;n++)i=e.eq(n),t=i.data("type"),l=i.data("preview"),"refresh"==l.type&&this._initFieldRefreshPreview(i),"text"==l.type&&this._initFieldTextPreview(i),"css"==l.type&&this._initFieldCSSPreview(i),"widget"==l.type&&this._initFieldWidgetPreview(i),"font"==l.type&&this._initFieldFontPreview(i),"attribute"==l.type&&this._initFieldAttributePreview(i),"animation"==l.type&&this._initFieldAnimationPreview(l,i),"callback"==l.type&&this._initFieldCallbackPreview(l,i,t,e),this._initFieldUnitSelect(i)},_initFieldCallbackPreview:function(i,t,l,n){var s,o=i.callback,r=e(".fl-builder-settings:visible"),a=r.data("node"),d=e(".fl-builder-content .fl-node-"+a);if("undefined"!=typeof FLBuilderPreviewCallbacks[o]?s=FLBuilderPreviewCallbacks[o]:"undefined"!=typeof window[o]&&(s=window[o]),"function"==typeof s){var u={field:t,fields:n,type:l,preview:i,form:r,nodeID:a,node:d};switch(l){case"align":case"button-group":case"text":case"multiple-photos":case"video":case"icon":case"ordering":u.input=t.find("input"),u.getValue=function(){return u.input.val()};break;case"color":u.input=t.find("input.fl-color-picker-value"),u.getValues=function(){var e=u.input.val();({value:e,formattedValue:FLBuilderPreview.formatColor(e)})};break;case"textarea":case"code":u.textarea=t.find("textarea"),u.getValue=function(){return u.textarea.val()};break;case"select":case"photo-sizes":case"post-type":u.select=t.find("select"),u.getValue=function(){return u.select.val()};break;case"photo":u.input=t.find("input[type=hidden]"),u.sizeSelect=t.find("select"),u.getValues=function(){return{value:u.input.val(),size:u.sizeSelect.val()}};break;case"unit":u.input=t.find("input[type=number]"),u.unitSelect=t.find(".fl-field-unit-select"),u.getValues=function(){var e=u.input.val(),i=u.unitSelect.val(),t={value:e,unit:i,formattedValue:e+i};return t};break;case"dimension":u.inputs=t.find("input[type=number]"),u.unitSelect=t.find(".fl-field-unit-select"),u.getValues=function(){var i={inputs:[],props:{},unit:u.unitSelect.val()};return u.inputs.each(function(t,l){var l=e(l),n=l.val(),s=l.data("unit");i.inputs.push(n),i.props[s]=n}),i};break;case"animation":u.input=t.find("input"),u.select=t.find("select"),u.getValues=function(){return{delay:u.input.val(),style:u.select.val()}};break;case"link":u.input=t.find(".fl-link-field-input-wrap input"),u.targetInput=t.find("input[name$=_target]"),u.noFollowInput=t.find("input[name$=_nofollow]"),u.getValues=function(){return{url:u.input.val(),target:u.targetInput.val(),noFollow:u.noFollowInput.val()}};break;case"shadow":u.colorInput=t.find("input.fl-color-picker-value"),u.inputs=t.find("input[type=number]"),u.getValues=function(){({color:u.colorInput.val(),x:u.inputs[0].val(),y:u.inputs[1].val(),blur:u.inputs[2].val(),spread:u.inputs[3].val()})};break;case"gradient":u.inputs=t.find("input"),u.select=t.find("select"),u.gradientInputs={},u.gradientInputs.type=t.find('select[name$="[type]"]'),u.gradientInputs.angle=t.find('input[name$="[angle]"]'),u.gradientInputs.position=t.find('select[name$="[position]"]'),u.gradientInputs.stops=[],t.find(".fl-gradient-picker-colors .fl-gradient-picker-color-row").each(function(i,t){t=e(t),u.gradientInputs.stops.push({color:t.find(".fl-gradient-picker-color input"),stop:t.find(".fl-gradient-picker-stop input")})}),u.getValues=function(){var e={type:u.gradientInputs.type.val(),angle:u.gradientInputs.angle.val(),position:u.gradientInputs.position.val(),stops:[]};for(var i in u.gradientInputs.stops){var t=u.gradientInputs.stops[i];e.stops[i]={color:t.color.val(),stop:t.stop.val()}}return e};break;case"shape-transform":u.inputs=t.find("input"),u.getValues=function(){return{scaleXSign:u.inputs.eq(0).val(),scaleYSign:u.inputs.eq(1).val(),skewX:u.inputs.eq(2).val(),skewY:u.inputs.eq(3).val(),scaleX:u.inputs.eq(4).val(),rotate:u.inputs.eq(5).val(),scaleY:u.inputs.eq(6).val()}};break;default:u.input=t.find("input"),u.getValue=function(){return u.input.val()}}var c=t.find(".fl-field-responsive-toggle");u.responsiveToggle=!!c.length&&c,s=s.bind(this,u);var f={input:"change keyup input",inputs:"change keyup input",targetInput:"change keyup input",noFollowInput:"change keyup input",colorInput:"change input",textarea:"change keyup input",select:"change",sizeSelect:"change",unitSelect:"change"};for(var h in f)"undefined"!=typeof u[h]&&u[h].on(f[h],s)}},_initFieldRefreshPreview:function(i){var t=i.data("type"),l=i.data("preview"),n=e.proxy(this.delayPreview,this);switch(t){case"align":i.find("input").on("change",n);break;case"text":i.find("input[type=text]").on("keyup",n);break;case"textarea":i.find("textarea").on("keyup",n);break;case"select":i.find("select").on("change",n);break;case"color":i.find(".fl-color-picker-value").on("change",n);break;case"photo":i.find("select").on("change",n);break;case"multiple-photos":i.find("input").on("change",n);break;case"photo-sizes":i.find("select").on("change",n);break;case"video":i.find("input").on("change",n);break;case"multiple-audios":i.find("input").on("change",n);break;case"icon":i.find("input").on("change",n);break;case"form":i.delegate("input","change",n);break;case"editor":this._addTextEditorCallback(i,l);break;case"code":i.find("textarea").on("change",n);break;case"post-type":i.find("select").on("change",n);break;case"suggest":i.find(".as-values").on("change",n),i.find("select").on("change",n);break;case"unit":case"dimension":i.find("input[type=number]").on("input",n);break;case"ordering":i.find("input[type=hidden]").on("change",n);break;default:i.on("change",n)}},_initFieldTextPreview:function(i){var t=i.data("type"),l=i.data("preview"),n=e.proxy(this._previewText,this,l);switch(t){case"text":i.find("input[type=text]").on("keyup",n);break;case"unit":i.find("input[type=number]").on("keyup",n);break;case"textarea":i.find("textarea").on("keyup",n);break;case"code":i.find("textarea").on("change",n);break;case"editor":this._addTextEditorCallback(i,l)}},_previewText:function(i,t){var l=this._getPreviewSelector(this.classes.node,i.selector),n=e(l),s=e("<div>"+e(t.target).val()+"</div>");n.length>0?(s.find("script").remove(),n.html(s.html())):this.delayPreview(t)},_previewTextEditor:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=e(n),o="undefined"!=typeof tinyMCE?tinyMCE.get(t):null,r=e("#"+t),a="";s.length>0&&(a=e(o&&"none"==r.css("display")?"<div>"+o.getContent()+"</div>":"undefined"==typeof switchEditors||"undefined"==typeof switchEditors.wpautop?"<div>"+r.val()+"</div>":"<div>"+switchEditors.wpautop(r.val())+"</div>"),a.find("script").remove(),s.html(a.html()))},_addTextEditorCallback:function(i,t){var l=i.find("textarea.wp-editor-area").attr("id"),n=null;if("refresh"==t.type)n=e.proxy(this.delayPreview,this);else{if("text"!=t.type)return;n=e.proxy(this._previewTextEditor,this,t,l)}e("#"+l).on("keyup",n),"undefined"!=typeof tinyMCE&&(editor=tinyMCE.get(l),editor.on("change",n),editor.on("keyup",n))},_initFieldFontPreview:function(i){var t=i.data("type"),l=i.data("preview");l.id=i.attr("id");var n=e.proxy(this._previewFont,this,l);"font"==t&&i.find(".fl-font-field").on("change","select",n)},_previewFont:function(i,t){var l=e(t.delegateTarget),n=l.find(".fl-font-field-font"),s=e(n).find(":selected"),o=s.parent().attr("label"),r=l.find(".fl-font-field-weight"),a=i.id+"-"+this.nodeId,d=this._getPreviewSelector(this.classes.node,i.selector),u=i.important?" !important":"",c="";"Google"==o&&this._buildFontStylesheet(a,n.val(),r.val()),c=n.val();var f=new RegExp("[0-9]");f.test(n.val())&&(c='"'+n.val()+'"'),this.updateCSSRule(d,"font-family","Default"===n.val()?"":c+u),this.updateCSSRule(d,"font-weight","default"===r.val()?"":r.val()+u)},_buildFontStylesheet:function(i,t,l){var n=FLBuilderConfig.googleFontsUrl,s="",o={},r={};o[t]=[l],FLBuilderPreview._fontsList[i]=o,Object.keys(FLBuilderPreview._fontsList).forEach(function(e){var i=FLBuilderPreview._fontsList[e];Object.keys(i).forEach(function(e){var t=i[e];r[e]=r[e]||[],t=t.filter(function(i){return r[e].indexOf(i)<0}),r[e]=r[e].concat(t)})}),e.each(r,function(e,i){s+=e+":"+i.join()+"|"}),s=n+s.slice(0,-1).replace(" ","+"),e("#fl-builder-google-fonts-preview").length<1?e("<link>").attr("id","fl-builder-google-fonts-preview").attr("type","text/css").attr("rel","stylesheet").attr("href",s).appendTo("head"):e("#fl-builder-google-fonts-preview").attr("href",s)},_initFieldCSSPreview:function(e){var i=e.data("preview"),t=null;if("undefined"!=typeof i.rules)for(t in i.rules)this._initFieldCSSPreviewCallback(e,i.rules[t]);else this._initFieldCSSPreviewCallback(e,i)},_initFieldCSSPreviewCallback:function(i,t){switch(i.data("type")){case"align":i.find("input").on("change",e.proxy(this._previewCSS,this,t,i));break;case"border":i.find("select").on("change",e.proxy(this._previewBorderCSS,this,t,i)),i.find("input[type=number]").on("input",e.proxy(this._previewBorderCSS,this,t,i)),i.find("input[type=hidden]").on("change",e.proxy(this._previewBorderCSS,this,t,i));break;case"color":i.find(".fl-color-picker-value").on("change",e.proxy(this._previewColorCSS,this,t,i));break;case"dimension":i.find("input[type=number]").on("input",e.proxy(this._previewDimensionCSS,this,t,i));break;case"gradient":i.find("select").on("change",e.proxy(this._previewGradientCSS,this,t,i)),i.find(".fl-gradient-picker-angle").on("input",e.proxy(this._previewGradientCSS,this,t,i)),i.find(".fl-color-picker-value").on("change",e.proxy(this._previewGradientCSS,this,t,i)),i.find(".fl-gradient-picker-stop").on("input",e.proxy(this._previewGradientCSS,this,t,i));break;case"photo":i.find("select").on("change",e.proxy(this._previewCSS,this,t,i));break;case"select":i.find("select").on("change",e.proxy(this._previewCSS,this,t,i));break;case"shadow":i.find("input").on("input",e.proxy(this._previewShadowCSS,this,t,i)),i.find(".fl-color-picker-value").on("change",e.proxy(this._previewShadowCSS,this,t,i));break;case"text":i.find("input[type=text]").on("keyup",e.proxy(this._previewCSS,this,t,i));break;case"typography":i.find("select").on("change",e.proxy(this._previewTypographyCSS,this,t,i)),i.find("input[type=number]").on("input",e.proxy(this._previewTypographyCSS,this,t,i)),i.find("input[type=hidden]").on("change",e.proxy(this._previewTypographyCSS,this,t,i));break;case"unit":i.find("input[type=number]").on("input",e.proxy(this._previewCSS,this,t,i))}},_previewCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=i.property,o=this._getPreviewCSSUnit(i,t,l),r=e(l.target),a=r.val(),d=!!r.closest(".fl-field-responsive-setting").length,u=i.important&&""!==a?" !important":"";s.indexOf("image")>-1&&a?a="url("+a+")":"%"===o&&"opacity"===s?a=parseInt(a)/100:""!==a&&(a+=o),this.updateCSSRule(n,s,a+u,d)},_previewBorderCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=e(l.target),t=s.closest(".fl-field"),o=s.closest(".fl-compound-field-setting"),r=o.data("property"),a=s.val(),d=(o.find(".fl-field-unit-select"),!!s.closest(".fl-field-responsive-setting").length),u=i.important&&""!==a?" !important":"";i.property=r,"border-color"===r?this._previewColorCSS(i,t,l):"border-width"===r||"border-radius"===r?this._previewDimensionCSS(i,t,l):"box-shadow"===r?this._previewShadowCSS(i,o,l):("border-style"===r&&t.find(".fl-border-field-width input:visible").trigger("input"),this.updateCSSRule(n,r,a+u,d))},_previewColorCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=e(l.target),o=s.val(),r=!!s.closest(".fl-field-responsive-setting").length,a=i.important&&""!==o?" !important":"";""!==o&&o.indexOf("rgb")<0&&(o="#"+o),this.updateCSSRule(n,i.property,o+a,r)},_previewDimensionCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=i.property,o=t.attr("id").replace("fl-field-",""),r=e(l.target).data("unit"),a=this._getDimensionValue(i,t,r,l),d=!!t.find(".fl-field-responsive-setting").length,u=i.important&&""!==a?" !important":"";s="border-radius"===s?"border-"+r.replace("_","-")+"-radius":"border-width"===s?"border-"+r+"-width":s+"-"+r,this.updateCSSRule(n,s,a+u,d),"margin"!==o&&"padding"!==o&&"border"!==o||this.elements.node.find(".fl-bg-slideshow").length&&FLBuilder._resizeLayout()},_getDimensionValue:function(i,t,l,n){var s=e(n.target).val(),o="";return s=s.toLowerCase().replace(/[^a-z0-9%.\-]/g,""),null===s||""===s||isNaN(s)||(o=this._getPreviewCSSUnit(i,t,n),s=parseFloat(s)+(o?o:"px")),s},_getPreviewCSSUnit:function(i,t,l){var n=e(l.target),s=(FLBuilderResponsiveEditing._mode,!!n.closest(".fl-compound-field-setting").length),o=!!n.closest(".fl-field-responsive-setting").length,r=null;return r=s?n.closest(".fl-compound-field-setting").find(".fl-field-unit-select"):o?n.closest(".fl-field-responsive-setting").find(".fl-field-unit-select"):t.find(".fl-field-unit-select"),r&&r.length?"SELECT"===r.prop("tagName")?r.val():r.text():i.unit?i.unit:""},_initFieldUnitSelect:function(i){i.find(".fl-field-unit-select").on("change",function(){var i=e(this),t=i.closest(".fl-field-responsive-setting"),l=i.closest(".fl-field");t.length?t.find("input").trigger("input"):l.find("input").trigger("input")})},_previewGradientCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=t.find(".fl-gradient-picker-type-select").val(),o=t.find(".fl-gradient-picker-angle").val(),r=t.find(".fl-gradient-picker-position").val(),a=t.find(".fl-color-picker-value"),d=t.find(".fl-gradient-picker-stop input"),u=[],c="",f="";a.each(function(i){var t=e(this).val(),l=d.eq(i).val();""===t&&(t="rgba(255,255,255,0)"),t.indexOf("rgb")<0&&(t="#"+t),isNaN(l)&&(l=0),u.push(t+" "+l+"%")}),u=u.join(", "),"linear"===s?(isNaN(o)&&(o=0),c="linear-gradient("+o+"deg, "+u+")"):c="radial-gradient(at "+r+", "+u+")",f=i.important&&""!==c?" !important":"",this.updateCSSRule(n,i.property,c+f)},_previewShadowCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=t.find(".fl-shadow-field-color input").val(),o=t.find(".fl-shadow-field-horizontal input").val(),r=t.find(".fl-shadow-field-vertical input").val(),a=t.find(".fl-shadow-field-blur input").val(),d=t.find(".fl-shadow-field-spread input").val(),u=!!t.find(".fl-shadow-field-spread input").length,c=!!e(l.target).closest(".fl-field-responsive-setting").length,f="",h="";""!==s&&(""===o&&(o=0),""===r&&(r=0),""===a&&(a=0),""===d&&(d=0),s.indexOf("rgb")<0&&(s="#"+s),f=o+"px ",f+=r+"px ",f+=a+"px ",u&&(f+=d+"px "),f+=s,f+=h),h=i.important&&""!==f?" !important":"",this.updateCSSRule(n,i.property,f,c)},_previewTypographyCSS:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=e(l.target),t=s.closest(".fl-field"),o=s.closest(".fl-compound-field-setting"),r=o.data("property"),a=s.val(),d=o.find(".fl-field-unit-select"),u=!!s.closest(".fl-field-responsive-setting").length,c=i.important&&""!==a?" !important":"";"font-family"===r?(i.id=t.attr("id"),this._previewFont(i,{delegateTarget:o})):"text-shadow"===r?(i.property="text-shadow",this._previewShadowCSS(i,o,l)):(d.length&&""!==a&&("vw"===d.val()?a="calc("+FLBuilderConfig.global.responsive_base_fontsize+"px + "+a+"vw)":a+="SELECT"===d.prop("tagName")?d.val():"px"),this.updateCSSRule(n,r,a+c,u))},_initFieldAttributePreview:function(i){var t=i.data("preview"),l=t.attribute,n=i.find("input"),s=(i.val(),window[t.format_callback]),o=this._getPreviewSelector(this.classes.node,t.selector),r=e(o),a=this._previewAttribute.bind(this,n,r,l,s);n.on("change",a),n.on("keyup",a),n.on("input",a)},_previewAttribute:function(e,i,t,l){var n=e.val();"function"==typeof l&&(n=l(n)),i[0].setAttribute(t,n)},_initFieldWidgetPreview:function(i){var t=e.proxy(this.delayPreview,this);i.find("input").on("keyup",t),i.find("input[type=checkbox]").on("click",t),i.find("textarea").on("keyup",t),i.find("select").on("change",t)},_initFieldAnimationPreview:function(i,t){t.find(".fl-animation-field-style select").on("change",e.proxy(this._previewAnimationField,this,i,t)),t.find(".fl-animation-field-duration input").on("input",e.proxy(this._previewAnimationField,this,i,t))},_previewAnimationField:function(i,t,l){var n=this._getPreviewSelector(this.classes.node,i.selector),s=e(n),o=t.find(".fl-animation-field-style select"),r=t.find(".fl-animation-field-duration input"),a=o[0].options;s.removeClass("fl-animated"),s.removeClass("fl-animation"),s.css("animation-duration","");for(var d=0;d<a.length;d++)s.removeClass("fl-"+a[d].value);""!==o.val()&&(s.addClass("fl-animation"),s.addClass("fl-"+o.val()),s.data("animation-delay",0),s.data("animation-duration",r.val())),FLBuilderLayout._doModuleAnimation.apply(s)},_getPreviewSelector:function(e,i){return FLBuilderPreview.getFormattedSelector.call(this,e,i)},toUpperCaseWords:function(e){return e.charAt(0).toUpperCase()+e.slice(1)}},FLBuilderPreview.formatColor=function(e){return""!==e&&e.indexOf("rgb")<0&&e.indexOf("url")<0&&(e="#"+e),e},FLBuilderPreviewCallbacks={previewShape:function(e,i){var t=e.preview.position,l=e.preview.prefix,n=e.form,s=l+"transform[][scaleYSign]";yOrientation=n.find('input[name="'+s+'"]'),"bottom"===t?yOrientation.val("invert"):yOrientation.val(""),yOrientation.trigger("change"),this.delayPreview()},previewShapeLayerSize:function(e,i){var t=e.getValues(),l=t.unit,n=t.props.width,s=t.props.height,o=t.props.top,r=e.preview.prefix,a=e.preview.position,d=this._getPreviewSelector(this.classes.node,".fl-builder-"+a+"-edge-layer"),u=d+" > *",c=e.form.find('[name="'+r+'align"]'),f=c.val(),h=f.split(" "),g=h[0],p=h[1],b=e.form.find('[name="'+r+'shape"]'),m=b.val(),v=FLBuilderConfig.presets.shape[m];if(shapeProps={},shapeProps.width="100%",shapeProps.left="auto",shapeProps.right="auto",shapeProps.height="auto",shapeProps.top="auto",shapeProps.bottom="auto",n){shapeProps.width=n+l;var _=n/2+l;switch(p){case"left":shapeProps.left="0",shapeProps.right="auto";break;case"right":shapeProps.left="auto",shapeProps.right="0";break;case"center":shapeProps.left="calc( 50% - "+_+")",shapeProps.right="auto"}}this.updateCSSRule(u,"width",shapeProps.width),this.updateCSSRule(u,"left",shapeProps.left),this.updateCSSRule(u,"right",shapeProps.right);var w;if(s)w=s/2+l;else if(n){var L=v.data.viewBox.width,F=n/L*100;w=F/2+l}else w="";switch(s&&(shapeProps.height=s+l),g){case"top":shapeProps.top="0",shapeProps.bottom="auto";break;case"bottom":shapeProps.top="auto",shapeProps.bottom="0";break;case"center":shapeProps.top="calc( 50% - "+w+")",shapeProps.bottom="auto"}this.updateCSSRule(u,"height",shapeProps.height),this.updateCSSRule(u,"top",shapeProps.top),this.updateCSSRule(u,"bottom",shapeProps.bottom),""===o?this.updateCSSRule(d,a,"0"):this.updateCSSRule(d,a,o+l)},previewShapeAlign:function(e,i){var t=e.preview.prefix,l=e.form.find('[name="'+t+'size_width"]');l.trigger("input")},previewShapeFillStyle:function(e,i){var t=e.input.val(),l=e.preview,n=e.preview.prefix,s="fl-row-"+e.nodeID+"-"+n+"-linear-gradient",o="fl-row-"+e.nodeID+"-"+n+"-radial-gradient",r="fl-row-"+e.nodeID+"-"+n+"-pattern",a=e.form;if("undefined"!=typeof t){var d=this._getPreviewSelector(this.classes.node,l.selector);switch(t){case"color":var u=a.find("[name="+n+"fill_color]").val();this.updateCSSRule(d,"fill",FLBuilderPreview.formatColor(u));break;case"gradient":var c=a.find("#fl-field-"+n+"fill_gradient"),f=c.find('select[name$="[type]"]').val(),h="radial"===f?o:s;this.updateCSSRule(d,"fill","url(#"+h+")");break;case"pattern":var g="url(#"+r+")";this.updateCSSRule(d,"fill",g)}}},previewShapeGradientFill:function(e,i){var t=e.getValues(),l=e.node,n=e.preview,s=".fl-builder-"+n.position+"-edge-layer",o=l.find(s+" "+t.type+"Gradient"),r="url(#"+o.attr("id")+")",a=this._getPreviewSelector(this.classes.node,s+" .fl-shape");this.updateCSSRule(a,"fill",r);var d=o.find("stop");for(var u in t.stops){var c=t.stops[u],f=d.eq(u),h=c.color,g=c.stop,p=1;if(0===h.indexOf("rgba")){var b=h.substring(h.indexOf("(")+1,h.lastIndexOf(")")).split(/,\s*/);p=b.pop(),h="rgb("+b.join(",")+")"}f.attr("stop-color",FLBuilderPreview.formatColor(h)),f.attr("stop-opacity",p),f.attr("offset",g+"%")}if("linear"===t.type&&"undefined"!=typeof o[0]&&o[0].setAttribute("gradientTransform","rotate("+t.angle+" .5 .5 )"),"radial"===t.type){parts=t.position.split(" ");var m,v,_,w=parts[0],L=parts[1];switch(w){case"top":case"left":m=0;break;case"center":m=.5;break;case"bottom":case"right":m=1}switch(L){case"top":case"left":v=0;break;case"center":v=.5;break;case"bottom":case"right":v=1}_=.5,.5===m&&.5===v||(_=1),o.attr("cx",m),o.attr("cy",v),o.attr("r",_)}},previewShapeTransform:function(e,i){var t=(e.form,e.preview),l=(t.prefix,this._getPreviewSelector(this.classes.node,t.selector)),n=l+" > *",s=e.getValues(),o=[];Object.keys(s).map(function(e){var i=s[e],t="",l="";switch(e){case"scaleXSign":case"scaleYSign":return;case"scaleX":case"scaleY":i&&""!==i&&0!==i||(i="1"),l="scaleX"===e?s.scaleXSign:s.scaleYSign,i="invert"===l?-Math.abs(i):Math.abs(i),o.push(e+"("+i+")");break;case"translateX":case"translateY":i&&(t="px",o.push(e+"("+i+t+")"));break;case"skewX":case"skewY":i&&(t="deg",o.push(e+"("+i+t+")"));break;case"rotate":t="deg",""!==i&&"0"!==i&&o.push("rotate("+i+t+")")}}),this.updateCSSRule(n,"transform",o.join(" "))}}}(jQuery),function(e){var i={ignored:[],reparsed:[],width:null,callback:null,sheets:{},styles:[],queue:[],emPxValue:null,regex:{media:/@media[^{]*{([\s\S]+?})\s*}/gi,empty:/@media[^{]*{([^{}]*?)}/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^\/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)\}$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},ignore:function(e){Array.prototype.push.apply(this.ignored,e)},reparse:function(e){Array.prototype.push.apply(this.reparsed,e)},update:function(e,i){this.width=void 0===e?null:e,this.callback=void 0===i?null:i,t.update(),this.queueSheets()?this.runQueue():this.applyStyles()},queueSheets:function(){for(var i=e("link, style"),t=null,l=null,n=null,s=null,o=null,r=null,a=null,d=!1,u=0,c=0;u<i.length;u++)if(element=i[u],t=element.href,l=element.id,n=element.tagName.toLowerCase(),s=element.rel,o=element.media,r=t?t.split("?").shift():l?l:"style-"+u,a=!0,d=!1,"style"===n||t&&s&&"stylesheet"===s.toLowerCase()){for(c=0;c<this.ignored.length;c++)if(r.indexOf(this.ignored[c])>-1){d=!0;break}if(d)continue;for(c=0;c<this.reparsed.length;c++)if(r.indexOf(this.reparsed[c])>-1){this.sheets[r]=null;break}void 0!==this.sheets[r]&&this.sheets[r]||this.queue.push({element:i.eq(u),key:r,tagName:n,href:t,id:l,media:o})}return this.queue.length},runQueue:function(){var i;this.queue.length?(i=this.queue.shift(),"style"===i.tagName?(this.parse(i.element.html(),i),this.runQueue()):e.get(i.href,e.proxy(function(e){this.parse(e,i),this.runQueue()},this)).fail(this.runQueue.bind(this))):this.applyStyles()},parse:function(e,i){var t=this.regex,l=this.cleanStyles(e),n=l.match(t.media),s=n&&n.length||0,o=!s&&i.media,r=null,a=null,d=null,u="",c=0,f=0;for(n?u=l.replace(t.media,""):o&&"all"!=i.media?s=1:u=l,this.sheets[i.key]={element:i.element,key:i.key,tagName:i.tagName,href:i.href,
|
8 |
-
id:i.id,all:u,queries:[]},c=0;c<s;c++)for(o?(r=i.media,l=this.convertURLs(l,i.href)):(r=n[c].match(t.findStyles)&&RegExp.$1,l=RegExp.$2&&this.convertURLs(RegExp.$2,i.href)),a=r.split(","),f=0;f<a.length;f++)r=a[f],d=r.split("(")[0].match(t.only)&&RegExp.$2,"print"!=d&&(r.replace(t.minmaxwh,"").match(t.other)||this.sheets[i.key].queries.push({minw:r.match(t.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:r.match(t.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),styles:l}))},applyStyles:function(){var i=e("head"),t={all:"",queries:[]},l=null,n=null,s=null,o=null,r=null,a=null,d=null,u=!1;this.clearStyles();for(s in this.sheets)if(n=this.sheets[s],n.queries.length&&this.width){for(t.all+=n.all,r=0;r<n.queries.length;r++)o=n.queries[r],a=o.minw,d=o.maxw,u=!1,a&&(a=parseFloat(a)*(a.indexOf("em")>-1?this.getEmPxValue():1),this.width>=a&&(t.queries.push({media:"min",width:a,styles:o.styles}),u=!0)),d&&!u&&(d=parseFloat(d)*(d.indexOf("em")>-1?this.getEmPxValue():1),this.width<=d&&t.queries.push({media:"max",width:d,styles:o.styles}));n.element[0].disabled=!0}for(""!==t.all&&(l=e('<style class="fl-builder-media-query" data-query="all"></style>'),this.styles.push(l),i.append(l),l.html(t.all)),r=0;r<t.queries.length;r++)o=t.queries[r],l=e('<style class="fl-builder-media-query" data-query="'+o.media+'" data-value="'+o.width+'"></style>'),this.styles.push(l),i.append(l),l.html(o.styles);this.callback&&(this.callback(),this.callback=null)},clearStyles:function(){var e=null,i=this.styles.slice(0);this.styles=[];for(e in this.sheets)this.sheets[e].element[0].disabled=!1;for(var t=0;t<i.length;t++)i[t].empty(),i[t].remove()},disableStyles:function(e){for(var i,t,l,n=0;n<this.styles.length;n++)i=this.styles[n],t=i.attr("data-query"),l=parseInt(i.attr("data-value")),"max"===t&&!isNaN(l)&&l<=e&&(this.styles[n][0].sheet.disabled=!0)},enableStyles:function(){for(var e=0;e<this.styles.length;e++)this.styles[e][0].sheet.disabled=!1},cleanStyles:function(e){var i=this.regex;return e.replace(i.comments,"").replace(i.keyframes,"").replace(i.empty,"")},convertURLs:function(e,i){return i?(i=i.substring(0,i.lastIndexOf("/")),i.length&&(i+="/"),e.replace(this.regex.urls,"$1"+i+"$2$3")):e},getEmPxValue:function(){if(this.emPxValue)return this.emPxValue;var e=null,i=window.document,t=i.documentElement,l=i.body,n=i.createElement("div"),s=t.style.fontSize,o=l&&l.style.fontSize,r=!1;return n.style.cssText="position:absolute;font-size:1em;width:1em",l||(l=r=i.createElement("body"),l.style.background="none"),t.style.fontSize="100%",l.style.fontSize="100%",l.appendChild(n),r&&t.insertBefore(l,t.firstChild),e=parseFloat(n.offsetWidth),r?t.removeChild(l):l.removeChild(n),t.style.fontSize=s,o?l.style.fontSize=o:l.style.fontSize="",this.emPxValue=e,e}},t={_functions:null,update:function(){var e;if(!this._functions){this._functions={};for(e in l)this._functions[e]=jQuery.fn[e]}if(i.width)for(e in l)jQuery.fn[e]=l[e];else for(e in this._functions)jQuery.fn[e]=this._functions[e]}},l={width:function(l){return void 0!=l?t._functions.width.call(this,l):e.isWindow(this[0])?i.width:t._functions.width.call(this)}};FLBuilderSimulateMediaQuery={ignore:function(e){i.ignore(e)},reparse:function(e){i.reparse(e)},update:function(e,t){i.update(e,t)},disableStyles:function(e){i.disableStyles(e)},enableStyles:function(){i.enableStyles()}}}(jQuery),function(e){FLBuilderResponsiveEditing={_mode:"default",refreshPreview:function(i){var t;e(".fl-responsive-preview").length&&"default"!==this._mode?("responsive"==this._mode?(t=FLBuilderConfig.global.responsive_breakpoint>=320?320:FLBuilderConfig.global.responsive_breakpoint,FLBuilderSimulateMediaQuery.update(t,i)):"medium"==this._mode&&(t=FLBuilderConfig.global.medium_breakpoint>=769?769:FLBuilderConfig.global.medium_breakpoint,FLBuilderSimulateMediaQuery.update(t,i)),FLBuilder._resizeLayout()):i&&i()},_init:function(){this._bind(),this._initMediaQueries()},_bind:function(){FLBuilder.addHook("endEditingSession",this._clearPreview),FLBuilder.addHook("didEnterRevisionPreview",this._clearPreview),FLBuilder.addHook("responsiveEditing",this._menuToggleClicked),FLBuilder.addHook("preview-init",this._switchAllSettingsToCurrentMode),e("body").delegate(".fl-field-responsive-toggle","click",this._settingToggleClicked),e("body").delegate(".fl-responsive-preview-message button","click",this._previewToggleClicked)},_initMediaQueries:function(){FLBuilderSimulateMediaQuery.ignore([FLBuilderConfig.pluginUrl,"fl-builder-preview","fl-theme-builder","/wp-includes/","/wp-admin/","admin-bar-inline-css","ace-tm","ace_editor.css"]),FLBuilderSimulateMediaQuery.reparse([FLBuilderConfig.postId+"-layout-draft.css",FLBuilderConfig.postId+"-layout-draft-partial.css",FLBuilderConfig.postId+"-layout-preview.css",FLBuilderConfig.postId+"-layout-preview-partial.css","fl-builder-global-css","fl-builder-layout-css"])},_switchTo:function(i,t){var l=e("html"),n=e("body"),s=e(FLBuilder._contentClass),o=e(".fl-responsive-preview"),r=e(".fl-responsive-preview-mask"),a=e(".fl-content-placeholder"),d=null;if(FLBuilderResponsiveEditing._mode=i,"default"==i){if(0===a.length)return;l.removeClass("fl-responsive-preview-enabled"),a.after(s),a.remove(),o.remove(),r.remove()}else 0===o.length?(l.addClass("fl-responsive-preview-enabled"),s.after('<div class="fl-content-placeholder"></div>'),n.prepend(wp.template("fl-responsive-preview")()),e(".fl-responsive-preview").addClass("fl-preview-"+i),e(".fl-responsive-preview-content").append(s)):(o.removeClass("fl-preview-responsive fl-preview-medium"),o.addClass("fl-preview-"+i));"responsive"==i?(d=FLBuilderConfig.global.responsive_breakpoint>=360?360:FLBuilderConfig.global.responsive_breakpoint,s.width(d),FLBuilderSimulateMediaQuery.update(d,t)):"medium"==i?(d=FLBuilderConfig.global.medium_breakpoint>=769?769:FLBuilderConfig.global.medium_breakpoint,s.width(d),FLBuilderSimulateMediaQuery.update(d,t)):(s.width(""),FLBuilderSimulateMediaQuery.update(null,t)),this._setContentBackgroundColor(),FLBuilder._resizeLayout(),this._previewFields(),FLBuilder.triggerHook("responsive-editing-switched",i)},_setContentBackgroundColor:function(){var i=e(FLBuilder._contentClass),t=e(".fl-responsive-preview"),l=e(".fl-content-placeholder"),n=l.parents(),s="#fff",o=0;if(0===t.length)i.css("background-color","");else{for(;o<n.length&&(s=n.eq(o).css("background-color"),"rgba(0, 0, 0, 0)"==s);o++);i.css("background-color",s)}},_switchToAndScroll:function(i){var t=e(".fl-builder-settings").data("node"),l=void 0===t?void 0:e(".fl-node-"+t);FLBuilderResponsiveEditing._switchTo(i,function(){if(void 0!==l&&l){var i=(e(window),e(".fl-responsive-preview-content"));i.length?(i.scrollTop(0),i.scrollTop(l.offset().top-150)):e("html, body").scrollTop(l.offset().top-100)}})},_switchAllSettingsTo:function(i){var t="dashicons-desktop dashicons-tablet dashicons-smartphone";e(".fl-field-responsive-toggle").removeClass(t),e(".fl-field-responsive-setting").hide(),t="default"==i?"dashicons-desktop":"medium"==i?"dashicons-tablet":"dashicons-smartphone",e(".fl-field-responsive-toggle").addClass(t).data("mode",i),e(".fl-field-responsive-setting-"+i).css("display","inline-block")},_switchAllSettingsToCurrentMode:function(){var e=FLBuilderResponsiveEditing;e._switchAllSettingsTo(e._mode),FLBuilder.triggerHook("responsive-editing-switched",e._mode)},_settingToggleClicked:function(){var i=e(this),t=i.data("mode");t="default"==t?"medium":"medium"==t?"responsive":"default",FLBuilderResponsiveEditing._switchAllSettingsTo(t),FLBuilderResponsiveEditing._switchToAndScroll(t),i.siblings(".fl-field-responsive-setting:visible").find("input").focus()},_menuToggleClicked:function(){var e=FLBuilderResponsiveEditing._mode;e="default"==e?"medium":"medium"==e?"responsive":"default",FLBuilder.MainMenu.hide(),FLBuilderResponsiveEditing._switchAllSettingsTo(e),FLBuilderResponsiveEditing._switchToAndScroll(e)},_previewToggleClicked:function(){var i=e(this).data("mode");FLBuilderResponsiveEditing._switchAllSettingsTo(i),FLBuilderResponsiveEditing._switchToAndScroll(i)},_clearPreview:function(){FLBuilderResponsiveEditing._switchToAndScroll("default")},_previewFields:function(){var i=FLBuilderResponsiveEditing._mode,t=e(".fl-builder-settings:visible");0!==t.length&&void 0!==t.attr("data-node")&&(FLBuilder.triggerHook("responsive-editing-before-preview-fields",i),t.find(".fl-builder-settings-tab").each(function(){var t=e(this);t.css("display","block"),t.find(".fl-field-responsive-setting-"+i+":visible").each(function(){var t=e(this),l=t.closest(".fl-field"),n=l.data("type"),s=l.data("preview"),o=l.find(".fl-field-connection-visible").length;"refresh"!=s.type&&(o?"photo"===n&&"default"!==i&&t.find(".fl-photo-remove").trigger("click"):(t.find("input").trigger("keyup"),t.find("select").trigger("change")))}),t.css("display","")}),FLBuilder.triggerHook("responsive-editing-after-preview-fields",i))}},e(function(){FLBuilderResponsiveEditing._init()})}(jQuery),function(e){FLBuilderResponsivePreview={enter:function(){this.render()},exit:function(){this.destroy()},switchTo:function(i){var t=FLBuilderConfig.global,l=e("#fl-builder-preview-frame"),n="100%";"responsive"==i?(n=t.responsive_breakpoint>=360?360:t.responsive_breakpoint,l.width(n)):"medium"==i&&(n=t.medium_breakpoint>=769?769:t.medium_breakpoint,l.width(n)),l.width(n)},render:function(){var i=e("body"),t=FLBuilderConfig.previewUrl,l=e("#fl-builder-preview-mask, #fl-builder-preview-frame"),n=e('<div id="fl-builder-preview-mask"></div>'),s=e('<iframe id="fl-builder-preview-frame" src="'+t+'"></iframe>');l.remove(),i.append(n),i.append(s),i.css("overflow","hidden")},destroy:function(){e("#fl-builder-preview-mask, #fl-builder-preview-frame").remove(),e("body").css("overflow","visible")}}}(jQuery),function(e){var i={init:function(){var i=e("body");i.delegate(".fl-builder-service-select","change",this._serviceChange),i.delegate(".fl-builder-service-connect-button","click",this._connectClicked),i.delegate(".fl-builder-service-account-select","change",this._accountChange),i.delegate(".fl-builder-service-account-delete","click",this._accountDeleteClicked),i.delegate(".fl-builder-campaign-monitor-client-select","change",this._campaignMonitorClientChange),i.delegate(".fl-builder-mailchimp-list-select","change",this._mailChimpListChange),i.delegate(".fl-builder-activecampaign-list_type-select","change",this._activeCampaignChange)},_startSettingsLoading:function(i){var t=e(".fl-builder-settings"),l=i.closest(".fl-builder-service-settings"),n=e(".fl-builder-service-error");t.append('<div class="fl-builder-loading"></div>'),l.addClass("fl-builder-service-settings-loading"),n.remove()},_finishSettingsLoading:function(){var i=e(".fl-builder-settings"),t=e(".fl-builder-service-settings-loading");i.find(".fl-builder-loading").remove(),t.removeClass("fl-builder-service-settings-loading")},_serviceChange:function(){var t=e(".fl-builder-settings").data("node"),l=e(this),n=l.closest("tr"),s=l.val();n.siblings("tr.fl-builder-service-account-row").remove(),n.siblings("tr.fl-builder-service-connect-row").remove(),n.siblings("tr.fl-builder-service-field-row").remove(),e(".fl-builder-service-error").remove(),""!==s&&(i._startSettingsLoading(l),FLBuilder.ajax({action:"render_service_settings",node_id:t,service:s},i._serviceChangeComplete))},_serviceChangeComplete:function(t){var l=FLBuilder._jsonParse(t),n=e(".fl-builder-service-settings-loading"),s=n.find(".fl-builder-service-select-row");s.after(l.html),i._addAccountDelete(n),i._finishSettingsLoading()},_connectClicked:function(){for(var t=e(".fl-builder-settings").data("node"),l=e(this).closest(".fl-builder-service-settings"),n=l.find(".fl-builder-service-select"),s=l.find(".fl-builder-service-connect-row"),o=l.find(".fl-builder-service-connect-input"),r=null,a=null,d=0,u={action:"connect_service",node_id:t,service:n.val(),fields:{}};d<o.length;d++)r=o.eq(d),a=r.attr("name"),u.fields[a]=r.val();s.hide(),i._startSettingsLoading(n),FLBuilder.ajax(u,i._connectComplete)},_connectComplete:function(t){var l=FLBuilder._jsonParse(t),n=e(".fl-builder-service-settings-loading"),s=n.find(".fl-builder-service-select-row"),o=n.find(".fl-builder-service-select"),r=n.find(".fl-builder-service-account-row"),a=n.find(".fl-builder-service-account-select"),d=n.find(".fl-builder-service-connect-row");l.error?(d.show(),0===a.length?o.after('<div class="fl-builder-service-error">'+l.error+"</div>"):a.after('<div class="fl-builder-service-error">'+l.error+"</div>")):(d.remove(),r.remove(),s.after(l.html)),i._addAccountDelete(n),i._finishSettingsLoading()},_accountChange:function(){var t=e(".fl-builder-settings").data("node"),l=e(this).closest(".fl-builder-service-settings"),n=l.find(".fl-builder-service-select"),s=l.find(".fl-builder-service-account-select"),o=l.find(".fl-builder-service-connect-row"),r=l.find("tr.fl-builder-service-field-row"),a=e(".fl-builder-service-error"),d=s.val(),u=null;o.remove(),r.remove(),a.remove(),"add_new_account"==d?u={action:"render_service_settings",node_id:t,service:n.val(),add_new:!0}:""!==d&&(u={action:"render_service_fields",node_id:t,service:n.val(),account:d}),u&&(i._startSettingsLoading(n),FLBuilder.ajax(u,i._accountChangeComplete)),i._addAccountDelete(l)},_accountChangeComplete:function(t){var l=FLBuilder._jsonParse(t),n=e(".fl-builder-service-settings-loading"),s=n.find(".fl-builder-service-account-row");s.after(l.html),i._finishSettingsLoading()},_addAccountDelete:function(e){var i=e.find(".fl-builder-service-account-select");i.length>0&&(e.find(".fl-builder-service-account-delete").remove(),""!==i.val()&&"add_new_account"!=i.val()&&i.after('<a href="javascript:void(0);" class="fl-builder-service-account-delete">'+FLBuilderStrings.deleteAccount+"</a>"))},_accountDeleteClicked:function(){var t=e(this).closest(".fl-builder-service-settings"),l=t.find(".fl-builder-service-select"),n=t.find(".fl-builder-service-account-select");confirm(FLBuilderStrings.deleteAccountWarning)&&(FLBuilder.ajax({action:"delete_service_account",service:l.val(),account:n.val()},i._accountDeleteComplete),i._startSettingsLoading(n))},_accountDeleteComplete:function(){var t=e(".fl-builder-service-settings-loading"),l=t.find(".fl-builder-service-select");i._finishSettingsLoading(),l.trigger("change")},_campaignMonitorClientChange:function(){var t=e(".fl-builder-settings").data("node"),l=e(this).closest(".fl-builder-service-settings"),n=l.find(".fl-builder-service-select"),s=l.find(".fl-builder-service-account-select"),o=e(this),r=l.find(".fl-builder-service-list-select"),a=o.val();0!==r.length&&r.closest("tr").remove(),""!==a&&(i._startSettingsLoading(n),FLBuilder.ajax({action:"render_service_fields",node_id:t,service:n.val(),account:s.val(),client:a},i._campaignMonitorClientChangeComplete))},_campaignMonitorClientChangeComplete:function(t){var l=FLBuilder._jsonParse(t),n=e(".fl-builder-service-settings-loading"),s=n.find(".fl-builder-campaign-monitor-client-select");s.closest("tr").after(l.html),i._finishSettingsLoading()},_mailChimpListChange:function(){var t=e(".fl-builder-settings").data("node"),l=e(this).closest(".fl-builder-service-settings"),n=l.find(".fl-builder-service-select"),s=l.find(".fl-bu
|
1 |
var FLBuilderColorPicker;!function(e,i){function t(){var i,t,l="backgroundImage";f?h="filter":(i=e('<div id="iris-gradtest" />'),t="linear-gradient(top,#fff,#000)",e.each(g,function(e,n){if(i.css(l,n+t),i.css(l).match("gradient"))return h=e,!1}),h===!1&&(i.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),i.css(this.bgImageString).match("gradient")&&(h="webkit")),i.remove())}function l(i,t){return i="top"===i?"top":"left",t=e.isArray(t)?t:Array.prototype.slice.call(arguments,1),"webkit"===h?s(i,t):g[h]+"linear-gradient("+i+", "+t.join(", ")+")"}function n(i,t){var l,n,s,r,a,d,u,c,f;i="top"===i?"top":"left",t=e.isArray(t)?t:Array.prototype.slice.call(arguments,1),l="top"===i?0:1,n=e(this),s=t.length-1,r="filter",a=1===l?"left":"top",d=1===l?"right":"bottom",u=1===l?"height":"width",c='<div class="iris-ie-gradient-shim" style="position:absolute;'+u+":100%;"+a+":%start%;"+d+":%end%;"+r+':%filter%;" data-color:"%color%"></div>',f="","static"===n.css("position")&&n.css({position:"relative"}),t=o(t),e.each(t,function(e,i){var n,o,r;return e!==s&&(n=t[e+1],void(i.stop!==n.stop&&(o=100-parseFloat(n.stop)+"%",i.octoHex=new FLBuilderColor(i.color).toIEOctoHex(),n.octoHex=new FLBuilderColor(n.color).toIEOctoHex(),r="progid:DXImageTransform.Microsoft.Gradient(GradientType="+l+", StartColorStr='"+i.octoHex+"', EndColorStr='"+n.octoHex+"')",f+=c.replace("%start%",i.stop).replace("%end%",o).replace("%filter%",r))))}),n.find(".iris-ie-gradient-shim").remove(),e(f).prependTo(n)}function s(i,t){var l=[];return i="top"===i?"0% 0%,0% 100%,":"0% 100%,100% 100%,",t=o(t),e.each(t,function(e,i){l.push("color-stop("+parseFloat(i.stop)/100+", "+i.color+")")}),"-webkit-gradient(linear,"+i+l.join(",")+")"}function o(i){var t=[],l=[],n=[],s=i.length-1;return e.each(i,function(e,i){var n=i,s=!1,o=i.match(/1?[0-9]{1,2}%$/);o&&(n=i.replace(/\s?1?[0-9]{1,2}%$/,""),s=o.shift()),t.push(n),l.push(s)}),l[0]===!1&&(l[0]="0%"),l[s]===!1&&(l[s]="100%"),l=r(l),e.each(l,function(e){n[e]={color:t[e],stop:l[e]}}),n}function r(i){var t,l,n,s,o=0,a=i.length-1,d=0,u=!1;if(i.length<=2||e.inArray(!1,i)<0)return i;for(;d<i.length-1;)u||i[d]!==!1?u&&i[d]!==!1&&(a=d,d=i.length):(o=d-1,u=!0),d++;for(l=a-o,s=parseInt(i[o].replace("%"),10),t=(parseFloat(i[a].replace("%"))-s)/l,d=o+1,n=1;d<a;)i[d]=s+n*t+"%",n++,d++;return r(i)}var a=[],d=navigator.userAgent.toLowerCase(),u="Microsoft Internet Explorer"===navigator.appName,c=u?parseFloat(d.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,f=u&&c<10,h=!1,g=["-moz-","-webkit-","-o-","-ms-"];flBuilderParseColorValue=function(e){var i=e.replace(/\s+/g,""),t=i.indexOf("rgba")!==-1?parseFloat(100*i.replace(/^.*,(.+)\)/,"$1")):100,l=t<100;return{value:i,alpha:t,rgba:l}},e.fn.flBuilderColorPickerGradient=function(){var i=arguments;return this.each(function(){f?n.apply(this,i):e(this).css("backgroundImage",l.apply(this,i))})},e.fn.flBuilderColorPickerRaninbowGradient=function(i,t){var l,n,s,o;for(i=i||"top",l=e.extend({},{s:100,l:50},t),n="hsl(%h%,"+l.s+"%,"+l.l+"%)",s=0,o=[];s<=360;)o.push(n.replace("%h%",s)),s+=30;return this.each(function(){e(this).flBuilderColorPickerGradient(i,o)})},FLBuilderColorPicker=function(i){this._html='<div class="fl-color-picker-ui"><div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="javascript:void(0);"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div></div>';var t={elements:null,color:"",mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},target:!1,width:200,presets:[],labels:{colorPresets:"Color Presets",colorPicker:"Color Picker",placeholder:"Paste color here...",removePresetConfirm:"Are you sure?",noneColorSelected:"None color selected.",alreadySaved:"%s is already a saved preset.",noPresets:"Add a color preset first.",presetAdded:"%s added to presets!"}};this.options=e.extend({},t,i),(f===!1||f===!0&&c>7)&&this._init()},FLBuilderColorPicker.prototype={_html:"",_color:"",_currentElement:"",_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_init:function(){var i=this;e(i.options.elements);return e("html").hasClass("fl-color-picker-init")?void this._prepareColorFields():(this._color=new FLBuilderColor("#ff0000").setHSpace(i.options.mode),a=this.options.presets,h===!1&&t(),i.picker=e(this._html).appendTo("body"),u?9===c?i.picker.addClass("iris-ie-9"):c<=8&&i.picker.addClass("iris-ie-lt9"):d.indexOf("compatible")<0&&d.indexOf("khtml")<0&&d.match(/mozilla/)&&i.picker.addClass("iris-mozilla"),i.controls={square:i.picker.find(".iris-square"),squareDrag:i.picker.find(".iris-square-value"),horiz:i.picker.find(".iris-square-horiz"),vert:i.picker.find(".iris-square-vert"),strip:i.picker.find(".iris-strip"),stripSlider:i.picker.find(".iris-strip .iris-slider-offset")},"hsv"===i.options.mode&&i._has("l",i.options.controls)?i.options.controls=i._defaultHSVControls:"hsl"===i.options.mode&&i._has("v",i.options.controls)&&(i.options.controls=i._defaultHSLControls),i.hue=i._color.h(),this._setTemplates(),this._ui=e(".fl-color-picker-ui"),this._iris=e(".iris-picker"),this._wrapper=e("body"),this._ui.prepend(this._hexHtml).append(this._presetsHtml),i.element=this._ui.find(".fl-color-picker-input"),i._initControls(),i.active="external",i._change(),i._addInputListeners(i.element),this._buildUI(),this._prepareColorFields(),this._pickerControls(),this._presetsControls(),this._buildAlphaUI(),void e("html").addClass("fl-color-picker-init"))},_prepareColorFields:function(){var i=this;e(".fl-color-picker-value").each(function(){var t=e(this),l=t.val(),n=t.parent().find(".fl-color-picker-color"),s=flBuilderParseColorValue(l),o="";if(l){if(n.hasClass("fl-color-picker-alpha-enabled")&&s.rgba)o=t.val().toString();else if(!n.hasClass("fl-color-picker-alpha-enabled")&&s.rgba){var r=l.replace("rgba","rgb");r=r.substr(0,r.lastIndexOf(","))+")",i._color._alpha=1,o=r,t.val(r)}else o="#"+t.val().toString();n.css({backgroundColor:o})}})},_setTemplates:function(){this._alphaHtml='<div class="fl-alpha-wrap"><div class="fl-alpha-slider"></div><div class="fl-alpha-slider-offset"></div><div class="fl-alpha-text"></div></div>',this._presetsHtml='<div class="fl-color-picker-presets"><div class="fl-color-picker-presets-toggle"><div class="fl-color-picker-presets-open-label fl-color-picker-active">'+this.options.labels.colorPresets+' <span class="fl-color-picker-icon-arrow-up"></span></div><div class="fl-color-picker-presets-close-label">'+this.options.labels.colorPicker+' <span class="fl-color-picker-icon-arrow-down"></span></div></div><ul class="fl-color-picker-presets-list"></ul></div>',this._hexHtml='<input type="text" class="fl-color-picker-input" placeholder="'+this.options.labels.placeholder+'"><div class="fl-color-picker-preset-add"></div>',this._presetsTpl='<li class="fl-color-picker-preset"><span class="fl-color-picker-preset-color"></span> <span class="fl-color-picker-preset-label"></span> <span class="fl-color-picker-preset-remove fl-color-picker-icon-remove"></span></li>',this._noPresetsTpl='<li class="fl-color-picker-no-preset"><span class="fl-color-picker-preset-label">'+this.options.labels.noPresets+"</span></li>"},_has:function(i,t){var l=!1;return e.each(t,function(e,t){if(i===t)return l=!0,!1}),l},_buildUI:function(){var i=this;i._presetsList=this._ui.find(".fl-color-picker-presets-list"),i._presetsList.html(""),this.options.presets.length>0?e.each(this.options.presets,function(e,t){i._addPresetView(t)}):i._presetsList.append(this._noPresetsTpl)},_addPresetView:function(i){var t=this._presetsList.find(".fl-color-picker-no-preset");t.length>0&&t.remove();var l=e(this._presetsTpl),n=FLBuilderColor(i);l.attr("data-color",i).find(".fl-color-picker-preset-color").css({backgroundColor:n.toString()}).end().find(".fl-color-picker-preset-label").html(n.toString()),this._presetsList.append(l)},_addPresetFeedback:function(){this._ui.append('<div class="fl-color-picker-added"><div class="fl-color-picker-added-text"><div class="fl-color-picker-icon-check"></div> "'+this.options.labels.presetAdded.replace("%s",this._color.toString())+'"</div></div>'),this._ui.find(".fl-color-picker-added").hide().fadeIn(200).delay(2e3).fadeOut(200,function(){e(this).remove()})},_pickerControls:function(){var i=this;this._wrapper.on("click",".fl-color-picker-color",function(){var t=e(this);i._currentElement=t.parent().find(".fl-color-picker-value"),i._ui.position({my:"left top",at:"left bottom",of:t,collision:"flip",using:function(e,t){i._togglePicker(e)}})}).on("click",".fl-color-picker-clear",function(){var t=e(this);i._currentElement=t.parent().find(".fl-color-picker-value"),t.prev(".fl-color-picker-color").css({backgroundColor:"transparent"}).addClass("fl-color-picker-empty"),i._setColor(""),i.element.val(""),i._currentElement.val("").trigger("change")}),e(document).on("mousedown",function(i){0===e(i.target).closest(".fl-color-picker-ui").length&&e(".fl-color-picker-ui.fl-color-picker-active").removeClass("fl-color-picker-active")})},_presetsControls:function(){var i=this,t=i._ui.find(".fl-color-picker-preset-add"),l=i._ui.find(".fl-color-picker-presets"),n=l.find(".fl-color-picker-presets-open-label"),s=l.find(".fl-color-picker-presets-close-label"),o=l.find(".fl-color-picker-presets-list");t.off("click").on("click",function(){i._addPreset(i.element.val())}),o.css({height:i.element.innerHeight()+i._iris.innerHeight()+14+"px"}).hide(),l.off("click").on("click",".fl-color-picker-presets-toggle",function(){n.toggleClass("fl-color-picker-active"),s.toggleClass("fl-color-picker-active"),o.slideToggle(500)}).on("click",".fl-color-picker-preset",function(t){var l=new FLBuilderColor(e(this).data("color").toString());i._setColor(l),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:l.toString()}).removeClass("fl-color-picker-empty"),n.toggleClass("fl-color-picker-active"),s.toggleClass("fl-color-picker-active"),o.slideToggle(500)}).on("click",".fl-color-picker-preset-remove",function(t){t.stopPropagation(),i._removePreset(e(this).parent().data("color"))})},_removePreset:function(i){if(confirm(this.options.labels.removePresetConfirm)){var t=i.toString(),l=a.indexOf(t);l>-1&&(a.splice(l,1),this.options.presets=a,this._presetsList.find('.fl-color-picker-preset[data-color="'+t+'"]').slideUp(function(){e(this).remove()})),a.length<1&&this._presetsList.append(this._noPresetsTpl),e(this).trigger("presetRemoved",{presets:a})}},_addPreset:function(i){if(!this._CheckValidColor(i))return alert(this.options.labels.noneColorSelected),!1;var t=i.toString().replace(/^#/,"");""===t?alert(this.options.labels.noneColorSelected):a.indexOf(t)>-1?alert(this.options.labels.alreadySaved.replace("%s","#"+t)):(this._addPresetView(t),this._addPresetFeedback(),a.push(t),this.options.presets=a,e(this).trigger("presetAdded",{presets:a}))},_CheckValidColor:function(e){if(!e.match(/^#/)&&!e.match(/^rgb/)&&!e.match(/^hsl/))return!1;var i=document.getElementById("divValidColor");i||(i=document.createElement("div"),i.id="divValidColor"),i.style.borderColor="",i.style.borderColor=e;var t=i.style.borderColor;return 0!=t.length},_togglePicker:function(e){var i=this;this._ui.hasClass("fl-color-picker-active")?(this._ui.removeClass("fl-color-picker-active"),e&&setTimeout(function(){i._ui.css(e),i._ui.addClass("fl-color-picker-active"),i._setColor(i._currentElement.val())},200)):(e&&i._ui.css(e),setTimeout(function(){i._ui.addClass("fl-color-picker-active"),i._setColor(i._currentElement.val())},200))},_paint:function(){var e=this;e._paintDimension("right","strip"),e._paintDimension("top","vert"),e._paintDimension("left","horiz")},_paintDimension:function(e,i){var t,l=this,n=l._color,s=l.options.mode,o=l._getHSpaceColor(),r=l.controls[i],a=l.options.controls;if(i!==l.active&&("square"!==l.active||"strip"===i))switch(a[i]){case"h":if("hsv"===s){switch(o=n.clone(),i){case"horiz":o[a.vert](100);break;case"vert":o[a.horiz](100);break;case"strip":o.setHSpace("hsl")}t=o.toHsl()}else t="strip"===i?{s:o.s,l:o.l}:{s:100,l:o.l};r.flBuilderColorPickerRaninbowGradient(e,t);break;case"s":"hsv"===s?"vert"===i?t=[n.clone().a(0).s(0).toCSS("rgba"),n.clone().a(1).s(0).toCSS("rgba")]:"strip"===i?t=[n.clone().s(100).toCSS("hsl"),n.clone().s(0).toCSS("hsl")]:"horiz"===i&&(t=["#fff","hsl("+o.h+",100%,50%)"]):t="vert"===i&&"h"===l.options.controls.horiz?["hsla(0, 0%, "+o.l+"%, 0)","hsla(0, 0%, "+o.l+"%, 1)"]:["hsl("+o.h+",0%,50%)","hsl("+o.h+",100%,50%)"],r.flBuilderColorPickerGradient(e,t);break;case"l":t="strip"===i?["hsl("+o.h+",100%,100%)","hsl("+o.h+", "+o.s+"%,50%)","hsl("+o.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],r.flBuilderColorPickerGradient(e,t);break;case"v":t="strip"===i?[n.clone().v(100).toCSS(),n.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],r.flBuilderColorPickerGradient(e,t)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(e){var i,t=this,l=t.options,n=t.controls,s=n.square,o=t.picker.find(".iris-strip"),r="77.5%",a="12%",d=20,u=l.border?l.width-d:l.width;if(e&&(s.css("width",""),o.css("width",""),t.picker.css({width:"",height:""})),r=u*(parseFloat(r)/100),a=u*(parseFloat(a)/100),i=l.border?r+d:r,s.width(r).height(r),o.height(r).width(a),t.picker.css({width:l.width,height:i}),!l.palettes)return t.picker.css("paddingBottom","")},_addInputListeners:function(e){var i=this,t=100,l=function(t){var l=new FLBuilderColor(e.val()),n=e.val().replace(/^#/,""),s=i._currentElement.hasClass("fl-color-picker-empty");if(e.removeClass("iris-error"),l.error)""!==n&&e.addClass("iris-error");else if(l.toString()!==i._color.toString()||""!==i._color.toString()&&s)if("keyup"===t.type){if(n.match(/^[0-9a-fA-F]{3}$/))return;i._setColor(n),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:FLBuilderColor(n).toString()}).removeClass("fl-color-picker-empty"),i._currentElement.val(n).trigger("change")}else if("paste"===t.type)return n=t.originalEvent.clipboardData.getData("text").replace(/^#/,""),hex=FLBuilderColor(n).toString(),i._setColor(n),e.val(hex),i._currentElement.parent().find(".fl-color-picker-color").css({backgroundColor:hex}).removeClass("fl-color-picker-empty"),i._currentElement.val(n).trigger("change"),!1};e.on("change",l).on("keyup",i._debounce(l,t))},_initControls:function(){var i=this,t=i.controls,l=t.square,n=i.options.controls,s=i._scale[n.strip];t.stripSlider.slider({orientation:"horizontal",max:s,slide:function(e,t){i.active="strip","h"===n.strip&&(t.value=s-t.value),i._color[n.strip](t.value),i._change.apply(i,arguments)}}),t.squareDrag.draggable({containment:t.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(e,t){i._squareDrag(e,t)},start:function(){l.addClass("iris-dragging"),e(this).addClass("ui-state-focus")},stop:function(){l.removeClass("iris-dragging"),e(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(t){var l="ui-state-focus";t.preventDefault(),"mousedown"===t.type?(i.picker.find("."+l).removeClass(l).blur(),e(this).addClass(l).focus()):e(this).removeClass(l)}).on("keydown",function(e){var l=t.square,n=t.squareDrag,s=n.position(),o=2;switch(e.altKey&&(o*=10),e.keyCode){case 37:s.left-=o;break;case 38:s.top-=o;break;case 39:s.left+=o;break;case 40:s.top+=o;break;default:return!0}s.left=Math.max(0,Math.min(s.left,l.width())),s.top=Math.max(0,Math.min(s.top,l.height())),n.css(s),i._squareDrag(e,{position:s}),e.preventDefault()}),l.mousedown(function(t){var l,n;1===t.which&&e(t.target).is("div")&&(l=i.controls.square.offset(),n={top:t.pageY-l.top,left:t.pageX-l.left},t.preventDefault(),i._squareDrag(t,{position:n}),t.target=i.controls.squareDrag.get(0),i.controls.squareDrag.css(n).trigger(t))})},_squareDrag:function(e,i){var t=this,l=t.options.controls,n=t._squareDimensions(),s=Math.round((n.h-i.position.top)/n.h*t._scale[l.vert]),o=t._scale[l.horiz]-Math.round((n.w-i.position.left)/n.w*t._scale[l.horiz]);t._color[l.horiz](o)[l.vert](s),t.active="square",t._change.apply(t,arguments)},_setColor:function(e){var i,t,l=this,n=l.options.color,s="#ff0000";""===e?(e=s,l["default"]=!0):l["default"]=!1,l.options.color=e,e=""+e,i=e.replace(/^#/,""),t=new FLBuilderColor(e).setHSpace(l.options.mode),t.error?l.options.color=n:(l._color=t,l.options.color=l._color.toString(),l.active="external",l._change())},_squareDimensions:function(e){var t,l,n=this.controls.square;return e!==i&&n.data("dimensions")?n.data("dimensions"):(l=this.controls.squareDrag,t={w:n.width(),h:n.height()},n.data("dimensions",t),t)},_isNonHueControl:function(e,i){return"square"===e&&"h"===this.options.controls.strip||"external"!==i&&("h"!==i||"strip"!==e)},_change:function(){var i=this,t=i.controls,l=i._getHSpaceColor(),n=["square","strip"],s=i.options.controls,o=s[i.active]||"external",r=i.hue;"strip"===i.active?n=[]:"external"!==i.active&&n.pop(),e.each(n,function(e,n){var o,r,a;if(n!==i.active)switch(n){case"strip":o="h"===s.strip?i._scale[s.strip]-l[s.strip]:l[s.strip],t.stripSlider.slider("value",o);break;case"square":r=i._squareDimensions(),a={left:l[s.horiz]/i._scale[s.horiz]*r.w,top:r.h-l[s.vert]/i._scale[s.vert]*r.h},i.controls.squareDrag.css(a)}}),l.h!==r&&i._isNonHueControl(i.active,o)&&i._color.h(r),i.hue=i._color.h(),i.options.color=i._color.toString(),i.element.is(":input")&&!i._color.error&&(i.element.removeClass("iris-error"),i.element.val()!==i._color.toString()&&(i.element.val(i._color.toString()),this._currentElement&&(!i["default"]||i["default"]&&"external"!==i.active?this._currentElement.val(i._color.toString().replace(/^#/,"")).parent().find(".fl-color-picker-color").css({backgroundColor:i._color.toString()}).removeClass("fl-color-picker-empty"):this._currentElement.val(""),i._wrapper.find(".fl-alpha-slider-offset").css("background-color",i._color.toString()),this._currentElement.trigger("change")))),i._paint(),i._inited=!0,i.active=!1},_debounce:function(e,i,t){var l,n;return function(){var s,o,r=this,a=arguments;return s=function(){l=null,t||(n=e.apply(r,a))},o=t&&!l,clearTimeout(l),l=setTimeout(s,i),o&&(n=e.apply(r,a)),n}},_buildAlphaUI:function(){var i=this;i._wrapper.on("click",".fl-color-picker-color",function(){var t=e(this);i._currentElement.val();t.hasClass("fl-color-picker-alpha-enabled")?(i._ui.find(".fl-alpha-wrap").length<=0&&e(i._alphaHtml).insertAfter(i._iris),i.picker.addClass("fl-color-alpha-enabled"),i._pickerAlphaControls()):(i.picker.removeClass("fl-color-alpha-enabled"),i._ui.find(".fl-alpha-wrap").remove())})},_pickerAlphaControls:function(){var e=this,i=e._currentElement,t=flBuilderParseColorValue(i.val()),l=parseFloat(t.alpha/100),n=e._wrapper,s=e._ui,o=s.find(".fl-alpha-wrap"),r=o.find(".fl-alpha-slider"),a=o.find(".fl-alpha-text"),d=o.find(".fl-alpha-slider-offset");alphaHandle=o.find(".ui-slider-handle"),a.text(l<1?l:""),r.slider({orientation:"vertical",slide:function(i,t){var l=parseFloat(t.value/100);e._color._alpha=l,a.text(l<1?l:""),e._change.apply(e,arguments)},create:function(){d.css({backgroundColor:t.value}),n.on("click",".fl-color-picker-clear",function(){e._color._alpha=1,a.text(""),r.slider("value",100).trigger("slide")})},value:t.alpha,step:1,min:0,max:100})}}}(jQuery),function(e,i){var t=function(e,i){return this instanceof t?this._init(e,i):new t(e,i)};t.fn=t.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(e){var t="noop";switch(typeof e){case"object":return e.a!==i&&this.a(e.a),t=e.r!==i?"fromRgb":e.l!==i?"fromHsl":e.v!==i?"fromHsv":t,this[t](e);case"string":return this.fromCSS(e);case"number":return this.fromInt(parseInt(e,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var e=new t(this.toInt()),i=["_alpha","_hSpace","_hsl","_hsv","error"],l=i.length-1;l>=0;l--)e[i[l]]=this[i[l]];return e},setHSpace:function(e){return this._hSpace="hsv"===e?e:"hsl",this},noop:function(){return this},fromCSS:function(e){var i,t=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,e=e.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,""),e.match(t)&&e.match(/\)$/)){if(i=e.replace(/(\s|%)/g,"").replace(t,"").replace(/,?\);?$/,"").split(","),i.length<3)return this._error();if(4===i.length&&(this.a(parseFloat(i.pop())),this.error))return this;for(var l=i.length-1;l>=0;l--)if(i[l]=parseInt(i[l],10),isNaN(i[l]))return this._error();return e.match(/^rgb/)?this.fromRgb({r:i[0],g:i[1],b:i[2]}):e.match(/^hsv/)?this.fromHsv({h:i[0],s:i[1],v:i[2]}):this.fromHsl({h:i[0],s:i[1],l:i[2]})}return this.fromHex(e)},fromRgb:function(e,t){return"object"!=typeof e||e.r===i||e.g===i||e.b===i?this._error():(this.error=!1,this.fromInt(parseInt((e.r<<16)+(e.g<<8)+e.b,10),t))},fromHex:function(e){return e=e.replace(/^#/,"").replace(/^0x/,""),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),this.error=!/^[0-9A-F]{6}$/i.test(e),this.fromInt(parseInt(e,16))},fromHsl:function(e){var t,l,n,s,o,r,a,d;return"object"!=typeof e||e.h===i||e.s===i||e.l===i?this._error():(this._hsl=e,this._hSpace="hsl",r=e.h/360,a=e.s/100,d=e.l/100,0===a?t=l=n=d:(s=d<.5?d*(1+a):d+a-d*a,o=2*d-s,t=this.hue2rgb(o,s,r+1/3),l=this.hue2rgb(o,s,r),n=this.hue2rgb(o,s,r-1/3)),this.fromRgb({r:255*t,g:255*l,b:255*n},!0))},fromHsv:function(e){var t,l,n,s,o,r,a,d,u,c,f;if("object"!=typeof e||e.h===i||e.s===i||e.v===i)return this._error();switch(this._hsv=e,this._hSpace="hsv",t=e.h/360,l=e.s/100,n=e.v/100,a=Math.floor(6*t),d=6*t-a,u=n*(1-l),c=n*(1-d*l),f=n*(1-(1-d)*l),a%6){case 0:s=n,o=f,r=u;break;case 1:s=c,o=n,r=u;break;case 2:s=u,o=n,r=f;break;case 3:s=u,o=c,r=n;break;case 4:s=f,o=u,r=n;break;case 5:s=n,o=u,r=c}return this.fromRgb({r:255*s,g:255*o,b:255*r},!0)},fromInt:function(e,t){return this._color=parseInt(e,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),t===i&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(e,i,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(i-e)*t:t<.5?i:t<2/3?e+(i-e)*(2/3-t)*6:e},toString:function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var i=6-e.length-1;i>=0;i--)e="0"+e;return"#"+e},toCSS:function(e,i){switch(e=e||"hex",i=parseFloat(i||this._alpha),e){case"rgb":case"rgba":var t=this.toRgb();return i<1?"rgba( "+t.r+", "+t.g+", "+t.b+", "+i+" )":"rgb( "+t.r+", "+t.g+", "+t.b+" )";case"hsl":case"hsla":var l=this.toHsl();return i<1?"hsla( "+l.h+", "+l.s+"%, "+l.l+"%, "+i+" )":"hsl( "+l.h+", "+l.s+"%, "+l.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var e,i,t=this.toRgb(),l=t.r/255,n=t.g/255,s=t.b/255,o=Math.max(l,n,s),r=Math.min(l,n,s),a=(o+r)/2;if(o===r)e=i=0;else{var d=o-r;switch(i=a>.5?d/(2-o-r):d/(o+r),o){case l:e=(n-s)/d+(n<s?6:0);break;case n:e=(s-l)/d+2;break;case s:e=(l-n)/d+4}e/=6}return e=Math.round(360*e),0===e&&this._hsl.h!==e&&(e=this._hsl.h),i=Math.round(100*i),0===i&&this._hsl.s&&(i=this._hsl.s),{h:e,s:i,l:Math.round(100*a)}},toHsv:function(){var e,i,t=this.toRgb(),l=t.r/255,n=t.g/255,s=t.b/255,o=Math.max(l,n,s),r=Math.min(l,n,s),a=o,d=o-r;if(i=0===o?0:d/o,o===r)e=i=0;else{switch(o){case l:e=(n-s)/d+(n<s?6:0);break;case n:e=(s-l)/d+2;break;case s:e=(l-n)/d+4}e/=6}return e=Math.round(360*e),0===e&&this._hsv.h!==e&&(e=this._hsv.h),i=Math.round(100*i),0===i&&this._hsv.s&&(i=this._hsv.s),{h:e,s:i,v:Math.round(100*a)}},toInt:function(){return this._color},toIEOctoHex:function(){var e=this.toString(),i=parseInt(255*this._alpha,10).toString(16);return 1===i.length&&(i="0"+i),"#"+i+e.replace(/^#/,"")},toLuminosity:function(){var e=this.toRgb();return.2126*Math.pow(e.r/255,2.2)+.7152*Math.pow(e.g/255,2.2)+.0722*Math.pow(e.b/255,2.2)},getDistanceLuminosityFrom:function(e){if(!(e instanceof t))throw"getDistanceLuminosityFrom requires a Color object";var i=this.toLuminosity(),l=e.toLuminosity();return i>l?(i+.05)/(l+.05):(l+.05)/(i+.05)},getMaxContrastColor:function(){var e=this.toLuminosity(),i=e>=.5?"000000":"ffffff";return new t(i)},getReadableContrastingColor:function(e,l){if(!(e instanceof t))return this;var n=l===i?5:l,s=e.getDistanceLuminosityFrom(this),o=e.getMaxContrastColor(),r=o.getDistanceLuminosityFrom(e);if(r<=n)return o;if(s>=n)return this;for(var a=0===o.toInt()?-1:1;s<n&&(this.l(a,!0),s=this.getDistanceLuminosityFrom(e),0!==this._color&&16777215!==this._color););return this},a:function(e){if(e===i)return this._alpha;var t=parseFloat(e);return isNaN(t)?this._error():(this._alpha=t,this)},darken:function(e){return e=e||5,this.l(-e,!0)},lighten:function(e){return e=e||5,this.l(e,!0)},saturate:function(e){return e=e||15,this.s(e,!0)},desaturate:function(e){return e=e||15,this.s(-e,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(e){e=e||1;var i=180+30*e;return this.h(i,!0)},getAnalog:function(e){e=e||1;var i=30*e;return this.h(i,!0)},getTetrad:function(e){e=e||1;var i=60*e;return this.h(i,!0)},getTriad:function(e){e=e||1;var i=120*e;return this.h(i,!0)},_partial:function(e){var t=l[e];return function(l,n){var s=this._spaceFunc("to",t.space);return l===i?s[e]:(n===!0&&(l=s[e]+l),t.mod&&(l%=t.mod),t.range&&(l=l<t.range[0]?t.range[0]:l>t.range[1]?t.range[1]:l),s[e]=l,this._spaceFunc("from",t.space,s))}},_spaceFunc:function(e,i,t){var l=i||this._hSpace,n=e+l.charAt(0).toUpperCase()+l.substr(1);return this[n](t)}};var l={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var n in l)l.hasOwnProperty(n)&&(t.fn[n]=t.fn._partial(n));"object"==typeof exports?module.exports=t:(e.FLBuilderColor=t,e.Color=t)}(this),function(e){FLLightbox=function(e){this._init(e)},FLLightbox.closeParent=function(i){var t=e(i).closest(".fl-lightbox-wrap").attr("data-instance-id");_.isUndefined(t)||FLLightbox._instances[t].close()},FLLightbox.getResizableControlClass=function(){var i=e(".fl-lightbox-resizable").eq(0),t="far fa-window-maximize";return i.length&&i.hasClass("fl-lightbox-width-full")&&(t="far fa-window-minimize"),t},FLLightbox.unbindAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e]._unbind()},FLLightbox.bindAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e]._bind()},FLLightbox.closeAll=function(){var e;for(e in FLLightbox._instances)FLLightbox._instances[e].close()},FLLightbox._instances={},FLLightbox.prototype={_id:null,_node:null,_visible:!1,_allowClosing:!0,_resizeTimer:null,_defaults:{className:"",destroyOnClose:!1,resizable:!1},open:function(e){var i=this._node.find(".fl-lightbox"),t=i.closest(".fl-builder-ui-pinned").length,l=this._getPositionSettings();!t&&l&&this._defaults.resizable&&i.css(l),this._bind(),this._node.show(),this._visible=!0,"undefined"!=typeof e?this.setContent(e):this._resize(),this.trigger("open"),FLBuilder.triggerHook("didShowLightbox",this)},close:function(){var e=this._node.data("parent");this._allowClosing&&(this.trigger("beforeCloseLightbox"),this._unbind(),this._node.hide(),this._visible=!1,this.trigger("close"),FLBuilder.triggerHook("didHideLightbox"),this._defaults.resizable&&_.isUndefined(e)&&FLBuilder.triggerHook("didHideAllLightboxes"),this._defaults.destroyOnClose&&this.destroy())},disableClose:function(){this._allowClosing=!1},enableClose:function(){this._allowClosing=!0},setContent:function(e){this._node.find(".fl-lightbox-content").html(e),this._resize()},empty:function(){this._node.find(".fl-lightbox-content").empty()},on:function(e,i){this._node.on(e,i)},off:function(e,i){this._node.off(e,i)},trigger:function(e,i){this._node.trigger(e,i)},destroy:function(){this._node.empty(),this._node.remove(),FLLightbox._instances[this._id]="undefined";try{delete FLLightbox._instances[this._id]}catch(e){}},_init:function(i){var t=0,l=null;for(l in FLLightbox._instances)t++;this._defaults=e.extend({},this._defaults,i),this._id=(new Date).getTime()+t,FLLightbox._instances[this._id]=this,this._render(),this._resizable()},_render:function(){this._node=e('<div class="fl-lightbox-wrap" data-instance-id="'+this._id+'"><div class="fl-lightbox-mask"></div><div class="fl-lightbox"><div class="fl-lightbox-content-wrap"><div class="fl-lightbox-content"></div></div></div></div>'),this._node.addClass(this._defaults.className),e("body").append(this._node)},_bind:function(){e(window).on("resize.fl-lightbox-"+this._id,this._delayedResize.bind(this))},_unbind:function(){e(window).off("resize.fl-lightbox-"+this._id)},_resizable:function(){var i=(e("body"),this._node.find(".fl-lightbox-mask")),t=this._node.find(".fl-lightbox"),l=e(".fl-lightbox-resizable").eq(0);this._defaults.resizable?(i.hide(),t.addClass("fl-lightbox-resizable"),t.delegate(".fl-lightbox-resize-toggle","click",this._resizeClicked.bind(this)),t.draggable({cursor:"move",handle:".fl-lightbox-header"}).resizable({handles:"all",minHeight:500,minWidth:380,start:this._resizeStart.bind(this),stop:this._resizeStop.bind(this)}),l.length&&l.hasClass("fl-lightbox-width-full")?(t.addClass("fl-lightbox-width-full"),t.draggable("disable")):this._restorePosition()):i.show(),this._resize()},_delayedResize:function(){clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout(this._resize.bind(this),250)},_resize:function(){var i=this._node.find(".fl-lightbox"),t=parseInt(this._node.css("padding-top")),l=parseInt(this._node.css("padding-bottom")),n=parseInt(this._node.css("padding-left")),s=parseInt(this._node.css("padding-right")),o=i.height(),r=i.width(),a=e(window),d=a.height()-t-l,u=(a.width()-n-s,"0px");this._defaults.resizable?(r<600?i.addClass("fl-lightbox-width-slim"):i.removeClass("fl-lightbox-width-slim"),r<450?i.addClass("fl-lightbox-width-micro"):i.removeClass("fl-lightbox-width-micro"),this._resizeEditors()):(d>o&&(u=(d-o-46)/2+"px"),i.attr("style","").css("margin",u+" auto 0")),this.trigger("resized")},_resizeStart:function(){e("body").addClass("fl-builder-resizable-is-resizing"),e(".fl-builder-lightbox:visible").append('<div class="fl-builder-resizable-iframe-fix"></div>'),FLBuilder._destroyOverlayEvents(),FLBuilder._removeAllOverlays()},_resizeStop:function(i,t){var l=e(".fl-lightbox-resizable:visible");parseInt(l.css("top"))<0&&l.css("top","0"),this._savePosition(),e("body").removeClass("fl-builder-resizable-is-resizing"),e(".fl-builder-resizable-iframe-fix").remove(),FLBuilder._bindOverlayEvents()},_resizeClicked:function(){var i=e(".fl-lightbox-resizable"),t=(i.find(".fl-lightbox-resize-toggle"),this._node.find(".fl-lightbox"));t.hasClass("fl-lightbox-width-full")?this._resizeExitFull():this._resizeEnterFull(),this._resize()},_resizeEnterFull:function(){var i=e(".fl-lightbox-resizable"),t=i.find(".fl-lightbox-resize-toggle");this._node.find(".fl-lightbox");t.removeClass("fa-window-maximize").addClass("fa-window-minimize"),i.addClass("fl-lightbox-width-full"),i.draggable("disable"),i.resizable("disable")},_resizeExitFull:function(){var i=e(".fl-lightbox-resizable"),t=i.find(".fl-lightbox-resize-toggle");this._node.find(".fl-lightbox");t.removeClass("fa-window-minimize").addClass("fa-window-maximize"),i.removeClass("fl-lightbox-width-full"),i.draggable("enable"),i.resizable("enable")},_resizeEditors:function(){e(".fl-lightbox-resizable").each(function(){var i=e(this),t=i.find(".fl-builder-settings-fields").height(),l=i.find(".mce-edit-area > iframe, textarea.wp-editor-area, .ace_editor"),n=null;t<350&&(t=350),l.each(function(){n=e(this),n.hasClass("ace_editor")?(n.height(t-60),n.closest(".fl-field").data("editor").resize()):n.closest(".mce-container-body").find(".mce-toolbar-grp .mce-toolbar.mce-last").is(":visible")?n.height(t-175):n.height(t-150);
|
2 |
+
})})},_savePosition:function(){var e=this._node.find(".fl-lightbox"),i={width:e.width(),height:e.height(),top:parseInt(e.css("top"))<0?"0px":e.css("top"),left:e.css("left")};e.closest(".fl-builder-ui-pinned").length||(FLBuilderConfig.userSettings.lightbox=i,FLBuilder.ajax({action:"save_lightbox_position",data:i}))},_restorePosition:function(){var e=this._node.find(".fl-lightbox"),i=this._getPositionSettings();i?e.css(i):e.css({top:25,left:FLBuilderConfig.isRtl?"-25":25})},_getPositionSettings:function(){var e=FLBuilderConfig.userSettings.lightbox;if(!e)return!1;var i=window.innerHeight,t=parseInt(e.height),l=parseInt(e.top),n=parseInt(e.left),s=(parseInt(e.top),parseInt(e.width));return n+s+100>screen.width&&(e.left=screen.width-s-250),n<0&&(e.left=50),(t>i&&i>546||l+t>i)&&(t>i&&(e.height=i-50),e.top=0),e}}}(jQuery),function(e){FLIconSelector={_content:null,_lightbox:null,_rendered:!1,_filterText:"",open:function(e){FLIconSelector._rendered||FLIconSelector._render(),null===FLIconSelector._content?(FLIconSelector._lightbox.open('<div class="fl-builder-lightbox-loading"></div>'),FLBuilder.ajax({action:"render_icon_selector"},FLIconSelector._getContentComplete)):FLIconSelector._lightbox.open(),FLIconSelector._lightbox.on("icon-selected",function(i,t){FLIconSelector._lightbox.off("icon-selected"),FLIconSelector._lightbox.close(),e(t)})},_render:function(){FLIconSelector._lightbox=new FLLightbox({className:"fl-icon-selector"}),FLIconSelector._rendered=!0,FLBuilder.addHook("endEditingSession",function(){FLIconSelector._lightbox.close()})},_getContentComplete:function(i){var t=FLBuilder._jsonParse(i);FLIconSelector._content=t.html,FLIconSelector._lightbox.setContent(t.html),e(".fl-icons-filter-select").on("change",FLIconSelector._filter),e(".fl-icons-filter-text").on("keyup",FLIconSelector._filter),e(".fl-icons-list i").on("click",FLIconSelector._select),e(".fl-icon-selector-cancel").on("click",e.proxy(FLIconSelector._lightbox.close,FLIconSelector._lightbox))},_filter:function(){var i=e(".fl-icons-filter-select").val(),t=e(".fl-icons-filter-text").val();"all"==i?e(".fl-icons-section").show():(e(".fl-icons-section").hide(),e(".fl-"+i).show()),FLIconSelector._filterText=t,""!==t?e(".fl-icons-list i").each(FLIconSelector._filterIcon):e(".fl-icons-list i").show()},_filterIcon:function(){var i=e(this);-1==i.attr("class").indexOf(FLIconSelector._filterText)?i.hide():i.show()},_select:function(){var i=e(this).attr("class");FLIconSelector._lightbox.trigger("icon-selected",i)}}}(jQuery),function(e){FLStyleSheet=function(i){"object"==typeof i&&e.extend(this,i),this._createSheet()},FLStyleSheet.prototype={id:null,_sheet:null,_sheetElement:null,updateRule:function(e,i,t){for(var l=this._sheet.cssRules?this._sheet.cssRules:this._sheet.rules,n=null,s=0;s<l.length;s++)l[s].selectorText.toLowerCase().replace(/\s/g,"")==e.toLowerCase().replace(/\s/g,"")&&(n=l[s]);if(n)if("object"==typeof i)for(s in i)this.setProperty(n,s,i[s]);else this.setProperty(n,i,t);else this.addRule(e,i,t)},setProperty:function(e,i,t){var l="";e.style.setProperty?(t.indexOf("!important")>-1&&(l="important",t=t.replace("!important","").trim()),e.style.setProperty(i,t,l)):e.style[this._toCamelCase(i)]=t},addRule:function(e,i,t){var l="",n="";if("object"==typeof i)for(n in i)l+=n+":"+i[n]+";";else l=i+":"+t+";";this._sheet.insertRule?this._sheet.insertRule(e+" { "+l+" }",this._sheet.cssRules.length):this._sheet.addRule(e,l)},destroy:function(){this._sheetElement&&(this._sheetElement.remove(),this._sheetElement=null),this._sheet&&(this._sheet=null)},disable:function(){this._sheet.disabled=!0},enable:function(){this._sheet.disabled=!1},_createSheet:function(){var i=this.id?' id="'+this.id+'"':"",t=this.className?' class="'+this.className+'"':"";this._sheet||(this._sheetElement=e('<style type="text/css"'+i+t+"></style>"),e("body").append(this._sheetElement),this._sheet=this._sheetElement[0].sheet)},_toCamelCase:function(e){return e.toLowerCase().replace(/-(.)/g,function(e,i){return i.toUpperCase()})}}}(jQuery),function(e){FLBuilder={preview:null,_actionsLightbox:null,_ajaxQueue:[],_ajaxRequest:null,_colResizeData:null,_colResizing:!1,_contentClass:!1,_dragEnabled:!1,_dragging:!1,_dragInitialScrollTop:0,_exitUrl:null,_layout:null,_layoutQueue:[],_layoutSettingsCSSCache:null,_layoutSettingsCSSTimeout:null,_lightbox:null,_lightboxScrollbarTimeout:null,_loadedModuleAssets:[],_moduleHelpers:{},_multiplePhotoSelector:null,_newColParent:null,_newColPosition:0,_newColGroupParent:null,_newColGroupPosition:0,_newModuleParent:null,_newModulePosition:0,_newRowPosition:0,_selectedTemplateId:null,_selectedTemplateType:null,_singlePhotoSelector:null,_singleVideoSelector:null,_multipleAudiosSelector:null,_codeDisabled:!1,_init:function(){FLBuilder._initJQueryReadyFix(),FLBuilder._initGlobalErrorHandling(),FLBuilder._initPostLock(),FLBuilder._initClassNames(),FLBuilder._initMediaUploader(),FLBuilder._initOverflowFix(),FLBuilder._initScrollbars(),FLBuilder._initLightboxes(),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder._initStrings(),FLBuilder._initTipTips(),FLBuilder._initTinyMCE(),FLBuilder._bindEvents(),FLBuilder._bindOverlayEvents(),FLBuilder._setupEmptyLayout(),FLBuilder._highlightEmptyCols(),FLBuilder.addHook("didInitUI",FLBuilder._showTourOrTemplates.bind(FLBuilder)),FLBuilder.addHook("endEditingSession",FLBuilder._doStats.bind(this)),FLBuilder.triggerHook("init")},_initJQueryReadyFix:function(){FLBuilderConfig.debug||(jQuery.fn.oldReady=jQuery.fn.ready,jQuery.fn.ready=function(i){return jQuery.fn.oldReady(function(){try{"function"==typeof i&&i(e)}catch(t){FLBuilder.logError(t)}})})},_initGlobalErrorHandling:function(){FLBuilderConfig.debug||(window.onerror=function(e,i,t,l,n){return FLBuilder.logGlobalError(e,i,t,l,n),!0})},_initPostLock:function(){"undefined"!=typeof wp.heartbeat&&(wp.heartbeat.interval(30),wp.heartbeat.enqueue("fl_builder_post_lock",{post_id:FLBuilderConfig.postId}))},_initClassNames:function(){e("html").addClass("fl-builder-edit"),e("body").addClass("fl-builder"),FLBuilderConfig.simpleUi&&e("body").addClass("fl-builder-simple"),FLBuilder._contentClass=".fl-builder-content-"+FLBuilderConfig.postId,e(FLBuilder._contentClass).addClass("fl-builder-content-editing")},_initMediaUploader:function(){wp.media.model.settings.post.id=FLBuilderConfig.postId},_initOverflowFix:function(){e(FLBuilder._contentClass).parents().css("overflow","visible")},_initScrollbars:function(){var i=e(".fl-nanoscroller").nanoScroller({alwaysVisible:!0,preventPageScrolling:!0,paneClass:"fl-nanoscroller-pane",sliderClass:"fl-nanoscroller-slider",contentClass:"fl-nanoscroller-content"}),t=i.filter(".fl-builder-settings-fields"),l=t.find(".fl-nanoscroller-pane");if(l.length){var n=l.get(0).style.display,s=t.find(".fl-nanoscroller-content");"none"===n?s.removeClass("has-scrollbar"):s.addClass("has-scrollbar")}},_initSortables:function(){var i={appendTo:"body",cursor:"move",cursorAt:{left:85,top:20},distance:1,helper:FLBuilder._blockDragHelper,start:FLBuilder._blockDragStart,sort:FLBuilder._blockDragSort,change:FLBuilder._blockDragChange,stop:FLBuilder._blockDragStop,placeholder:"fl-builder-drop-zone",tolerance:"intersect"},t="",l="",n="";n="row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-content":"column"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-col-content":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col:not(.fl-builder-node-loading):not(.fl-node-global) .fl-col-content",l="row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target",t=FLBuilderConfig.nestedColumns?n:"row"==FLBuilderConfig.userTemplateType?FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target":FLBuilder._contentClass+" .fl-row-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-group-drop-target, "+FLBuilder._contentClass+" .fl-row:not(.fl-builder-node-loading) .fl-col-drop-target",e(".fl-builder-rows").sortable(e.extend({},i,{connectWith:t,items:".fl-builder-block-row",stop:FLBuilder._rowDragStop})),e(".fl-builder-row-templates").sortable(e.extend({},i,{connectWith:FLBuilder._contentClass+" .fl-row-drop-target",items:".fl-builder-block-row-template",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-rows").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:FLBuilder._contentClass+" .fl-row-drop-target",items:".fl-builder-block-saved-row",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-columns").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:l,items:".fl-builder-block-saved-column",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-modules, .fl-builder-widgets").sortable(e.extend({},i,{connectWith:n,items:".fl-builder-block-module",stop:FLBuilder._moduleDragStop})),e(".fl-builder-module-templates").sortable(e.extend({},i,{connectWith:n,items:".fl-builder-block-module-template",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-builder-saved-modules").sortable(e.extend({},i,{cancel:".fl-builder-node-template-actions, .fl-builder-node-template-edit, .fl-builder-node-template-delete",connectWith:n,items:".fl-builder-block-saved-module",stop:FLBuilder._nodeTemplateDragStop})),e(".fl-row-sortable-proxy").sortable(e.extend({},i,{connectWith:FLBuilder._contentClass+" .fl-row-drop-target",helper:FLBuilder._rowDragHelper,start:FLBuilder._rowDragStart,stop:FLBuilder._rowDragStop})),e(".fl-col-sortable-proxy").sortable(e.extend({},i,{connectWith:n,helper:FLBuilder._colDragHelper,start:FLBuilder._colDragStart,stop:FLBuilder._colDragStop})),e(FLBuilder._contentClass+" .fl-col-content").sortable(e.extend({},i,{connectWith:n,handle:".fl-module-overlay .fl-block-overlay-actions .fl-block-move",helper:FLBuilder._moduleDragHelper,items:".fl-module, .fl-col-group",start:FLBuilder._moduleDragStart,stop:FLBuilder._moduleDragStop})),e(FLBuilder._contentClass+" .fl-row-drop-target").sortable(i),e(FLBuilder._contentClass+" .fl-col-group-drop-target").sortable(i),e(FLBuilder._contentClass+" .fl-col-drop-target").sortable(i)},_refreshSortables:function(){e(".ui-sortable").sortable("refresh")},_initStrings:function(){e.validator.messages.required=FLBuilderStrings.validateRequiredMessage},_bindEvents:function(){$excludedLinks=e(".fl-builder-bar a, .fl-builder--content-library-panel a, .fl-page-nav .nav a"),e("a").not($excludedLinks).on("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").on("click",FLBuilder._headerLinkClicked),e("body").delegate(".fl-builder-content a","click",FLBuilder._preventDefault),e("body").delegate("button.fl-builder-button","mouseup",this._buttonMouseUp.bind(this)),e(document).on("heartbeat-tick",FLBuilder._initPostLock),e(window).on("beforeunload",FLBuilder._warnBeforeUnload),e("body").delegate(".fl-builder-has-submenu","click",FLBuilder._submenuParentClicked),e("body").delegate(".fl-builder-has-submenu a","click",FLBuilder._submenuChildClicked),e("body").delegate(".fl-builder-submenu","mouseenter",FLBuilder._submenuMouseenter),e("body").delegate(".fl-builder-submenu","mouseleave",FLBuilder._submenuMouseleave),e("body").delegate(".fl-builder-submenu .fl-builder-has-submenu","mouseenter",FLBuilder._submenuNestedParentMouseenter),e(".fl-builder-panel-actions .fl-builder-panel-close").on("click",FLBuilder._closePanel),e(".fl-builder-blocks-section-title").on("click",FLBuilder._blockSectionTitleClicked),e("body").delegate(".fl-builder-node-template-actions","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-edit","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-delete","mousedown",FLBuilder._stopPropagation),e("body").delegate(".fl-builder-node-template-edit","click",FLBuilder._editNodeTemplateClicked),e("body").delegate(".fl-builder-node-template-delete","click",FLBuilder._deleteNodeTemplateClicked),e("body").delegate(".fl-builder-block","mousedown",FLBuilder._blockDragInit),e("body").on("mouseup",FLBuilder._blockDragCancel),e("body").delegate(".fl-builder-actions .fl-builder-cancel-button","click",FLBuilder._cancelButtonClicked),e("body").delegate(".fl-builder-save-user-template-button","click",FLBuilder._saveUserTemplateClicked),e("body").delegate(".fl-builder-duplicate-layout-button","click",FLBuilder._duplicateLayoutClicked),e("body").delegate(".fl-builder-layout-settings-button","click",FLBuilder._layoutSettingsClicked),e("body").delegate(".fl-builder-layout-settings .fl-builder-settings-save","click",FLBuilder._saveLayoutSettingsClicked),e("body").delegate(".fl-builder-layout-settings .fl-builder-settings-cancel","click",FLBuilder._cancelLayoutSettingsClicked),e("body").delegate(".fl-builder-global-settings-button","click",FLBuilder._globalSettingsClicked),e("body").delegate(".fl-builder-global-settings .fl-builder-settings-save","click",FLBuilder._saveGlobalSettingsClicked),e("body").delegate(".fl-builder-global-settings .fl-builder-settings-cancel","click",FLBuilder._cancelLayoutSettingsClicked),e("body").delegate(".fl-user-template","click",FLBuilder._userTemplateClicked),e("body").delegate(".fl-user-template-edit","click",FLBuilder._editUserTemplateClicked),e("body").delegate(".fl-user-template-delete","click",FLBuilder._deleteUserTemplateClicked),e("body").delegate(".fl-builder-template-replace-button","click",FLBuilder._templateReplaceClicked),e("body").delegate(".fl-builder-template-append-button","click",FLBuilder._templateAppendClicked),e("body").delegate(".fl-builder-template-actions .fl-builder-cancel-button","click",FLBuilder._templateCancelClicked),e("body").delegate(".fl-builder-user-template-settings .fl-builder-settings-save","click",FLBuilder._saveUserTemplateSettings),e("body").delegate(".fl-builder-help-tour-button","click",FLBuilder._startHelpTour),e("body").delegate(".fl-builder-knowledge-base-button","click",FLBuilder._viewKnowledgeBaseClicked),e("body").delegate(".fl-builder-forums-button","click",FLBuilder._visitForumsClicked),e("body").delegate(".fl-builder-no-tour-button","click",FLBuilder._noTourButtonClicked),e("body").delegate(".fl-builder-yes-tour-button","click",FLBuilder._yesTourButtonClicked),e("body").delegate(".fl-builder-alert-close","click",FLBuilder._alertClose),e("body").delegate(".fl-block-overlay","contextmenu",FLBuilder._onContextmenu),e("body").delegate(".fl-row-overlay .fl-block-remove","click",FLBuilder._deleteRowClicked),e("body").delegate(".fl-row-overlay .fl-block-copy","click",FLBuilder._rowCopyClicked),e("body").delegate(".fl-row-overlay .fl-block-move","mousedown",FLBuilder._rowDragInit),e("body").delegate(".fl-row-overlay .fl-block-settings","click",FLBuilder._rowSettingsClicked),e("body").delegate(".fl-row-overlay","click",FLBuilder._rowSettingsClicked),e("body").delegate(".fl-builder-row-settings .fl-builder-settings-save","click",FLBuilder._saveSettings),e("body").delegate(".fl-block-col-submenu .fl-block-row-reset","click",FLBuilder._resetRowWidthClicked),e("body").delegate(".fl-col-overlay .fl-block-move","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-copy","click",FLBuilder._copyColClicked),e("body").delegate(".fl-col-overlay .fl-block-remove","click",FLBuilder._deleteColClicked),e("body").delegate(".fl-col-overlay .fl-block-settings","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-col-overlay","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-builder-col-settings .fl-builder-settings-save","click",FLBuilder._saveSettings),e("body").delegate(".fl-block-col-submenu .fl-block-col-move","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-submenu .fl-block-col-edit","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-block-col-submenu .fl-block-col-delete","click",FLBuilder._deleteColClicked),e("body").delegate(".fl-block-col-submenu .fl-block-col-reset","click",FLBuilder._resetColumnWidthsClicked),e("body").delegate(".fl-block-col-submenu li","mouseenter",FLBuilder._showColHighlightGuide),e("body").delegate(".fl-block-col-submenu li","mouseleave",FLBuilder._removeColHighlightGuides),e("body").delegate(".fl-block-col-submenu .fl-block-col-move-parent","mousedown",FLBuilder._colDragInit),e("body").delegate(".fl-block-col-submenu .fl-block-col-edit-parent","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-module-overlay .fl-block-remove","click",FLBuilder._deleteModuleClicked),e("body").delegate(".fl-module-overlay .fl-block-copy","click",FLBuilder._moduleCopyClicked),e("body").delegate(".fl-module-overlay .fl-block-move","mousedown",FLBuilder._blockDragInit),e("body").delegate(".fl-module-overlay .fl-block-settings","click",FLBuilder._moduleSettingsClicked),e("body").delegate(".fl-module-overlay","click",FLBuilder._moduleSettingsClicked),e("body").delegate(".fl-builder-module-settings .fl-builder-settings-save","click",FLBuilder._saveModuleClicked),e("body").delegate(".fl-module-overlay .fl-block-col-settings","click",FLBuilder._colSettingsClicked),e("body").delegate(".fl-builder-settings-save-as","click",FLBuilder._showNodeTemplateSettings),e("body").delegate(".fl-builder-node-template-settings .fl-builder-settings-save","click",FLBuilder._saveNodeTemplate),e("body").delegate(".fl-builder-settings-tabs a","click",FLBuilder._settingsTabClicked),e("body").delegate(".fl-builder-settings-tabs a","show",FLBuilder._calculateSettingsTabsOverflow),e("body").delegate(".fl-builder-settings-tabs a","hide",FLBuilder._calculateSettingsTabsOverflow),e("body").delegate(".fl-builder-settings-cancel","click",FLBuilder._settingsCancelClicked),e("body").delegate(".fl-builder-settings-tabs-overflow-menu > a","click",FLBuilder._settingsTabsToOverflowMenuItemClicked.bind(this)),e("body").delegate(".fl-builder-settings-tabs-more","click",FLBuilder._toggleTabsOverflowMenu.bind(this)),e("body").delegate(".fl-builder-settings-tabs-overflow-click-mask","click",FLBuilder._hideTabsOverflowMenu.bind(this)),e("body").delegate(".fl-help-tooltip-icon","mouseover",FLBuilder._showHelpTooltip),e("body").delegate(".fl-help-tooltip-icon","mouseout",FLBuilder._hideHelpTooltip),e("body").delegate(".fl-builder-field-add","click",FLBuilder._addFieldClicked),e("body").delegate(".fl-builder-field-copy","click",FLBuilder._copyFieldClicked),e("body").delegate(".fl-builder-field-delete","click",FLBuilder._deleteFieldClicked),e("body").delegate(".fl-photo-field .fl-photo-select","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-edit","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-replace","click",FLBuilder._selectSinglePhoto),e("body").delegate(".fl-photo-field .fl-photo-remove","click",FLBuilder._singlePhotoRemoved),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-select","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-edit","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-multiple-photos-field .fl-multiple-photos-add","click",FLBuilder._selectMultiplePhotos),e("body").delegate(".fl-video-field .fl-video-select","click",FLBuilder._selectSingleVideo),e("body").delegate(".fl-video-field .fl-video-replace","click",FLBuilder._selectSingleVideo),e("body").delegate(".fl-video-field .fl-video-remove","click",FLBuilder._singleVideoRemoved),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-select","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-edit","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-multiple-audios-field .fl-multiple-audios-add","click",FLBuilder._selectMultipleAudios),e("body").delegate(".fl-icon-field .fl-icon-select","click",FLBuilder._selectIcon),e("body").delegate(".fl-icon-field .fl-icon-replace","click",FLBuilder._selectIcon),e("body").delegate(".fl-icon-field .fl-icon-remove","click",FLBuilder._removeIcon),e("body").delegate(".fl-form-field .fl-form-field-edit","click",FLBuilder._formFieldClicked),e("body").delegate(".fl-form-field-settings .fl-builder-settings-save","click",FLBuilder._saveFormFieldClicked),e("body").delegate(".fl-layout-field-option","click",FLBuilder._layoutFieldClicked),e("body").delegate(".fl-link-field-select","click",FLBuilder._linkFieldSelectClicked),e("body").delegate(".fl-link-field-search-cancel","click",FLBuilder._linkFieldSelectCancelClicked),e("body").delegate(".fl-loop-data-source-select select[name=data_source]","change",FLBuilder._loopDataSourceChange),e("body").delegate(".fl-custom-query select[name=post_type]","change",FLBuilder._customQueryPostTypeChange),e("body").delegate(".fl-text-field-add-value","change",FLBuilder._textFieldAddValueSelectChange),e("body").delegate(".fl-field input[type=number]","focus",FLBuilder._onNumberFieldFocus),e("body").delegate(".fl-field input[type=number]","blur",FLBuilder._onNumberFieldBlur),FLBuilder.addHook("didCompleteAJAX",FLBuilder._refreshSettingsPreviewReference),FLBuilder.addHook("didRenderLayoutComplete",FLBuilder._refreshSettingsPreviewReference)},_unbindEvents:function(){e("a").off("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").off("click",FLBuilder._headerLinkClicked),e("body").undelegate(".fl-builder-content a","click",FLBuilder._preventDefault)},_rebindEvents:function(){e("a").on("click",FLBuilder._preventDefault),e(".fl-page-nav .nav a").on("click",FLBuilder._headerLinkClicked),e("body").delegate(".fl-builder-content a","click",FLBuilder._preventDefault)},_bindOverlayEvents:function(){var i=e(FLBuilder._contentClass);i.delegate(".fl-row","mouseenter",FLBuilder._rowMouseenter),i.delegate(".fl-row","mouseleave",FLBuilder._rowMouseleave),i.delegate(".fl-row-overlay","mouseleave",FLBuilder._rowMouseleave),i.delegate(".fl-col","mouseenter",FLBuilder._colMouseenter),i.delegate(".fl-col","mouseleave",FLBuilder._colMouseleave),i.delegate(".fl-module","mouseenter",FLBuilder._moduleMouseenter),i.delegate(".fl-module","mouseleave",FLBuilder._moduleMouseleave)},_destroyOverlayEvents:function(){var i=e(FLBuilder._contentClass);i.undelegate(".fl-row","mouseenter",FLBuilder._rowMouseenter),i.undelegate(".fl-row","mouseleave",FLBuilder._rowMouseleave),i.undelegate(".fl-row-overlay","mouseleave",FLBuilder._rowMouseleave),i.undelegate(".fl-col","mouseenter",FLBuilder._colMouseenter),i.undelegate(".fl-col","mouseleave",FLBuilder._colMouseleave),i.undelegate(".fl-module","mouseenter",FLBuilder._moduleMouseenter),i.undelegate(".fl-module","mouseleave",FLBuilder._moduleMouseleave)},_onContextmenu:function(i){e(this).hide()},_preventDefault:function(e){e.preventDefault()},_stopPropagation:function(e){e.stopPropagation()},_headerLinkClicked:function(i){var t=e(this),l=t.attr("href");this.hash||(i.preventDefault(),FLBuilderConfig.isUserTemplate||(FLBuilder._exitUrl=l.indexOf("?")>-1?l:l+"?fl_builder",FLBuilder.triggerHook("triggerDone")))},_warnBeforeUnload:function(){var i=e(".fl-builder-row-settings").length>0,t=e(".fl-builder-col-settings").length>0,l=e(".fl-builder-module-settings").length>0;if(i||t||l)return FLBuilderStrings.unloadWarning},_initTipTips:function(){e(".fl-tip:not(.fl-has-tip)").each(function(){var i=e(this);i.addClass("fl-has-tip"),void 0==i.attr("data-title")&&i.attr("data-title",i.attr("title"))}).tipTip({defaultPosition:"top",delay:1e3})},_hideTipTips:function(){e("#tiptip_holder").stop().hide()},_submenuParentClicked:function(i){var t=e("body"),l=e(this),n=l.find(".fl-builder-submenu");l.hasClass("fl-builder-submenu-open")?(t.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-right")):(l.offset().left+n.width()>e(window).width()&&l.addClass("fl-builder-submenu-right"),t.addClass("fl-builder-submenu-open"),l.addClass("fl-builder-submenu-open")),n.closest(".fl-row-overlay").addClass("fl-row-menu-active"),FLBuilder._hideTipTips(),i.preventDefault(),i.stopPropagation()},_submenuChildClicked:function(i){var t=e("body"),l=e(this).parents(".fl-builder-has-submenu");l.parents(".fl-builder-has-submenu").length||(t.removeClass("fl-builder-submenu-open"),l.removeClass("fl-builder-submenu-open"))},_submenuMouseenter:function(i){var t=e(this),l=t.data("timeout");"undefined"!=typeof l&&clearTimeout(l)},_submenuMouseleave:function(i){var t=e("body"),l=e(this),n=setTimeout(function(){t.removeClass("fl-builder-submenu-open"),l.closest(".fl-builder-has-submenu").removeClass("fl-builder-submenu-open")},500);l.closest(".fl-row-overlay").removeClass("fl-row-menu-active"),l.data("timeout",n)},_submenuNestedParentMouseenter:function(i){var t=e(this),l=t.find(".fl-builder-submenu");t.width()+t.offset().left+l.width()>e(window).width()&&t.addClass("fl-builder-submenu-right")},_closeAllSubmenus:function(){e(".fl-builder-submenu-open").removeClass("fl-builder-submenu-open")},_upgradeClicked:function(){window.open(FLBuilderConfig.upgradeUrl)},_buttonMouseUp:function(i){e(i.currentTarget).blur()},_closePanel:function(){FLBuilder.triggerHook("hideContentPanel")},_showPanel:function(){FLBuilder.triggerHook("showContentPanel")},_togglePanel:function(){FLBuilder.triggerHook("toggleContentPanel")},_blockSectionTitleClicked:function(){var i=e(this),t=i.parent();t.hasClass("fl-active")?t.removeClass("fl-active"):(e(".fl-builder-blocks-section").removeClass("fl-active"),t.addClass("fl-active")),FLBuilder._initScrollbars()},_publishLayout:function(e){if(FLBuilder._triggerSettingsSave(!1,!0)){if(_.isUndefined(e))var e=!0;FLBuilder.ajax({action:"save_layout"},this._onPublishComplete.bind(this,e))}},_publishButtonClicked:function(e){FLBuilder._publishLayout(e)},_onPublishComplete:function(i){i&&(FLBuilderConfig.shouldRefreshOnPublish?FLBuilder._exit():FLBuilder._exitWithoutRefresh()),e("#wp-admin-bar-fl-builder-frontend-edit-link .fl-builder-admin-bar-status-dot").css("color","#6bc373"),FLBuilder.triggerHook("didPublishLayout")},_draftButtonClicked:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"save_draft"},FLBuilder._exit)},_discardButtonClicked:function(){var e=confirm(FLBuilderStrings.discardMessage);e?(FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"clear_draft_layout"},FLBuilder._exit)):FLBuilder.triggerHook("didCancelDiscard")},_cancelButtonClicked:function(){FLBuilder._exitUrl=null,FLBuilder._actionsLightbox.close()},_exit:function(){var e=window.location.href;try{var i="undefined"!=typeof window.opener.FLBuilder}catch(t){var i=!1}FLBuilderConfig.isUserTemplate&&"undefined"!=typeof window.opener&&window.opener?(i&&("undefined"==typeof FLBuilderGlobalNodeId?window.opener.FLBuilder._updateLayout():window.opener.FLBuilder._updateNode(FLBuilderGlobalNodeId)),window.close()):(FLBuilder._exitUrl?e=FLBuilder._exitUrl:(e=e.replace("?fl_builder&","?"),e=e.replace("?fl_builder",""),e=e.replace("&fl_builder","")),window.location.href=e)},_exitWithoutRefresh:function(){window.location.href;try{var e="undefined"!=typeof window.opener.FLBuilder}catch(i){var e=!1}FLBuilderConfig.isUserTemplate&&e&&window.opener?(e&&("undefined"==typeof FLBuilderGlobalNodeId?window.opener.FLBuilder._updateLayout():window.opener.FLBuilder._updateNode(FLBuilderGlobalNodeId)),window.close()):FLBuilder.triggerHook("endEditingSession")},_duplicateLayoutClicked:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"duplicate_post"},FLBuilder._duplicateLayoutComplete)},_duplicateLayoutComplete:function(e){var i=FLBuilderConfig.adminUrl;window.location.href=i+"post.php?post="+e+"&action=edit"},_layoutSettingsClicked:function(){FLBuilderSettingsForms.render({id:"layout",className:"fl-builder-layout-settings",settings:FLBuilderSettingsConfig.settings.layout},function(){FLBuilder._layoutSettingsInitCSS()})},_layoutSettingsInitCSS:function(){var i=e(".fl-builder-settings #fl-field-css textarea:not(.ace_text-input)");i.on("change",FLBuilder._layoutSettingsCSSChanged),FLBuilder._layoutSettingsCSSCache=i.val()},_layoutSettingsCSSChanged:function(){FLBuilder._layoutSettingsCSSTimeout&&clearTimeout(FLBuilder._layoutSettingsCSSTimeout),FLBuilder._layoutSettingsCSSTimeout=setTimeout(e.proxy(FLBuilder._layoutSettingsCSSDoChange,this),600)},_layoutSettingsCSSDoChange:function(){var i=e(".fl-builder-settings"),t=e(this),l=t.parents("#fl-field-css");l.find(".ace_error").length>0||(i.hasClass("fl-builder-layout-settings")?e("#fl-builder-layout-css").html(t.val()):e("#fl-builder-global-css").html(t.val()),FLBuilder._layoutSettingsCSSTimeout=null)},_saveLayoutSettingsClicked:function(){for(var i=e(this).closest(".fl-builder-settings"),t=i.serializeArray(),l={},n=0;n<t.length;n++)l[t[n].name]=t[n].value;FLBuilder.showAjaxLoader(),FLBuilder._lightbox.close(),FLBuilder._layoutSettingsCSSCache=null,FLBuilder.ajax({action:"save_layout_settings",settings:l},function(){FLBuilder.triggerHook("didSaveLayoutSettingsComplete",l),FLBuilder._updateLayout()})},_cancelLayoutSettingsClicked:function(){var i=e(".fl-builder-settings");i.hasClass("fl-builder-layout-settings")?e("#fl-builder-layout-css").html(FLBuilder._layoutSettingsCSSCache):e("#fl-builder-global-css").html(FLBuilder._layoutSettingsCSSCache),FLBuilder._layoutSettingsCSSCache=null},_globalSettingsClicked:function(){FLBuilderSettingsForms.render({id:"global",className:"fl-builder-global-settings",settings:FLBuilderSettingsConfig.settings.global},function(){FLBuilder._layoutSettingsInitCSS()})},_saveGlobalSettingsClicked:function(){var i=e(this).closest(".fl-builder-settings"),t=i.validate().form(),l=FLBuilder._getSettings(i);t&&(FLBuilder.showAjaxLoader(),FLBuilder._layoutSettingsCSSCache=null,FLBuilder.ajax({action:"save_global_settings",settings:l},FLBuilder._saveGlobalSettingsComplete),FLBuilder._lightbox.close())},_saveGlobalSettingsComplete:function(e){FLBuilderConfig.global=FLBuilder._jsonParse(e),FLBuilder.triggerHook("didSaveGlobalSettingsComplete",FLBuilderConfig.global),FLBuilder._updateLayout()},_initTemplateSelector:function(){var i=e(FLBuilder._contentClass).find(".fl-row"),t=i.length>0;t||FLBuilder.ContentPanel.show("modules")},_requestTemplateInsert:function(e,i){FLBuilder.layoutHasContent()?0==e?confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._lightbox._node.hide(),FLBuilder._applyTemplate(0,!1,i)):(FLBuilder._selectedTemplateId=e,FLBuilder._selectedTemplateType=i,FLBuilder._showTemplateActions(),FLBuilder._lightbox._node.hide()):FLBuilder._applyTemplate(e,!1,i)},_showTemplateActions:function(){var e=[];e[10]={key:"template-replace",label:FLBuilderStrings.templateReplace},e[20]={key:"template-append",label:FLBuilderStrings.templateAppend},FLBuilder._showActionsLightbox({className:"fl-builder-template-actions",title:FLBuilderStrings.actionsLightboxTitle,buttons:e})},_templateReplaceClicked:function(){confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._actionsLightbox.close(),FLBuilder._applyTemplate(FLBuilder._selectedTemplateId,!1,FLBuilder._selectedTemplateType));
|
3 |
},_templateAppendClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilder._applyTemplate(FLBuilder._selectedTemplateId,!0,FLBuilder._selectedTemplateType)},_templateCancelClicked:function(){FLBuilder.triggerHook("showContentPanel")},_applyTemplate:function(e,i,t){i="undefined"!=typeof i&&i?"1":"0",t="undefined"==typeof t?"core":t,FLBuilder._lightbox.close(),FLBuilder.showAjaxLoader(),"core"==t?FLBuilder.ajax({action:"apply_template",template_id:e,append:i},FLBuilder._applyTemplateComplete):FLBuilder.ajax({action:"apply_user_template",template_id:e,append:i},FLBuilder._applyUserTemplateComplete),FLBuilder.triggerHook("didApplyTemplate")},_applyTemplateComplete:function(e){var i=FLBuilder._jsonParse(e);FLBuilder._renderLayout(i.layout),FLBuilder.triggerHook("didApplyTemplateComplete",i.config)},_applyUserTemplateComplete:function(i){var t=FLBuilder._jsonParse(i);null!==t.layout_css&&e("#fl-builder-layout-css").html(t.layout_css),FLBuilder._renderLayout(t.layout),FLBuilder.triggerHook("didApplyTemplateComplete",t.config)},_saveUserTemplateClicked:function(){FLBuilderSettingsForms.render({id:"user_template",className:"fl-builder-user-template-settings",rules:{name:{required:!0}}})},_saveUserTemplateSettings:function(){var i=e(this).closest(".fl-builder-settings"),t=i.validate().form(),l=FLBuilder._getSettings(i);t&&(FLBuilder.ajax({action:"save_user_template",settings:l},FLBuilder._saveUserTemplateSettingsComplete),FLBuilder._lightbox.close())},_saveUserTemplateSettingsComplete:function(e){if(e){var e=FLBuilder._jsonParse(e);FLBuilderConfig.contentItems.template.push(e),FLBuilder.triggerHook("contentItemsChanged")}},_userTemplateClicked:function(){var i=e(this).attr("data-id");e(FLBuilder._contentClass).children(".fl-row").length>0?"blank"==i?confirm(FLBuilderStrings.changeTemplateMessage)&&(FLBuilder._lightbox._node.hide(),FLBuilder._applyTemplate("blank",!1,"user")):(FLBuilder._selectedTemplateId=i,FLBuilder._selectedTemplateType="user",FLBuilder._showTemplateActions(),FLBuilder._lightbox._node.hide()):FLBuilder._applyTemplate(i,!1,"user")},_editUserTemplateClicked:function(i){i.preventDefault(),i.stopPropagation(),window.open(e(this).attr("href"))},_deleteUserTemplateClicked:function(i){var t=e(this).closest(".fl-user-template"),l=t.attr("data-id"),n=(e(".fl-user-template[data-id="+l+"]"),null),s=null,o=null;if(confirm(FLBuilderStrings.deleteTemplate)){FLBuilder.ajax({action:"delete_user_template",template_id:l});for(s in FLBuilderConfig.contentItems.template)o=FLBuilderConfig.contentItems.template[s],o.postId==l&&(n=s);_.isNull(n)||(FLBuilderConfig.contentItems.template.splice(n,1),FLBuilder.triggerHook("contentItemsChanged"))}i.stopPropagation()},_viewKnowledgeBaseClicked:function(){window.open(FLBuilderConfig.help.knowledge_base_url)},_visitForumsClicked:function(){window.open(FLBuilderConfig.help.forums_url)},_showTourOrTemplates:function(){FLBuilderConfig.simpleUi||FLBuilderConfig.isUserTemplate||(FLBuilderConfig.help.tour&&FLBuilderConfig.newUser?FLBuilder._showTourLightbox():FLBuilder._initTemplateSelector())},_doStats:function(){1==FLBuilderConfig.statsEnabled&&(args={"screen-width":screen.width,"screen-height":screen.height,"pixel-ratio":window.devicePixelRatio,"user-agent":window.navigator.userAgent,isrtl:FLBuilderConfig.isRtl},FLBuilder.ajax({action:"save_browser_stats",browser_data:args}))},_showTourLightbox:function(){var e=wp.template("fl-tour-lightbox");FLBuilder._actionsLightbox.open(e())},_noTourButtonClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilder._initTemplateSelector()},_yesTourButtonClicked:function(){FLBuilder._actionsLightbox.close(),FLBuilderTour.start()},_startHelpTour:function(){FLBuilder._actionsLightbox.close(),FLBuilderTour.start()},_setupEmptyLayout:function(){var i=e(FLBuilder._contentClass);FLBuilderConfig.isUserTemplate&&"module"==FLBuilderConfig.userTemplateType||FLBuilderConfig.isUserTemplate&&"column"==FLBuilderConfig.userTemplateType||(i.removeClass("fl-builder-empty"),i.find(".fl-builder-empty-message").remove(),i.find(".fl-row, .fl-builder-block").length||(i.addClass("fl-builder-empty"),i.append('<span class="fl-builder-empty-message">'+FLBuilderStrings.emptyMessage+"</span>"),FLBuilder._initSortables()))},_updateNode:function(i,t){e(".fl-node-"+i).length&&(FLBuilder._showNodeLoading(i),FLBuilder.ajax({action:"render_node",node_id:i},function(e){FLBuilder._renderLayout(FLBuilder._jsonParse(e),t)}.bind(this)))},_updateLayout:function(){FLBuilder.showAjaxLoader(),FLBuilder.ajax({action:"render_layout"},FLBuilder._renderLayout)},_renderLayout:function(e,i){FLBuilder._layout?FLBuilder._layoutQueue.push({data:e,callback:i}):FLBuilder._layout=new FLBuilderAJAXLayout(e,i)},_renderLayoutComplete:function(){if(FLBuilder._layout&&(FLBuilder._layout._complete(),FLBuilder._layout=null),FLBuilder._layoutQueue.length){var e=FLBuilder._layoutQueue.shift();FLBuilder._layout=new FLBuilderAJAXLayout(e.data,e.callback)}},_resizeLayout:function(){e(window).trigger("resize"),"undefined"!=typeof YUI&&YUI().use("node-event-simulate",function(e){e.one(window).simulate("resize")})},layoutHasContent:function(){return e(FLBuilder._contentClass).children(".fl-row").length>0},_initMediaElements:function(){var i={};"undefined"!=typeof e.fn.mediaelementplayer&&("undefined"!=typeof _wpmejsSettings&&(i.pluginPath=_wpmejsSettings.pluginPath),e(".wp-audio-shortcode, .wp-video-shortcode").not(".mejs-container").mediaelementplayer(i))},_initDropTargets:function(){var i="row"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)",t=e(FLBuilder._contentClass+" .fl-row"),l=null,n=e(FLBuilder._contentClass+" .fl-row"+i).find(".fl-col-group"),s=null,o=null,r="column"==FLBuilderConfig.userTemplateType?e(FLBuilder._contentClass+"> .fl-col").eq(0):null,a=0;for(e(".fl-col-drop-target").remove(),e(".fl-col-group-drop-target").remove(),e(".fl-row-drop-target").remove(),e(FLBuilder._contentClass).append('<div class="fl-drop-target fl-row-drop-target"></div>'),t.prepend('<div class="fl-drop-target fl-row-drop-target"></div>'),t.append('<div class="fl-drop-target fl-drop-target-last fl-row-drop-target fl-row-drop-target-last"></div>');a<t.length;a++)l=t.eq(a),0===l.find(".fl-col-group").length&&l.find(".fl-row-content").prepend('<div class="fl-drop-target fl-col-group-drop-target"></div>');for(r&&0===n.length&&(n=r.find(".fl-col-group"),r.append('<div class="fl-drop-target fl-col-drop-target"></div>'),r.append('<div class="fl-drop-target fl-drop-target-last fl-col-drop-target fl-col-drop-target-last"></div>')),a=0;a<n.length;a++)s=n.eq(a),o=s.find("> .fl-col"),s.hasClass("fl-col-group-nested")||(s.append('<div class="fl-drop-target fl-col-group-drop-target"></div>'),s.append('<div class="fl-drop-target fl-drop-target-last fl-col-group-drop-target fl-col-group-drop-target-last"></div>')),o.append('<div class="fl-drop-target fl-col-drop-target"></div>'),o.append('<div class="fl-drop-target fl-drop-target-last fl-col-drop-target fl-col-drop-target-last"></div>')},_blockDragHelper:function(e,i){var t=i.clone();return i.clone().insertAfter(i),t.addClass("fl-builder-block-drag-helper"),t},_blockDragInit:function(i){var t=e(i.currentTarget),l=null,n=e(window).scrollTop(),s=0;FLBuilder._dragEnabled=!0,FLBuilder._dragInitialScrollTop=n,t.closest("[data-node]").length>0?(l=t.closest("[data-node]"),l.addClass("fl-node-drag-init")):t.hasClass("fl-builder-block")&&e(".fl-row").each(function(){null===l&&e(this).offset().top-n>0&&(l=e(this))}),null!==l&&(s=l.offset().top-n),FLBuilder._highlightRowsAndColsForDrag(t),FLBuilder._adjustColHeightsForDrag(),FLBuilder._disableGlobalRows(),FLBuilder._disableGlobalCols(),FLBuilder._destroyOverlayEvents(),FLBuilder._removeAllOverlays(),FLBuilder._initSortables(),e("body").addClass("fl-builder-dragging"),e(".fl-builder-empty-message").hide(),e(".fl-sortable-disabled").removeClass("fl-sortable-disabled"),s>0&&scrollTo(0,l.offset().top-s),FLBuilder.triggerHook("didInitDrag")},_blockDragStart:function(i,t){FLBuilder._dragging=!0,e(".fl-node-drag-init").removeClass("fl-node-drag-init"),FLBuilder.triggerHook("didStartDrag")},_blockDragSort:function(i,t){var l=t.placeholder.parent(),n=FLBuilderStrings.insert;FLBuilder._blockPreventSort(t.item,l)||(l.hasClass("fl-col-content")?n=t.item.hasClass("fl-builder-block-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-col-sortable-proxy-item")?FLBuilderStrings.column:t.item.hasClass("fl-builder-block-module")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-module")||t.item.hasClass("fl-builder-block-module-template")?t.item.find(".fl-builder-block-title").text():t.item.attr("data-name"):l.hasClass("fl-col-drop-target")?n="":l.hasClass("fl-col-group-drop-target")?n="":l.hasClass("fl-row-drop-target")&&(n=t.item.hasClass("fl-builder-block-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-row")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-builder-block-saved-column")?t.item.find(".fl-builder-block-title").text():t.item.hasClass("fl-row-sortable-proxy-item")?FLBuilderStrings.row:FLBuilderStrings.newRow),t.placeholder.html(n),t.item.hasClass("fl-node-global")||t.item.hasClass("fl-builder-block-global")||e(".fl-node-dragging").hasClass("fl-node-global")?t.placeholder.addClass("fl-builder-drop-zone-global"):t.placeholder.removeClass("fl-builder-drop-zone-global"))},_blockDragChange:function(e,i){i.placeholder.css("opacity","0"),i.placeholder.animate({opacity:"1"},100)},_blockPreventSort:function(i,t){var l=!1,n=i.hasClass("fl-builder-block-row"),s=i.hasClass("fl-col-sortable-proxy-item"),o=t.hasClass("fl-col-content"),r=t.hasClass("fl-col-drop-target"),a=t.parents(".fl-col-group:not(.fl-col-group-nested)"),d=t.parents(".fl-col-group-nested");return(n||s)&&o&&d.length>0&&(l=!0),o&&!t.find(".fl-module, .fl-col").length&&(n&&"1-col"==i.data("cols")?l=!0:s&&(l=!0)),n&&o&&e.inArray(i.data("cols"),["5-cols","6-cols"])>-1&&(l=!0),s&&e(".fl-node-dragging").find(".fl-col-group-nested").length>0&&(o||r&&d.length>0)&&(l=!0),r&&a.length>0&&0===d.length&&a.find("> .fl-col:visible").length>11&&(l=!0),r&&d.length>0&&d.find(".fl-col:visible").length>3&&(l=!0),l&&t.addClass("fl-sortable-disabled"),l},_blockDragStop:function(i,t){var l=e(window).scrollTop(),n=t.item.parent(),s=null;n.hasClass("fl-drop-target")&&n.closest("[data-node]").length?(n=n.closest("[data-node]"),s=n.offset().top-l):s=n.offset().top-l,n.hasClass("fl-builder-blocks-section-content")&&FLBuilder._showPanel(),FLBuilder._dragEnabled=!1,FLBuilder._dragging=!1,FLBuilder._bindOverlayEvents(),FLBuilder._removeEmptyRowAndColHighlights(),FLBuilder._highlightEmptyCols(),FLBuilder._enableGlobalRows(),FLBuilder._enableGlobalCols(),FLBuilder._setupEmptyLayout(),e("body").removeClass("fl-builder-dragging"),scrollTo(0,n.offset().top-s),FLBuilder.triggerHook("didStopDrag")},_blockDragCancel:function(){FLBuilder._dragEnabled&&!FLBuilder._dragging&&(FLBuilder._dragEnabled=!1,FLBuilder._dragging=!1,FLBuilder._bindOverlayEvents(),FLBuilder._removeEmptyRowAndColHighlights(),FLBuilder._highlightEmptyCols(),FLBuilder._enableGlobalRows(),FLBuilder._setupEmptyLayout(),e("body").removeClass("fl-builder-dragging"),e(".fl-node-drag-init").removeClass("fl-node-drag-init"),e(".fl-node-dragging").removeClass("fl-node-dragging"),scrollTo(0,FLBuilder._dragInitialScrollTop))},_reorderNode:function(e,i){FLBuilder.ajax({action:"reorder_node",node_id:e,position:i})},_moveNode:function(e,i,t){FLBuilder.ajax({action:"move_node",new_parent:e,node_id:i,position:t})},_removeAllOverlays:function(){FLBuilder._removeRowOverlays(),FLBuilder._removeColOverlays(),FLBuilder._removeColHighlightGuides(),FLBuilder._removeModuleOverlays(),FLBuilder._hideTipTips(),FLBuilder._closeAllSubmenus()},_appendOverlay:function(e,i){var t=0,l=null,n=e.hasClass("fl-row"),s=n?e.find("> .fl-row-content-wrap"):e.find("> .fl-node-content"),o={top:parseInt(s.css("margin-top"),10),bottom:parseInt(s.css("margin-bottom"),10)};return e.append(i),e.addClass("fl-block-overlay-active"),FLBuilder._initTipTips(),l=e.find("> .fl-block-overlay"),o.top<0&&(t=parseInt(l.css("top"),10),t=isNaN(t)?0:t,l.css("top",o.top+t+"px")),o.bottom<0&&(t=parseInt(l.css("bottom"),10),t=isNaN(t)?0:t,l.css("bottom",o.bottom+t+"px")),l},_buildOverlayOverflowMenu:function(e){var i=e.find(".fl-block-overlay-header"),t=e.find(".fl-block-overlay-actions"),l=e.find(".fl-block-has-rules"),n=t.data("original"),s=0,o=null,r=0,a=null,d=0,u=[],c=[],f=[],h=wp.template("fl-overlay-overflow-menu");for(void 0!=n&&(t.after(n),t.remove(),t=n),t.data("original",t.clone()),s=Math.floor(t[0].getBoundingClientRect().width)-8,o=t.find(" > i, > span.fl-builder-has-submenu"),l.length&&s+l.outerWidth()>i.outerWidth()&&(r+=l.outerWidth());d<o.length;d++)a=o.eq(d),r+=Math.floor(a[0].getBoundingClientRect().width),r>s?(c.push(a),a.remove()):u.push(a);if(c.length>0){for(u.length>0&&c.unshift(u.pop().remove()),d=0;d<c.length;d++)c[d].is(".fl-builder-has-submenu")?f.push({type:"submenu",label:c[d].find(".fa, .fas, .far").data("title"),submenu:c[d].find(".fl-builder-submenu")[0].outerHTML}):f.push({type:"action",label:c[d].data("title"),className:c[d].removeClass(function(e,i){return i.replace(/fl-block-([^\s]+)/,"")}).attr("class")});t.append(h(f)),FLBuilder._initTipTips()}},_removeRowOverlays:function(){e(".fl-row").removeClass("fl-block-overlay-active"),e(".fl-row-overlay").remove(),e(".fl-module").removeClass("fl-module-adjust-height"),e("body").removeClass("fl-builder-row-resizing"),FLBuilder._closeAllSubmenus()},_disableGlobalRows:function(){"row"!=FLBuilderConfig.userTemplateType&&e(".fl-row.fl-node-global").addClass("fl-node-disabled")},_disableGlobalCols:function(){"column"!=FLBuilderConfig.userTemplateType&&e(".fl-row:not(.fl-node-global) .fl-col.fl-node-global").addClass("fl-node-disabled")},_enableGlobalRows:function(){"row"!=FLBuilderConfig.userTemplateType&&e(".fl-node-disabled").removeClass("fl-node-disabled")},_enableGlobalCols:function(){"column"!=FLBuilderConfig.userTemplateType&&e(".fl-node-disabled").removeClass("fl-node-disabled")},_rowMouseenter:function(){var i=e(this),t=i.offset().top,l=null,n=null,s=wp.template("fl-row-overlay"),o=FLBuilderResponsiveEditing._mode;i.closest(".fl-builder-node-loading").length||i.hasClass("fl-block-overlay-active")||(n=FLBuilder._appendOverlay(i,s({node:i.attr("data-node"),global:i.hasClass("fl-node-global"),hasRules:i.hasClass("fl-node-has-rules")})),i.find(".fl-node-content:visible").each(function(){var i=e(this).offset().top;l=null===l||l>i?i:l}),null!==l&&l<t&&n.css("top",l-t-30+"px"),("default"===o&&n.offset().top<43||"default"!==o&&0===i.index())&&n.addClass("fl-row-overlay-header-bottom"),i.find(".fl-module").each(function(){var i=e(this);i.outerHeight(!0)<20&&i.addClass("fl-module-adjust-height")}),FLBuilder._buildOverlayOverflowMenu(n))},_rowMouseleave:function(i){var t=e(i.toElement)||e(i.relatedTarget),l=t.hasClass("fl-row-overlay"),n=t.closest(".fl-row-overlay").length>0,s=t.is("#tiptip_holder"),o=t.closest("#tiptip_holder").length>0;l||n||s||o||FLBuilder._removeRowOverlays()},_rowDragHelper:function(){return e('<div class="fl-builder-block-drag-helper">'+FLBuilderStrings.row+"</div>")},_rowDragInit:function(i){var t=e(i.target),l=e(".fl-row-sortable-proxy-item"),n=t.closest(".fl-row");n.addClass("fl-node-dragging"),FLBuilder._blockDragInit(i),i.target=l[0],l.trigger(i)},_rowDragStart:function(i,t){var l=e(FLBuilder._contentClass+" .fl-row"),n=e(".fl-node-dragging");1===l.length&&e(FLBuilder._contentClass).addClass("fl-builder-empty"),n.hide(),FLBuilder._blockDragStart(i,t)},_rowDragStop:function(i,t){var l=t.item,n=l.parent(),s=null,o=null,r=0;if(FLBuilder._blockDragStop(i,t),n.hasClass("fl-builder-rows"))return void l.remove();if(n.hasClass("fl-row-sortable-proxy"))return void e(".fl-node-dragging").removeClass("fl-node-dragging").show();if(l.hasClass("fl-builder-block")){if(n.hasClass("fl-sortable-disabled"))return l.remove(),void FLBuilder._showPanel();n.hasClass("fl-col-content")?FLBuilder._addColGroup(l.closest(".fl-col").attr("data-node"),l.attr("data-cols"),n.find("> .fl-module, .fl-col-group, .fl-builder-block").index(l)):n.hasClass("fl-col-drop-target")?FLBuilder._addCols(n.closest(".fl-col"),n.hasClass("fl-col-drop-target-last")?"after":"before",l.attr("data-cols"),n.closest(".fl-col-group-nested").length>0):n.hasClass("fl-col-group-drop-target")?(o=l.closest(".fl-col-group"),r=l.closest(".fl-row").find(".fl-row-content > .fl-col-group").index(o),FLBuilder._addColGroup(l.closest(".fl-row").attr("data-node"),l.attr("data-cols"),n.hasClass("fl-drop-target-last")?r+1:r)):(s=l.closest(".fl-row"),r=s.length?e(FLBuilder._contentClass+" > .fl-row").index(s):0,FLBuilder._addRow(l.attr("data-cols"),n.hasClass("fl-drop-target-last")?r+1:r)),l.remove(),FLBuilder._showPanel(),e(".fl-builder-modules").siblings(".fl-builder-blocks-section-title").eq(0).trigger("click")}else s=e(".fl-node-dragging").removeClass("fl-node-dragging").show(),n.parent().hasClass("fl-builder-content")||(n.hasClass("fl-drop-target-last")?n.parent().after(s):n.parent().before(s),FLBuilder._reorderNode(s.attr("data-node"),s.index())),e(".fl-row-sortable-proxy").append(t.item)},_addRow:function(i,t,l){FLBuilder._showNodeLoadingPlaceholder(e(FLBuilder._contentClass),t),FLBuilder._newRowPosition=t,FLBuilder.ajax({action:"render_new_row",cols:i,position:t,module:l},FLBuilder._addRowComplete)},_addRowComplete:function(i){var t="object"==typeof i?i:FLBuilder._jsonParse(i),l=e(FLBuilder._contentClass),n=e(t.html).data("node");t.nodeParent=l,t.nodePosition=FLBuilder._newRowPosition,FLBuilder._renderLayout(t,function(){FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+n)),FLBuilder.triggerHook("didAddRow",n)})},_deleteRowClicked:function(i){var t=e(this).closest(".fl-row"),l=null;t.find(".fl-module").length?(l=confirm(FLBuilderStrings.deleteRowMessage),l&&FLBuilder._deleteRow(t)):FLBuilder._deleteRow(t),FLBuilder._removeAllOverlays(),i.stopPropagation()},_deleteRow:function(e){var i=e.attr("data-node");FLBuilder.ajax({action:"delete_node",node_id:i}),e.empty(),e.remove(),FLBuilder._setupEmptyLayout(),FLBuilder._removeRowOverlays(),FLBuilder.triggerHook("didDeleteRow",i)},_rowCopyClicked:function(i){var t=e(window),l=e(this).closest(".fl-row"),n=l.attr("data-node"),s=l.clone(),o=e(".fl-builder-settings[data-node]"),r=o.attr("data-node"),a=r===n?l:l.find('[data-node="'+r+'"]'),d=null;o.length&&a.length&&(d=FLBuilder._getSettings(o),FLBuilderSettingsConfig.nodes[r]=d),s.addClass("fl-node-"+n+"-clone fl-builder-node-clone"),s.find(".fl-block-overlay").remove(),l.after(s),FLBuilder._showNodeLoading(n+"-clone"),t.scrollTop()+t.height()<s.offset().top&&e("html, body").animate({scrollTop:s.offset().top+s.height()-t.height()},500),FLBuilder.ajax({action:"copy_row",node_id:n,settings:d,settings_id:r},function(i){var t=FLBuilder._jsonParse(i);t.nodeParent=e(FLBuilder._contentClass),t.nodePosition=e(FLBuilder._contentClass+" > .fl-row").index(s),t.duplicatedRow=n,t.onAddNewHTML=function(){s.remove()},FLBuilder._rowCopyComplete(t)}),i.stopPropagation()},_rowCopyComplete:function(e){FLBuilder._renderLayout(e,function(){FLBuilder.triggerHook("didDuplicateRow",{newNodeId:e.nodeId,oldNodeId:e.duplicatedRow})})},_rowSettingsClicked:function(i){var t=e(this),l=t.closest(".fl-row").attr("data-node"),n=t.closest(".fl-block-overlay-global").length>0,s=null;n&&"row"!=FLBuilderConfig.userTemplateType?FLBuilderConfig.userCanEditGlobalTemplates&&(s=window.open(e('.fl-row[data-node="'+l+'"]').attr("data-template-url")),s.FLBuilderGlobalNodeId=l):t.hasClass("fl-block-settings")&&FLBuilderSettingsForms.render({id:"row",nodeId:l,className:"fl-builder-row-settings",attrs:'data-node="'+l+'"',buttons:n||FLBuilderConfig.lite||FLBuilderConfig.simpleUi?[]:["save-as"],badges:n?[FLBuilderStrings.global]:[],settings:FLBuilderSettingsConfig.nodes[l],preview:{type:"row"}},function(){e("#fl-field-width select").on("change",FLBuilder._rowWidthChanged),e("#fl-field-content_width select").on("change",FLBuilder._rowWidthChanged)}),i.stopPropagation()},_rowWidthChanged:function(){var i=e("#fl-field-width select").val(),t=e("#fl-field-content_width select").val(),l=e("#fl-field-max_content_width");"fixed"==i||"full"==i&&"fixed"==t?l.show():l.hide()},_resetRowWidthClicked:function(i){var t=e(this),l=t.closest(".fl-row"),n=l.attr("data-node"),s=l.find(".fl-row-content"),o=FLBuilderConfig.global.row_width+"px",r=e(".fl-builder-row-settings");l.hasClass("fl-row-fixed-width")&&l.css("max-width",o),s.css("max-width",o),r.length&&r.find("[name=max_content_width]").val(""),FLBuilder.ajax({action:"resize_row_content",node:n,width:""}),FLBuilder._closeAllSubmenus(),FLBuilder.triggerHook("didResetRowWidth",n),i.stopPropagation()},_highlightEmptyCols:function(){var i="row"==FLBuilderConfig.userTemplateType||"column"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)",t=(e(FLBuilder._contentClass+" .fl-row"+i),e(FLBuilder._contentClass+" .fl-col"+i));t.removeClass("fl-col-highlight").find(".fl-col-content").css("height",""),t.each(function(){var i=e(this);0===i.find(".fl-module, .fl-col").length&&i.addClass("fl-col-highlight")})},_highlightRowsAndColsForDrag:function(i){var t="row"==FLBuilderConfig.userTemplateType?"":":not(.fl-node-global)";"column"==FLBuilderConfig.userTemplateType&&(t=":not(:first)"),e(FLBuilder._contentClass+" .fl-row").addClass("fl-row-highlight"),i&&i.closest(".fl-row-overlay").length||e(FLBuilder._contentClass+" .fl-col"+t).addClass("fl-col-highlight")},_removeEmptyRowAndColHighlights:function(){e(".fl-row-highlight").removeClass("fl-row-highlight"),e(".fl-col-highlight").removeClass("fl-col-highlight")},_adjustColHeightsForDrag:function(){var i="row"==FLBuilderConfig.userTemplateType?"":".fl-row:not(.fl-node-global) ",t="column"==FLBuilderConfig.userTemplateType?"":".fl-col:not(.fl-node-global) ",l=e(FLBuilder._contentClass),n=l.find(i+".fl-col-group:not(.fl-col-group-nested) > "+t+"> .fl-col-content"),s=l.find(i+".fl-col-group-nested "+t+".fl-col-content"),o=0;for(e(".fl-node-drag-init").hide();o<s.length;o++)FLBuilder._adjustColHeightForDrag(s.eq(o));for(o=0;o<n.length;o++)FLBuilder._adjustColHeightForDrag(n.eq(o));e(".fl-node-drag-init").show()},_adjustColHeightForDrag:function(e){e.find(".fl-module:visible, .fl-col:visible").length&&e.height(e.height()+45)},_showColHighlightGuide:function(){var i=e(this),t=i.find("a"),l=i.closest(".fl-col"),n=l.parents(".fl-col"),s=e('<div class="fl-col-highlight-guide"></div>'),o=null,r=i.closest(".fl-block-overlay").offset().top;(t.hasClass("fl-block-col-move-parent")||t.hasClass("fl-block-col-edit-parent"))&&(l=n),l.hasClass("fl-col-highlight")||(l.find("> .fl-col-content").append(s),l.addClass("fl-col-has-highlight-guide"),o=s.offset().top,o>r&&s.css("top",r-o+4+"px"))},_removeColHighlightGuides:function(){e(".fl-col-has-highlight-guide").removeClass("fl-col-has-highlight-guide"),e(".fl-col-highlight-guide").remove()},_colMouseenter:function(){var i=e(this),t=i.closest(".fl-col-group"),l=t.hasClass("fl-col-group-has-child-loading"),n=i.hasClass("fl-node-global"),s=i.parents(".fl-node-global").length>0,o=i.closest(".fl-col-group").find("> .fl-col").length,r=t.find("> .fl-col").index(i),a=0===r,d=o===r+1,u=i.find(".fl-col").length>0,c=i.find(".fl-module").length>0,f=i.parents(".fl-col"),h=f.closest(".fl-col-group"),g=f.length>0,p="undefined"!=typeof i.data("template-url"),b="column"==FLBuilderConfig.userTemplateType&&!g;numParentCols=g?h.find("> .fl-col").length:0,parentIndex=h.find("> .fl-col").index(f),parentFirst=!!g&&0===parentIndex,parentLast=!!g&&numParentCols===parentIndex+1,row=i.closest(".fl-row"),rowIsFixedWidth=!!row.find(".fl-row-fixed-width").addBack(".fl-row-fixed-width").length,userCanResizeRows=FLBuilderConfig.rowResize.userCanResizeRows,hasRules=i.hasClass("fl-node-has-rules"),template=wp.template("fl-col-overlay"),overlay=null,FLBuilderConfig.simpleUi&&!n||n&&s&&c&&!p||n&&"column"==FLBuilderConfig.userTemplateType&&c||!n&&i.find(".fl-module").length>0||i.find(".fl-builder-node-loading-placeholder").length>0||!c&&u||s&&u&&!p||i.closest(".fl-builder-node-loading").length||(i.hasClass("fl-block-overlay-active")||(FLBuilder._removeColOverlays(),FLBuilder._removeModuleOverlays(),overlay=FLBuilder._appendOverlay(i,template({global:n,groupLoading:l,numCols:o,first:a,last:d,isRootCol:b,hasChildCols:u,hasParentCol:g,parentFirst:parentFirst,parentLast:parentLast,numParentCols:numParentCols,rowIsFixedWidth:rowIsFixedWidth,userCanResizeRows:userCanResizeRows,hasRules:hasRules})),FLBuilder._buildOverlayOverflowMenu(overlay),FLBuilder._initColDragResizing()),e("body").addClass("fl-block-overlay-muted"))},_colMouseleave:function(i){var t=e(this),l=e(i.toElement)||e(i.relatedTarget),n=t.find(".fl-module").length>0,s=(t.hasClass("fl-node-global"),"undefined"!=typeof t.data("template-url")),o=l.is("#tiptip_holder"),r=l.closest("#tiptip_holder").length>0;o||r||n&&!s||(FLBuilder._removeColOverlays(),FLBuilder._removeColHighlightGuides(),FLBuilder._closeAllSubmenus())},_removeColOverlays:function(){var i=e(".fl-col");i.removeClass("fl-block-overlay-active"),i.find(".fl-col-overlay").remove(),e("body").removeClass("fl-block-overlay-muted"),FLBuilder._closeAllSubmenus()},_colDragHelper:function(){return e('<div class="fl-builder-block-drag-helper">'+FLBuilderStrings.column+"</div>")},_colDragInit:function(i){var t=e(i.target),l=e(".fl-col-sortable-proxy-item"),n=t.closest(".fl-col");t.hasClass("fl-block-col-move-parent")&&(n=n.parents(".fl-col")),n.addClass("fl-node-dragging"),FLBuilder._blockDragInit(i),FLBuilder._removeColHighlightGuides(),i.target=l[0],l.trigger(i)},_colDragStart:function(i,t){var l=e(".fl-node-dragging");l.hide(),FLBuilder._resetColumnWidths(l.parent()),FLBuilder._blockDragStart(i,t)},_colDragStop:function(i,t){FLBuilder._blockDragStop(i,t);var l=e(".fl-node-dragging").removeClass("fl-node-dragging").show(),n=l.attr("data-node"),s=t.item.parent(),o=l.parent(),r=o.attr("data-node");newGroup=s.closest(".fl-col-group"),newGroupId=newGroup.attr("data-node"),newRow=s.closest(".fl-row"),position=0,s.closest('[data-node="'+n+'"]').length?FLBuilder._resetColumnWidths(o):s.hasClass("fl-sortable-disabled")?FLBuilder._resetColumnWidths(o):s.hasClass("fl-col-sortable-proxy")?FLBuilder._resetColumnWidths(o):s.hasClass("fl-col-content")?(l.remove(),0===o.find(".fl-col").length&&o.remove(),position=s.find("> .fl-module, .fl-col-group, .fl-col-sortable-proxy-item").index(t.item),FLBuilder._addColGroup(s.closest(".fl-col").attr("data-node"),n,position)):s.hasClass("fl-col-drop-target")?(s.hasClass("fl-col-drop-target-last")?s.parent().after(l):s.parent().before(l),FLBuilder._resetColumnWidths(newGroup),r==newGroupId?FLBuilder.ajax({action:"reorder_col",node_id:n,position:l.index()}):FLBuilder.ajax({action:"move_col",node_id:n,new_parent:newGroupId,position:l.index(),resize:[r,newGroupId]}),FLBuilder._resizeLayout()):s.hasClass("fl-col-group-drop-target")?(l.remove(),0===o.find(".fl-col").length&&o.remove(),position=newRow.find(".fl-row-content > .fl-col-group").index(newGroup),position=s.hasClass("fl-drop-target-last")?position+1:position,FLBuilder._addColGroup(newRow.attr("data-node"),n,position)):s.hasClass("fl-row-drop-target")&&(l.remove(),position=s.closest(".fl-builder-content").find(".fl-row").index(newRow),position=s.hasClass("fl-drop-target-last")?position+1:position,FLBuilder._addRow(n,position)),0===o.find(".fl-col").length&&o.remove(),e(".fl-col-sortable-proxy").append(t.item),FLBuilder._highlightEmptyCols(),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder._closeAllSubmenus()},_colSettingsClicked:function(i){var t=e(this),l=t.closest(".fl-col"),n=(l.find("> .fl-col-content"),t.parent().find("ul.fl-builder-submenu").length>0),s=t.closest(".fl-block-overlay-global").length>0,o=t.closest(".fl-block-overlay-global").hasClass("fl-col-overlay"),r="column"!=FLBuilderConfig.userTemplateType&&"undefined"!=typeof l.attr("data-template-url"),a=null;FLBuilder._colResizing||s&&!FLBuilderConfig.userCanEditGlobalTemplates||n&&!t.hasClass("fl-col-overlay")||(t.hasClass("fl-block-col-edit-parent")&&(l=l.parents(".fl-col")),a=l.attr("data-node"),s&&o&&r?FLBuilderConfig.userCanEditGlobalTemplates&&(win=window.open(e('.fl-col[data-node="'+a+'"]').attr("data-template-url")),win.FLBuilderGlobalNodeId=a):FLBuilderSettingsForms.render({id:"col",nodeId:a,className:"fl-builder-col-settings",attrs:'data-node="'+a+'"',buttons:s||FLBuilderConfig.lite||FLBuilderConfig.simpleUi?[]:["save-as"],badges:s?[FLBuilderStrings.global]:[],settings:FLBuilderSettingsConfig.nodes[a],preview:{type:"col"}},function(){0===l.siblings(".fl-col").length&&e("#fl-field-size, #fl-field-equal_height, #fl-field-content_alignment").hide()}),i.stopPropagation())},_copyColClicked:function(i){var t=e(this).closest(".fl-col"),l=t.attr("data-node"),n=t.clone(),s=t.parent(),o=e(".fl-builder-settings[data-node]"),r=o.attr("data-node"),a=r===l?t:t.find('[data-node="'+r+'"]'),d=null;o.length&&a.length&&(d=FLBuilder._getSettings(o),FLBuilderSettingsConfig.nodes[r]=d),n.addClass("fl-node-"+l+"-clone fl-builder-node-clone"),n.find(".fl-block-overlay").remove(),t.after(n),FLBuilder._showNodeLoading(l+"-clone"),FLBuilder._resetColumnWidths(s),FLBuilder.ajax({action:"copy_col",node_id:l,settings:d,settings_id:r},function(e){var i=FLBuilder._jsonParse(e);i.nodeParent=s,i.nodePosition=n.index(),i.duplicatedColumn=l,i.onAddNewHTML=function(){n.remove()},FLBuilder._copyColComplete(i)}),i.stopPropagation()},_copyColComplete:function(e){FLBuilder._renderLayout(e,function(){FLBuilder._resetColumnWidths(e.nodeParent),FLBuilder.triggerHook("didDuplicateColumn",{newNodeId:e.nodeId,oldNodeId:e.duplicatedColumn})})},_deleteColClicked:function(i){var t=e(this),l=t.closest(".fl-col"),n=l.closest(".fl-col-group"),s=l.parents(".fl-col"),o=s.length>0,r=s.find("> .fl-col-content > .fl-module, > .fl-col-content > .fl-col-group"),a=l.siblings(".fl-col"),d=!0;l.find(".fl-module").length>0&&(d=confirm(FLBuilderStrings.deleteColumnMessage)),o&&1===r.length&&(0===a.length?l=s:1!==a.length||a.find(".fl-module").length||(l=n)),d&&(FLBuilder._deleteCol(l),FLBuilder._removeAllOverlays(),FLBuilder._highlightEmptyCols(),FLBuilder._resizeLayout()),i.stopPropagation()},_deleteCol:function(e){var i=e.attr("data-node"),t=e.closest(".fl-row"),l=e.closest(".fl-col-group"),n=0;e.remove(),rowCols=t.find(".fl-row-content > .fl-col-group > .fl-col"),groupCols=l.find(" > .fl-col"),0===rowCols.length&&"row"!=FLBuilderConfig.userTemplateType&&"column"!=FLBuilderConfig.userTemplateType?FLBuilder._deleteRow(t):(0===groupCols.length?l.remove():(n=6===groupCols.length?16.65:7===groupCols.length?14.28:Math.round(100/groupCols.length*100)/100,groupCols.css("width",n+"%"),FLBuilder.triggerHook("didResetColumnWidths",{cols:groupCols})),FLBuilder.ajax({action:"delete_col",node_id:i,new_width:n}),FLBuilder._initDropTargets(),FLBuilder._initSortables(),FLBuilder.triggerHook("didDeleteColumn",i))},_addCols:function(e,i,t,l,n){var s=e.closest(".fl-col-group"),o=s.find(".fl-col").index(e);t="undefined"==typeof t?"1-col":t,l="undefined"!=typeof l&&l,"after"==i&&o++,FLBuilder._showNodeLoadingPlaceholder(s,o),FLBuilder._removeAllOverlays(),FLBuilder.ajax({action:"render_new_columns",node_id:e.attr("data-node"),insert:i,type:t,nested:l?1:0,module:n},FLBuilder._addColsComplete)},_addColsComplete:function(i){var t="object"==typeof i?i:FLBuilder._jsonParse(i);t.nodeParent=FLBuilder._newColParent,t.nodePosition=FLBuilder._newColPosition,FLBuilder._renderLayout(t,function(){FLBuilder._removeNodeLoadingPlaceholder(e(".fl-node-"+t.nodeId)),FLBuilder.triggerHook("didAddColumn",t.nodeId),FLBuilder.triggerHook("didResetColumnWidths",{cols:e(".fl-node-"+t.nodeId).find("> .fl-col")})})},_addColGroup:function(i,t,l,n){var s=e(".fl-node-"+i);FLBuilder._newColGroupPosition=l,s.hasClass("fl-col")?FLBuilder._newColGroupParent=s.find(" > .fl-col-content"):FLBuilder._newColGroupParent=s.find(".fl-row-content"),
|
|
|
|
|
|
|
|
|
|