Formidable Forms – Form Builder for WordPress - Version 5.0.08

Version Description

  • Deprecated: Calls to FrmFormsController::preview will no longer try to load WordPress if it is not already initialized. This could cause issues for users that still use old preview links (see https://formidableforms.com/knowledgebase/php-examples/#kb-use-the-old-preview-links for an example).
  • Security: Unsafe HTML will now be stripped from global message defaults, whitelabel settings, and when importing forms and fields with XML if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
  • Updated Bootstrap used in back end to version 3.4.1.
  • A few images that were being loaded from S3 and CDN urls are now included in the plugin instead.
Download this release

Release Info

Developer formidableforms
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 5.0.08
Comparing to
See all releases

Code changes from version 5.0.07 to 5.0.08

classes/controllers/FrmAppController.php CHANGED
@@ -455,7 +455,7 @@ class FrmAppController {
455
 
456
  wp_register_script( 'formidable_admin', FrmAppHelper::plugin_url() . '/js/formidable_admin.js', $dependecies, $version, true );
457
  wp_register_style( 'formidable-admin', FrmAppHelper::plugin_url() . '/css/frm_admin.css', array(), $version );
458
- wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() . '/js/bootstrap.min.js', array( 'jquery' ), '3.3.4' );
459
  wp_register_style( 'formidable-grids', FrmAppHelper::plugin_url() . '/css/frm_grids.css', array(), $version );
460
 
461
  // load multselect js
455
 
456
  wp_register_script( 'formidable_admin', FrmAppHelper::plugin_url() . '/js/formidable_admin.js', $dependecies, $version, true );
457
  wp_register_style( 'formidable-admin', FrmAppHelper::plugin_url() . '/css/frm_admin.css', array(), $version );
458
+ wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() . '/js/bootstrap.min.js', array( 'jquery' ), '3.4.1' );
459
  wp_register_style( 'formidable-grids', FrmAppHelper::plugin_url() . '/css/frm_grids.css', array(), $version );
460
 
461
  // load multselect js
classes/controllers/FrmFormsController.php CHANGED
@@ -44,7 +44,10 @@ class FrmFormsController {
44
  * @since 4.06.03
45
  */
46
  public static function logic_tip() {
47
- echo '<a href="javascript:void(0)" class="frm_noallow frm_show_upgrade frm_add_logic_link" data-upgrade="' . esc_attr__( 'Conditional Logic options', 'formidable' ) . '" data-message="' . esc_attr__( 'Only show the fields you need and create branching forms. Upgrade to get conditional logic and question branching.', 'formidable' ) . esc_attr( ' <img src="https://cdn.formidableforms.com/wp-content/themes/fp2015git/images/survey/survey-logic.png" srcset="https://cdn.formidableforms.com/wp-content/themes/fp2015git/images/survey/survey-logic@2x.png 2x" alt="Conditional Logic options"/>' ) . '" data-medium="builder" data-content="logic">';
 
 
 
48
  FrmAppHelper::icon_by_class( 'frmfont frm_swap_icon' );
49
  esc_html_e( 'Add Conditional Logic', 'formidable' );
50
  echo '</a>';
@@ -273,8 +276,6 @@ class FrmFormsController {
273
  global $frm_vars;
274
  $frm_vars['preview'] = true;
275
 
276
- self::load_wp();
277
-
278
  $include_theme = FrmAppHelper::get_param( 'theme', '', 'get', 'absint' );
279
  if ( $include_theme ) {
280
  self::set_preview_query();
@@ -286,19 +287,6 @@ class FrmFormsController {
286
  wp_die();
287
  }
288
 
289
- /**
290
- * @since 3.0
291
- */
292
- private static function load_wp() {
293
- if ( ! defined( 'ABSPATH' ) && ! defined( 'XMLRPC_REQUEST' ) ) {
294
- global $wp;
295
- $root = dirname( dirname( dirname( dirname( __FILE__ ) ) ) );
296
- include_once( $root . '/wp-config.php' );
297
- $wp->init();
298
- $wp->register_globals();
299
- }
300
- }
301
-
302
  private static function set_preview_query() {
303
  $random_page = get_posts(
304
  array(
@@ -1903,12 +1891,12 @@ class FrmFormsController {
1903
 
1904
  do_action( 'frm_success_action', $args['conf_method'], $args['form'], $args['form']->options, $args['entry_id'], $extra_args );
1905
 
1906
- $opt = ( ! isset( $args['action'] ) || $args['action'] == 'create' ) ? 'success' : 'edit';
1907
 
1908
  $args['success_opt'] = $opt;
1909
- if ( $args['conf_method'] == 'page' && is_numeric( $args['form']->options[ $opt . '_page_id' ] ) ) {
1910
  self::load_page_after_submit( $args );
1911
- } elseif ( $args['conf_method'] == 'redirect' ) {
1912
  self::redirect_after_submit( $args );
1913
  } else {
1914
  self::show_message_after_save( $args );
44
  * @since 4.06.03
45
  */
46
  public static function logic_tip() {
47
+ $images_url = FrmAppHelper::plugin_url() . '/images/';
48
+ $data_message = __( 'Only show the fields you need and create branching forms. Upgrade to get conditional logic and question branching.', 'formidable' );
49
+ $data_message .= ' <img src="' . esc_attr( $images_url ) . '/survey-logic.png" srcset="' . esc_attr( $images_url ) . 'survey-logic@2x.png 2x" alt="' . esc_attr__( 'Conditional Logic options', 'formidable' ) . '"/>';
50
+ echo '<a href="javascript:void(0)" class="frm_noallow frm_show_upgrade frm_add_logic_link" data-upgrade="' . esc_attr__( 'Conditional Logic options', 'formidable' ) . '" data-message="' . esc_attr( $data_message ) . '" data-medium="builder" data-content="logic">';
51
  FrmAppHelper::icon_by_class( 'frmfont frm_swap_icon' );
52
  esc_html_e( 'Add Conditional Logic', 'formidable' );
53
  echo '</a>';
276
  global $frm_vars;
277
  $frm_vars['preview'] = true;
278
 
 
 
279
  $include_theme = FrmAppHelper::get_param( 'theme', '', 'get', 'absint' );
280
  if ( $include_theme ) {
281
  self::set_preview_query();
287
  wp_die();
288
  }
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  private static function set_preview_query() {
291
  $random_page = get_posts(
292
  array(
1891
 
1892
  do_action( 'frm_success_action', $args['conf_method'], $args['form'], $args['form']->options, $args['entry_id'], $extra_args );
1893
 
1894
+ $opt = ( ! isset( $args['action'] ) || $args['action'] === 'create' ) ? 'success' : 'edit';
1895
 
1896
  $args['success_opt'] = $opt;
1897
+ if ( $args['conf_method'] === 'page' && is_numeric( $args['form']->options[ $opt . '_page_id' ] ) ) {
1898
  self::load_page_after_submit( $args );
1899
+ } elseif ( $args['conf_method'] === 'redirect' ) {
1900
  self::redirect_after_submit( $args );
1901
  } else {
1902
  self::show_message_after_save( $args );
classes/controllers/FrmStylesController.php CHANGED
@@ -59,7 +59,7 @@ class FrmStylesController {
59
  self::load_pro_hooks();
60
 
61
  $style_tab = FrmAppHelper::get_param( 'frm_action', '', 'get', 'sanitize_title' );
62
- if ( $style_tab == 'manage' || $style_tab == 'custom_css' ) {
63
  // we only need to load these styles/scripts on the styler page
64
  return;
65
  }
59
  self::load_pro_hooks();
60
 
61
  $style_tab = FrmAppHelper::get_param( 'frm_action', '', 'get', 'sanitize_title' );
62
+ if ( $style_tab === 'manage' || $style_tab === 'custom_css' ) {
63
  // we only need to load these styles/scripts on the styler page
64
  return;
65
  }
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '5.0.07';
15
 
16
  /**
17
  * @since 1.07.02
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '5.0.08';
15
 
16
  /**
17
  * @since 1.07.02
classes/helpers/FrmStylesHelper.php CHANGED
@@ -432,7 +432,10 @@ class FrmStylesHelper {
432
  $color = trim( $color );
433
  if ( empty( $color ) ) {
434
  $color = $default;
435
- } elseif ( strpos( $color, '#' ) === false ) {
 
 
 
436
  $color = '#' . $color;
437
  }
438
  }
432
  $color = trim( $color );
433
  if ( empty( $color ) ) {
434
  $color = $default;
435
+ } elseif ( false !== strpos( $color, 'rgb(' ) ) {
436
+ $color = str_replace( 'rgb(', 'rgba(', $color );
437
+ $color = str_replace( ')', ',1)', $color );
438
+ } elseif ( strpos( $color, '#' ) === false && false === strpos( $color, 'rgba(' ) ) {
439
  $color = '#' . $color;
440
  }
441
  }
classes/helpers/FrmTipsHelper.php CHANGED
@@ -232,6 +232,22 @@ class FrmTipsHelper {
232
  'tip' => __( 'Make your sidebar and footer forms stand out.', 'formidable' ),
233
  'call' => __( 'Use multiple style templates.', 'formidable' ),
234
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  );
236
 
237
  return $tips;
232
  'tip' => __( 'Make your sidebar and footer forms stand out.', 'formidable' ),
233
  'call' => __( 'Use multiple style templates.', 'formidable' ),
234
  ),
235
+ array(
236
+ 'link' => array(
237
+ 'content' => 'style',
238
+ 'param' => 'bg-image-style-settings',
239
+ ),
240
+ 'tip' => __( 'Want to add a background image?', 'formidable' ),
241
+ 'call' => __( 'Upgrade to Pro.', 'formidable' ),
242
+ ),
243
+ array(
244
+ 'link' => array(
245
+ 'content' => 'style',
246
+ 'param' => 'bg-image-style-settings',
247
+ ),
248
+ 'tip' => __( 'Want to set a color with an alpha slider?', 'formidable' ),
249
+ 'call' => __( 'Upgrade to Pro.', 'formidable' ),
250
+ ),
251
  );
252
 
253
  return $tips;
classes/models/FrmField.php CHANGED
@@ -72,7 +72,8 @@ class FrmField {
72
  }
73
 
74
  public static function pro_field_selection() {
75
- $fields = array(
 
76
  'file' => array(
77
  'name' => __( 'File Upload', 'formidable' ),
78
  'icon' => 'frm_icon_font frm_upload_icon',
@@ -93,7 +94,7 @@ class FrmField {
93
  'scale' => array(
94
  'name' => __( 'Scale', 'formidable' ),
95
  'icon' => 'frm_icon_font frm_linear_scale_icon',
96
- 'message' => 'Add a set of radio buttons with whatever range you choose. <img src="https://s3.amazonaws.com/fp.strategy11.com/images/knowledgebase/scale_field.png" alt="Scale Field" />',
97
  ),
98
  'star' => array(
99
  'name' => __( 'Star Rating', 'formidable' ),
@@ -115,12 +116,12 @@ class FrmField {
115
  'lookup' => array(
116
  'name' => __( 'Lookup', 'formidable' ),
117
  'icon' => 'frm_icon_font frm_search_icon',
118
- 'message' => 'Filter the options in the next field and automatically add values to other fields. Upgrade to Pro to get Lookup fields and more. <img src="https://s3.amazonaws.com/fp.strategy11.com/images/knowledgebase/look-up_year-make-model.gif" alt="cascading lookup fields" />',
119
  ),
120
  'divider|repeat' => array(
121
  'name' => __( 'Repeater', 'formidable' ),
122
  'icon' => 'frm_icon_font frm_repeater_icon',
123
- 'message' => 'Allow your visitors to add new sets of fields while filling out forms. Increase conversions while saving building time and server resources. <img src="https://s3.amazonaws.com/fp.strategy11.com/images/knowledgebase/repeatable-section_frontend.gif" alt="Dynamically Add Form Fields with repeatable sections" />',
124
  ),
125
  'end_divider' => array(
126
  'name' => __( 'Section Buttons', 'formidable' ),
@@ -186,7 +187,7 @@ class FrmField {
186
  'icon' => 'frm_icon_font frm_calendar_icon frm_show_upgrade',
187
  'require' => 'Simply Schedule Appointments',
188
  'message' => 'Appointment fields are an integration with <a href="https://simplyscheduleappointments.com/meet/formidable/">Simply Schedule Appointments</a>. Get started now to schedule appointments directly from your forms.
189
- <img src="https://s3.amazonaws.com/fp.strategy11.com/images/appointments/appointments.png" alt="Scheduling" />',
190
  'link' => 'https://simplyscheduleappointments.com/meet/formidable/',
191
  ),
192
  'product' => array(
@@ -230,12 +231,13 @@ class FrmField {
230
  $key = isset( $values['field_key'] ) ? $values['field_key'] : $values['name'];
231
  $new_values['field_key'] = FrmAppHelper::get_unique_key( $key, $wpdb->prefix . 'frm_fields', 'field_key' );
232
 
 
 
233
  foreach ( array( 'name', 'description', 'type', 'default_value' ) as $col ) {
234
  $new_values[ $col ] = $values[ $col ];
235
  }
236
 
237
- $new_values['options'] = $values['options'];
238
-
239
  $new_values['field_order'] = isset( $values['field_order'] ) ? (int) $values['field_order'] : null;
240
  $new_values['required'] = isset( $values['required'] ) ? (int) $values['required'] : 0;
241
  $new_values['form_id'] = isset( $values['form_id'] ) ? (int) $values['form_id'] : null;
@@ -260,9 +262,6 @@ class FrmField {
260
  unset( $k, $v );
261
  }
262
 
263
- //if(isset($values['id']) and is_numeric($values['id']))
264
- // $new_values['id'] = $values['id'];
265
-
266
  $query_results = $wpdb->insert( $wpdb->prefix . 'frm_fields', $new_values );
267
  $new_id = 0;
268
  if ( $query_results ) {
@@ -285,6 +284,16 @@ class FrmField {
285
  }
286
  }
287
 
 
 
 
 
 
 
 
 
 
 
288
  /**
289
  * Process the field duplication.
290
  *
@@ -409,7 +418,9 @@ class FrmField {
409
  // serialize array values
410
  foreach ( array( 'field_options', 'options' ) as $opt ) {
411
  if ( isset( $values[ $opt ] ) && is_array( $values[ $opt ] ) ) {
412
- $values[ $opt ] = FrmAppHelper::maybe_filter_array( $values[ $opt ], array( 'custom_html' ) );
 
 
413
  $values[ $opt ] = serialize( $values[ $opt ] );
414
  }
415
  }
72
  }
73
 
74
  public static function pro_field_selection() {
75
+ $images_url = FrmAppHelper::plugin_url() . '/images/';
76
+ $fields = array(
77
  'file' => array(
78
  'name' => __( 'File Upload', 'formidable' ),
79
  'icon' => 'frm_icon_font frm_upload_icon',
94
  'scale' => array(
95
  'name' => __( 'Scale', 'formidable' ),
96
  'icon' => 'frm_icon_font frm_linear_scale_icon',
97
+ 'message' => 'Add a set of radio buttons with whatever range you choose. <img src="' . esc_attr( $images_url ) . 'scale_field.png" alt="Scale Field" />',
98
  ),
99
  'star' => array(
100
  'name' => __( 'Star Rating', 'formidable' ),
116
  'lookup' => array(
117
  'name' => __( 'Lookup', 'formidable' ),
118
  'icon' => 'frm_icon_font frm_search_icon',
119
+ 'message' => 'Filter the options in the next field and automatically add values to other fields. Upgrade to Pro to get Lookup fields and more. <img src="' . esc_attr( $images_url ) . 'look-up_year-make-model.gif" alt="cascading lookup fields" />',
120
  ),
121
  'divider|repeat' => array(
122
  'name' => __( 'Repeater', 'formidable' ),
123
  'icon' => 'frm_icon_font frm_repeater_icon',
124
+ 'message' => 'Allow your visitors to add new sets of fields while filling out forms. Increase conversions while saving building time and server resources. <img src="' . esc_attr( $images_url ) . 'repeatable-section_frontend.gif" alt="Dynamically Add Form Fields with repeatable sections" />',
125
  ),
126
  'end_divider' => array(
127
  'name' => __( 'Section Buttons', 'formidable' ),
187
  'icon' => 'frm_icon_font frm_calendar_icon frm_show_upgrade',
188
  'require' => 'Simply Schedule Appointments',
189
  'message' => 'Appointment fields are an integration with <a href="https://simplyscheduleappointments.com/meet/formidable/">Simply Schedule Appointments</a>. Get started now to schedule appointments directly from your forms.
190
+ <img src="' . esc_attr( $images_url ) . 'appointments.png" alt="Scheduling" />',
191
  'link' => 'https://simplyscheduleappointments.com/meet/formidable/',
192
  ),
193
  'product' => array(
231
  $key = isset( $values['field_key'] ) ? $values['field_key'] : $values['name'];
232
  $new_values['field_key'] = FrmAppHelper::get_unique_key( $key, $wpdb->prefix . 'frm_fields', 'field_key' );
233
 
234
+ $values = FrmAppHelper::maybe_filter_array( $values, array( 'name', 'description' ) );
235
+
236
  foreach ( array( 'name', 'description', 'type', 'default_value' ) as $col ) {
237
  $new_values[ $col ] = $values[ $col ];
238
  }
239
 
240
+ $new_values['options'] = self::maybe_filter_options( $values['options'] );
 
241
  $new_values['field_order'] = isset( $values['field_order'] ) ? (int) $values['field_order'] : null;
242
  $new_values['required'] = isset( $values['required'] ) ? (int) $values['required'] : 0;
243
  $new_values['form_id'] = isset( $values['form_id'] ) ? (int) $values['form_id'] : null;
262
  unset( $k, $v );
263
  }
264
 
 
 
 
265
  $query_results = $wpdb->insert( $wpdb->prefix . 'frm_fields', $new_values );
266
  $new_id = 0;
267
  if ( $query_results ) {
284
  }
285
  }
286
 
287
+ /**
288
+ * @since 5.0.08
289
+ *
290
+ * @param array $options
291
+ * @return array
292
+ */
293
+ private static function maybe_filter_options( $options ) {
294
+ return FrmAppHelper::maybe_filter_array( $options, array( 'custom_html' ) );
295
+ }
296
+
297
  /**
298
  * Process the field duplication.
299
  *
418
  // serialize array values
419
  foreach ( array( 'field_options', 'options' ) as $opt ) {
420
  if ( isset( $values[ $opt ] ) && is_array( $values[ $opt ] ) ) {
421
+ if ( 'field_options' === $opt ) {
422
+ $values[ $opt ] = self::maybe_filter_options( $values[ $opt ] );
423
+ }
424
  $values[ $opt ] = serialize( $values[ $opt ] );
425
  }
426
  }
classes/models/FrmForm.php CHANGED
@@ -6,11 +6,14 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  class FrmForm {
7
 
8
  /**
 
9
  * @return int|boolean id on success or false on failure
10
  */
11
  public static function create( $values ) {
12
  global $wpdb;
13
 
 
 
14
  $new_values = array(
15
  'form_key' => FrmAppHelper::get_unique_key( $values['form_key'], $wpdb->prefix . 'frm_forms', 'form_key' ),
16
  'name' => $values['name'],
@@ -31,11 +34,9 @@ class FrmForm {
31
  $options['submit_html'] = isset( $values['options']['submit_html'] ) ? $values['options']['submit_html'] : FrmFormsHelper::get_default_html( 'submit' );
32
 
33
  $options = apply_filters( 'frm_form_options_before_update', $options, $values );
 
34
  $new_values['options'] = serialize( $options );
35
 
36
- //if(isset($values['id']) && is_numeric($values['id']))
37
- // $new_values['id'] = $values['id'];
38
-
39
  $wpdb->insert( $wpdb->prefix . 'frm_forms', $new_values );
40
 
41
  $id = $wpdb->insert_id;
@@ -46,6 +47,16 @@ class FrmForm {
46
  return $id;
47
  }
48
 
 
 
 
 
 
 
 
 
 
 
49
  /**
50
  * @return int|boolean ID on success or false on failure
51
  */
@@ -185,7 +196,7 @@ class FrmForm {
185
  $options['submit_html'] = ( isset( $values['options']['submit_html'] ) && '' !== $values['options']['submit_html'] ) ? $values['options']['submit_html'] : FrmFormsHelper::get_default_html( 'submit' );
186
 
187
  $options = apply_filters( 'frm_form_options_before_update', $options, $values );
188
- $options = FrmAppHelper::maybe_filter_array( $options, array( 'submit_value', 'success_msg', 'before_html', 'after_html', 'submit_html' ) );
189
  $new_values['options'] = serialize( $options );
190
 
191
  return $new_values;
6
  class FrmForm {
7
 
8
  /**
9
+ * @param array $values
10
  * @return int|boolean id on success or false on failure
11
  */
12
  public static function create( $values ) {
13
  global $wpdb;
14
 
15
+ $values = FrmAppHelper::maybe_filter_array( $values, array( 'name', 'description' ) );
16
+
17
  $new_values = array(
18
  'form_key' => FrmAppHelper::get_unique_key( $values['form_key'], $wpdb->prefix . 'frm_forms', 'form_key' ),
19
  'name' => $values['name'],
34
  $options['submit_html'] = isset( $values['options']['submit_html'] ) ? $values['options']['submit_html'] : FrmFormsHelper::get_default_html( 'submit' );
35
 
36
  $options = apply_filters( 'frm_form_options_before_update', $options, $values );
37
+ $options = self::maybe_filter_form_options( $options );
38
  $new_values['options'] = serialize( $options );
39
 
 
 
 
40
  $wpdb->insert( $wpdb->prefix . 'frm_forms', $new_values );
41
 
42
  $id = $wpdb->insert_id;
47
  return $id;
48
  }
49
 
50
+ /**
51
+ * @since 5.0.08
52
+ *
53
+ * @param array $options
54
+ * @return array
55
+ */
56
+ private static function maybe_filter_form_options( $options ) {
57
+ return FrmAppHelper::maybe_filter_array( $options, array( 'submit_value', 'success_msg', 'before_html', 'after_html', 'submit_html' ) );
58
+ }
59
+
60
  /**
61
  * @return int|boolean ID on success or false on failure
62
  */
196
  $options['submit_html'] = ( isset( $values['options']['submit_html'] ) && '' !== $values['options']['submit_html'] ) ? $values['options']['submit_html'] : FrmFormsHelper::get_default_html( 'submit' );
197
 
198
  $options = apply_filters( 'frm_form_options_before_update', $options, $values );
199
+ $options = self::maybe_filter_form_options( $options );
200
  $new_values['options'] = serialize( $options );
201
 
202
  return $new_values;
classes/models/FrmSettings.php CHANGED
@@ -144,8 +144,21 @@ class FrmSettings {
144
  }
145
  }
146
 
 
 
 
147
  public function fill_with_defaults( $params = array() ) {
148
- $settings = $this->default_options();
 
 
 
 
 
 
 
 
 
 
149
 
150
  foreach ( $settings as $setting => $default ) {
151
  if ( isset( $params[ 'frm_' . $setting ] ) ) {
@@ -154,10 +167,14 @@ class FrmSettings {
154
  $this->{$setting} = $default;
155
  }
156
 
157
- if ( $setting == 'menu' && empty( $this->{$setting} ) ) {
158
  $this->{$setting} = $default;
159
  }
160
 
 
 
 
 
161
  unset( $setting, $default );
162
  }
163
  }
144
  }
145
  }
146
 
147
+ /**
148
+ * @param array $params
149
+ */
150
  public function fill_with_defaults( $params = array() ) {
151
+ $settings = $this->default_options();
152
+ $filter_html = ! FrmAppHelper::allow_unfiltered_html();
153
+
154
+ if ( $filter_html ) {
155
+ $filter_keys = array( 'failed_msg', 'blank_msg', 'invalid_msg', 'unique_msg', 'success_msg', 'submit_value', 'login_msg', 'menu' );
156
+ if ( ! empty( $params['additional_filter_keys'] ) ) {
157
+ $filter_keys = array_merge( $filter_keys, $params['additional_filter_keys'] );
158
+ }
159
+ } else {
160
+ $filter_keys = array();
161
+ }
162
 
163
  foreach ( $settings as $setting => $default ) {
164
  if ( isset( $params[ 'frm_' . $setting ] ) ) {
167
  $this->{$setting} = $default;
168
  }
169
 
170
+ if ( $setting === 'menu' && empty( $this->{$setting} ) ) {
171
  $this->{$setting} = $default;
172
  }
173
 
174
+ if ( $filter_html && in_array( $setting, $filter_keys, true ) ) {
175
+ $this->{$setting} = FrmAppHelper::kses( $this->{$setting}, 'all' );
176
+ }
177
+
178
  unset( $setting, $default );
179
  }
180
  }
classes/views/styles/_buttons.php CHANGED
@@ -42,17 +42,17 @@ if ( ! defined( 'ABSPATH' ) ) {
42
 
43
  <p class="frm4 frm_first frm_form_field">
44
  <label for="frm_submit_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
45
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_bg_color' ) ); ?>" id="frm_submit_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_bg_color'] ); ?>" />
46
  </p>
47
 
48
  <p class="frm4 frm_form_field">
49
  <label for="frm_submit_text_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
50
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_text_color' ) ); ?>" id="frm_submit_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_text_color'] ); ?>" />
51
  </p>
52
 
53
  <p class="frm4 frm_first frm_form_field">
54
  <label for="frm_submit_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
55
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_border_color' ) ); ?>" id="frm_submit_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_border_color'] ); ?>" />
56
  </p>
57
 
58
  <p class="frm4 frm_form_field">
@@ -62,7 +62,7 @@ if ( ! defined( 'ABSPATH' ) ) {
62
 
63
  <p class="frm4 frm_end frm_form_field">
64
  <label for="frm_submit_shadow_color"><?php esc_html_e( 'Shadow', 'formidable' ); ?></label>
65
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_shadow_color' ) ); ?>" id="frm_submit_shadow_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_shadow_color'] ); ?>" />
66
  </p>
67
 
68
  <p class="frm_clear">
@@ -85,17 +85,17 @@ if ( ! defined( 'ABSPATH' ) ) {
85
  </h4>
86
  <p class="frm4 frm_first frm_form_field">
87
  <label for="frm_submit_hover_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
88
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_bg_color' ) ); ?>" id="frm_submit_hover_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_bg_color'] ); ?>" />
89
  </p>
90
 
91
  <p class="frm4 frm_form_field">
92
  <label for="frm_submit_hover_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
93
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_color' ) ); ?>" id="frm_submit_hover_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_color'] ); ?>" />
94
  </p>
95
 
96
  <p class="frm4 frm_end frm_form_field">
97
  <label for="frm_submit_hover_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
98
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_border_color' ) ); ?>" id="frm_submit_hover_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_border_color'] ); ?>" />
99
  </p>
100
 
101
  <h4 class="frm_clear">
@@ -103,15 +103,15 @@ if ( ! defined( 'ABSPATH' ) ) {
103
  </h4>
104
  <p class="frm4 frm_first frm_form_field">
105
  <label for="frm_submit_active_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
106
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_bg_color' ) ); ?>" id="frm_submit_active_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_bg_color'] ); ?>" />
107
  </p>
108
 
109
  <p class="frm4 frm_form_field">
110
  <label for="frm_submit_active_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
111
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_color' ) ); ?>" id="frm_submit_active_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_color'] ); ?>" />
112
  </p>
113
 
114
  <p class="frm4 frm_end frm_form_field">
115
  <label for="frm_submit_active_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
116
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_border_color' ) ); ?>" id="frm_submit_active_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_border_color'] ); ?>" />
117
  </p>
42
 
43
  <p class="frm4 frm_first frm_form_field">
44
  <label for="frm_submit_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
45
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_bg_color' ) ); ?>" id="frm_submit_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_bg_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_bg_color' ); ?> />
46
  </p>
47
 
48
  <p class="frm4 frm_form_field">
49
  <label for="frm_submit_text_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
50
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_text_color' ) ); ?>" id="frm_submit_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_text_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_text_color' ); ?> />
51
  </p>
52
 
53
  <p class="frm4 frm_first frm_form_field">
54
  <label for="frm_submit_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
55
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_border_color' ) ); ?>" id="frm_submit_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_border_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_border_color' ); ?> />
56
  </p>
57
 
58
  <p class="frm4 frm_form_field">
62
 
63
  <p class="frm4 frm_end frm_form_field">
64
  <label for="frm_submit_shadow_color"><?php esc_html_e( 'Shadow', 'formidable' ); ?></label>
65
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_shadow_color' ) ); ?>" id="frm_submit_shadow_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_shadow_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_shadow_color' ); ?> />
66
  </p>
67
 
68
  <p class="frm_clear">
85
  </h4>
86
  <p class="frm4 frm_first frm_form_field">
87
  <label for="frm_submit_hover_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
88
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_bg_color' ) ); ?>" id="frm_submit_hover_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_bg_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_hover_bg_color' ); ?> />
89
  </p>
90
 
91
  <p class="frm4 frm_form_field">
92
  <label for="frm_submit_hover_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
93
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_color' ) ); ?>" id="frm_submit_hover_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_hover_color' ); ?> />
94
  </p>
95
 
96
  <p class="frm4 frm_end frm_form_field">
97
  <label for="frm_submit_hover_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
98
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_hover_border_color' ) ); ?>" id="frm_submit_hover_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_hover_border_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_hover_border_color' ); ?> />
99
  </p>
100
 
101
  <h4 class="frm_clear">
103
  </h4>
104
  <p class="frm4 frm_first frm_form_field">
105
  <label for="frm_submit_active_bg_color"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
106
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_bg_color' ) ); ?>" id="frm_submit_active_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_bg_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_active_bg_color' ); ?> />
107
  </p>
108
 
109
  <p class="frm4 frm_form_field">
110
  <label for="frm_submit_active_color"><?php esc_html_e( 'Text', 'formidable' ); ?></label>
111
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_color' ) ); ?>" id="frm_submit_active_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_active_color' ); ?> />
112
  </p>
113
 
114
  <p class="frm4 frm_end frm_form_field">
115
  <label for="frm_submit_active_border_color"><?php esc_html_e( 'Border', 'formidable' ); ?></label>
116
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'submit_active_border_color' ) ); ?>" id="frm_submit_active_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['submit_active_border_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'submit_active_border_color' ); ?> />
117
  </p>
classes/views/styles/_check-box-radio-fields.php CHANGED
@@ -29,7 +29,7 @@ if ( ! defined( 'ABSPATH' ) ) {
29
 
30
  <p class="frm4 frm_first frm_form_field">
31
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
32
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'check_label_color' ) ); ?>" id="frm_check_label_color" class="hex" value="<?php echo esc_attr( $style->post_content['check_label_color'] ); ?>" />
33
  </p>
34
  <p class="frm4 frm_form_field">
35
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
29
 
30
  <p class="frm4 frm_first frm_form_field">
31
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
32
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'check_label_color' ) ); ?>" id="frm_check_label_color" class="hex" value="<?php echo esc_attr( $style->post_content['check_label_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'check_label_color' ); ?> />
33
  </p>
34
  <p class="frm4 frm_form_field">
35
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
classes/views/styles/_field-colors.php CHANGED
@@ -5,15 +5,15 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
8
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color' ) ); ?>" id="frm_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color'] ); ?>" />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
12
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color' ) ); ?>" id="frm_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['text_color'] ); ?>" />
13
  </p>
14
  <p class="frm4 frm_first frm_form_field">
15
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
16
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color' ) ); ?>" id="frm_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['border_color'] ); ?>" />
17
  </p>
18
  <p class="frm4 frm_form_field">
19
  <label><?php esc_html_e( 'Thickness', 'formidable' ); ?></label>
@@ -47,11 +47,11 @@ if ( ! defined( 'ABSPATH' ) ) {
47
  <h4><span><?php esc_html_e( 'Active Style', 'formidable' ); ?></span></h4>
48
  <p class="frm4 frm_first frm_form_field">
49
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
50
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_active' ) ); ?>" id="frm_bg_color_active" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_active'] ); ?>" />
51
  </p>
52
  <p class="frm4 frm_form_field">
53
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
54
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_active' ) ); ?>" id="frm_border_color_active" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_active'] ); ?>" />
55
  </p>
56
 
57
  <p class="frm_clear frm_no_bottom_margin">
@@ -64,15 +64,15 @@ if ( ! defined( 'ABSPATH' ) ) {
64
  <h4><span><?php esc_html_e( 'Error Style', 'formidable' ); ?></span></h4>
65
  <p class="frm4 frm_first frm_form_field">
66
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
67
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_error' ) ); ?>" id="frm_bg_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_error'] ); ?>" />
68
  </p>
69
  <p class="frm4 frm_form_field">
70
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
71
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color_error' ) ); ?>" id="frm_text_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['text_color_error'] ); ?>" />
72
  </p>
73
  <p class="frm4 frm_first frm_form_field">
74
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
75
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_error' ) ); ?>" id="frm_border_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_error'] ); ?>" />
76
  </p>
77
  <p class="frm4 frm_first frm_form_field">
78
  <label><?php esc_html_e( 'Thickness', 'formidable' ); ?></label>
@@ -101,13 +101,13 @@ if ( ! defined( 'ABSPATH' ) ) {
101
  </h4>
102
  <p class="frm4 frm_first frm_form_field">
103
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
104
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_disabled' ) ); ?>" id="frm_bg_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_disabled'] ); ?>" />
105
  </p>
106
  <p class="frm4 frm_form_field">
107
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
108
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color_disabled' ) ); ?>" id="frm_text_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['text_color_disabled'] ); ?>" />
109
  </p>
110
  <p class="frm4 frm_end frm_form_field">
111
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
112
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_disabled' ) ); ?>" id="frm_border_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_disabled'] ); ?>" />
113
  </p>
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
8
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color' ) ); ?>" id="frm_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'bg_color' ); ?> />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
12
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color' ) ); ?>" id="frm_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['text_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'text_color' ); ?> />
13
  </p>
14
  <p class="frm4 frm_first frm_form_field">
15
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
16
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color' ) ); ?>" id="frm_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['border_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'border_color' ); ?> />
17
  </p>
18
  <p class="frm4 frm_form_field">
19
  <label><?php esc_html_e( 'Thickness', 'formidable' ); ?></label>
47
  <h4><span><?php esc_html_e( 'Active Style', 'formidable' ); ?></span></h4>
48
  <p class="frm4 frm_first frm_form_field">
49
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
50
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_active' ) ); ?>" id="frm_bg_color_active" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_active'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'bg_color_active' ); ?> />
51
  </p>
52
  <p class="frm4 frm_form_field">
53
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
54
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_active' ) ); ?>" id="frm_border_color_active" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_active'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'border_color_active' ); ?> />
55
  </p>
56
 
57
  <p class="frm_clear frm_no_bottom_margin">
64
  <h4><span><?php esc_html_e( 'Error Style', 'formidable' ); ?></span></h4>
65
  <p class="frm4 frm_first frm_form_field">
66
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
67
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_error' ) ); ?>" id="frm_bg_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_error'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'bg_color_error' ); ?> />
68
  </p>
69
  <p class="frm4 frm_form_field">
70
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
71
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color_error' ) ); ?>" id="frm_text_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['text_color_error'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'text_color_error' ); ?> />
72
  </p>
73
  <p class="frm4 frm_first frm_form_field">
74
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
75
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_error' ) ); ?>" id="frm_border_color_error" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_error'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'border_color_error' ); ?> />
76
  </p>
77
  <p class="frm4 frm_first frm_form_field">
78
  <label><?php esc_html_e( 'Thickness', 'formidable' ); ?></label>
101
  </h4>
102
  <p class="frm4 frm_first frm_form_field">
103
  <label class="background"><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
104
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'bg_color_disabled' ) ); ?>" id="frm_bg_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['bg_color_disabled'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'bg_color_disabled' ); ?> />
105
  </p>
106
  <p class="frm4 frm_form_field">
107
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
108
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'text_color_disabled' ) ); ?>" id="frm_text_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['text_color_disabled'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'text_color_disabled' ); ?> />
109
  </p>
110
  <p class="frm4 frm_end frm_form_field">
111
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
112
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'border_color_disabled' ) ); ?>" id="frm_border_color_disabled" class="hex" value="<?php echo esc_attr( $style->post_content['border_color_disabled'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'border_color_disabled' ); ?> />
113
  </p>
classes/views/styles/_field-description.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
8
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'description_color' ) ); ?>" id="frm_description_color" class="hex" value="<?php echo esc_attr( $style->post_content['description_color'] ); ?>" />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
8
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'description_color' ) ); ?>" id="frm_description_color" class="hex" value="<?php echo esc_attr( $style->post_content['description_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'description_color' ); ?> />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
classes/views/styles/_field-labels.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
8
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'label_color' ) ); ?>" id="frm_label_color" class="hex" value="<?php echo esc_attr( $style->post_content['label_color'] ); ?>" />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
@@ -56,7 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) {
56
  </h4>
57
  <p class="frm4 frm_first frm_form_field">
58
  <label class="background"><?php esc_html_e( 'Color', 'formidable' ); ?></label>
59
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'required_color' ) ); ?>" id="frm_required_color" class="hex" value="<?php echo esc_attr( $style->post_content['required_color'] ); ?>" />
60
  </p>
61
  <p class="frm4 frm_form_field">
62
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
5
  ?>
6
  <p class="frm4 frm_first frm_form_field">
7
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
8
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'label_color' ) ); ?>" id="frm_label_color" class="hex" value="<?php echo esc_attr( $style->post_content['label_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'label_color' ); ?> />
9
  </p>
10
  <p class="frm4 frm_form_field">
11
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
56
  </h4>
57
  <p class="frm4 frm_first frm_form_field">
58
  <label class="background"><?php esc_html_e( 'Color', 'formidable' ); ?></label>
59
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'required_color' ) ); ?>" id="frm_required_color" class="hex" value="<?php echo esc_attr( $style->post_content['required_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'required_color' ); ?> />
60
  </p>
61
  <p class="frm4 frm_form_field">
62
  <label><?php esc_html_e( 'Weight', 'formidable' ); ?></label>
classes/views/styles/_form-description.php CHANGED
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
10
 
11
  <p class="frm6 frm_end frm_form_field">
12
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
13
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'form_desc_color' ) ); ?>" id="frm_form_desc_color" class="hex" value="<?php echo esc_attr( $style->post_content['form_desc_color'] ); ?>" />
14
  </p>
15
  <p class="frm6 frm_first frm_form_field">
16
  <label><?php esc_html_e( 'Margin Top', 'formidable' ); ?></label>
10
 
11
  <p class="frm6 frm_end frm_form_field">
12
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
13
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'form_desc_color' ) ); ?>" id="frm_form_desc_color" class="hex" value="<?php echo esc_attr( $style->post_content['form_desc_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'form_desc_color' ); ?> />
14
  </p>
15
  <p class="frm6 frm_first frm_form_field">
16
  <label><?php esc_html_e( 'Margin Top', 'formidable' ); ?></label>
classes/views/styles/_form-messages.php CHANGED
@@ -6,15 +6,15 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  <h4><span><?php esc_html_e( 'Success Messages', 'formidable' ); ?></span></h4>
7
  <p class="frm4 frm_first frm_form_field">
8
  <label><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
9
- <input name="<?php echo esc_attr( $frm_style->get_field_name( 'success_bg_color' ) ); ?>" id="frm_success_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_bg_color'] ); ?>" type="text" />
10
  </p>
11
  <p class="frm4 frm_form_field">
12
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
13
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'success_border_color' ) ); ?>" id="frm_success_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_border_color'] ); ?>" />
14
  </p>
15
  <p class="frm4 frm_end frm_form_field">
16
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
17
- <input name="<?php echo esc_attr( $frm_style->get_field_name( 'success_text_color' ) ); ?>" id="frm_success_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_text_color'] ); ?>" type="text" />
18
  </p>
19
  <p class="frm4 frm_first frm_form_field">
20
  <label><?php esc_html_e( 'Size', 'formidable' ); ?></label>
@@ -26,15 +26,15 @@ if ( ! defined( 'ABSPATH' ) ) {
26
  </h4>
27
  <p class="frm4 frm_first frm_form_field">
28
  <label><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
29
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_bg' ) ); ?>" id="frm_error_bg" class="hex" value="<?php echo esc_attr( $style->post_content['error_bg'] ); ?>" />
30
  </p>
31
  <p class="frm4 frm_form_field">
32
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
33
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_border' ) ); ?>" id="frm_error_border" class="hex" value="<?php echo esc_attr( $style->post_content['error_border'] ); ?>" />
34
  </p>
35
  <p class="frm4 frm_end frm_form_field">
36
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
37
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_text' ) ); ?>" id="frm_error_text" class="hex" value="<?php echo esc_attr( $style->post_content['error_text'] ); ?>" />
38
  </p>
39
 
40
  <p class="frm4 frm_first frm_form_field">
6
  <h4><span><?php esc_html_e( 'Success Messages', 'formidable' ); ?></span></h4>
7
  <p class="frm4 frm_first frm_form_field">
8
  <label><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
9
+ <input name="<?php echo esc_attr( $frm_style->get_field_name( 'success_bg_color' ) ); ?>" id="frm_success_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_bg_color'] ); ?>" type="text" <?php do_action( 'frm_style_settings_input_atts', 'success_bg_color' ); ?> />
10
  </p>
11
  <p class="frm4 frm_form_field">
12
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
13
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'success_border_color' ) ); ?>" id="frm_success_border_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_border_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'success_border_color' ); ?> />
14
  </p>
15
  <p class="frm4 frm_end frm_form_field">
16
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
17
+ <input name="<?php echo esc_attr( $frm_style->get_field_name( 'success_text_color' ) ); ?>" id="frm_success_text_color" class="hex" value="<?php echo esc_attr( $style->post_content['success_text_color'] ); ?>" type="text" <?php do_action( 'frm_style_settings_input_atts', 'success_text_color' ); ?> />
18
  </p>
19
  <p class="frm4 frm_first frm_form_field">
20
  <label><?php esc_html_e( 'Size', 'formidable' ); ?></label>
26
  </h4>
27
  <p class="frm4 frm_first frm_form_field">
28
  <label><?php esc_html_e( 'BG color', 'formidable' ); ?></label>
29
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_bg' ) ); ?>" id="frm_error_bg" class="hex" value="<?php echo esc_attr( $style->post_content['error_bg'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'error_bg' ); ?> />
30
  </p>
31
  <p class="frm4 frm_form_field">
32
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
33
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_border' ) ); ?>" id="frm_error_border" class="hex" value="<?php echo esc_attr( $style->post_content['error_border'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'error_border' ); ?> />
34
  </p>
35
  <p class="frm4 frm_end frm_form_field">
36
  <label><?php esc_html_e( 'Text', 'formidable' ); ?></label>
37
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'error_text' ) ); ?>" id="frm_error_text" class="hex" value="<?php echo esc_attr( $style->post_content['error_text'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'error_text' ); ?> />
38
  </p>
39
 
40
  <p class="frm4 frm_first frm_form_field">
classes/views/styles/_form-title.php CHANGED
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
10
 
11
  <p class="frm6 frm_end frm_form_field">
12
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
13
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'title_color' ) ); ?>" id="frm_title_color" class="hex" value="<?php echo esc_attr( $style->post_content['title_color'] ); ?>" />
14
  </p>
15
  <p class="frm6 frm_first frm_form_field">
16
  <label><?php esc_html_e( 'Margin Top', 'formidable' ); ?></label>
10
 
11
  <p class="frm6 frm_end frm_form_field">
12
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
13
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'title_color' ) ); ?>" id="frm_title_color" class="hex" value="<?php echo esc_attr( $style->post_content['title_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'title_color' ); ?> />
14
  </p>
15
  <p class="frm6 frm_first frm_form_field">
16
  <label><?php esc_html_e( 'Margin Top', 'formidable' ); ?></label>
classes/views/styles/_general.php CHANGED
@@ -39,9 +39,23 @@ if ( ! defined( 'ABSPATH' ) ) {
39
 
40
  <p class="frm4 frm_form_field frm_end">
41
  <label><?php esc_html_e( 'Background', 'formidable' ); ?></label>
42
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset_bg_color' ) ); ?>" id="frm_fieldset_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['fieldset_bg_color'] ); ?>" size="4" />
43
  </p>
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  <p class="frm4 frm_first frm_form_field">
46
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
47
  <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset' ) ); ?>" id="frm_fieldset" value="<?php echo esc_attr( $style->post_content['fieldset'] ); ?>" size="4" />
@@ -49,7 +63,7 @@ if ( ! defined( 'ABSPATH' ) ) {
49
 
50
  <p class="frm4 frm_form_field">
51
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
52
- <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset_color' ) ); ?>" id="frm_fieldset_color" class="hex" value="<?php echo esc_attr( $style->post_content['fieldset_color'] ); ?>" />
53
  </p>
54
 
55
  <p class="frm4 frm_form_field">
39
 
40
  <p class="frm4 frm_form_field frm_end">
41
  <label><?php esc_html_e( 'Background', 'formidable' ); ?></label>
42
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset_bg_color' ) ); ?>" id="frm_fieldset_bg_color" class="hex" value="<?php echo esc_attr( $style->post_content['fieldset_bg_color'] ); ?>" size="4" <?php do_action( 'frm_style_settings_input_atts', 'fieldset_bg_color' ); ?> />
43
  </p>
44
 
45
+ <?php
46
+ do_action( 'frm_style_settings_general_section_after_background', compact( 'frm_style', 'style' ) );
47
+ if ( ! FrmAppHelper::pro_is_installed() ) {
48
+ ?>
49
+ <div class="frm_image_preview_wrapper" data-upgrade="<?php esc_attr_e( 'Background image styles', 'formidable' ); ?>" data-medium="background-image">
50
+ <button type="button" class="frm_choose_image_box frm_button frm_no_style_button frm_noallow">
51
+ <?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_upload_icon' ); ?>
52
+ <?php esc_attr_e( 'Upload background image', 'formidable' ); ?>
53
+ </button>
54
+ </div>
55
+ <?php
56
+ }
57
+ ?>
58
+
59
  <p class="frm4 frm_first frm_form_field">
60
  <label><?php esc_html_e( 'Border', 'formidable' ); ?></label>
61
  <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset' ) ); ?>" id="frm_fieldset" value="<?php echo esc_attr( $style->post_content['fieldset'] ); ?>" size="4" />
63
 
64
  <p class="frm4 frm_form_field">
65
  <label><?php esc_html_e( 'Color', 'formidable' ); ?></label>
66
+ <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'fieldset_color' ) ); ?>" id="frm_fieldset_color" class="hex" value="<?php echo esc_attr( $style->post_content['fieldset_color'] ); ?>" <?php do_action( 'frm_style_settings_input_atts', 'fieldset_color' ); ?> />
67
  </p>
68
 
69
  <p class="frm4 frm_form_field">
css/frm_admin.css CHANGED
@@ -26,7 +26,7 @@
26
  --biggest-sidebar: 450px;
27
  }
28
 
29
- .with_frm_style .frm_form_fields > fieldset {
30
  --fieldset-padding: 15px 0;
31
  }
32
 
@@ -3773,6 +3773,14 @@ li.ui-state-default.edit_field_type_divider .frm-show-hover {
3773
  width: calc(100% - 73px);
3774
  }
3775
 
 
 
 
 
 
 
 
 
3776
  .frm-right-panel .frm_single_option a.frm_remove_tag,
3777
  .frm_single_option a {
3778
  padding-left: 7px;
26
  --biggest-sidebar: 450px;
27
  }
28
 
29
+ body:not(.frm-admin-page-styles) .with_frm_style .frm_form_fields > fieldset {
30
  --fieldset-padding: 15px 0;
31
  }
32
 
3773
  width: calc(100% - 73px);
3774
  }
3775
 
3776
+ .frm-right-panel.styling_settings .frm_image_preview_wrapper {
3777
+ width: 100%;
3778
+ }
3779
+
3780
+ .frm-right-panel.styling_settings .frm_image_preview_wrapper .frm_choose_image_box {
3781
+ margin-left: 0;
3782
+ }
3783
+
3784
  .frm-right-panel .frm_single_option a.frm_remove_tag,
3785
  .frm_single_option a {
3786
  padding-left: 7px;
formidable.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 5.0.07
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 5.0.08
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
images/appointments.png ADDED
Binary file
images/look-up_year-make-model.gif ADDED
Binary file
images/repeatable-section_frontend.gif ADDED
Binary file
images/scale_field.png ADDED
Binary file
images/survey-logic.png ADDED
Binary file
images/survey-logic@2x.png ADDED
Binary file
js/bootstrap.min.js CHANGED
@@ -1,11 +1,6 @@
1
  /*!
2
- * Bootstrap v3.3.4 (http://getbootstrap.com)
3
- * Copyright 2011-2015 Twitter, Inc.
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  */
6
-
7
- /*!
8
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=6a925321fc7117876d39)
9
- * Config saved to config.json and https://gist.github.com/6a925321fc7117876d39
10
- */
11
- if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){e&&3===e.which||(t(n).remove(),t(r).each(function(){var i=t(this),n=o(i),r={relatedTarget:this};n.hasClass("open")&&(n.trigger(e=t.Event("hide.bs.dropdown",r)),e.isDefaultPrevented()||(i.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",r)))}))}function o(e){var o=e.attr("data-target");o||(o=e.attr("href"),o=o&&/#[A-Za-z]/.test(o)&&o.replace(/.*(?=#[^\s]*$)/,""));var i=o&&t(o);return i&&i.length?i:e.parent()}function i(e){return this.each(function(){var o=t(this),i=o.data("bs.dropdown");i||o.data("bs.dropdown",i=new s(this)),"string"==typeof e&&i[e].call(o)})}var n=".dropdown-backdrop",r='[data-toggle="dropdown"]',s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.VERSION="3.3.4",s.prototype.toggle=function(i){var n=t(this);if(!n.is(".disabled, :disabled")){var r=o(n),s=r.hasClass("open");if(e(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&t('<div class="dropdown-backdrop"/>').insertAfter(t(this)).on("click",e);var a={relatedTarget:this};if(r.trigger(i=t.Event("show.bs.dropdown",a)),i.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger("shown.bs.dropdown",a)}return!1}},s.prototype.keydown=function(e){if(/(38|40|27|32)/.test(e.which)&&!/input|textarea/i.test(e.target.tagName)){var i=t(this);if(e.preventDefault(),e.stopPropagation(),!i.is(".disabled, :disabled")){var n=o(i),s=n.hasClass("open");if(!s&&27!=e.which||s&&27==e.which)return 27==e.which&&n.find(r).trigger("focus"),i.trigger("click");var a=" li:not(.disabled):visible a",p=n.find('[role="menu"]'+a+', [role="listbox"]'+a);if(p.length){var l=p.index(e.target);38==e.which&&l>0&&l--,40==e.which&&l<p.length-1&&l++,~l||(l=0),p.eq(l).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=i,t.fn.dropdown.Constructor=s,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,s.prototype.toggle).on("keydown.bs.dropdown.data-api",r,s.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',s.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',s.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.tooltip"),r="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||i.data("bs.tooltip",n=new o(this,r)),"string"==typeof e&&n[e]())})}var o=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",t,e)};o.VERSION="3.3.4",o.TRANSITION_DURATION=150,o.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},o.prototype.init=function(e,o,i){if(this.enabled=!0,this.type=e,this.$element=t(o),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),r=n.length;r--;){var s=n[r];if("click"==s)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",p="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(p+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},o.prototype.getDefaults=function(){return o.DEFAULTS},o.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},o.prototype.getDelegateOptions=function(){var e={},o=this.getDefaults();return this._options&&t.each(this._options,function(t,i){o[t]!=i&&(e[t]=i)}),e},o.prototype.enter=function(e){var o=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return o&&o.$tip&&o.$tip.is(":visible")?void(o.hoverState="in"):(o||(o=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,o)),clearTimeout(o.timeout),o.hoverState="in",o.options.delay&&o.options.delay.show?void(o.timeout=setTimeout(function(){"in"==o.hoverState&&o.show()},o.options.delay.show)):o.show())},o.prototype.leave=function(e){var o=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return o||(o=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,o)),clearTimeout(o.timeout),o.hoverState="out",o.options.delay&&o.options.delay.hide?void(o.timeout=setTimeout(function(){"out"==o.hoverState&&o.hide()},o.options.delay.hide)):o.hide()},o.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var n=this,r=this.tip(),s=this.getUID(this.type);this.setContent(),r.attr("id",s),this.$element.attr("aria-describedby",s),this.options.animation&&r.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,r[0],this.$element[0]):this.options.placement,p=/\s?auto?\s?/i,l=p.test(a);l&&(a=a.replace(p,"")||"top"),r.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?r.appendTo(this.options.container):r.insertAfter(this.$element);var h=this.getPosition(),d=r[0].offsetWidth,c=r[0].offsetHeight;if(l){var f=a,u=this.options.container?t(this.options.container):this.$element.parent(),g=this.getPosition(u);a="bottom"==a&&h.bottom+c>g.bottom?"top":"top"==a&&h.top-c<g.top?"bottom":"right"==a&&h.right+d>g.width?"left":"left"==a&&h.left-d<g.left?"right":a,r.removeClass(f).addClass(a)}var v=this.getCalculatedOffset(a,h,d,c);this.applyPlacement(v,a);var y=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?r.one("bsTransitionEnd",y).emulateTransitionEnd(o.TRANSITION_DURATION):y()}},o.prototype.applyPlacement=function(e,o){var i=this.tip(),n=i[0].offsetWidth,r=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),e.top=e.top+s,e.left=e.left+a,t.offset.setOffset(i[0],t.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),i.addClass("in");var p=i[0].offsetWidth,l=i[0].offsetHeight;"top"==o&&l!=r&&(e.top=e.top+r-l);var h=this.getViewportAdjustedDelta(o,e,p,l);h.left?e.left+=h.left:e.top+=h.top;var d=/top|bottom/.test(o),c=d?2*h.left-n+p:2*h.top-r+l,f=d?"offsetWidth":"offsetHeight";i.offset(e),this.replaceArrow(c,i[0][f],d)},o.prototype.replaceArrow=function(t,e,o){this.arrow().css(o?"left":"top",50*(1-t/e)+"%").css(o?"top":"left","")},o.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},o.prototype.hide=function(e){function i(){"in"!=n.hoverState&&r.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,r=t(this.$tip),s=t.Event("hide.bs."+this.type);return this.$element.trigger(s),s.isDefaultPrevented()?void 0:(r.removeClass("in"),t.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i(),this.hoverState=null,this)},o.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},o.prototype.hasContent=function(){return this.getTitle()},o.prototype.getPosition=function(e){e=e||this.$element;var o=e[0],i="BODY"==o.tagName,n=o.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var r=i?{top:0,left:0}:e.offset(),s={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=i?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,s,a,r)},o.prototype.getCalculatedOffset=function(t,e,o,i){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-o/2}:"top"==t?{top:e.top-i,left:e.left+e.width/2-o/2}:"left"==t?{top:e.top+e.height/2-i/2,left:e.left-o}:{top:e.top+e.height/2-i/2,left:e.left+e.width}},o.prototype.getViewportAdjustedDelta=function(t,e,o,i){var n={top:0,left:0};if(!this.$viewport)return n;var r=this.options.viewport&&this.options.viewport.padding||0,s=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-r-s.scroll,p=e.top+r-s.scroll+i;a<s.top?n.top=s.top-a:p>s.top+s.height&&(n.top=s.top+s.height-p)}else{var l=e.left-r,h=e.left+r+o;l<s.left?n.left=s.left-l:h>s.width&&(n.left=s.left+s.width-h)}return n},o.prototype.getTitle=function(){var t,e=this.$element,o=this.options;return t=e.attr("data-original-title")||("function"==typeof o.title?o.title.call(e[0]):o.title)},o.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},o.prototype.tip=function(){return this.$tip=this.$tip||t(this.options.template)},o.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},o.prototype.enable=function(){this.enabled=!0},o.prototype.disable=function(){this.enabled=!1},o.prototype.toggleEnabled=function(){this.enabled=!this.enabled},o.prototype.toggle=function(e){var o=this;e&&(o=t(e.currentTarget).data("bs."+this.type),o||(o=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,o))),o.tip().hasClass("in")?o.leave(o):o.enter(o)},o.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type)})};var i=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=o,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var o in e)if(void 0!==t.style[o])return{end:e[o]};return!1}t.fn.emulateTransitionEnd=function(e){var o=!1,i=this;t(this).one("bsTransitionEnd",function(){o=!0});var n=function(){o||t(i).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);
1
  /*!
2
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2019 Twitter, Inc.
4
+ * Licensed under the MIT license
5
  */
6
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(t){"use strict";var e=jQuery.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||3<e[0])throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(),function(n){"use strict";n.fn.emulateTransitionEnd=function(t){var e=!1,i=this;n(this).one("bsTransitionEnd",function(){e=!0});return setTimeout(function(){e||n(i).trigger(n.support.transition.end)},t),this},n(function(){n.support.transition=function o(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(t.style[i]!==undefined)return{end:e[i]};return!1}(),n.support.transition&&(n.event.special.bsTransitionEnd={bindType:n.support.transition.end,delegateType:n.support.transition.end,handle:function(t){if(n(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})})}(jQuery),function(s){"use strict";var e='[data-dismiss="alert"]',a=function(t){s(t).on("click",e,this.close)};a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.close=function(t){var e=s(this),i=e.attr("data-target");i||(i=(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=s(document).find(i);function n(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=e.closest(".alert")),o.trigger(t=s.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),s.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(a.TRANSITION_DURATION):n())};var t=s.fn.alert;s.fn.alert=function o(i){return this.each(function(){var t=s(this),e=t.data("bs.alert");e||t.data("bs.alert",e=new a(this)),"string"==typeof i&&e[i].call(t)})},s.fn.alert.Constructor=a,s.fn.alert.noConflict=function(){return s.fn.alert=t,this},s(document).on("click.bs.alert.data-api",e,a.prototype.close)}(jQuery),function(s){"use strict";var n=function(t,e){this.$element=s(t),this.options=s.extend({},n.DEFAULTS,e),this.isLoading=!1};function i(o){return this.each(function(){var t=s(this),e=t.data("bs.button"),i="object"==typeof o&&o;e||t.data("bs.button",e=new n(this,i)),"toggle"==o?e.toggle():o&&e.setState(o)})}n.VERSION="3.4.1",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var e="disabled",i=this.$element,o=i.is("input")?"val":"html",n=i.data();t+="Text",null==n.resetText&&i.data("resetText",i[o]()),setTimeout(s.proxy(function(){i[o](null==n[t]?this.options[t]:n[t]),"loadingText"==t?(this.isLoading=!0,i.addClass(e).attr(e,e).prop(e,!0)):this.isLoading&&(this.isLoading=!1,i.removeClass(e).removeAttr(e).prop(e,!1))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var t=s.fn.button;s.fn.button=i,s.fn.button.Constructor=n,s.fn.button.noConflict=function(){return s.fn.button=t,this},s(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(t){var e=s(t.target).closest(".btn");i.call(e,"toggle"),s(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),e.is("input,button")?e.trigger("focus"):e.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){s(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery),function(p){"use strict";var c=function(t,e){this.$element=p(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=e,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",p.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",p.proxy(this.pause,this)).on("mouseleave.bs.carousel",p.proxy(this.cycle,this))};function r(n){return this.each(function(){var t=p(this),e=t.data("bs.carousel"),i=p.extend({},c.DEFAULTS,t.data(),"object"==typeof n&&n),o="string"==typeof n?n:i.slide;e||t.data("bs.carousel",e=new c(this,i)),"number"==typeof n?e.to(n):o?e[o]():i.interval&&e.pause().cycle()})}c.VERSION="3.4.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},c.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(p.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},c.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e);if(("prev"==t&&0===i||"next"==t&&i==this.$items.length-1)&&!this.options.wrap)return e;var o=(i+("prev"==t?-1:1))%this.$items.length;return this.$items.eq(o)},c.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(i<t?"next":"prev",this.$items.eq(t))},c.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&p.support.transition&&(this.$element.trigger(p.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(t,e){var i=this.$element.find(".item.active"),o=e||this.getItemForDirection(t,i),n=this.interval,s="next"==t?"left":"right",a=this;if(o.hasClass("active"))return this.sliding=!1;var r=o[0],l=p.Event("slide.bs.carousel",{relatedTarget:r,direction:s});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,n&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=p(this.$indicators.children()[this.getItemIndex(o)]);h&&h.addClass("active")}var d=p.Event("slid.bs.carousel",{relatedTarget:r,direction:s});return p.support.transition&&this.$element.hasClass("slide")?(o.addClass(t),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",function(){o.removeClass([t,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger(d)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(d)),n&&this.cycle(),this}};var t=p.fn.carousel;p.fn.carousel=r,p.fn.carousel.Constructor=c,p.fn.carousel.noConflict=function(){return p.fn.carousel=t,this};var e=function(t){var e=p(this),i=e.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=e.attr("data-target")||i,n=p(document).find(o);if(n.hasClass("carousel")){var s=p.extend({},n.data(),e.data()),a=e.attr("data-slide-to");a&&(s.interval=!1),r.call(n,s),a&&n.data("bs.carousel").to(a),t.preventDefault()}};p(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),p(window).on("load",function(){p('[data-ride="carousel"]').each(function(){var t=p(this);r.call(t,t.data())})})}(jQuery),function(a){"use strict";var r=function(t,e){this.$element=a(t),this.options=a.extend({},r.DEFAULTS,e),this.$trigger=a('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var e,i=t.attr("data-target")||(e=t.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"");return a(document).find(i)}function l(o){return this.each(function(){var t=a(this),e=t.data("bs.collapse"),i=a.extend({},r.DEFAULTS,t.data(),"object"==typeof o&&o);!e&&i.toggle&&/show|hide/.test(o)&&(i.toggle=!1),e||t.data("bs.collapse",e=new r(this,i)),"string"==typeof o&&e[o]()})}r.VERSION="3.4.1",r.TRANSITION_DURATION=350,r.DEFAULTS={toggle:!0},r.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},r.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(t=e.data("bs.collapse"))&&t.transitioning)){var i=a.Event("show.bs.collapse");if(this.$element.trigger(i),!i.isDefaultPrevented()){e&&e.length&&(l.call(e,"hide"),t||e.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var n=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return n.call(this);var s=a.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",a.proxy(n,this)).emulateTransitionEnd(r.TRANSITION_DURATION)[o](this.$element[0][s])}}}},r.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=a.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var e=this.dimension();this.$element[e](this.$element[e]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!a.support.transition)return i.call(this);this.$element[e](0).one("bsTransitionEnd",a.proxy(i,this)).emulateTransitionEnd(r.TRANSITION_DURATION)}}},r.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},r.prototype.getParent=function(){return a(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(t,e){var i=a(e);this.addAriaAndCollapsedClass(n(i),i)},this)).end()},r.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var t=a.fn.collapse;a.fn.collapse=l,a.fn.collapse.Constructor=r,a.fn.collapse.noConflict=function(){return a.fn.collapse=t,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(t){var e=a(this);e.attr("data-target")||t.preventDefault();var i=n(e),o=i.data("bs.collapse")?"toggle":e.data();l.call(i,o)})}(jQuery),function(a){"use strict";var r='[data-toggle="dropdown"]',o=function(t){a(t).on("click.bs.dropdown",this.toggle)};function l(t){var e=t.attr("data-target");e||(e=(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""));var i="#"!==e?a(document).find(e):null;return i&&i.length?i:t.parent()}function s(o){o&&3===o.which||(a(".dropdown-backdrop").remove(),a(r).each(function(){var t=a(this),e=l(t),i={relatedTarget:this};e.hasClass("open")&&(o&&"click"==o.type&&/input|textarea/i.test(o.target.tagName)&&a.contains(e[0],o.target)||(e.trigger(o=a.Event("hide.bs.dropdown",i)),o.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",i)))))}))}o.VERSION="3.4.1",o.prototype.toggle=function(t){var e=a(this);if(!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(s(),!o){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",s);var n={relatedTarget:this};if(i.trigger(t=a.Event("show.bs.dropdown",n)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),i.toggleClass("open").trigger(a.Event("shown.bs.dropdown",n))}return!1}},o.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=a(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(!o&&27!=t.which||o&&27==t.which)return 27==t.which&&i.find(r).trigger("focus"),e.trigger("click");var n=i.find(".dropdown-menu li:not(.disabled):visible a");if(n.length){var s=n.index(t.target);38==t.which&&0<s&&s--,40==t.which&&s<n.length-1&&s++,~s||(s=0),n.eq(s).trigger("focus")}}}};var t=a.fn.dropdown;a.fn.dropdown=function e(i){return this.each(function(){var t=a(this),e=t.data("bs.dropdown");e||t.data("bs.dropdown",e=new o(this)),"string"==typeof i&&e[i].call(t)})},a.fn.dropdown.Constructor=o,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=t,this},a(document).on("click.bs.dropdown.data-api",s).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,o.prototype.toggle).on("keydown.bs.dropdown.data-api",r,o.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",o.prototype.keydown)}(jQuery),function(a){"use strict";var s=function(t,e){this.options=e,this.$body=a(document.body),this.$element=a(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};function r(o,n){return this.each(function(){var t=a(this),e=t.data("bs.modal"),i=a.extend({},s.DEFAULTS,t.data(),"object"==typeof o&&o);e||t.data("bs.modal",e=new s(this,i)),"string"==typeof o?e[o](n):i.show&&e.show(n)})}s.VERSION="3.4.1",s.TRANSITION_DURATION=300,s.BACKDROP_TRANSITION_DURATION=150,s.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},s.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},s.prototype.show=function(i){var o=this,t=a.Event("show.bs.modal",{relatedTarget:i});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(t){a(t.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=a.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),t&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:i});t?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(s.TRANSITION_DURATION):o.$element.trigger("focus").trigger(e)}))},s.prototype.hide=function(t){t&&t.preventDefault(),t=a.Event("hide.bs.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(s.TRANSITION_DURATION):this.hideModal())},s.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},s.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},s.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},s.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},s.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},s.prototype.backdrop=function(t){var e=this,i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=a.support.transition&&i;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;o?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):t()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var n=function(){e.removeBackdrop(),t&&t()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",n).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):n()}else t&&t()},s.prototype.handleUpdate=function(){this.adjustDialog()},s.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},s.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},s.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},s.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"";var n=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css("padding-right",t+n),a(this.fixedContent).each(function(t,e){var i=e.style.paddingRight,o=a(e).css("padding-right");a(e).data("padding-right",i).css("padding-right",parseFloat(o)+n+"px")}))},s.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad),a(this.fixedContent).each(function(t,e){var i=a(e).data("padding-right");a(e).removeData("padding-right"),e.style.paddingRight=i||""})},s.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=a.fn.modal;a.fn.modal=r,a.fn.modal.Constructor=s,a.fn.modal.noConflict=function(){return a.fn.modal=t,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(t){var e=a(this),i=e.attr("href"),o=e.attr("data-target")||i&&i.replace(/.*(?=#[^\s]+$)/,""),n=a(document).find(o),s=n.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(i)&&i},n.data(),e.data());e.is("a")&&t.preventDefault(),n.one("show.bs.modal",function(t){t.isDefaultPrevented()||n.one("hidden.bs.modal",function(){e.is(":visible")&&e.trigger("focus")})}),r.call(n,s,this)})}(jQuery),function(g){"use strict";var o=["sanitize","whiteList","sanitizeFn"],a=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],t={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,l=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function u(t,e){var i=t.nodeName.toLowerCase();if(-1!==g.inArray(i,e))return-1===g.inArray(i,a)||Boolean(t.nodeValue.match(r)||t.nodeValue.match(l));for(var o=g(e).filter(function(t,e){return e instanceof RegExp}),n=0,s=o.length;n<s;n++)if(i.match(o[n]))return!0;return!1}function n(t,e,i){if(0===t.length)return t;if(i&&"function"==typeof i)return i(t);if(!document.implementation||!document.implementation.createHTMLDocument)return t;var o=document.implementation.createHTMLDocument("sanitization");o.body.innerHTML=t;for(var n=g.map(e,function(t,e){return e}),s=g(o.body).find("*"),a=0,r=s.length;a<r;a++){var l=s[a],h=l.nodeName.toLowerCase();if(-1!==g.inArray(h,n))for(var d=g.map(l.attributes,function(t){return t}),p=[].concat(e["*"]||[],e[h]||[]),c=0,f=d.length;c<f;c++)u(d[c],p)||l.removeAttribute(d[c].nodeName);else l.parentNode.removeChild(l)}return o.body.innerHTML}var m=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};m.VERSION="3.4.1",m.TRANSITION_DURATION=150,m.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:t},m.prototype.init=function(t,e,i){if(this.enabled=!0,this.type=t,this.$element=g(e),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&g(document).find(g.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),n=o.length;n--;){var s=o[n];if("click"==s)this.$element.on("click."+this.type,this.options.selector,g.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",r="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,g.proxy(this.enter,this)),this.$element.on(r+"."+this.type,this.options.selector,g.proxy(this.leave,this))}}this.options.selector?this._options=g.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.getOptions=function(t){var e=this.$element.data();for(var i in e)e.hasOwnProperty(i)&&-1!==g.inArray(i,o)&&delete e[i];return(t=g.extend({},this.getDefaults(),e,t)).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.sanitize&&(t.template=n(t.template,t.whiteList,t.sanitizeFn)),t},m.prototype.getDelegateOptions=function(){var i={},o=this.getDefaults();return this._options&&g.each(this._options,function(t,e){o[t]!=e&&(i[t]=e)}),i},m.prototype.enter=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusin"==t.type?"focus":"hover"]=!0),e.tip().hasClass("in")||"in"==e.hoverState)e.hoverState="in";else{if(clearTimeout(e.timeout),e.hoverState="in",!e.options.delay||!e.options.delay.show)return e.show();e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show)}},m.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},m.prototype.leave=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusout"==t.type?"focus":"hover"]=!1),!e.isInStateTrue()){if(clearTimeout(e.timeout),e.hoverState="out",!e.options.delay||!e.options.delay.hide)return e.hide();e.timeout=setTimeout(function(){"out"==e.hoverState&&e.hide()},e.options.delay.hide)}},m.prototype.show=function(){var t=g.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var e=g.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!e)return;var i=this,o=this.tip(),n=this.getUID(this.type);this.setContent(),o.attr("id",n),this.$element.attr("aria-describedby",n),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,r=a.test(s);r&&(s=s.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(g(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),h=o[0].offsetWidth,d=o[0].offsetHeight;if(r){var p=s,c=this.getPosition(this.$viewport);s="bottom"==s&&l.bottom+d>c.bottom?"top":"top"==s&&l.top-d<c.top?"bottom":"right"==s&&l.right+h>c.width?"left":"left"==s&&l.left-h<c.left?"right":s,o.removeClass(p).addClass(s)}var f=this.getCalculatedOffset(s,l,h,d);this.applyPlacement(f,s);var u=function(){var t=i.hoverState;i.$element.trigger("shown.bs."+i.type),i.hoverState=null,"out"==t&&i.leave(i)};g.support.transition&&this.$tip.hasClass("fade")?o.one("bsTransitionEnd",u).emulateTransitionEnd(m.TRANSITION_DURATION):u()}},m.prototype.applyPlacement=function(t,e){var i=this.tip(),o=i[0].offsetWidth,n=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),t.top+=s,t.left+=a,g.offset.setOffset(i[0],g.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},t),0),i.addClass("in");var r=i[0].offsetWidth,l=i[0].offsetHeight;"top"==e&&l!=n&&(t.top=t.top+n-l);var h=this.getViewportAdjustedDelta(e,t,r,l);h.left?t.left+=h.left:t.top+=h.top;var d=/top|bottom/.test(e),p=d?2*h.left-o+r:2*h.top-n+l,c=d?"offsetWidth":"offsetHeight";i.offset(t),this.replaceArrow(p,i[0][c],d)},m.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},m.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();this.options.html?(this.options.sanitize&&(e=n(e,this.options.whiteList,this.options.sanitizeFn)),t.find(".tooltip-inner").html(e)):t.find(".tooltip-inner").text(e),t.removeClass("fade in top bottom left right")},m.prototype.hide=function(t){var e=this,i=g(this.$tip),o=g.Event("hide.bs."+this.type);function n(){"in"!=e.hoverState&&i.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),t&&t()}if(this.$element.trigger(o),!o.isDefaultPrevented())return i.removeClass("in"),g.support.transition&&i.hasClass("fade")?i.one("bsTransitionEnd",n).emulateTransitionEnd(m.TRANSITION_DURATION):n(),this.hoverState=null,this},m.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},m.prototype.hasContent=function(){return this.getTitle()},m.prototype.getPosition=function(t){var e=(t=t||this.$element)[0],i="BODY"==e.tagName,o=e.getBoundingClientRect();null==o.width&&(o=g.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var n=window.SVGElement&&e instanceof window.SVGElement,s=i?{top:0,left:0}:n?null:t.offset(),a={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},r=i?{width:g(window).width(),height:g(window).height()}:null;return g.extend({},o,a,r,s)},m.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},m.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},m.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},m.prototype.getUID=function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},m.prototype.tip=function(){if(!this.$tip&&(this.$tip=g(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},m.prototype.enable=function(){this.enabled=!0},m.prototype.disable=function(){this.enabled=!1},m.prototype.toggleEnabled=function(){this.enabled=!this.enabled},m.prototype.toggle=function(t){var e=this;t&&((e=g(t.currentTarget).data("bs."+this.type))||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e))),t?(e.inState.click=!e.inState.click,e.isInStateTrue()?e.enter(e):e.leave(e)):e.tip().hasClass("in")?e.leave(e):e.enter(e)},m.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},m.prototype.sanitizeHtml=function(t){return n(t,this.options.whiteList,this.options.sanitizeFn)};var e=g.fn.tooltip;g.fn.tooltip=function i(o){return this.each(function(){var t=g(this),e=t.data("bs.tooltip"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.tooltip",e=new m(this,i)),"string"==typeof o&&e[o]())})},g.fn.tooltip.Constructor=m,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=e,this}}(jQuery),function(n){"use strict";var s=function(t,e){this.init("popover",t,e)};if(!n.fn.tooltip)throw new Error("Popover requires tooltip.js");s.VERSION="3.4.1",s.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),((s.prototype=n.extend({},n.fn.tooltip.Constructor.prototype)).constructor=s).prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===o&&(i=this.sanitizeHtml(i))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===o?"html":"append"](i)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(i);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},s.prototype.hasContent=function(){return this.getTitle()||this.getContent()},s.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var t=n.fn.popover;n.fn.popover=function e(o){return this.each(function(){var t=n(this),e=t.data("bs.popover"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.popover",e=new s(this,i)),"string"==typeof o&&e[o]())})},n.fn.popover.Constructor=s,n.fn.popover.noConflict=function(){return n.fn.popover=t,this}}(jQuery),function(s){"use strict";function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(document.body)?s(window):s(t),this.options=s.extend({},n.DEFAULTS,e),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",s.proxy(this.process,this)),this.refresh(),this.process()}function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scrollspy"),i="object"==typeof o&&o;e||t.data("bs.scrollspy",e=new n(this,i)),"string"==typeof o&&e[o]()})}n.VERSION="3.4.1",n.DEFAULTS={offset:10},n.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},n.prototype.refresh=function(){var t=this,o="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),s.isWindow(this.$scrollElement[0])||(o="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=s(this),e=t.data("target")||t.attr("href"),i=/^#./.test(e)&&s(e);return i&&i.length&&i.is(":visible")&&[[i[o]().top+n,e]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},n.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),o<=e)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(n[t+1]===undefined||e<n[t+1])&&this.activate(s[t])},n.prototype.activate=function(t){this.activeTarget=t,this.clear();var e=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',i=s(e).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},n.prototype.clear=function(){s(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var t=s.fn.scrollspy;s.fn.scrollspy=e,s.fn.scrollspy.Constructor=n,s.fn.scrollspy.noConflict=function(){return s.fn.scrollspy=t,this},s(window).on("load.bs.scrollspy.data-api",function(){s('[data-spy="scroll"]').each(function(){var t=s(this);e.call(t,t.data())})})}(jQuery),function(r){"use strict";var a=function(t){this.element=r(t)};function e(i){return this.each(function(){var t=r(this),e=t.data("bs.tab");e||t.data("bs.tab",e=new a(this)),"string"==typeof i&&e[i]()})}a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.show=function(){var t=this.element,e=t.closest("ul:not(.dropdown-menu)"),i=t.data("target");if(i||(i=(i=t.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var o=e.find(".active:last a"),n=r.Event("hide.bs.tab",{relatedTarget:t[0]}),s=r.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(n),t.trigger(s),!s.isDefaultPrevented()&&!n.isDefaultPrevented()){var a=r(document).find(i);this.activate(t.closest("li"),e),this.activate(a,a.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},a.prototype.activate=function(t,e,i){var o=e.find("> .active"),n=i&&r.support.transition&&(o.length&&o.hasClass("fade")||!!e.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),n?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&n?o.one("bsTransitionEnd",s).emulateTransitionEnd(a.TRANSITION_DURATION):s(),o.removeClass("in")};var t=r.fn.tab;r.fn.tab=e,r.fn.tab.Constructor=a,r.fn.tab.noConflict=function(){return r.fn.tab=t,this};var i=function(t){t.preventDefault(),e.call(r(this),"show")};r(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(l){"use strict";var h=function(t,e){this.options=l.extend({},h.DEFAULTS,e);var i=this.options.target===h.DEFAULTS.target?l(this.options.target):l(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",l.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",l.proxy(this.checkPositionWithEventLoop,this)),this.$element=l(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function i(o){return this.each(function(){var t=l(this),e=t.data("bs.affix"),i="object"==typeof o&&o;e||t.data("bs.affix",e=new h(this,i)),"string"==typeof o&&e[o]()})}h.VERSION="3.4.1",h.RESET="affix affix-top affix-bottom",h.DEFAULTS={offset:0,target:window},h.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return n<i&&"top";if("bottom"==this.affixed)return null!=i?!(n+this.unpin<=s.top)&&"bottom":!(n+a<=t-o)&&"bottom";var r=null==this.affixed,l=r?n:s.top;return null!=i&&n<=i?"top":null!=o&&t-o<=l+(r?a:e)&&"bottom"},h.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(h.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},h.prototype.checkPositionWithEventLoop=function(){setTimeout(l.proxy(this.checkPosition,this),1)},h.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),e=this.options.offset,i=e.top,o=e.bottom,n=Math.max(l(document).height(),l(document.body).height());"object"!=typeof e&&(o=i=e),"function"==typeof i&&(i=e.top(this.$element)),"function"==typeof o&&(o=e.bottom(this.$element));var s=this.getState(n,t,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var a="affix"+(s?"-"+s:""),r=l.Event(a+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(h.RESET).addClass(a).trigger(a.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:n-t-o})}};var t=l.fn.affix;l.fn.affix=i,l.fn.affix.Constructor=h,l.fn.affix.noConflict=function(){return l.fn.affix=t,this},l(window).on("load",function(){l('[data-spy="affix"]').each(function(){var t=l(this),e=t.data();e.offset=e.offset||{},null!=e.offsetBottom&&(e.offset.bottom=e.offsetBottom),null!=e.offsetTop&&(e.offset.top=e.offsetTop),i.call(t,e)})})}(jQuery);
 
 
 
 
 
js/formidable_admin.js CHANGED
@@ -3022,9 +3022,7 @@ function frmAdminBuildJS() {
3022
  function addImageToOption( event ) {
3023
  var fileFrame,
3024
  $this = jQuery( this ),
3025
- $field = $this.closest( '.frm-single-settings' ),
3026
  $imagePreview = $this.closest( '.frm_image_preview_wrapper' ),
3027
- fieldId = $field.data( 'fid' ),
3028
  postID = 0;
3029
 
3030
  event.preventDefault();
@@ -3040,7 +3038,7 @@ function frmAdminBuildJS() {
3040
 
3041
  fileFrame.on( 'select', function() {
3042
  const attachment = fileFrame.state().get( 'selection' ).first().toJSON();
3043
- $imagePreview.find( 'img' ).attr( 'src', attachment.url );
3044
  $imagePreview.find( '.frm_image_preview_frame' ).show();
3045
  $imagePreview.find( '.frm_image_preview_title' ).text( attachment.filename );
3046
  $imagePreview.siblings( 'input[name*="[label]"]' ).data( 'frmimgurl', attachment.url );
@@ -3054,8 +3052,6 @@ function frmAdminBuildJS() {
3054
 
3055
  function removeImageFromOption( event ) {
3056
  var $this = jQuery( this ),
3057
- $field = $this.closest( '.frm-single-settings' ),
3058
- fieldId = $field.data( 'fid' ),
3059
  previewWrapper = $this.closest( '.frm_image_preview_wrapper' );
3060
 
3061
  event.preventDefault();
@@ -5704,7 +5700,7 @@ function frmAdminBuildJS() {
5704
  button = $info.find( '.button-primary:not(#frm-oneclick-button)' );
5705
  link = button.attr( 'href' ).replace( /(medium=)[a-z_-]+/ig, '$1' + this.getAttribute( 'data-medium' ) );
5706
  content = this.getAttribute( 'data-content' );
5707
- if ( content === undefined ) {
5708
  content = '';
5709
  }
5710
  link = link.replace( /(content=)[a-z_-]+/ig, '$1' + content );
@@ -9293,6 +9289,8 @@ function frmAdminBuildJS() {
9293
  },
9294
 
9295
  styleInit: function() {
 
 
9296
  collapseAllSections();
9297
 
9298
  document.getElementById( 'frm_field_height' ).addEventListener( 'change', textSquishCheck );
@@ -9301,8 +9299,13 @@ function frmAdminBuildJS() {
9301
 
9302
  jQuery( 'input.hex' ).wpColorPicker({
9303
  change: function( event ) {
9304
- var hexcolor = jQuery( this ).wpColorPicker( 'color' );
9305
- jQuery( event.target ).val( hexcolor ).trigger( 'change' );
 
 
 
 
 
9306
  }
9307
  });
9308
  jQuery( '.wp-color-result-text' ).text( function( i, oldText ) {
@@ -9326,7 +9329,7 @@ function frmAdminBuildJS() {
9326
  }
9327
 
9328
  // update styling on change
9329
- jQuery( '#frm_styling_form .styling_settings' ).on( 'change', debounce( changeStyling, 100 ) );
9330
 
9331
  // menu tabs
9332
  jQuery( '#menu-settings-column' ).on( 'click', function( e ) {
@@ -9411,6 +9414,9 @@ function frmAdminBuildJS() {
9411
  document.getElementById( 'frm_theme_css' ).value = themeVal;
9412
  return false;
9413
  }).trigger( 'change' );
 
 
 
9414
  },
9415
 
9416
  customCSSInit: function() {
3022
  function addImageToOption( event ) {
3023
  var fileFrame,
3024
  $this = jQuery( this ),
 
3025
  $imagePreview = $this.closest( '.frm_image_preview_wrapper' ),
 
3026
  postID = 0;
3027
 
3028
  event.preventDefault();
3038
 
3039
  fileFrame.on( 'select', function() {
3040
  const attachment = fileFrame.state().get( 'selection' ).first().toJSON();
3041
+ $imagePreview.find( 'img' ).attr( 'src', attachment.url ).removeClass( 'frm_hidden' );
3042
  $imagePreview.find( '.frm_image_preview_frame' ).show();
3043
  $imagePreview.find( '.frm_image_preview_title' ).text( attachment.filename );
3044
  $imagePreview.siblings( 'input[name*="[label]"]' ).data( 'frmimgurl', attachment.url );
3052
 
3053
  function removeImageFromOption( event ) {
3054
  var $this = jQuery( this ),
 
 
3055
  previewWrapper = $this.closest( '.frm_image_preview_wrapper' );
3056
 
3057
  event.preventDefault();
5700
  button = $info.find( '.button-primary:not(#frm-oneclick-button)' );
5701
  link = button.attr( 'href' ).replace( /(medium=)[a-z_-]+/ig, '$1' + this.getAttribute( 'data-medium' ) );
5702
  content = this.getAttribute( 'data-content' );
5703
+ if ( content === null ) {
5704
  content = '';
5705
  }
5706
  link = link.replace( /(content=)[a-z_-]+/ig, '$1' + content );
9289
  },
9290
 
9291
  styleInit: function() {
9292
+ const debouncedPreviewUpdate = debounce( changeStyling, 100 );
9293
+
9294
  collapseAllSections();
9295
 
9296
  document.getElementById( 'frm_field_height' ).addEventListener( 'change', textSquishCheck );
9299
 
9300
  jQuery( 'input.hex' ).wpColorPicker({
9301
  change: function( event ) {
9302
+ if ( null !== event.target.getAttribute( 'data-alpha-color-type' ) ) {
9303
+ debouncedPreviewUpdate();
9304
+ return;
9305
+ } else {
9306
+ const hexcolor = jQuery( this ).wpColorPicker( 'color' );
9307
+ jQuery( event.target ).val( hexcolor ).trigger( 'change' );
9308
+ }
9309
  }
9310
  });
9311
  jQuery( '.wp-color-result-text' ).text( function( i, oldText ) {
9329
  }
9330
 
9331
  // update styling on change
9332
+ jQuery( '#frm_styling_form .styling_settings' ).on( 'change', debouncedPreviewUpdate );
9333
 
9334
  // menu tabs
9335
  jQuery( '#menu-settings-column' ).on( 'click', function( e ) {
9414
  document.getElementById( 'frm_theme_css' ).value = themeVal;
9415
  return false;
9416
  }).trigger( 'change' );
9417
+
9418
+ jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_choose_image_box', addImageToOption );
9419
+ jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_remove_image_option', removeImageFromOption );
9420
  },
9421
 
9422
  customCSSInit: function() {
languages/formidable.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Formidable Forms 5.0.07\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2021-10-05T19:59:18+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
@@ -198,7 +198,7 @@ msgstr ""
198
  #: classes/controllers/FrmAppController.php:165
199
  #: classes/controllers/FrmEntriesController.php:11
200
  #: classes/controllers/FrmEntriesController.php:100
201
- #: classes/controllers/FrmFormsController.php:772
202
  #: classes/controllers/FrmXMLController.php:259
203
  #: classes/views/xml/import_form.php:121
204
  msgid "Entries"
@@ -224,14 +224,14 @@ msgid "Build a Form"
224
  msgstr ""
225
 
226
  #: classes/controllers/FrmEntriesController.php:79
227
- #: classes/controllers/FrmFormsController.php:1318
228
  #: classes/views/frm-entries/form.php:63
229
  #: classes/views/frm-entries/sidebar-shared.php:57
230
  msgid "Entry Key"
231
  msgstr ""
232
 
233
  #: classes/controllers/FrmEntriesController.php:84
234
- #: classes/controllers/FrmFormsController.php:673
235
  #: classes/views/xml/import_form.php:152
236
  #: classes/widgets/FrmElementorWidget.php:37
237
  #: classes/widgets/FrmShowForm.php:59
@@ -322,7 +322,7 @@ msgid "You do not have permission to do that"
322
  msgstr ""
323
 
324
  #: classes/controllers/FrmFormsController.php:9
325
- #: classes/controllers/FrmFormsController.php:782
326
  #: classes/controllers/FrmStylesController.php:51
327
  #: classes/controllers/FrmXMLController.php:258
328
  #: classes/views/frm-forms/list.php:10
@@ -330,123 +330,124 @@ msgstr ""
330
  msgid "Forms"
331
  msgstr ""
332
 
333
- #: classes/controllers/FrmFormsController.php:47
334
- msgid "Conditional Logic options"
335
- msgstr ""
336
-
337
- #: classes/controllers/FrmFormsController.php:47
338
  msgid "Only show the fields you need and create branching forms. Upgrade to get conditional logic and question branching."
339
  msgstr ""
340
 
341
  #: classes/controllers/FrmFormsController.php:49
 
 
 
 
 
342
  msgid "Add Conditional Logic"
343
  msgstr ""
344
 
345
- #: classes/controllers/FrmFormsController.php:148
346
  msgid "Settings Successfully Updated"
347
  msgstr ""
348
 
349
- #: classes/controllers/FrmFormsController.php:184
350
- #: classes/controllers/FrmFormsController.php:991
351
  msgid "Form was successfully updated."
352
  msgstr ""
353
 
354
  #. translators: %1$s: Start link HTML, %2$s: end link HTML
355
- #: classes/controllers/FrmFormsController.php:189
356
  msgid "However, your form is very long and may be %1$sreaching server limits%2$s."
357
  msgstr ""
358
 
359
- #: classes/controllers/FrmFormsController.php:243
360
  #: deprecated/FrmDeprecated.php:414
361
  msgid "Form template was Successfully Created"
362
  msgstr ""
363
 
364
- #: classes/controllers/FrmFormsController.php:243
365
  msgid "Form was Successfully Copied"
366
  msgstr ""
367
 
368
- #: classes/controllers/FrmFormsController.php:247
369
  msgid "There was a problem creating the new template."
370
  msgstr ""
371
 
372
- #: classes/controllers/FrmFormsController.php:376
373
  msgid "Form Preview"
374
  msgstr ""
375
 
376
  #. translators: %1$s: Number of forms
377
- #: classes/controllers/FrmFormsController.php:421
378
- #: classes/controllers/FrmFormsController.php:482
379
  msgid "%1$s form restored from the Trash."
380
  msgid_plural "%1$s forms restored from the Trash."
381
  msgstr[0] ""
382
  msgstr[1] ""
383
 
384
  #. translators: %1$s: Number of forms, %2$s: Start link HTML, %3$s: End link HTML
385
- #: classes/controllers/FrmFormsController.php:485
386
- #: classes/controllers/FrmFormsController.php:510
387
  msgid "%1$s form moved to the Trash. %2$sUndo%3$s"
388
  msgid_plural "%1$s forms moved to the Trash. %2$sUndo%3$s"
389
  msgstr[0] ""
390
  msgstr[1] ""
391
 
392
  #. translators: %1$s: Number of forms
393
- #: classes/controllers/FrmFormsController.php:533
394
  msgid "%1$s Form Permanently Deleted"
395
  msgid_plural "%1$s Forms Permanently Deleted"
396
  msgstr[0] ""
397
  msgstr[1] ""
398
 
399
  #. translators: %1$s: Number of forms
400
- #: classes/controllers/FrmFormsController.php:550
401
- #: classes/controllers/FrmFormsController.php:567
402
  msgid "%1$s form permanently deleted."
403
  msgid_plural "%1$s forms permanently deleted."
404
  msgstr[0] ""
405
  msgstr[1] ""
406
 
407
- #: classes/controllers/FrmFormsController.php:613
408
  msgid "There was an error creating a template."
409
  msgstr ""
410
 
411
- #: classes/controllers/FrmFormsController.php:657
412
  msgid "Add forms and content"
413
  msgstr ""
414
 
415
- #: classes/controllers/FrmFormsController.php:674
416
  #: classes/views/frm-forms/insert_form_popup.php:33
417
  msgid "Insert a Form"
418
  msgstr ""
419
 
420
- #: classes/controllers/FrmFormsController.php:703
421
  msgid "Display form title"
422
  msgstr ""
423
 
424
- #: classes/controllers/FrmFormsController.php:707
425
  msgid "Display form description"
426
  msgstr ""
427
 
428
- #: classes/controllers/FrmFormsController.php:711
429
  msgid "Minimize form HTML"
430
  msgstr ""
431
 
432
- #: classes/controllers/FrmFormsController.php:767
433
  #: classes/views/frm-forms/new-form-overlay.php:46
434
  msgid "Template Name"
435
  msgstr ""
436
 
437
- #: classes/controllers/FrmFormsController.php:768
438
  #: classes/views/xml/import_form.php:120
439
  msgid "Type"
440
  msgstr ""
441
 
442
- #: classes/controllers/FrmFormsController.php:769
443
- #: classes/controllers/FrmFormsController.php:773
444
  #: classes/helpers/FrmCSVExportHelper.php:230
445
  #: classes/views/shared/mb_adv_info.php:98
446
  msgid "Key"
447
  msgstr ""
448
 
449
- #: classes/controllers/FrmFormsController.php:771
450
  #: classes/controllers/FrmStylesController.php:394
451
  #: classes/views/frm-forms/settings-advanced.php:13
452
  #: classes/views/styles/manage.php:39
@@ -455,184 +456,184 @@ msgstr ""
455
  msgid "Form Title"
456
  msgstr ""
457
 
458
- #: classes/controllers/FrmFormsController.php:774
459
  msgid "Shortcodes"
460
  msgstr ""
461
 
462
- #: classes/controllers/FrmFormsController.php:777
463
- #: classes/models/FrmField.php:86
464
  msgid "Date"
465
  msgstr ""
466
 
467
- #: classes/controllers/FrmFormsController.php:897
468
  #: classes/helpers/FrmFormsHelper.php:1258
469
  msgid "My Templates"
470
  msgstr ""
471
 
472
- #: classes/controllers/FrmFormsController.php:956
473
  msgid "You are trying to edit a form that does not exist."
474
  msgstr ""
475
 
476
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
477
- #: classes/controllers/FrmFormsController.php:961
478
  msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
479
  msgstr ""
480
 
481
- #: classes/controllers/FrmFormsController.php:993
482
  msgid "Template was successfully updated."
483
  msgstr ""
484
 
485
- #: classes/controllers/FrmFormsController.php:1067
486
  #: classes/controllers/FrmStylesController.php:393
487
  msgid "General"
488
  msgstr ""
489
 
490
- #: classes/controllers/FrmFormsController.php:1068
491
  msgid "General Form Settings"
492
  msgstr ""
493
 
494
- #: classes/controllers/FrmFormsController.php:1073
495
  msgid "Actions & Notifications"
496
  msgstr ""
497
 
498
- #: classes/controllers/FrmFormsController.php:1079
499
- #: classes/controllers/FrmFormsController.php:1084
500
  msgid "Form Permissions"
501
  msgstr ""
502
 
503
- #: classes/controllers/FrmFormsController.php:1085
504
  msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
505
  msgstr ""
506
 
507
- #: classes/controllers/FrmFormsController.php:1089
508
  msgid "Form Scheduling"
509
  msgstr ""
510
 
511
- #: classes/controllers/FrmFormsController.php:1094
512
  msgid "Form scheduling settings"
513
  msgstr ""
514
 
515
- #: classes/controllers/FrmFormsController.php:1098
516
  msgid "Styling & Buttons"
517
  msgstr ""
518
 
519
- #: classes/controllers/FrmFormsController.php:1104
520
  msgid "Customize HTML"
521
  msgstr ""
522
 
523
- #: classes/controllers/FrmFormsController.php:1234
524
  msgid "Customize field values with the following parameters."
525
  msgstr ""
526
 
527
- #: classes/controllers/FrmFormsController.php:1271
528
  msgid "Separator"
529
  msgstr ""
530
 
531
- #: classes/controllers/FrmFormsController.php:1272
532
  msgid "Use a different separator for checkbox fields"
533
  msgstr ""
534
 
535
- #: classes/controllers/FrmFormsController.php:1275
536
  msgid "Date Format"
537
  msgstr ""
538
 
539
- #: classes/controllers/FrmFormsController.php:1278
540
  #: classes/views/frm-fields/back-end/settings.php:27
541
  msgid "Field Label"
542
  msgstr ""
543
 
544
- #: classes/controllers/FrmFormsController.php:1281
545
  msgid "No Auto P"
546
  msgstr ""
547
 
548
- #: classes/controllers/FrmFormsController.php:1282
549
  msgid "Do not automatically add any paragraphs or line breaks"
550
  msgstr ""
551
 
552
- #: classes/controllers/FrmFormsController.php:1297
553
  #: classes/models/FrmField.php:62
554
  msgid "User ID"
555
  msgstr ""
556
 
557
- #: classes/controllers/FrmFormsController.php:1298
558
  msgid "First Name"
559
  msgstr ""
560
 
561
- #: classes/controllers/FrmFormsController.php:1299
562
  msgid "Last Name"
563
  msgstr ""
564
 
565
- #: classes/controllers/FrmFormsController.php:1300
566
  msgid "Display Name"
567
  msgstr ""
568
 
569
- #: classes/controllers/FrmFormsController.php:1301
570
  msgid "User Login"
571
  msgstr ""
572
 
573
- #: classes/controllers/FrmFormsController.php:1302
574
  #: classes/models/FrmField.php:34
575
  msgid "Email"
576
  msgstr ""
577
 
578
- #: classes/controllers/FrmFormsController.php:1303
579
  msgid "Avatar"
580
  msgstr ""
581
 
582
- #: classes/controllers/FrmFormsController.php:1304
583
  msgid "Author Link"
584
  msgstr ""
585
 
586
- #: classes/controllers/FrmFormsController.php:1317
587
  #: classes/views/frm-entries/sidebar-shared.php:51
588
  msgid "Entry ID"
589
  msgstr ""
590
 
591
- #: classes/controllers/FrmFormsController.php:1319
592
  msgid "Post ID"
593
  msgstr ""
594
 
595
- #: classes/controllers/FrmFormsController.php:1320
596
  msgid "User IP"
597
  msgstr ""
598
 
599
- #: classes/controllers/FrmFormsController.php:1321
600
  msgid "Entry created"
601
  msgstr ""
602
 
603
- #: classes/controllers/FrmFormsController.php:1322
604
  msgid "Entry updated"
605
  msgstr ""
606
 
607
- #: classes/controllers/FrmFormsController.php:1324
608
  msgid "Site URL"
609
  msgstr ""
610
 
611
- #: classes/controllers/FrmFormsController.php:1325
612
  msgid "Site Name"
613
  msgstr ""
614
 
615
- #: classes/controllers/FrmFormsController.php:1333
616
  msgid "Default Msg"
617
  msgstr ""
618
 
619
- #: classes/controllers/FrmFormsController.php:1334
620
  msgid "Default HTML"
621
  msgstr ""
622
 
623
- #: classes/controllers/FrmFormsController.php:1335
624
  msgid "Default Plain"
625
  msgstr ""
626
 
627
- #: classes/controllers/FrmFormsController.php:1438
628
  msgid "No forms were specified"
629
  msgstr ""
630
 
631
- #: classes/controllers/FrmFormsController.php:1550
632
  msgid "Abnormal HTML characters prevented your form from saving correctly"
633
  msgstr ""
634
 
635
- #: classes/controllers/FrmFormsController.php:1665
636
  #: classes/helpers/FrmFormsHelper.php:57
637
  #: classes/helpers/FrmFormsHelper.php:112
638
  #: classes/helpers/FrmFormsHelper.php:166
@@ -645,17 +646,17 @@ msgstr ""
645
  msgid "(no title)"
646
  msgstr ""
647
 
648
- #: classes/controllers/FrmFormsController.php:1711
649
- #: classes/controllers/FrmFormsController.php:1725
650
  msgid "Please select a valid form"
651
  msgstr ""
652
 
653
- #: classes/controllers/FrmFormsController.php:1947
654
  msgid "Please wait while you are redirected."
655
  msgstr ""
656
 
657
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
658
- #: classes/controllers/FrmFormsController.php:1983
659
  msgid "%1$sClick here%2$s if you are not automatically redirected."
660
  msgstr ""
661
 
@@ -1220,7 +1221,7 @@ msgstr ""
1220
  #: classes/views/frm-forms/new-form-overlay.php:139
1221
  #: classes/views/shared/admin-header.php:64
1222
  #: classes/views/shared/confirm-overlay.php:19
1223
- #: js/formidable_admin.js:3680
1224
  msgid "Cancel"
1225
  msgstr ""
1226
 
@@ -1247,7 +1248,7 @@ msgstr ""
1247
 
1248
  #: classes/helpers/FrmAppHelper.php:2527
1249
  #: classes/helpers/FrmListHelper.php:405
1250
- #: js/formidable_admin.js:4072
1251
  msgid "Heads up"
1252
  msgstr ""
1253
 
@@ -3140,7 +3141,7 @@ msgid "This will permanently delete the form and all its entries. This is irreve
3140
  msgstr ""
3141
 
3142
  #: classes/helpers/FrmFormsHelper.php:1153
3143
- #: classes/models/FrmField.php:203
3144
  msgid "Total"
3145
  msgstr ""
3146
 
@@ -3425,8 +3426,10 @@ msgstr ""
3425
  #: classes/helpers/FrmTipsHelper.php:92
3426
  #: classes/helpers/FrmTipsHelper.php:154
3427
  #: classes/helpers/FrmTipsHelper.php:162
3428
- #: classes/helpers/FrmTipsHelper.php:256
3429
- #: classes/helpers/FrmTipsHelper.php:280
 
 
3430
  msgid "Upgrade to Pro."
3431
  msgstr ""
3432
 
@@ -3463,7 +3466,7 @@ msgid "Fill out forms automatically!"
3463
  msgstr ""
3464
 
3465
  #: classes/helpers/FrmTipsHelper.php:114
3466
- #: classes/helpers/FrmTipsHelper.php:263
3467
  msgid "A site with dynamic, user-generated content is within reach."
3468
  msgstr ""
3469
 
@@ -3564,47 +3567,55 @@ msgstr ""
3564
  msgid "Use multiple style templates."
3565
  msgstr ""
3566
 
3567
- #: classes/helpers/FrmTipsHelper.php:247
3568
- msgid "Want to edit form submissions?"
3569
  msgstr ""
3570
 
3571
  #: classes/helpers/FrmTipsHelper.php:248
 
 
 
 
 
 
 
 
3572
  msgid "Add entry management."
3573
  msgstr ""
3574
 
3575
- #: classes/helpers/FrmTipsHelper.php:255
3576
  msgid "Want to search submitted entries?"
3577
  msgstr ""
3578
 
3579
- #: classes/helpers/FrmTipsHelper.php:264
3580
  msgid "Display form data with Views."
3581
  msgstr ""
3582
 
3583
- #: classes/helpers/FrmTipsHelper.php:279
3584
  msgid "Want to import entries into your forms?"
3585
  msgstr ""
3586
 
3587
- #: classes/helpers/FrmTipsHelper.php:294
3588
  msgid "Looking for more ways to get professional results?"
3589
  msgstr ""
3590
 
3591
- #: classes/helpers/FrmTipsHelper.php:295
3592
  msgid "Take your forms to the next level."
3593
  msgstr ""
3594
 
3595
- #: classes/helpers/FrmTipsHelper.php:302
3596
  msgid "Increase conversions in long forms."
3597
  msgstr ""
3598
 
3599
- #: classes/helpers/FrmTipsHelper.php:303
3600
  msgid "Add conditional logic, page breaks, and section headings."
3601
  msgstr ""
3602
 
3603
- #: classes/helpers/FrmTipsHelper.php:310
3604
  msgid "Automate your business and increase revenue."
3605
  msgstr ""
3606
 
3607
- #: classes/helpers/FrmTipsHelper.php:311
3608
  msgid "Collect instant payments, and send leads to MailChimp."
3609
  msgstr ""
3610
 
@@ -3958,108 +3969,108 @@ msgstr ""
3958
  msgid "reCAPTCHA"
3959
  msgstr ""
3960
 
3961
- #: classes/models/FrmField.php:77
3962
  msgid "File Upload"
3963
  msgstr ""
3964
 
3965
- #: classes/models/FrmField.php:82
3966
  msgid "Rich Text"
3967
  msgstr ""
3968
 
3969
- #: classes/models/FrmField.php:90
3970
  msgid "Time"
3971
  msgstr ""
3972
 
3973
- #: classes/models/FrmField.php:94
3974
  msgid "Scale"
3975
  msgstr ""
3976
 
3977
- #: classes/models/FrmField.php:99
3978
  msgid "Star Rating"
3979
  msgstr ""
3980
 
3981
- #: classes/models/FrmField.php:103
3982
  msgid "Slider"
3983
  msgstr ""
3984
 
3985
- #: classes/models/FrmField.php:107
3986
  msgid "Toggle"
3987
  msgstr ""
3988
 
3989
- #: classes/models/FrmField.php:111
3990
  msgid "Dynamic"
3991
  msgstr ""
3992
 
3993
- #: classes/models/FrmField.php:116
3994
  msgid "Lookup"
3995
  msgstr ""
3996
 
3997
- #: classes/models/FrmField.php:121
3998
  msgid "Repeater"
3999
  msgstr ""
4000
 
4001
- #: classes/models/FrmField.php:126
4002
  #: classes/models/FrmFormMigrator.php:302
4003
  msgid "Section Buttons"
4004
  msgstr ""
4005
 
4006
- #: classes/models/FrmField.php:130
4007
  msgid "Section"
4008
  msgstr ""
4009
 
4010
- #: classes/models/FrmField.php:134
4011
  msgid "Page Break"
4012
  msgstr ""
4013
 
4014
- #: classes/models/FrmField.php:139
4015
  msgid "Embed Form"
4016
  msgstr ""
4017
 
4018
- #: classes/models/FrmField.php:143
4019
  msgid "Likert Scale"
4020
  msgstr ""
4021
 
4022
- #: classes/models/FrmField.php:148
4023
  msgid "NPS"
4024
  msgstr ""
4025
 
4026
- #: classes/models/FrmField.php:153
4027
  msgid "Password"
4028
  msgstr ""
4029
 
4030
- #: classes/models/FrmField.php:157
4031
  msgid "Tags"
4032
  msgstr ""
4033
 
4034
- #: classes/models/FrmField.php:161
4035
  msgid "Credit Card"
4036
  msgstr ""
4037
 
4038
- #: classes/models/FrmField.php:166
4039
  msgid "Address"
4040
  msgstr ""
4041
 
4042
- #: classes/models/FrmField.php:170
4043
  msgid "Summary"
4044
  msgstr ""
4045
 
4046
- #: classes/models/FrmField.php:175
4047
  msgid "Signature"
4048
  msgstr ""
4049
 
4050
- #: classes/models/FrmField.php:180
4051
  msgid "Quiz Score"
4052
  msgstr ""
4053
 
4054
- #: classes/models/FrmField.php:185
4055
  msgid "Appointment"
4056
  msgstr ""
4057
 
4058
- #: classes/models/FrmField.php:193
4059
  msgid "Product"
4060
  msgstr ""
4061
 
4062
- #: classes/models/FrmField.php:198
4063
  msgid "Quantity"
4064
  msgstr ""
4065
 
@@ -4206,7 +4217,7 @@ msgstr ""
4206
  msgid "You do not have permission to view this form."
4207
  msgstr ""
4208
 
4209
- #: classes/models/FrmSettings.php:178
4210
  msgid "The reCAPTCHA was not entered correctly"
4211
  msgstr ""
4212
 
@@ -4484,7 +4495,7 @@ msgstr ""
4484
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4485
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4486
  #: classes/views/shared/admin-header.php:19
4487
- #: js/formidable_admin.js:7645
4488
  msgid "Close"
4489
  msgstr ""
4490
 
@@ -5852,7 +5863,7 @@ msgstr ""
5852
  #: classes/views/styles/_field-colors.php:111
5853
  #: classes/views/styles/_form-messages.php:12
5854
  #: classes/views/styles/_form-messages.php:32
5855
- #: classes/views/styles/_general.php:46
5856
  msgid "Border"
5857
  msgstr ""
5858
 
@@ -5880,7 +5891,7 @@ msgstr ""
5880
  #: classes/views/styles/_field-labels.php:50
5881
  #: classes/views/styles/_field-sizes.php:27
5882
  #: classes/views/styles/_form-description.php:24
5883
- #: classes/views/styles/_general.php:56
5884
  msgid "Padding"
5885
  msgstr ""
5886
 
@@ -5916,7 +5927,7 @@ msgstr ""
5916
  #: classes/views/styles/_field-labels.php:58
5917
  #: classes/views/styles/_form-description.php:12
5918
  #: classes/views/styles/_form-title.php:12
5919
- #: classes/views/styles/_general.php:51
5920
  msgid "Color"
5921
  msgstr ""
5922
 
@@ -6032,19 +6043,27 @@ msgstr ""
6032
  msgid "Background"
6033
  msgstr ""
6034
 
6035
- #: classes/views/styles/_general.php:61
 
 
 
 
 
 
 
 
6036
  msgid "Font Family"
6037
  msgstr ""
6038
 
6039
- #: classes/views/styles/_general.php:66
6040
  msgid "Direction"
6041
  msgstr ""
6042
 
6043
- #: classes/views/styles/_general.php:69
6044
  msgid "Left to Right"
6045
  msgstr ""
6046
 
6047
- #: classes/views/styles/_general.php:72
6048
  msgid "Right to Left"
6049
  msgstr ""
6050
 
@@ -6288,39 +6307,39 @@ msgstr ""
6288
  msgid "Duplicate Group"
6289
  msgstr ""
6290
 
6291
- #: js/formidable_admin.js:3377
6292
  msgid "Custom layout"
6293
  msgstr ""
6294
 
6295
- #: js/formidable_admin.js:3400
6296
  msgid "Break into rows"
6297
  msgstr ""
6298
 
6299
- #: js/formidable_admin.js:3410
6300
  msgid "Row Layout"
6301
  msgstr ""
6302
 
6303
- #: js/formidable_admin.js:3665
6304
  msgid "Enter number of columns for each field"
6305
  msgstr ""
6306
 
6307
- #: js/formidable_admin.js:3669
6308
  msgid "Layouts are based on a 12-column grid system"
6309
  msgstr ""
6310
 
6311
- #: js/formidable_admin.js:3685
6312
  msgid "Save"
6313
  msgstr ""
6314
 
6315
- #: js/formidable_admin.js:3986
6316
  msgid "Merge into row"
6317
  msgstr ""
6318
 
6319
  #. translators: %1$s: Number of fields that are selected to be deleted.
6320
- #: js/formidable_admin.js:4074
6321
  msgid "Are you sure you want to delete these %1$s selected fields?"
6322
  msgstr ""
6323
 
6324
- #: js/formidable_admin.js:7637
6325
  msgid "Save and Reload"
6326
  msgstr ""
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 5.0.08\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-10-07T12:48:23+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
198
  #: classes/controllers/FrmAppController.php:165
199
  #: classes/controllers/FrmEntriesController.php:11
200
  #: classes/controllers/FrmEntriesController.php:100
201
+ #: classes/controllers/FrmFormsController.php:760
202
  #: classes/controllers/FrmXMLController.php:259
203
  #: classes/views/xml/import_form.php:121
204
  msgid "Entries"
224
  msgstr ""
225
 
226
  #: classes/controllers/FrmEntriesController.php:79
227
+ #: classes/controllers/FrmFormsController.php:1306
228
  #: classes/views/frm-entries/form.php:63
229
  #: classes/views/frm-entries/sidebar-shared.php:57
230
  msgid "Entry Key"
231
  msgstr ""
232
 
233
  #: classes/controllers/FrmEntriesController.php:84
234
+ #: classes/controllers/FrmFormsController.php:661
235
  #: classes/views/xml/import_form.php:152
236
  #: classes/widgets/FrmElementorWidget.php:37
237
  #: classes/widgets/FrmShowForm.php:59
322
  msgstr ""
323
 
324
  #: classes/controllers/FrmFormsController.php:9
325
+ #: classes/controllers/FrmFormsController.php:770
326
  #: classes/controllers/FrmStylesController.php:51
327
  #: classes/controllers/FrmXMLController.php:258
328
  #: classes/views/frm-forms/list.php:10
330
  msgid "Forms"
331
  msgstr ""
332
 
333
+ #: classes/controllers/FrmFormsController.php:48
 
 
 
 
334
  msgid "Only show the fields you need and create branching forms. Upgrade to get conditional logic and question branching."
335
  msgstr ""
336
 
337
  #: classes/controllers/FrmFormsController.php:49
338
+ #: classes/controllers/FrmFormsController.php:50
339
+ msgid "Conditional Logic options"
340
+ msgstr ""
341
+
342
+ #: classes/controllers/FrmFormsController.php:52
343
  msgid "Add Conditional Logic"
344
  msgstr ""
345
 
346
+ #: classes/controllers/FrmFormsController.php:151
347
  msgid "Settings Successfully Updated"
348
  msgstr ""
349
 
350
+ #: classes/controllers/FrmFormsController.php:187
351
+ #: classes/controllers/FrmFormsController.php:979
352
  msgid "Form was successfully updated."
353
  msgstr ""
354
 
355
  #. translators: %1$s: Start link HTML, %2$s: end link HTML
356
+ #: classes/controllers/FrmFormsController.php:192
357
  msgid "However, your form is very long and may be %1$sreaching server limits%2$s."
358
  msgstr ""
359
 
360
+ #: classes/controllers/FrmFormsController.php:246
361
  #: deprecated/FrmDeprecated.php:414
362
  msgid "Form template was Successfully Created"
363
  msgstr ""
364
 
365
+ #: classes/controllers/FrmFormsController.php:246
366
  msgid "Form was Successfully Copied"
367
  msgstr ""
368
 
369
+ #: classes/controllers/FrmFormsController.php:250
370
  msgid "There was a problem creating the new template."
371
  msgstr ""
372
 
373
+ #: classes/controllers/FrmFormsController.php:364
374
  msgid "Form Preview"
375
  msgstr ""
376
 
377
  #. translators: %1$s: Number of forms
378
+ #: classes/controllers/FrmFormsController.php:409
379
+ #: classes/controllers/FrmFormsController.php:470
380
  msgid "%1$s form restored from the Trash."
381
  msgid_plural "%1$s forms restored from the Trash."
382
  msgstr[0] ""
383
  msgstr[1] ""
384
 
385
  #. translators: %1$s: Number of forms, %2$s: Start link HTML, %3$s: End link HTML
386
+ #: classes/controllers/FrmFormsController.php:473
387
+ #: classes/controllers/FrmFormsController.php:498
388
  msgid "%1$s form moved to the Trash. %2$sUndo%3$s"
389
  msgid_plural "%1$s forms moved to the Trash. %2$sUndo%3$s"
390
  msgstr[0] ""
391
  msgstr[1] ""
392
 
393
  #. translators: %1$s: Number of forms
394
+ #: classes/controllers/FrmFormsController.php:521
395
  msgid "%1$s Form Permanently Deleted"
396
  msgid_plural "%1$s Forms Permanently Deleted"
397
  msgstr[0] ""
398
  msgstr[1] ""
399
 
400
  #. translators: %1$s: Number of forms
401
+ #: classes/controllers/FrmFormsController.php:538
402
+ #: classes/controllers/FrmFormsController.php:555
403
  msgid "%1$s form permanently deleted."
404
  msgid_plural "%1$s forms permanently deleted."
405
  msgstr[0] ""
406
  msgstr[1] ""
407
 
408
+ #: classes/controllers/FrmFormsController.php:601
409
  msgid "There was an error creating a template."
410
  msgstr ""
411
 
412
+ #: classes/controllers/FrmFormsController.php:645
413
  msgid "Add forms and content"
414
  msgstr ""
415
 
416
+ #: classes/controllers/FrmFormsController.php:662
417
  #: classes/views/frm-forms/insert_form_popup.php:33
418
  msgid "Insert a Form"
419
  msgstr ""
420
 
421
+ #: classes/controllers/FrmFormsController.php:691
422
  msgid "Display form title"
423
  msgstr ""
424
 
425
+ #: classes/controllers/FrmFormsController.php:695
426
  msgid "Display form description"
427
  msgstr ""
428
 
429
+ #: classes/controllers/FrmFormsController.php:699
430
  msgid "Minimize form HTML"
431
  msgstr ""
432
 
433
+ #: classes/controllers/FrmFormsController.php:755
434
  #: classes/views/frm-forms/new-form-overlay.php:46
435
  msgid "Template Name"
436
  msgstr ""
437
 
438
+ #: classes/controllers/FrmFormsController.php:756
439
  #: classes/views/xml/import_form.php:120
440
  msgid "Type"
441
  msgstr ""
442
 
443
+ #: classes/controllers/FrmFormsController.php:757
444
+ #: classes/controllers/FrmFormsController.php:761
445
  #: classes/helpers/FrmCSVExportHelper.php:230
446
  #: classes/views/shared/mb_adv_info.php:98
447
  msgid "Key"
448
  msgstr ""
449
 
450
+ #: classes/controllers/FrmFormsController.php:759
451
  #: classes/controllers/FrmStylesController.php:394
452
  #: classes/views/frm-forms/settings-advanced.php:13
453
  #: classes/views/styles/manage.php:39
456
  msgid "Form Title"
457
  msgstr ""
458
 
459
+ #: classes/controllers/FrmFormsController.php:762
460
  msgid "Shortcodes"
461
  msgstr ""
462
 
463
+ #: classes/controllers/FrmFormsController.php:765
464
+ #: classes/models/FrmField.php:87
465
  msgid "Date"
466
  msgstr ""
467
 
468
+ #: classes/controllers/FrmFormsController.php:885
469
  #: classes/helpers/FrmFormsHelper.php:1258
470
  msgid "My Templates"
471
  msgstr ""
472
 
473
+ #: classes/controllers/FrmFormsController.php:944
474
  msgid "You are trying to edit a form that does not exist."
475
  msgstr ""
476
 
477
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
478
+ #: classes/controllers/FrmFormsController.php:949
479
  msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
480
  msgstr ""
481
 
482
+ #: classes/controllers/FrmFormsController.php:981
483
  msgid "Template was successfully updated."
484
  msgstr ""
485
 
486
+ #: classes/controllers/FrmFormsController.php:1055
487
  #: classes/controllers/FrmStylesController.php:393
488
  msgid "General"
489
  msgstr ""
490
 
491
+ #: classes/controllers/FrmFormsController.php:1056
492
  msgid "General Form Settings"
493
  msgstr ""
494
 
495
+ #: classes/controllers/FrmFormsController.php:1061
496
  msgid "Actions & Notifications"
497
  msgstr ""
498
 
499
+ #: classes/controllers/FrmFormsController.php:1067
500
+ #: classes/controllers/FrmFormsController.php:1072
501
  msgid "Form Permissions"
502
  msgstr ""
503
 
504
+ #: classes/controllers/FrmFormsController.php:1073
505
  msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
506
  msgstr ""
507
 
508
+ #: classes/controllers/FrmFormsController.php:1077
509
  msgid "Form Scheduling"
510
  msgstr ""
511
 
512
+ #: classes/controllers/FrmFormsController.php:1082
513
  msgid "Form scheduling settings"
514
  msgstr ""
515
 
516
+ #: classes/controllers/FrmFormsController.php:1086
517
  msgid "Styling & Buttons"
518
  msgstr ""
519
 
520
+ #: classes/controllers/FrmFormsController.php:1092
521
  msgid "Customize HTML"
522
  msgstr ""
523
 
524
+ #: classes/controllers/FrmFormsController.php:1222
525
  msgid "Customize field values with the following parameters."
526
  msgstr ""
527
 
528
+ #: classes/controllers/FrmFormsController.php:1259
529
  msgid "Separator"
530
  msgstr ""
531
 
532
+ #: classes/controllers/FrmFormsController.php:1260
533
  msgid "Use a different separator for checkbox fields"
534
  msgstr ""
535
 
536
+ #: classes/controllers/FrmFormsController.php:1263
537
  msgid "Date Format"
538
  msgstr ""
539
 
540
+ #: classes/controllers/FrmFormsController.php:1266
541
  #: classes/views/frm-fields/back-end/settings.php:27
542
  msgid "Field Label"
543
  msgstr ""
544
 
545
+ #: classes/controllers/FrmFormsController.php:1269
546
  msgid "No Auto P"
547
  msgstr ""
548
 
549
+ #: classes/controllers/FrmFormsController.php:1270
550
  msgid "Do not automatically add any paragraphs or line breaks"
551
  msgstr ""
552
 
553
+ #: classes/controllers/FrmFormsController.php:1285
554
  #: classes/models/FrmField.php:62
555
  msgid "User ID"
556
  msgstr ""
557
 
558
+ #: classes/controllers/FrmFormsController.php:1286
559
  msgid "First Name"
560
  msgstr ""
561
 
562
+ #: classes/controllers/FrmFormsController.php:1287
563
  msgid "Last Name"
564
  msgstr ""
565
 
566
+ #: classes/controllers/FrmFormsController.php:1288
567
  msgid "Display Name"
568
  msgstr ""
569
 
570
+ #: classes/controllers/FrmFormsController.php:1289
571
  msgid "User Login"
572
  msgstr ""
573
 
574
+ #: classes/controllers/FrmFormsController.php:1290
575
  #: classes/models/FrmField.php:34
576
  msgid "Email"
577
  msgstr ""
578
 
579
+ #: classes/controllers/FrmFormsController.php:1291
580
  msgid "Avatar"
581
  msgstr ""
582
 
583
+ #: classes/controllers/FrmFormsController.php:1292
584
  msgid "Author Link"
585
  msgstr ""
586
 
587
+ #: classes/controllers/FrmFormsController.php:1305
588
  #: classes/views/frm-entries/sidebar-shared.php:51
589
  msgid "Entry ID"
590
  msgstr ""
591
 
592
+ #: classes/controllers/FrmFormsController.php:1307
593
  msgid "Post ID"
594
  msgstr ""
595
 
596
+ #: classes/controllers/FrmFormsController.php:1308
597
  msgid "User IP"
598
  msgstr ""
599
 
600
+ #: classes/controllers/FrmFormsController.php:1309
601
  msgid "Entry created"
602
  msgstr ""
603
 
604
+ #: classes/controllers/FrmFormsController.php:1310
605
  msgid "Entry updated"
606
  msgstr ""
607
 
608
+ #: classes/controllers/FrmFormsController.php:1312
609
  msgid "Site URL"
610
  msgstr ""
611
 
612
+ #: classes/controllers/FrmFormsController.php:1313
613
  msgid "Site Name"
614
  msgstr ""
615
 
616
+ #: classes/controllers/FrmFormsController.php:1321
617
  msgid "Default Msg"
618
  msgstr ""
619
 
620
+ #: classes/controllers/FrmFormsController.php:1322
621
  msgid "Default HTML"
622
  msgstr ""
623
 
624
+ #: classes/controllers/FrmFormsController.php:1323
625
  msgid "Default Plain"
626
  msgstr ""
627
 
628
+ #: classes/controllers/FrmFormsController.php:1426
629
  msgid "No forms were specified"
630
  msgstr ""
631
 
632
+ #: classes/controllers/FrmFormsController.php:1538
633
  msgid "Abnormal HTML characters prevented your form from saving correctly"
634
  msgstr ""
635
 
636
+ #: classes/controllers/FrmFormsController.php:1653
637
  #: classes/helpers/FrmFormsHelper.php:57
638
  #: classes/helpers/FrmFormsHelper.php:112
639
  #: classes/helpers/FrmFormsHelper.php:166
646
  msgid "(no title)"
647
  msgstr ""
648
 
649
+ #: classes/controllers/FrmFormsController.php:1699
650
+ #: classes/controllers/FrmFormsController.php:1713
651
  msgid "Please select a valid form"
652
  msgstr ""
653
 
654
+ #: classes/controllers/FrmFormsController.php:1935
655
  msgid "Please wait while you are redirected."
656
  msgstr ""
657
 
658
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
659
+ #: classes/controllers/FrmFormsController.php:1971
660
  msgid "%1$sClick here%2$s if you are not automatically redirected."
661
  msgstr ""
662
 
1221
  #: classes/views/frm-forms/new-form-overlay.php:139
1222
  #: classes/views/shared/admin-header.php:64
1223
  #: classes/views/shared/confirm-overlay.php:19
1224
+ #: js/formidable_admin.js:3676
1225
  msgid "Cancel"
1226
  msgstr ""
1227
 
1248
 
1249
  #: classes/helpers/FrmAppHelper.php:2527
1250
  #: classes/helpers/FrmListHelper.php:405
1251
+ #: js/formidable_admin.js:4068
1252
  msgid "Heads up"
1253
  msgstr ""
1254
 
3141
  msgstr ""
3142
 
3143
  #: classes/helpers/FrmFormsHelper.php:1153
3144
+ #: classes/models/FrmField.php:204
3145
  msgid "Total"
3146
  msgstr ""
3147
 
3426
  #: classes/helpers/FrmTipsHelper.php:92
3427
  #: classes/helpers/FrmTipsHelper.php:154
3428
  #: classes/helpers/FrmTipsHelper.php:162
3429
+ #: classes/helpers/FrmTipsHelper.php:241
3430
+ #: classes/helpers/FrmTipsHelper.php:249
3431
+ #: classes/helpers/FrmTipsHelper.php:272
3432
+ #: classes/helpers/FrmTipsHelper.php:296
3433
  msgid "Upgrade to Pro."
3434
  msgstr ""
3435
 
3466
  msgstr ""
3467
 
3468
  #: classes/helpers/FrmTipsHelper.php:114
3469
+ #: classes/helpers/FrmTipsHelper.php:279
3470
  msgid "A site with dynamic, user-generated content is within reach."
3471
  msgstr ""
3472
 
3567
  msgid "Use multiple style templates."
3568
  msgstr ""
3569
 
3570
+ #: classes/helpers/FrmTipsHelper.php:240
3571
+ msgid "Want to add a background image?"
3572
  msgstr ""
3573
 
3574
  #: classes/helpers/FrmTipsHelper.php:248
3575
+ msgid "Want to set a color with an alpha slider?"
3576
+ msgstr ""
3577
+
3578
+ #: classes/helpers/FrmTipsHelper.php:263
3579
+ msgid "Want to edit form submissions?"
3580
+ msgstr ""
3581
+
3582
+ #: classes/helpers/FrmTipsHelper.php:264
3583
  msgid "Add entry management."
3584
  msgstr ""
3585
 
3586
+ #: classes/helpers/FrmTipsHelper.php:271
3587
  msgid "Want to search submitted entries?"
3588
  msgstr ""
3589
 
3590
+ #: classes/helpers/FrmTipsHelper.php:280
3591
  msgid "Display form data with Views."
3592
  msgstr ""
3593
 
3594
+ #: classes/helpers/FrmTipsHelper.php:295
3595
  msgid "Want to import entries into your forms?"
3596
  msgstr ""
3597
 
3598
+ #: classes/helpers/FrmTipsHelper.php:310
3599
  msgid "Looking for more ways to get professional results?"
3600
  msgstr ""
3601
 
3602
+ #: classes/helpers/FrmTipsHelper.php:311
3603
  msgid "Take your forms to the next level."
3604
  msgstr ""
3605
 
3606
+ #: classes/helpers/FrmTipsHelper.php:318
3607
  msgid "Increase conversions in long forms."
3608
  msgstr ""
3609
 
3610
+ #: classes/helpers/FrmTipsHelper.php:319
3611
  msgid "Add conditional logic, page breaks, and section headings."
3612
  msgstr ""
3613
 
3614
+ #: classes/helpers/FrmTipsHelper.php:326
3615
  msgid "Automate your business and increase revenue."
3616
  msgstr ""
3617
 
3618
+ #: classes/helpers/FrmTipsHelper.php:327
3619
  msgid "Collect instant payments, and send leads to MailChimp."
3620
  msgstr ""
3621
 
3969
  msgid "reCAPTCHA"
3970
  msgstr ""
3971
 
3972
+ #: classes/models/FrmField.php:78
3973
  msgid "File Upload"
3974
  msgstr ""
3975
 
3976
+ #: classes/models/FrmField.php:83
3977
  msgid "Rich Text"
3978
  msgstr ""
3979
 
3980
+ #: classes/models/FrmField.php:91
3981
  msgid "Time"
3982
  msgstr ""
3983
 
3984
+ #: classes/models/FrmField.php:95
3985
  msgid "Scale"
3986
  msgstr ""
3987
 
3988
+ #: classes/models/FrmField.php:100
3989
  msgid "Star Rating"
3990
  msgstr ""
3991
 
3992
+ #: classes/models/FrmField.php:104
3993
  msgid "Slider"
3994
  msgstr ""
3995
 
3996
+ #: classes/models/FrmField.php:108
3997
  msgid "Toggle"
3998
  msgstr ""
3999
 
4000
+ #: classes/models/FrmField.php:112
4001
  msgid "Dynamic"
4002
  msgstr ""
4003
 
4004
+ #: classes/models/FrmField.php:117
4005
  msgid "Lookup"
4006
  msgstr ""
4007
 
4008
+ #: classes/models/FrmField.php:122
4009
  msgid "Repeater"
4010
  msgstr ""
4011
 
4012
+ #: classes/models/FrmField.php:127
4013
  #: classes/models/FrmFormMigrator.php:302
4014
  msgid "Section Buttons"
4015
  msgstr ""
4016
 
4017
+ #: classes/models/FrmField.php:131
4018
  msgid "Section"
4019
  msgstr ""
4020
 
4021
+ #: classes/models/FrmField.php:135
4022
  msgid "Page Break"
4023
  msgstr ""
4024
 
4025
+ #: classes/models/FrmField.php:140
4026
  msgid "Embed Form"
4027
  msgstr ""
4028
 
4029
+ #: classes/models/FrmField.php:144
4030
  msgid "Likert Scale"
4031
  msgstr ""
4032
 
4033
+ #: classes/models/FrmField.php:149
4034
  msgid "NPS"
4035
  msgstr ""
4036
 
4037
+ #: classes/models/FrmField.php:154
4038
  msgid "Password"
4039
  msgstr ""
4040
 
4041
+ #: classes/models/FrmField.php:158
4042
  msgid "Tags"
4043
  msgstr ""
4044
 
4045
+ #: classes/models/FrmField.php:162
4046
  msgid "Credit Card"
4047
  msgstr ""
4048
 
4049
+ #: classes/models/FrmField.php:167
4050
  msgid "Address"
4051
  msgstr ""
4052
 
4053
+ #: classes/models/FrmField.php:171
4054
  msgid "Summary"
4055
  msgstr ""
4056
 
4057
+ #: classes/models/FrmField.php:176
4058
  msgid "Signature"
4059
  msgstr ""
4060
 
4061
+ #: classes/models/FrmField.php:181
4062
  msgid "Quiz Score"
4063
  msgstr ""
4064
 
4065
+ #: classes/models/FrmField.php:186
4066
  msgid "Appointment"
4067
  msgstr ""
4068
 
4069
+ #: classes/models/FrmField.php:194
4070
  msgid "Product"
4071
  msgstr ""
4072
 
4073
+ #: classes/models/FrmField.php:199
4074
  msgid "Quantity"
4075
  msgstr ""
4076
 
4217
  msgid "You do not have permission to view this form."
4218
  msgstr ""
4219
 
4220
+ #: classes/models/FrmSettings.php:195
4221
  msgid "The reCAPTCHA was not entered correctly"
4222
  msgstr ""
4223
 
4495
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4496
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4497
  #: classes/views/shared/admin-header.php:19
4498
+ #: js/formidable_admin.js:7641
4499
  msgid "Close"
4500
  msgstr ""
4501
 
5863
  #: classes/views/styles/_field-colors.php:111
5864
  #: classes/views/styles/_form-messages.php:12
5865
  #: classes/views/styles/_form-messages.php:32
5866
+ #: classes/views/styles/_general.php:60
5867
  msgid "Border"
5868
  msgstr ""
5869
 
5891
  #: classes/views/styles/_field-labels.php:50
5892
  #: classes/views/styles/_field-sizes.php:27
5893
  #: classes/views/styles/_form-description.php:24
5894
+ #: classes/views/styles/_general.php:70
5895
  msgid "Padding"
5896
  msgstr ""
5897
 
5927
  #: classes/views/styles/_field-labels.php:58
5928
  #: classes/views/styles/_form-description.php:12
5929
  #: classes/views/styles/_form-title.php:12
5930
+ #: classes/views/styles/_general.php:65
5931
  msgid "Color"
5932
  msgstr ""
5933
 
6043
  msgid "Background"
6044
  msgstr ""
6045
 
6046
+ #: classes/views/styles/_general.php:49
6047
+ msgid "Background image styles"
6048
+ msgstr ""
6049
+
6050
+ #: classes/views/styles/_general.php:52
6051
+ msgid "Upload background image"
6052
+ msgstr ""
6053
+
6054
+ #: classes/views/styles/_general.php:75
6055
  msgid "Font Family"
6056
  msgstr ""
6057
 
6058
+ #: classes/views/styles/_general.php:80
6059
  msgid "Direction"
6060
  msgstr ""
6061
 
6062
+ #: classes/views/styles/_general.php:83
6063
  msgid "Left to Right"
6064
  msgstr ""
6065
 
6066
+ #: classes/views/styles/_general.php:86
6067
  msgid "Right to Left"
6068
  msgstr ""
6069
 
6307
  msgid "Duplicate Group"
6308
  msgstr ""
6309
 
6310
+ #: js/formidable_admin.js:3373
6311
  msgid "Custom layout"
6312
  msgstr ""
6313
 
6314
+ #: js/formidable_admin.js:3396
6315
  msgid "Break into rows"
6316
  msgstr ""
6317
 
6318
+ #: js/formidable_admin.js:3406
6319
  msgid "Row Layout"
6320
  msgstr ""
6321
 
6322
+ #: js/formidable_admin.js:3661
6323
  msgid "Enter number of columns for each field"
6324
  msgstr ""
6325
 
6326
+ #: js/formidable_admin.js:3665
6327
  msgid "Layouts are based on a 12-column grid system"
6328
  msgstr ""
6329
 
6330
+ #: js/formidable_admin.js:3681
6331
  msgid "Save"
6332
  msgstr ""
6333
 
6334
+ #: js/formidable_admin.js:3982
6335
  msgid "Merge into row"
6336
  msgstr ""
6337
 
6338
  #. translators: %1$s: Number of fields that are selected to be deleted.
6339
+ #: js/formidable_admin.js:4070
6340
  msgid "Are you sure you want to delete these %1$s selected fields?"
6341
  msgstr ""
6342
 
6343
+ #: js/formidable_admin.js:7633
6344
  msgid "Save and Reload"
6345
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: forms, contact form, form builder, survey, form maker, form creator, paypa
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
- Stable tag: 5.0.07
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
@@ -440,10 +440,16 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
 
 
 
 
 
 
443
  = 5.0.07 =
444
  - Security: Unsafe HTML will now be stripped from field labels, descriptions, and custom HTML, as well as form titles, descriptions, custom submit text, custom submit HTML, before HTML, after HTML, and success message if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
445
  - New: Added new frm_akismet_values filter to help improve Akismet integration.
446
- - Fix: The Akismet API was getting called is Akismet was set up even if the form had Akismet turned off.
447
  - Fix: Updated the styling when a field option is being dragged and dropped.
448
 
449
  = 5.0.06 =
@@ -478,10 +484,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
478
  = 5.0.02 =
479
  * New: Field groups can now be duplicated and deleted.
480
 
481
- = 5.0.01 =
482
- * New: Updated styling and icons in the back end builder.
483
- * New: Added search to form fields in the builder to make finding a specific field easier.
484
- * Fix: Toggling a page to collapse was not working properly, causing the first page break to collapse the whole page and the other page break fields to do nothing.
485
- * Fix: Added truncation to long form keys during duplication to avoid issues with duplicating when the generated key was too long.
486
-
487
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
+ Stable tag: 5.0.08
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
443
+ = 5.0.08 =
444
+ - Deprecated: Calls to FrmFormsController::preview will no longer try to load WordPress if it is not already initialized. This could cause issues for users that still use old preview links (see https://formidableforms.com/knowledgebase/php-examples/#kb-use-the-old-preview-links for an example).
445
+ - Security: Unsafe HTML will now be stripped from global message defaults, whitelabel settings, and when importing forms and fields with XML if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
446
+ - Updated Bootstrap used in back end to version 3.4.1.
447
+ - A few images that were being loaded from S3 and CDN urls are now included in the plugin instead.
448
+
449
  = 5.0.07 =
450
  - Security: Unsafe HTML will now be stripped from field labels, descriptions, and custom HTML, as well as form titles, descriptions, custom submit text, custom submit HTML, before HTML, after HTML, and success message if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
451
  - New: Added new frm_akismet_values filter to help improve Akismet integration.
452
+ - Fix: The Akismet API was getting called if Akismet was set up even if the form had Akismet turned off.
453
  - Fix: Updated the styling when a field option is being dragged and dropped.
454
 
455
  = 5.0.06 =
484
  = 5.0.02 =
485
  * New: Field groups can now be duplicated and deleted.
486
 
 
 
 
 
 
 
487
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>