Formidable Forms – Form Builder for WordPress - Version 5.4.1

Version Description

  • New: Fields using the "Placeholder inside the field" Label Position setting will now use an animated label that moves to the top of the field when focused.
  • New: Added a new frm_after_destroy_entry filter that can be used to update caching after a Formidable entry is deleted.
  • Fix: An unexpected empty broken application template was appearing for expired licenses.
Download this release

Release Info

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

Code changes from version 5.4 to 5.4.1

classes/controllers/FrmApplicationsController.php CHANGED
@@ -106,7 +106,12 @@ class FrmApplicationsController {
106
 
107
  $unlocked_templates = array();
108
  $locked_templates = array();
109
- foreach ( $applications as $application ) {
 
 
 
 
 
110
  if ( ! empty( $application['url'] ) ) {
111
  $unlocked_templates[] = $application;
112
  } else {
106
 
107
  $unlocked_templates = array();
108
  $locked_templates = array();
109
+ foreach ( $applications as $key => $application ) {
110
+ if ( ! is_numeric( $key ) ) {
111
+ // Skip "error" or any other non-numeric key.
112
+ continue;
113
+ }
114
+
115
  if ( ! empty( $application['url'] ) ) {
116
  $unlocked_templates[] = $application;
117
  } else {
classes/controllers/FrmFieldsController.php CHANGED
@@ -570,18 +570,15 @@ class FrmFieldsController {
570
  }
571
 
572
  /**
573
- * @param array $field
 
 
 
 
574
  * @return string
575
  */
576
  private static function prepare_placeholder( $field ) {
577
- $placeholder = isset( $field['placeholder'] ) ? $field['placeholder'] : '';
578
- $placeholder_is_blank = empty( $placeholder ) && '0' !== $placeholder;
579
- $is_placeholder_field = FrmFieldsHelper::is_placeholder_field_type( $field['type'] );
580
- $is_combo_field = in_array( $field['type'], array( 'address', 'credit_card' ), true );
581
-
582
- if ( $placeholder_is_blank && $is_placeholder_field && ! $is_combo_field ) {
583
- $placeholder = self::get_default_value_from_name( $field );
584
- }
585
 
586
  return $placeholder;
587
  }
@@ -591,23 +588,14 @@ class FrmFieldsController {
591
  * get the label to use as the placeholder
592
  *
593
  * @since 2.05
 
594
  *
595
  * @param array $field
596
  *
597
  * @return string
598
  */
599
  public static function get_default_value_from_name( $field ) {
600
- $position = FrmField::get_option( $field, 'label' );
601
- if ( $position == 'inside' ) {
602
- $default_value = $field['name'];
603
- if ( FrmField::is_required( $field ) ) {
604
- $default_value .= ' ' . $field['required_indicator'];
605
- }
606
- } else {
607
- $default_value = '';
608
- }
609
-
610
- return $default_value;
611
  }
612
 
613
  /**
570
  }
571
 
572
  /**
573
+ * Prepares field placeholder.
574
+ *
575
+ * @since 5.4 This doesn't call `FrmFieldsController::get_default_value_from_name()` anymore.
576
+ *
577
+ * @param array $field Field array.
578
  * @return string
579
  */
580
  private static function prepare_placeholder( $field ) {
581
+ $placeholder = isset( $field['placeholder'] ) ? $field['placeholder'] : '';
 
 
 
 
 
 
 
582
 
583
  return $placeholder;
584
  }
588
  * get the label to use as the placeholder
589
  *
590
  * @since 2.05
591
+ * @since 5.4 Remove the logic code for "inside" label position.
592
  *
593
  * @param array $field
594
  *
595
  * @return string
596
  */
597
  public static function get_default_value_from_name( $field ) {
598
+ return '';
 
 
 
 
 
 
 
 
 
 
599
  }
600
 
601
  /**
classes/controllers/FrmFormsController.php CHANGED
@@ -1126,22 +1126,24 @@ class FrmFormsController {
1126
  'icon' => 'frm_icon_font frm_mail_bulk_icon',
1127
  ),
1128
  'permissions' => array(
1129
- 'name' => __( 'Form Permissions', 'formidable' ),
1130
- 'icon' => 'frm_icon_font frm_lock_icon',
1131
- 'html_class' => 'frm_show_upgrade frm_noallow',
1132
- 'data' => array(
1133
- 'medium' => 'permissions',
1134
- 'upgrade' => __( 'Form Permissions', 'formidable' ),
1135
- 'message' => __( 'Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions.', 'formidable' ),
 
1136
  ),
1137
  ),
1138
  'scheduling' => array(
1139
- 'name' => __( 'Form Scheduling', 'formidable' ),
1140
- 'icon' => 'frm_icon_font frm_calendar_icon',
1141
- 'html_class' => 'frm_show_upgrade frm_noallow',
1142
- 'data' => array(
1143
- 'medium' => 'scheduling',
1144
- 'upgrade' => __( 'Form scheduling settings', 'formidable' ),
 
1145
  ),
1146
  ),
1147
  'buttons' => array(
@@ -1153,18 +1155,19 @@ class FrmFormsController {
1153
  'landing' => array(
1154
  'name' => __( 'Form Landing Page', 'formidable' ),
1155
  'icon' => 'frm_icon_font frm_file_text_icon',
1156
- 'html_class' => 'frm_show_upgrade frm_noallow',
1157
  'data' => FrmAppHelper::get_landing_page_upgrade_data_params(),
1158
  ),
1159
  'chat' => array(
1160
  'name' => __( 'Conversational Forms', 'formidable' ),
1161
  'icon' => 'frm_icon_font frm_chat_forms_icon',
1162
- 'html_class' => 'frm_show_upgrade frm_noallow',
1163
  'data' => FrmAppHelper::get_upgrade_data_params(
1164
  'chat',
1165
  array(
1166
- 'upgrade' => __( 'Conversational Forms', 'formidable' ),
1167
- 'message' => __( 'Ask one question at a time for automated conversations.', 'formidable' ),
 
1168
  )
1169
  ),
1170
  ),
1126
  'icon' => 'frm_icon_font frm_mail_bulk_icon',
1127
  ),
1128
  'permissions' => array(
1129
+ 'name' => __( 'Form Permissions', 'formidable' ),
1130
+ 'icon' => 'frm_icon_font frm_lock_icon',
1131
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
1132
+ 'data' => array(
1133
+ 'medium' => 'permissions',
1134
+ 'upgrade' => __( 'Form Permissions', 'formidable' ),
1135
+ 'message' => __( 'Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions.', 'formidable' ),
1136
+ 'screenshot' => 'permissions.png',
1137
  ),
1138
  ),
1139
  'scheduling' => array(
1140
+ 'name' => __( 'Form Scheduling', 'formidable' ),
1141
+ 'icon' => 'frm_icon_font frm_calendar_icon',
1142
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
1143
+ 'data' => array(
1144
+ 'medium' => 'scheduling',
1145
+ 'upgrade' => __( 'Form scheduling settings', 'formidable' ),
1146
+ 'screenshot' => 'scheduling.png',
1147
  ),
1148
  ),
1149
  'buttons' => array(
1155
  'landing' => array(
1156
  'name' => __( 'Form Landing Page', 'formidable' ),
1157
  'icon' => 'frm_icon_font frm_file_text_icon',
1158
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
1159
  'data' => FrmAppHelper::get_landing_page_upgrade_data_params(),
1160
  ),
1161
  'chat' => array(
1162
  'name' => __( 'Conversational Forms', 'formidable' ),
1163
  'icon' => 'frm_icon_font frm_chat_forms_icon',
1164
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
1165
  'data' => FrmAppHelper::get_upgrade_data_params(
1166
  'chat',
1167
  array(
1168
+ 'upgrade' => __( 'Conversational Forms', 'formidable' ),
1169
+ 'message' => __( 'Ask one question at a time for automated conversations.', 'formidable' ),
1170
+ 'screenshot' => 'chat.png',
1171
  )
1172
  ),
1173
  ),
classes/controllers/FrmSettingsController.php CHANGED
@@ -60,19 +60,21 @@ class FrmSettingsController {
60
  'white_label' => array(
61
  'name' => __( 'White Labeling', 'formidable' ),
62
  'icon' => 'frm_icon_font frm_ghost_icon',
63
- 'html_class' => 'frm_show_upgrade frm_noallow',
64
  'data' => array(
65
- 'medium' => 'white-label',
66
- 'upgrade' => __( 'White labeling options', 'formidable' ),
 
67
  ),
68
  ),
69
  'inbox' => array(
70
  'name' => __( 'Inbox', 'formidable' ),
71
  'icon' => 'frm_icon_font frm_email_icon',
72
- 'html_class' => 'frm_show_upgrade frm_noallow',
73
  'data' => array(
74
- 'medium' => 'inbox-settings',
75
- 'upgrade' => __( 'Inbox settings', 'formidable' ),
 
76
  ),
77
  ),
78
  );
60
  'white_label' => array(
61
  'name' => __( 'White Labeling', 'formidable' ),
62
  'icon' => 'frm_icon_font frm_ghost_icon',
63
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
64
  'data' => array(
65
+ 'medium' => 'white-label',
66
+ 'upgrade' => __( 'White labeling options', 'formidable' ),
67
+ 'screenshot' => 'white-label.png',
68
  ),
69
  ),
70
  'inbox' => array(
71
  'name' => __( 'Inbox', 'formidable' ),
72
  'icon' => 'frm_icon_font frm_email_icon',
73
+ 'html_class' => 'frm_show_upgrade_tab frm_noallow',
74
  'data' => array(
75
+ 'medium' => 'inbox-settings',
76
+ 'upgrade' => __( 'Inbox settings', 'formidable' ),
77
+ 'screenshot' => 'inbox.png',
78
  ),
79
  ),
80
  );
classes/helpers/FrmAppHelper.php CHANGED
@@ -16,7 +16,7 @@ class FrmAppHelper {
16
  /**
17
  * @since 2.0
18
  */
19
- public static $plug_version = '5.4';
20
 
21
  /**
22
  * @since 1.07.02
@@ -2539,6 +2539,10 @@ class FrmAppHelper {
2539
  }
2540
 
2541
  $frm_action = self::simple_get( 'frm_action', 'sanitize_title' );
 
 
 
 
2542
  if ( empty( $action ) || ( ! empty( $frm_action ) && in_array( $frm_action, $action ) ) ) {
2543
  echo ' class="current_page"';
2544
  }
@@ -3321,9 +3325,10 @@ class FrmAppHelper {
3321
  */
3322
  public static function get_landing_page_upgrade_data_params( $medium = 'landing' ) {
3323
  $params = array(
3324
- 'medium' => $medium,
3325
- 'upgrade' => __( 'Form Landing Pages', 'formidable' ),
3326
- 'message' => __( 'Easily manage a landing page for your form. Upgrade to get form landing pages.', 'formidable' ),
 
3327
  );
3328
  return self::get_upgrade_data_params( 'landing', $params );
3329
  }
16
  /**
17
  * @since 2.0
18
  */
19
+ public static $plug_version = '5.4.1';
20
 
21
  /**
22
  * @since 1.07.02
2539
  }
2540
 
2541
  $frm_action = self::simple_get( 'frm_action', 'sanitize_title' );
2542
+ if ( 'lite-reports' === $frm_action ) {
2543
+ $frm_action = 'reports';
2544
+ }
2545
+
2546
  if ( empty( $action ) || ( ! empty( $frm_action ) && in_array( $frm_action, $action ) ) ) {
2547
  echo ' class="current_page"';
2548
  }
3325
  */
3326
  public static function get_landing_page_upgrade_data_params( $medium = 'landing' ) {
3327
  $params = array(
3328
+ 'medium' => $medium,
3329
+ 'upgrade' => __( 'Form Landing Pages', 'formidable' ),
3330
+ 'message' => __( 'Easily manage a landing page for your form. Upgrade to get form landing pages.', 'formidable' ),
3331
+ 'screenshot' => 'landing.png',
3332
  );
3333
  return self::get_upgrade_data_params( 'landing', $params );
3334
  }
classes/helpers/FrmTipsHelper.php CHANGED
@@ -221,6 +221,9 @@ class FrmTipsHelper {
221
  return $tips;
222
  }
223
 
 
 
 
224
  public static function get_styling_tip() {
225
  $tips = array(
226
  array(
@@ -242,9 +245,9 @@ class FrmTipsHelper {
242
  array(
243
  'link' => array(
244
  'content' => 'style',
245
- 'param' => 'bg-image-style-settings',
246
  ),
247
- 'tip' => __( 'Want to set a color with an alpha slider?', 'formidable' ),
248
  'call' => __( 'Upgrade to Pro.', 'formidable' ),
249
  ),
250
  );
221
  return $tips;
222
  }
223
 
224
+ /**
225
+ * @return array
226
+ */
227
  public static function get_styling_tip() {
228
  $tips = array(
229
  array(
245
  array(
246
  'link' => array(
247
  'content' => 'style',
248
+ 'param' => 'duplicate-style',
249
  ),
250
+ 'tip' => __( 'Want to duplicate a style?', 'formidable' ),
251
  'call' => __( 'Upgrade to Pro.', 'formidable' ),
252
  ),
253
  );
classes/models/FrmEntry.php CHANGED
@@ -251,6 +251,12 @@ class FrmEntry {
251
  return $query_results;
252
  }
253
 
 
 
 
 
 
 
254
  public static function destroy( $id ) {
255
  global $wpdb;
256
  $id = (int) $id;
@@ -258,10 +264,15 @@ class FrmEntry {
258
  $entry = self::getOne( $id );
259
  if ( ! $entry ) {
260
  $result = false;
261
-
262
  return $result;
263
  }
264
 
 
 
 
 
 
 
265
  do_action( 'frm_before_destroy_entry', $id, $entry );
266
 
267
  $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_item_metas WHERE item_id=%d', $id ) );
@@ -269,6 +280,17 @@ class FrmEntry {
269
 
270
  self::clear_cache();
271
 
 
 
 
 
 
 
 
 
 
 
 
272
  return $result;
273
  }
274
 
251
  return $query_results;
252
  }
253
 
254
+ /**
255
+ * Delete an entry.
256
+ *
257
+ * @param string|int $id
258
+ * @return bool True on success, false if nothing was deleted.
259
+ */
260
  public static function destroy( $id ) {
261
  global $wpdb;
262
  $id = (int) $id;
264
  $entry = self::getOne( $id );
265
  if ( ! $entry ) {
266
  $result = false;
 
267
  return $result;
268
  }
269
 
270
+ /**
271
+ * Trigger an action to run custom logic before the entry is deleted.
272
+ *
273
+ * @param int $id The id of the entry that was destroyed.
274
+ * @param stdClass $entry The entry object.
275
+ */
276
  do_action( 'frm_before_destroy_entry', $id, $entry );
277
 
278
  $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_item_metas WHERE item_id=%d', $id ) );
280
 
281
  self::clear_cache();
282
 
283
+ /**
284
+ * Trigger an action to run custom logic after the entry is deleted.
285
+ * Use this hook if you need to update caching after an entry is deleted.
286
+ *
287
+ * @since 5.4.1
288
+ *
289
+ * @param int $id The id of the entry that was destroyed.
290
+ * @param stdClass $entry The entry object.
291
+ */
292
+ do_action( 'frm_after_destroy_entry', $id, $entry );
293
+
294
  return $result;
295
  }
296
 
classes/models/FrmFieldFormHtml.php CHANGED
@@ -130,7 +130,6 @@ class FrmFieldFormHtml {
130
  $this->replace_required_class();
131
  $this->maybe_replace_description_shortcode( false );
132
  $this->replace_error_shortcode();
133
- $this->add_class_to_label();
134
  $this->add_field_div_classes();
135
 
136
  $this->replace_entry_key();
@@ -453,7 +452,13 @@ class FrmFieldFormHtml {
453
  // Add label position class
454
  $settings = $this->field_obj->display_field_settings();
455
  if ( isset( $settings['label_position'] ) && $settings['label_position'] ) {
456
- $classes .= ' frm_' . $this->field_obj->get_field_column( 'label' ) . '_container';
 
 
 
 
 
 
457
  }
458
 
459
  // Add CSS layout classes
130
  $this->replace_required_class();
131
  $this->maybe_replace_description_shortcode( false );
132
  $this->replace_error_shortcode();
 
133
  $this->add_field_div_classes();
134
 
135
  $this->replace_entry_key();
452
  // Add label position class
453
  $settings = $this->field_obj->display_field_settings();
454
  if ( isset( $settings['label_position'] ) && $settings['label_position'] ) {
455
+ $label_position = $this->field_obj->get_field_column( 'label' );
456
+ $classes .= ' frm_' . $label_position . '_container';
457
+
458
+ // Add class if field has value, to be used for floating label styling.
459
+ if ( 'inside' === $label_position && $this->field_obj->get_field_column( 'value' ) ) {
460
+ $classes .= ' frm_label_float_top';
461
+ }
462
  }
463
 
464
  // Add CSS layout classes
classes/views/shared/reports-info.php CHANGED
@@ -15,7 +15,6 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  );
16
  ?>
17
  <div class="frmcenter" style="margin-top:10vh">
18
- <img src="<?php echo esc_attr( FrmAppHelper::plugin_url() . '/images/reports.svg' ); ?>" alt="<?php esc_attr_e( 'View reports', 'formidable' ); ?>" height="243" />
19
  <h2><?php esc_html_e( 'Get Live Graphs and Reports', 'formidable' ); ?></h2>
20
  <p style="max-width:400px;margin:20px auto">
21
  <?php esc_html_e( 'Get more insight for surveys, polls, daily contacts, and more.', 'formidable' ); ?>
@@ -23,6 +22,17 @@ if ( ! defined( 'ABSPATH' ) ) {
23
  <a class="button button-primary frm-button-primary" href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'reports-info' ) ); ?>" target="_blank" rel="noopener">
24
  <?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
25
  </a>
 
 
 
 
 
 
 
 
 
 
 
26
  </div>
27
  </div>
28
  </div>
15
  );
16
  ?>
17
  <div class="frmcenter" style="margin-top:10vh">
 
18
  <h2><?php esc_html_e( 'Get Live Graphs and Reports', 'formidable' ); ?></h2>
19
  <p style="max-width:400px;margin:20px auto">
20
  <?php esc_html_e( 'Get more insight for surveys, polls, daily contacts, and more.', 'formidable' ); ?>
22
  <a class="button button-primary frm-button-primary" href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'reports-info' ) ); ?>" target="_blank" rel="noopener">
23
  <?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
24
  </a>
25
+ <div class="frm-settings-screenshot-wrapper" style="margin-top: 30px;">
26
+ <div class="frm-settings-screenshot-toolbar">
27
+ <div class="frm-minmax-icon" style="background-color: #ED8181"></div>
28
+ <div class="frm-minmax-icon" style="background-color: #EDE06A"></div>
29
+ <div class="frm-minmax-icon" style="background-color: #80BE30"></div>
30
+ <img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/tab.svg' ); ?>" />
31
+ </div>
32
+ <div>
33
+ <img src="<?php echo esc_attr( FrmAppHelper::plugin_url() . '/images/screenshots/reports.png' ); ?>" alt="<?php esc_attr_e( 'View reports', 'formidable' ); ?>" height="243" />
34
+ </div>
35
+ </div>
36
  </div>
37
  </div>
38
  </div>
classes/views/shared/upgrade_overlay.php CHANGED
@@ -15,9 +15,11 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  <h2>
16
  <?php
17
  printf(
18
- /* translators: %s: Feature name */
19
- esc_html__( '%s are not installed', 'formidable' ),
20
- '<span class="frm_feature_label"></span>'
 
 
21
  );
22
  ?>
23
  </h2>
15
  <h2>
16
  <?php
17
  printf(
18
+ /* translators: %$1s: Feature name, %$2s: open span tag, %$3s: close span tag. */
19
+ esc_html__( '%1$s %2$sare not installed%3$s', 'formidable' ),
20
+ '<span class="frm_feature_label"></span>',
21
+ '<span class="frm_are_not_installed">',
22
+ '</span>'
23
  );
24
  ?>
25
  </h2>
classes/views/styles/_upsell-multiple-styles.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ die( 'You are not allowed to call this page directly.' );
4
+ }
5
+ ?>
6
+ <?php
7
+ $multiple_styles_title = __( 'You are currently limited to 1 style template', 'formidable' );
8
+ $multiple_styles_message = __( 'Upgrade to create and manage as many form styles as you need.', 'formidable' );
9
+ ?>
10
+ <a href="#" class="button button-secondary frm-button-secondary frm-with-plus frm_noallow" data-upgrade="<?php echo esc_attr( $multiple_styles_title ); ?>" data-message="<?php echo esc_attr( $multiple_styles_message ); ?>" data-image="styles-upsell.svg">
11
+ <?php FrmAppHelper::icon_by_class( 'frmfont frm_plus_icon frm_svg15' ); ?>
12
+ <?php esc_html_e( 'New Style', 'formidable' ); ?>
13
+ </a>
14
+ <a href="#" class="button button-secondary frm-button-secondary alignright frm_noallow" data-upgrade="<?php echo esc_attr( $multiple_styles_title ); ?>" data-message="<?php echo esc_attr( $multiple_styles_message ); ?>" data-image="styles-upsell.svg">
15
+ <?php esc_html_e( 'Duplicate', 'formidable' ); ?>
16
+ </a>
classes/views/styles/show.php CHANGED
@@ -44,7 +44,17 @@ if ( ! defined( 'ABSPATH' ) ) {
44
  <?php esc_html_e( 'Make this the default style', 'formidable' ); ?></span>
45
  </label>
46
  </p>
47
- <?php do_action( 'frm_style_settings_top', $style ); ?>
 
 
 
 
 
 
 
 
 
 
48
  </div>
49
  <?php FrmStylesController::do_accordion_sections( FrmStylesController::$screen, 'side', compact( 'style', 'frm_style' ) ); ?>
50
  </div>
44
  <?php esc_html_e( 'Make this the default style', 'formidable' ); ?></span>
45
  </label>
46
  </p>
47
+
48
+ <?php
49
+ if ( ! class_exists( 'FrmProStylesController' ) ) {
50
+ require dirname( __FILE__ ) . '/_upsell-multiple-styles.php';
51
+ }
52
+
53
+ /**
54
+ * @param WP_Post $style
55
+ */
56
+ do_action( 'frm_style_settings_top', $style );
57
+ ?>
58
  </div>
59
  <?php FrmStylesController::do_accordion_sections( FrmStylesController::$screen, 'side', compact( 'style', 'frm_style' ) ); ?>
60
  </div>
css/custom_theme.css.php CHANGED
@@ -435,16 +435,98 @@ legend.frm_hidden{
435
  white-space:nowrap;
436
  }
437
 
438
- .with_frm_style .frm_inside_container .frm_primary_label{
439
- opacity:0;
440
- transition: opacity 0.1s linear;
441
- }
442
-
443
- .with_frm_style .frm_inside_container label.frm_visible,
444
  .frm_visible{
445
  opacity:1;
446
  }
447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
  .with_frm_style .frm_description{
449
  clear:both;
450
  }
435
  white-space:nowrap;
436
  }
437
 
 
 
 
 
 
 
438
  .frm_visible{
439
  opacity:1;
440
  }
441
 
442
+ /* Floating labels */
443
+ .with_frm_style .frm_inside_container {
444
+ position: relative;
445
+ padding-top: 27px;
446
+ padding-top: calc(0.85 * var(--field-height));
447
+ }
448
+
449
+ .with_frm_style .frm_inside_container > input,
450
+ .with_frm_style .frm_inside_container > select,
451
+ .with_frm_style .frm_inside_container > textarea {
452
+ display: block;
453
+ }
454
+
455
+ /* These do not work if they are combined */
456
+ .with_frm_style .frm_inside_container > input::-moz-placeholder,
457
+ .with_frm_style .frm_inside_container > textarea::-moz-placeholder {
458
+ opacity: 0 !important;
459
+ transition: opacity 0.3s ease-in;
460
+ }
461
+
462
+ .with_frm_style .frm_inside_container > input:-ms-input-placeholder,
463
+ .with_frm_style .frm_inside_container > textarea:-ms-input-placeholder {
464
+ opacity: 0;
465
+ transition: opacity 0.3s ease-in;
466
+ }
467
+
468
+ .with_frm_style .frm_inside_container > input::placeholder,
469
+ .with_frm_style .frm_inside_container > textarea::placeholder {
470
+ opacity: 0;
471
+ transition: opacity 0.3s ease-in;
472
+ }
473
+
474
+ .with_frm_style .frm_inside_container > label {
475
+ transition: all 0.3s ease-in;
476
+
477
+ position: absolute;
478
+ top: 28px;
479
+ top: calc(1px + 0.85 * var(--field-height));
480
+ left: 3px;
481
+ width: 100%;
482
+
483
+ line-height: 1.3;
484
+ text-overflow: ellipsis;
485
+ overflow: hidden;
486
+ white-space: nowrap;
487
+
488
+ padding: 6px 10px;
489
+ padding: var(--field-pad);
490
+
491
+ font-size: 14px;
492
+ font-size: var(--field-font-size);
493
+ font-weight: normal;
494
+ font-weight: var(--field-weight);
495
+
496
+ -ms-pointer-events: none;
497
+ pointer-events: none;
498
+ }
499
+
500
+ .with_frm_style.frm_style_lines-no-boxes .frm_inside_container > label {
501
+ line-height: 1;
502
+ }
503
+
504
+ .with_frm_style .frm_inside_container.frm_label_float_top > label {
505
+ top: 0;
506
+ left: 0;
507
+ font-size: 12px;
508
+ font-size: calc(0.85 * var(--field-font-size));
509
+ }
510
+
511
+ /* These do not work if they are combined */
512
+ .with_frm_style .frm_inside_container.frm_label_float_top > input::-moz-placeholder,
513
+ .with_frm_style .frm_inside_container.frm_label_float_top > textarea::-moz-placeholder {
514
+ opacity: 1 !important;
515
+ transition: opacity 0.3s ease-in;
516
+ }
517
+
518
+ .with_frm_style .frm_inside_container.frm_label_float_top > input:-ms-input-placeholder,
519
+ .with_frm_style .frm_inside_container.frm_label_float_top > textarea:-ms-input-placeholder {
520
+ opacity: 1;
521
+ transition: opacity 0.3s ease-in;
522
+ }
523
+
524
+ .with_frm_style .frm_inside_container.frm_label_float_top > input::placeholder,
525
+ .with_frm_style .frm_inside_container.frm_label_float_top > textarea::placeholder {
526
+ opacity: 1;
527
+ transition: opacity 0.3s ease-in;
528
+ }
529
+
530
  .with_frm_style .frm_description{
531
  clear:both;
532
  }
css/frm_admin.css CHANGED
@@ -348,7 +348,10 @@ ul.frm_form_nav > li:last-of-type {
348
  .frm_form_nav > li > a {
349
  font-size: 13px;
350
  text-transform: uppercase;
351
- opacity: .8;
 
 
 
352
  }
353
 
354
  .frm_form_nav > li > a:hover {
@@ -7218,6 +7221,57 @@ li.frm_noallow.button.frm_show_upgrade {
7218
  color: inherit;
7219
  }
7220
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7221
  .frm-dialog {
7222
  z-index: 100;
7223
  padding: 0 !important;
348
  .frm_form_nav > li > a {
349
  font-size: 13px;
350
  text-transform: uppercase;
351
+ }
352
+
353
+ .frm_form_nav > li > a:not(.frm_noallow) {
354
+ opacity: 0.8;
355
  }
356
 
357
  .frm_form_nav > li > a:hover {
7221
  color: inherit;
7222
  }
7223
 
7224
+ #frm_upgrade_modal_image {
7225
+ max-width: 200px;
7226
+ }
7227
+
7228
+ .frm-tab-message {
7229
+ max-width: 600px;
7230
+ margin: 20px auto;
7231
+ color: rgba(63, 75, 91, 0.8);
7232
+ }
7233
+
7234
+ .frm-settings-screenshot-toolbar {
7235
+ min-height: 39px;
7236
+ display: flex;
7237
+ }
7238
+
7239
+ .frm-settings-screenshot-toolbar .frm-minmax-icon {
7240
+ height: 8px;
7241
+ width: 8px;
7242
+ border-radius: 50%;
7243
+ align-self: center;
7244
+ margin-left: 10px;
7245
+ }
7246
+
7247
+ .frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type {
7248
+ margin-left: 20px;
7249
+ }
7250
+
7251
+ .frm-settings-screenshot-toolbar img {
7252
+ object-fit: contain;
7253
+ align-self: flex-end;
7254
+ margin-left: 25px;
7255
+ }
7256
+
7257
+ .frm-settings-screenshot-toolbar + div {
7258
+ background: #fff;
7259
+ padding-top: 25px;
7260
+ border-radius: 0 0 16px 16px;
7261
+ }
7262
+
7263
+ .frm-settings-screenshot-toolbar + div img {
7264
+ max-width: calc( 100% - 40px );
7265
+ }
7266
+
7267
+ .frm-settings-screenshot-wrapper {
7268
+ max-width: 700px;
7269
+ margin: 50px auto 0;
7270
+ box-shadow: 0px 4px 4px rgba(189, 196, 205, 0.25), 0px 12px 56px rgba(42, 57, 75, 0.25);
7271
+ border-radius: 16px;
7272
+ background: #EBECF1;
7273
+ }
7274
+
7275
  .frm-dialog {
7276
  z-index: 100;
7277
  padding: 0 !important;
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.4
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.4.1
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
images/reports.svg DELETED
@@ -1 +0,0 @@
1
- <svg width="477" height="326" viewBox="0 0 477 326" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#filter0_d)"><rect x="63" y="46" width="331.7" height="238.7" rx="10.1" fill="#fff"/><rect x="77.4" y="60.9" width="289.5" height="16.4" rx="8.2" fill="#9EA9B8" fill-opacity=".7"/><rect x="77.4" y="85.7" width="160.1" height="8.7" rx="4.3" fill="#9AA6B5" fill-opacity=".5"/><path d="M98.2 184.9L81 213.2v52.4h294.7V144.9c0-.6-.9-1-1.3-.4l-15.8 19.5a7.2 7.2 0 01-11.2 0L337 151a7.2 7.2 0 00-11.9 1l-13.4 23.6a7.2 7.2 0 01-10.6 2.2l-9-6.8a7.2 7.2 0 00-11 2.7L269.8 198a7.2 7.2 0 01-13.3-.7l-12.7-34.8a7.2 7.2 0 00-12-2.4l-8.6 9.3a7.2 7.2 0 01-11.3-.8L199.2 150a7.2 7.2 0 00-11-1L178 159.3a7.2 7.2 0 01-11.2-1.2l-9.4-14.8a7.2 7.2 0 00-13 1.8l-14.1 46.5c-1.7 5.6-9 7-12.6 2.4l-7.7-9.8a7.2 7.2 0 00-11.8.7z" fill="url(#paint0_linear)"/><path d="M81 213l17.2-28.4a7.2 7.2 0 0111.8-.7l7.7 9.8a7.2 7.2 0 0012.6-2.4l14-46.3c1.9-5.9 9.8-7 13-1.8l9.5 14.8c2.5 3.9 8 4.5 11.2 1.2l10.2-10.3a7.2 7.2 0 0111 1l12.7 18.4a7.2 7.2 0 0011.2.8l8.5-9.2a7.2 7.2 0 0112.1 2.4l12.7 34.6a7.2 7.2 0 0013.3.7l11.5-24c2-4.2 7.2-5.5 10.8-2.8l9.1 6.8a7.2 7.2 0 0010.6-2.2L325 152c2.5-4.4 8.7-5 11.9-1l10.4 12.9a7.2 7.2 0 0011.2 0l17-21" stroke="#4278C1" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></g><g filter="url(#filter1_d)"><rect x="252" y="160" width="200.1" height="144" rx="6.1" fill="#fff"/></g><path d="M402 232a50 50 0 00-50-50v28.4a21.6 21.6 0 0121.6 21.6H402z" fill="#4278C0"/><path d="M402 233.3a50 50 0 01-79.3 39.2l16.6-23a21.6 21.6 0 0034.3-17l28.4.8z" fill="#EEF3FA"/><path d="M321.3 271.5A50 50 0 01351 182l.6 28.4a21.6 21.6 0 00-12.8 38.7l-17.4 22.4z" fill="#3F4B5B"/><defs><filter id="filter0_d" x="22.5" y=".4" width="412.8" height="319.7" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="-5.1"/><feGaussianBlur stdDeviation="20.3"/><feColorMatrix values="0 0 0 0 0.164706 0 0 0 0 0.223529 0 0 0 0 0.294118 0 0 0 0.21 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow"/><feBlend in="SourceGraphic" in2="effect1_dropShadow" result="shape"/></filter><filter id="filter1_d" x="227.6" y="132.5" width="249" height="192.9" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy="-3.1"/><feGaussianBlur stdDeviation="12.2"/><feColorMatrix values="0 0 0 0 0.164706 0 0 0 0 0.223529 0 0 0 0 0.294118 0 0 0 0.21 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow"/><feBlend in="SourceGraphic" in2="effect1_dropShadow" result="shape"/></filter><linearGradient id="paint0_linear" x1="228.3" y1="130.1" x2="228.3" y2="265.7" gradientUnits="userSpaceOnUse"><stop stop-color="#4278C1" stop-opacity=".4"/><stop offset="1" stop-color="#7CADF0" stop-opacity=".1"/></linearGradient></defs></svg>
 
images/screenshots/chat.png ADDED
Binary file
images/screenshots/inbox.png ADDED
Binary file
images/screenshots/landing.png ADDED
Binary file
images/screenshots/permissions.png ADDED
Binary file
images/screenshots/reports.png ADDED
Binary file
images/screenshots/scheduling.png ADDED
Binary file
images/screenshots/white-label.png ADDED
Binary file
images/styles-upsell.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="263" height="200" fill="none" xmlns="http://www.w3.org/2000/svg"><g filter="url(#a)"><path d="M41.05 16.413A4.413 4.413 0 0 1 45.463 12h188.388a4.413 4.413 0 0 1 4.413 4.413v142.491a4.413 4.413 0 0 1-4.413 4.413H45.463a4.413 4.413 0 0 1-4.413-4.413V16.414Z" fill="#fff"/></g><path opacity=".3" d="M45.352 18.98a2.677 2.677 0 0 1 2.677-2.677h182.537a2.677 2.677 0 0 1 2.677 2.676v127.318a2.677 2.677 0 0 1-2.677 2.677H48.029a2.677 2.677 0 0 1-2.677-2.677V18.979Z" fill="#fff" fill-opacity=".3"/><circle cx="199.156" cy="23.389" r="3.5" fill="#BCC4CE"/><circle cx="210.629" cy="23.389" r="3.5" fill="#BCC4CE"/><circle cx="222.102" cy="23.389" r="3.5" fill="#BCC4CE"/><rect x="84" y="39" width="106" height="16" rx="1.502" fill="#8F99A6" fill-opacity=".16"/><rect x="84" y="67" width="106" height="16" rx="1.502" fill="#8F99A6" fill-opacity=".16"/><rect x="84" y="95" width="106" height="16" rx="1.502" fill="#8F99A6" fill-opacity=".16"/><rect x="84" y="123" width="48" height="16" rx="1.502" fill="#8F99A6" fill-opacity=".16"/><rect x="142" y="123" width="48" height="16" rx="1.502" fill="#8F99A6" fill-opacity=".16"/><g filter="url(#b)"><rect x="87.5" y="28" width="44" height="149" rx="8" transform="rotate(30 87.5 28)" fill="#fff"/></g><rect x="88.964" y="33.464" width="36" height="20" rx="4" transform="rotate(30 88.964 33.464)" fill="#B9C1CC"/><rect opacity=".8" x="77.464" y="53.383" width="36" height="20" rx="4" transform="rotate(30 77.464 53.383)" fill="#B9C1CC"/><rect opacity=".6" x="65.964" y="73.301" width="36" height="20" rx="4" transform="rotate(30 65.964 73.301)" fill="#B9C1CC"/><rect opacity=".4" x="54.465" y="93.22" width="36" height="20" rx="4" transform="rotate(30 54.465 93.22)" fill="#B9C1CC"/><rect opacity=".2" x="42.961" y="113.138" width="36" height="20" rx="4" transform="rotate(30 42.961 113.138)" fill="#B9C1CC"/><g filter="url(#c)"><rect x="50.563" y="18" width="44" height="149" rx="8" transform="rotate(15 50.563 18)" fill="#fff"/></g><rect x="53.391" y="22.899" width="36" height="20" rx="4" transform="rotate(15 53.39 22.899)" fill="#B9C1CC"/><rect opacity=".8" x="47.438" y="45.115" width="36" height="20" rx="4" transform="rotate(15 47.438 45.115)" fill="#B9C1CC"/><rect opacity=".6" x="41.485" y="67.332" width="36" height="20" rx="4" transform="rotate(15 41.485 67.332)" fill="#B9C1CC"/><rect opacity=".4" x="35.531" y="89.548" width="36" height="20" rx="4" transform="rotate(15 35.531 89.548)" fill="#B9C1CC"/><rect opacity=".2" x="29.578" y="111.764" width="36" height="20" rx="4" transform="rotate(15 29.578 111.764)" fill="#B9C1CC"/><g filter="url(#d)"><rect x="15" y="18" width="44" height="149" rx="8" fill="#fff"/></g><rect x="19" y="22" width="36" height="20" rx="4" fill="#4278C0"/><rect opacity=".8" x="19" y="45" width="36" height="20" rx="4" fill="#4278C0"/><rect opacity=".6" x="19" y="68" width="36" height="20" rx="4" fill="#4278C0"/><rect opacity=".4" x="19" y="91" width="36" height="20" rx="4" fill="#4278C0"/><rect opacity=".2" x="19" y="114" width="36" height="20" rx="4" fill="#4278C0"/><g filter="url(#e)"><circle cx="37" cy="152" r="6" fill="#fff"/></g><defs><filter id="a" x="17.05" y="0" width="245.214" height="199.317" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="12"/><feGaussianBlur stdDeviation="12"/><feColorMatrix values="0 0 0 0 0.139288 0 0 0 0 0.192514 0 0 0 0 0.295833 0 0 0 0.22 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_104_2591"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_104_2591" result="shape"/></filter><filter id="b" x="2.593" y="20.72" width="133.418" height="171.851" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3.126"/><feGaussianBlur stdDeviation="6.667"/><feColorMatrix values="0 0 0 0 0.139288 0 0 0 0 0.192514 0 0 0 0 0.295833 0 0 0 0.15 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_104_2591"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_104_2591" result="shape"/></filter><filter id="c" x=".461" y="9.589" width="104.14" height="178.386" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3.126"/><feGaussianBlur stdDeviation="6.667"/><feColorMatrix values="0 0 0 0 0.139288 0 0 0 0 0.192514 0 0 0 0 0.295833 0 0 0 0.15 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_104_2591"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_104_2591" result="shape"/></filter><filter id="d" x="1.667" y="7.793" width="70.667" height="175.667" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3.126"/><feGaussianBlur stdDeviation="6.667"/><feColorMatrix values="0 0 0 0 0.139288 0 0 0 0 0.192514 0 0 0 0 0.295833 0 0 0 0.15 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_104_2591"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_104_2591" result="shape"/></filter><filter id="e" x="31" y="146" width="12" height="16" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="4"/><feGaussianBlur stdDeviation="2"/><feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/><feColorMatrix values="0 0 0 0 0.8 0 0 0 0 0.811765 0 0 0 0 0.835294 0 0 0 1 0"/><feBlend in2="shape" result="effect1_innerShadow_104_2591"/></filter></defs></svg>
images/tab.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="172" height="29" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 6a6 6 0 0 1 6-6h160a6 6 0 0 1 6 6v23H0V6Z" fill="#fff"/><g clip-path="url(#a)"><path d="M15.743 15.974h3.29v1.735h-3.29v-1.735Z" fill="#F15A24"/><path d="M18.345 10.41H13.68a.744.744 0 0 0-.748.742v.993h6.103V10.41h-.689Zm-.06 2.752h-5.348v4.547h1.735v-2.812h3.626a.754.754 0 0 0 .706-.496.582.582 0 0 0 .035-.21v-1.029h-.753ZM16 21a7 7 0 1 1 .008-14.002A7 7 0 0 1 16 21Zm0-13.073a6.072 6.072 0 0 0-4.296 10.369 6.075 6.075 0 1 0 6.621-9.908A6.031 6.031 0 0 0 16 7.933v-.006Z" fill="#686666"/></g><path d="M32.168 19h-.996v-8.566h4.77v.879h-3.774v3.14h3.545v.873h-3.545V19Zm10.594-3.223c0 .528-.069.998-.205 1.412a2.892 2.892 0 0 1-.592 1.05c-.258.284-.57.503-.938.655a3.243 3.243 0 0 1-1.236.223 3.07 3.07 0 0 1-1.184-.223 2.672 2.672 0 0 1-.925-.656 3.033 3.033 0 0 1-.604-1.049 4.381 4.381 0 0 1-.21-1.412c0-.703.118-1.3.357-1.793a2.547 2.547 0 0 1 1.02-1.13c.445-.262.974-.393 1.587-.393.586 0 1.098.13 1.535.393.442.261.783.64 1.026 1.136.246.492.369 1.088.369 1.787Zm-4.887 0c0 .516.068.963.205 1.342.137.379.348.672.633.879.285.207.652.31 1.102.31.445 0 .81-.103 1.095-.31.29-.207.502-.5.639-.879.136-.379.205-.826.205-1.342 0-.511-.069-.953-.205-1.324-.137-.375-.348-.664-.633-.867-.285-.203-.654-.305-1.107-.305-.668 0-1.159.221-1.471.662-.309.442-.463 1.053-.463 1.834Zm9.486-3.316c.13 0 .264.008.405.023.14.012.265.03.375.053l-.123.902a3.032 3.032 0 0 0-.715-.088 1.74 1.74 0 0 0-.733.159c-.226.101-.425.25-.597.445a2.072 2.072 0 0 0-.405.697c-.097.27-.146.57-.146.903V19h-.979v-6.422h.809l.105 1.184h.041c.133-.239.293-.455.48-.65.188-.2.405-.358.651-.475.25-.117.528-.176.832-.176Zm8.965 0c.707 0 1.24.185 1.6.557.36.367.539.959.539 1.775V19h-.961v-4.16c0-.52-.113-.908-.34-1.166-.223-.262-.555-.393-.996-.393-.621 0-1.072.18-1.353.54-.282.359-.422.888-.422 1.587V19h-.967v-4.16c0-.348-.051-.637-.153-.867a1.036 1.036 0 0 0-.445-.516c-.195-.117-.443-.176-.744-.176-.426 0-.768.088-1.025.264-.258.176-.446.437-.563.785-.113.344-.17.768-.17 1.272V19h-.973v-6.422h.786l.146.908h.053c.129-.222.29-.41.486-.562.196-.152.414-.268.657-.346.242-.078.5-.117.773-.117.488 0 .896.092 1.224.275.332.18.573.455.721.826h.053c.21-.37.5-.646.867-.826.367-.183.77-.275 1.207-.275Zm5.11.117V19h-.973v-6.422h.972Zm-.475-2.402a.58.58 0 0 1 .41.158c.117.101.176.262.176.48 0 .215-.059.376-.176.48a.58.58 0 0 1-.41.16.595.595 0 0 1-.422-.16c-.11-.104-.164-.265-.164-.48 0-.218.055-.379.164-.48a.595.595 0 0 1 .422-.158Zm4.822 8.941c-.812 0-1.457-.277-1.933-.832-.473-.555-.71-1.379-.71-2.473 0-1.105.243-1.939.727-2.502.485-.566 1.13-.85 1.934-.85.34 0 .636.046.89.136a2.2 2.2 0 0 1 1.12.873h.07a9.621 9.621 0 0 1-.047-.498 7.288 7.288 0 0 1-.023-.516V9.883h.972V19h-.785l-.146-.914h-.041a2.23 2.23 0 0 1-1.126.896c-.253.09-.554.135-.902.135Zm.153-.808c.687 0 1.173-.196 1.458-.586.286-.391.428-.971.428-1.74v-.176c0-.817-.136-1.444-.41-1.881-.27-.438-.762-.656-1.477-.656-.597 0-1.044.23-1.341.69-.297.458-.446 1.083-.446 1.876 0 .789.147 1.398.44 1.828.297.43.746.645 1.348.645Zm7.312-5.836c.766 0 1.334.171 1.705.515s.557.893.557 1.647V19h-.71l-.187-.95h-.047c-.18.235-.367.432-.562.593a2.091 2.091 0 0 1-.68.357 3.227 3.227 0 0 1-.937.117c-.39 0-.739-.068-1.043-.205-.301-.137-.54-.344-.715-.621-.172-.277-.258-.629-.258-1.055 0-.64.254-1.133.762-1.476.508-.344 1.281-.531 2.32-.563l1.108-.047v-.392c0-.555-.12-.943-.358-1.166-.238-.223-.574-.334-1.008-.334-.336 0-.656.049-.96.146a6.58 6.58 0 0 0-.868.346l-.299-.738a5.35 5.35 0 0 1 .996-.381 4.35 4.35 0 0 1 1.184-.158Zm1.3 3.363-.978.041c-.8.031-1.365.162-1.693.393-.328.23-.492.556-.492.978 0 .367.111.639.334.814.222.176.517.264.885.264.57 0 1.037-.158 1.4-.474.363-.317.545-.791.545-1.424v-.592Zm3.938-5.953v2.28c0 .26-.008.515-.023.76l-.03.575h.053c.176-.289.43-.533.762-.732.332-.2.756-.3 1.271-.3.805 0 1.446.28 1.922.839.48.554.721 1.38.721 2.478 0 .723-.11 1.332-.328 1.828-.219.496-.527.871-.926 1.125-.398.254-.869.381-1.412.381-.508 0-.926-.094-1.254-.281a2.197 2.197 0 0 1-.75-.697h-.076l-.2.861h-.702V9.883h.972Zm1.875 3.398c-.465 0-.834.092-1.107.276-.273.18-.47.453-.592.82-.117.363-.176.824-.176 1.383v.053c0 .808.135 1.427.405 1.857.27.426.76.639 1.47.639.598 0 1.045-.22 1.342-.657.3-.437.451-1.062.451-1.875 0-.828-.148-1.45-.445-1.869-.293-.418-.742-.627-1.348-.627ZM85.84 19h-.979V9.883h.979V19Zm4.53-6.54c.546 0 1.015.122 1.405.364.391.242.69.582.897 1.02.207.433.31.941.31 1.523v.604h-4.435c.012.754.2 1.328.562 1.722.364.395.875.592 1.535.592.407 0 .766-.037 1.079-.111.312-.074.636-.184.972-.328v.855c-.324.145-.646.25-.966.317-.317.066-.692.1-1.126.1-.617 0-1.156-.126-1.617-.376a2.623 2.623 0 0 1-1.066-1.113c-.254-.488-.38-1.086-.38-1.793 0-.691.114-1.29.345-1.793.234-.508.562-.898.984-1.172.426-.273.926-.41 1.5-.41Zm-.013.798c-.52 0-.933.17-1.242.51-.308.34-.492.814-.55 1.423h3.398a2.745 2.745 0 0 0-.182-1.007 1.415 1.415 0 0 0-.521-.68c-.235-.164-.535-.246-.903-.246ZM95.777 19h-.996v-8.566h4.77v.879h-3.774v3.14h3.545v.873h-3.545V19Zm10.594-3.223c0 .528-.068.998-.205 1.412a2.895 2.895 0 0 1-.592 1.05c-.258.284-.57.503-.937.655a3.25 3.25 0 0 1-1.237.223c-.429 0-.824-.074-1.183-.223a2.67 2.67 0 0 1-.926-.656 3.02 3.02 0 0 1-.603-1.049 4.37 4.37 0 0 1-.211-1.412c0-.703.119-1.3.357-1.793a2.543 2.543 0 0 1 1.02-1.13c.445-.262.974-.393 1.587-.393.586 0 1.098.13 1.536.393.441.261.783.64 1.025 1.136.246.492.369 1.088.369 1.787Zm-4.887 0c0 .516.069.963.205 1.342.137.379.348.672.633.879.285.207.653.31 1.102.31.445 0 .81-.103 1.096-.31.289-.207.501-.5.638-.879s.205-.826.205-1.342c0-.511-.068-.953-.205-1.324-.137-.375-.347-.664-.633-.867-.285-.203-.654-.305-1.107-.305-.668 0-1.158.221-1.471.662-.308.442-.463 1.053-.463 1.834Zm9.487-3.316c.129 0 .263.008.404.023.141.012.266.03.375.053l-.123.902a3.033 3.033 0 0 0-.715-.088c-.258 0-.502.053-.732.159-.227.101-.426.25-.598.445a2.06 2.06 0 0 0-.404.697c-.098.27-.147.57-.147.903V19h-.978v-6.422h.808l.106 1.184h.041a3.17 3.17 0 0 1 .48-.65c.188-.2.405-.358.651-.475.25-.117.527-.176.832-.176Zm8.965 0c.707 0 1.24.185 1.599.557.36.367.539.959.539 1.775V19h-.961v-4.16c0-.52-.113-.908-.34-1.166-.222-.262-.554-.393-.996-.393-.621 0-1.072.18-1.353.54-.281.359-.422.888-.422 1.587V19h-.967v-4.16c0-.348-.051-.637-.152-.867a1.039 1.039 0 0 0-.445-.516c-.196-.117-.444-.176-.745-.176-.425 0-.767.088-1.025.264-.258.176-.445.437-.563.785-.113.344-.169.768-.169 1.272V19h-.973v-6.422h.785l.147.908h.052c.129-.222.291-.41.487-.562a2.11 2.11 0 0 1 .656-.346c.242-.078.5-.117.773-.117.489 0 .897.092 1.225.275.332.18.572.455.721.826h.052c.211-.37.5-.646.868-.826a2.659 2.659 0 0 1 1.207-.275Zm8.291 4.781c0 .41-.104.756-.311 1.037-.203.278-.496.487-.879.627-.379.14-.832.211-1.359.211-.449 0-.838-.035-1.166-.105a3.382 3.382 0 0 1-.862-.3v-.896c.262.13.575.247.938.352.363.105.734.158 1.113.158.555 0 .957-.09 1.207-.27a.855.855 0 0 0 .375-.732.744.744 0 0 0-.152-.463c-.098-.136-.264-.267-.498-.392a7.42 7.42 0 0 0-.973-.422c-.41-.156-.765-.31-1.066-.463a1.99 1.99 0 0 1-.692-.568c-.16-.223-.24-.512-.24-.868 0-.543.219-.958.656-1.248.442-.293 1.02-.44 1.735-.44.386 0 .748.04 1.084.118.34.074.656.176.949.305l-.328.78a6.03 6.03 0 0 0-.85-.288 3.645 3.645 0 0 0-.92-.117c-.449 0-.795.074-1.037.223-.238.148-.357.351-.357.609 0 .2.054.363.164.492.113.129.293.25.539.363.246.114.57.246.973.399.402.148.75.303 1.042.463.293.156.518.347.674.574.16.223.241.51.241.861Z" fill="#4A4A4A"/><defs><clipPath id="a"><path fill="#fff" transform="translate(9 7)" d="M0 0h14v14H0z"/></clipPath></defs></svg>
js/formidable.js CHANGED
@@ -11,16 +11,40 @@ function frmFrontFormJS() {
11
  var action = '';
12
  var jsErrors = [];
13
 
14
- function maybeShowLabel() {
15
- /*jshint validthis:true */
16
- var $field = jQuery( this ),
17
- $label = $field.closest( '.frm_inside_container' ).find( '.frm_primary_label' ),
18
- val = $field.val();
 
 
 
 
 
19
 
20
- if ( val !== null && val.length > 0 ) {
21
- $label.addClass( 'frm_visible' );
22
- } else {
23
- $label.removeClass( 'frm_visible' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
  }
26
 
@@ -1135,8 +1159,161 @@ function frmFrontFormJS() {
1135
  } while ( element.previousSibling );
1136
  }
1137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1138
  return {
1139
  init: function() {
 
 
1140
  jQuery( document ).off( 'submit.formidable', '.frm-show-form' );
1141
  jQuery( document ).on( 'submit.formidable', '.frm-show-form', frmFrontForm.submitForm );
1142
 
@@ -1153,7 +1330,6 @@ function frmFrontFormJS() {
1153
  jQuery( document.getElementById( 'frm_resend_email' ) ).on( 'click', resendEmail );
1154
 
1155
  jQuery( document ).on( 'change', '.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]', frmFrontForm.fieldValueChanged );
1156
- jQuery( document ).on( 'change keyup', '.frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea', maybeShowLabel );
1157
 
1158
  jQuery( document ).on( 'change', '[id^=frm_email_]', onHoneypotFieldChange );
1159
 
@@ -1170,6 +1346,8 @@ function frmFrontFormJS() {
1170
  addTrimFallbackForIE8();
1171
  addFilterFallbackForIE8();
1172
  addKeysFallbackForIE8();
 
 
1173
  },
1174
 
1175
  getFieldId: function( field, fullID ) {
11
  var action = '';
12
  var jsErrors = [];
13
 
14
+ /**
15
+ * Maybe add polyfills.
16
+ *
17
+ * @since 5.4
18
+ */
19
+ function maybeAddPolyfills() {
20
+ if ( ! Element.prototype.matches ) {
21
+ // IE9 supports matches but as msMatchesSelector instead.
22
+ Element.prototype.matches = Element.prototype.msMatchesSelector;
23
+ }
24
 
25
+ if ( ! Element.prototype.closest ) {
26
+ Element.prototype.closest = function( s ) {
27
+ var el = this;
28
+
29
+ do {
30
+ if ( el.matches( s ) ) {
31
+ return el;
32
+ }
33
+ el = el.parentElement || el.parentNode;
34
+ } while ( el !== null && el.nodeType === 1 );
35
+
36
+ return null;
37
+ };
38
+ }
39
+
40
+ // NodeList.forEach().
41
+ if ( window.NodeList && ! NodeList.prototype.forEach ) {
42
+ NodeList.prototype.forEach = function( callback, thisArg ) {
43
+ thisArg = thisArg || window;
44
+ for ( var i = 0; i < this.length; i++ ) {
45
+ callback.call( thisArg, this[ i ], i, this );
46
+ }
47
+ };
48
  }
49
  }
50
 
1159
  } while ( element.previousSibling );
1160
  }
1161
 
1162
+ /**
1163
+ * Checks if is on IE browser.
1164
+ *
1165
+ * @since 5.4
1166
+ *
1167
+ * @return {Boolean}
1168
+ */
1169
+ function isIE() {
1170
+ return navigator.userAgent.indexOf( 'MSIE' ) > -1 || navigator.userAgent.indexOf( 'Trident' ) > -1;
1171
+ }
1172
+
1173
+ /**
1174
+ * Does the same as jQuery( document ).on( 'event', 'selector', handler ).
1175
+ *
1176
+ * @since 5.4
1177
+ *
1178
+ * @param {String} event Event name.
1179
+ * @param {String} selector Selector.
1180
+ * @param {Function} handler Handler.
1181
+ * @param {Boolean|Object} options Options to be added to `addEventListener()` method. Default is `false`.
1182
+ */
1183
+ function documentOn( event, selector, handler, options ) {
1184
+ if ( 'undefined' === typeof options ) {
1185
+ options = false;
1186
+ }
1187
+
1188
+ document.addEventListener( event, function( e ) {
1189
+ var target;
1190
+
1191
+ // loop parent nodes from the target to the delegation node.
1192
+ for ( target = e.target; target && target != this; target = target.parentNode ) {
1193
+ if ( target.matches( selector ) ) {
1194
+ handler.call( target, e );
1195
+ break;
1196
+ }
1197
+ }
1198
+ }, options );
1199
+ }
1200
+
1201
+ function initFloatingLabels() {
1202
+ var checkFloatLabel, checkDropdownLabel, checkPlaceholderIE, runOnLoad, selector, floatClass;
1203
+
1204
+ selector = '.frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea';
1205
+ floatClass = 'frm_label_float_top';
1206
+
1207
+ checkFloatLabel = function( input ) {
1208
+ var container, shouldFloatTop, firstOpt;
1209
+
1210
+ container = input.closest( '.frm_inside_container' );
1211
+ shouldFloatTop = input.value || document.activeElement === input;
1212
+
1213
+ container.classList.toggle( floatClass, shouldFloatTop );
1214
+
1215
+ if ( 'SELECT' === input.tagName ) {
1216
+ firstOpt = input.querySelector( 'option:first-child' );
1217
+
1218
+ if ( shouldFloatTop ) {
1219
+ if ( firstOpt.getAttribute( 'data-label' ) ) {
1220
+ firstOpt.text = firstOpt.getAttribute( 'data-label' );
1221
+ firstOpt.removeAttribute( 'data-label' );
1222
+ }
1223
+ } else {
1224
+ if ( firstOpt.text ) {
1225
+ firstOpt.setAttribute( 'data-label', firstOpt.text );
1226
+ firstOpt.text = '';
1227
+ }
1228
+ }
1229
+ } else if ( isIE() ) {
1230
+ checkPlaceholderIE( input );
1231
+ }
1232
+ };
1233
+
1234
+ checkDropdownLabel = function() {
1235
+ document.querySelectorAll( '.frm-show-form .frm_inside_container:not(.' + floatClass + ') select' ).forEach( function( input ) {
1236
+ var firstOpt = input.querySelector( 'option:first-child' );
1237
+
1238
+ if ( firstOpt.text ) {
1239
+ firstOpt.setAttribute( 'data-label', firstOpt.text );
1240
+ firstOpt.text = '';
1241
+ }
1242
+ });
1243
+ };
1244
+
1245
+ checkPlaceholderIE = function( input ) {
1246
+ if ( input.value ) {
1247
+ // Don't need to handle this case because placeholder isn't shown.
1248
+ return;
1249
+ }
1250
+
1251
+ if ( document.activeElement === input ) {
1252
+ if ( input.getAttribute( 'data-placeholder' ) ) {
1253
+ input.placeholder = input.getAttribute( 'data-placeholder' );
1254
+ input.removeAttribute( 'data-placeholder' );
1255
+ }
1256
+ } else {
1257
+ if ( input.placeholder ) {
1258
+ input.setAttribute( 'data-placeholder', input.placeholder );
1259
+ input.placeholder = '';
1260
+ }
1261
+ }
1262
+ };
1263
+
1264
+ [ 'focus', 'blur', 'change' ].forEach( function( eventName ) {
1265
+ documentOn(
1266
+ eventName,
1267
+ selector,
1268
+ function( event ) {
1269
+ checkFloatLabel( event.target );
1270
+ },
1271
+ true
1272
+ );
1273
+ });
1274
+
1275
+ jQuery( document ).on( 'change', selector, function( event ) {
1276
+ checkFloatLabel( event.target );
1277
+ });
1278
+
1279
+ runOnLoad = function( firstLoad ) {
1280
+ if ( firstLoad && document.activeElement && -1 !== [ 'INPUT', 'SELECT', 'TEXTAREA' ].indexOf( document.activeElement.tagName ) ) {
1281
+ checkFloatLabel( document.activeElement );
1282
+ } else if ( firstLoad ) {
1283
+ document.querySelectorAll( '.frm_inside_container' ).forEach(
1284
+ function( container ) {
1285
+ var input = container.querySelector( 'input, select, textarea' );
1286
+ if ( input && '' !== input.value ) {
1287
+ checkFloatLabel( input );
1288
+ }
1289
+ }
1290
+ );
1291
+ }
1292
+
1293
+ checkDropdownLabel();
1294
+
1295
+ if ( isIE() ) {
1296
+ document.querySelectorAll( selector ).forEach( function( input ) {
1297
+ checkPlaceholderIE( input );
1298
+ });
1299
+ }
1300
+ };
1301
+
1302
+ runOnLoad( true );
1303
+
1304
+ jQuery( document ).on( 'frmPageChanged', function( event ) {
1305
+ runOnLoad();
1306
+ });
1307
+
1308
+ document.addEventListener( 'frm_after_start_over', function( event ) {
1309
+ runOnLoad();
1310
+ });
1311
+ }
1312
+
1313
  return {
1314
  init: function() {
1315
+ maybeAddPolyfills();
1316
+
1317
  jQuery( document ).off( 'submit.formidable', '.frm-show-form' );
1318
  jQuery( document ).on( 'submit.formidable', '.frm-show-form', frmFrontForm.submitForm );
1319
 
1330
  jQuery( document.getElementById( 'frm_resend_email' ) ).on( 'click', resendEmail );
1331
 
1332
  jQuery( document ).on( 'change', '.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]', frmFrontForm.fieldValueChanged );
 
1333
 
1334
  jQuery( document ).on( 'change', '[id^=frm_email_]', onHoneypotFieldChange );
1335
 
1346
  addTrimFallbackForIE8();
1347
  addFilterFallbackForIE8();
1348
  addKeysFallbackForIE8();
1349
+
1350
+ initFloatingLabels();
1351
  },
1352
 
1353
  getFieldId: function( field, fullID ) {
js/formidable.min.js CHANGED
@@ -1,62 +1,68 @@
1
  var frmFrontForm;
2
- function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this),$label=$field.closest(".frm_inside_container").find(".frm_primary_label"),val=$field.val();if(val!==null&&val.length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName=
3
- "";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;
4
- if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
5
- "disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').prop("disabled",false)}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var r,rl,n,nl,fields,field,value,requiredFields,errors=[];requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
6
- if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++){if(hasClass(requiredFields[r],"ed_button"))continue;errors=checkRequiredField(requiredFields[r],errors)}fields=jQuery(object).find("input,select,textarea");if(fields.length)for(n=0,nl=fields.length;n<nl;n++){field=fields[n];value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type===
7
- "password")errors=checkPasswordField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function hasClass(element,targetClass){var className=" "+element.className+" ";return-1!==className.indexOf(" "+targetClass+" ")}function maybeValidateChange(field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field)}
8
- function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===null)field.value="http://"+url}function validateField(field){var key,errors=[],$fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type===
9
- "password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");
10
- if(field.type==="hidden"&&fileID===null&&!isAppointmentField(field)&&!isInlineDatepickerField(field))return errors;if(field.type==="checkbox"||field.type==="radio"){checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);
11
- fieldID=fileID}else{if(hasClass(field,"frm_pos_none"))return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){tempVal=val;val="";for(i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(hasClass(field,"frm_other_input")){fieldID=getFieldId(field,false);if(val==="")field=document.getElementById(field.id.replace("-otext",""))}else fieldID=getFieldId(field,true);if(hasClass(field,"frm_time_select"))fieldID=fieldID.replace("-H","").replace("-m","");else if(isSignatureField(field)){if(val===
12
- "")val=jQuery(field).closest(".frm_form_field").find('[name="'+field.getAttribute("name").replace("[typed]","[output]")+'"]').val();fieldID=fieldID.replace("-typed","")}placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function isSignatureField(field){var name=field.getAttribute("name");
13
- return"string"===typeof name&&"[typed]"===name.substr(-7)}function isAppointmentField(field){return hasClass(field,"ssa_appointment_form_field_appointment_id")}function isInlineDatepickerField(field){return"hidden"===field.type&&"_alt"===field.id.substr(-4)&&hasClass(field.nextElementSibling,"frm_date_inline")}function getFileVals(fileID){var val="",fileFields=jQuery('input[name="file'+fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+fileID+']"]');fileFields.each(function(){if(val===
14
- "")val=this.value});return val}function checkUrlField(field,errors){var fieldID,url=field.value;if(url!==""&&!/^http(s)?:\/\/(?:localhost|(?:[\da-z\.-]+\.[\da-z\.-]+))/i.test(url)){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkEmailField(field,errors){var fieldID=getFieldId(field,true),pattern=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;
15
- if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors);return errors}function checkPasswordField(field,errors){confirmField(field,errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));
16
- if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId);value=firstField.value;confirmValue=confirmField.value;if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField(confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=
17
- getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,
18
- recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}
19
- function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=$recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container",
20
- "");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!==msg&&shouldWrapErrorHtmlAroundMessageType(messageType)){errorHtml=field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldWrapErrorHtmlAroundMessageType(type){return"pattern"!==
21
- type}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset,data,success,error;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");data=jQuery(object).serialize()+
22
- "&action=frm_entries_"+action+"&nonce="+frm_js.nonce;success=function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",
23
- [object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,
24
- input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+
25
- response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=
26
- $fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);
27
- else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}};error=function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()};postToAjaxUrl(object,data,success,error)}function postToAjaxUrl(form,
28
- data,success,error){var ajaxUrl,action,ajaxParams;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"===typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];ajaxParams={type:"POST",url:ajaxUrl,data:data,success:success};if("function"===typeof error)ajaxParams.error=error;jQuery.ajax(ajaxParams)}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",
29
- [object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");
30
- c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");
31
- return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy,roleString;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{if(-1!==jsErrors[key].indexOf("<div"))$fieldCont.append(jsErrors[key]);else{roleString=
32
- frm_js.include_alert_role?'role="alert"':"";$fieldCont.append('<div class="frm_error" '+roleString+' id="'+id+'">'+jsErrors[key]+"</div>")}if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),
33
- input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);input.removeAttr("aria-describedby");if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}
34
- function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=
35
- isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);
36
- enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,
37
- "\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",
38
- url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");
39
- return false}function addIndexOfFallbackForIE8(){var len,from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,
40
- len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=
41
- jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}
 
42
  function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;if(!frm_js.focus_first_error)return;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");
43
- if(null!==textarea)textarea.focus()};else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()===
44
- "")jQuery(this).trigger("blur")});jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',frmFrontForm.fieldValueChanged);jQuery(document).on("change keyup",
45
- ".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea",maybeShowLabel);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv);checkForErrorsAndMaybeSetFocus();changeFocusWhenClickComboFieldLabel();addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8()},
46
- getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,recaptchaID,size=captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")};if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();
47
- params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,params);captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token,formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},
48
- submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length<1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));
49
- executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,antispamInput,classList=object.className.trim().split(/\s+/gi);if(object.hasAttribute("data-token")&&null===object.querySelector('[name="antispam_token"]')){antispamInput=document.createElement("input");antispamInput.type="hidden";antispamInput.name=
50
- "antispam_token";antispamInput.value=object.getAttribute("data-token");object.appendChild(antispamInput)}if(classList.indexOf("frm_ajax_submit")>-1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action=jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();
51
- jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},getAjaxFormErrors:function(object){var customErrors,key;jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},
52
- addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object);checkForErrorsAndMaybeSetFocus()},checkFormErrors:function(object,action){getFormErrors(object,action)},checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},
53
- removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=jQuery(document.getElementById(id));frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+
54
- id+"_container");else scrollObj=id;jQuery(scrollObj).trigger("focus");newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;newPos=newPos-frm_js.offset;m=jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos<screenTop){if(typeof animate==="undefined")jQuery(window).scrollTop(newPos);
55
- else jQuery("html,body").animate({scrollTop:newPos},500);return false}}},fieldValueChanged:function(e){var fieldId=frmFrontForm.getFieldId(this,false);if(!fieldId||typeof fieldId==="undefined")return;if(e.frmTriggered&&e.frmTriggered==fieldId)return;jQuery(document).trigger("frmFieldChanged",[this,fieldId,e]);if(e.selfTriggered!==true)maybeValidateChange(this)},savingDraft:function(object){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if(typeof frmProForm!==
56
- "undefined")return frmProForm.savingDraft(object)},goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");if(typeof frmProForm!=="undefined")return frmProForm.goingToPreviousPage(object)},hideOrShowFields:function(){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");if(typeof frmProForm!=="undefined")frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");
57
- if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},checkDependentDynamicFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentDynamicFields(ids)},checkDependentLookupFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");if(typeof frmProForm!==
58
- "undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}
59
- frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}function frmAfterRecaptcha(token){frmFrontForm.afterSingleRecaptcha(token)}
 
 
 
 
 
60
  function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
61
  entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
62
  function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
1
  var frmFrontForm;
2
+ function frmFrontFormJS(){var action="";var jsErrors=[];function maybeAddPolyfills(){if(!Element.prototype.matches)Element.prototype.matches=Element.prototype.msMatchesSelector;if(!Element.prototype.closest)Element.prototype.closest=function(s){var el=this;do{if(el.matches(s))return el;el=el.parentElement||el.parentNode}while(el!==null&&el.nodeType===1);return null};if(window.NodeList&&!NodeList.prototype.forEach)NodeList.prototype.forEach=function(callback,thisArg){thisArg=thisArg||window;for(var i=
3
+ 0;i<this.length;i++)callback.call(thisArg,this[i],i,this)}}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName="";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=
4
+ fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");
5
+ if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled","disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').prop("disabled",false)}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events",
6
+ "none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var r,rl,n,nl,fields,field,value,requiredFields,errors=[];requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++){if(hasClass(requiredFields[r],"ed_button"))continue;errors=checkRequiredField(requiredFields[r],
7
+ errors)}fields=jQuery(object).find("input,select,textarea");if(fields.length)for(n=0,nl=fields.length;n<nl;n++){field=fields[n];value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,
8
+ errors)}errors=validateRecaptcha(object,errors);return errors}function hasClass(element,targetClass){var className=" "+element.className+" ";return-1!==className.indexOf(" "+targetClass+" ")}function maybeValidateChange(field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===
9
+ null)field.value="http://"+url}function validateField(field){var key,errors=[],$fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="url")errors=
10
+ checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");if(field.type==="hidden"&&fileID===null&&!isAppointmentField(field)&&!isInlineDatepickerField(field))return errors;if(field.type==="checkbox"||field.type===
11
+ "radio"){checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{if(hasClass(field,"frm_pos_none"))return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){tempVal=
12
+ val;val="";for(i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(hasClass(field,"frm_other_input")){fieldID=getFieldId(field,false);if(val==="")field=document.getElementById(field.id.replace("-otext",""))}else fieldID=getFieldId(field,true);if(hasClass(field,"frm_time_select"))fieldID=fieldID.replace("-H","").replace("-m","");else if(isSignatureField(field)){if(val==="")val=jQuery(field).closest(".frm_form_field").find('[name="'+field.getAttribute("name").replace("[typed]","[output]")+
13
+ '"]').val();fieldID=fieldID.replace("-typed","")}placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function isSignatureField(field){var name=field.getAttribute("name");return"string"===typeof name&&"[typed]"===name.substr(-7)}function isAppointmentField(field){return hasClass(field,"ssa_appointment_form_field_appointment_id")}
14
+ function isInlineDatepickerField(field){return"hidden"===field.type&&"_alt"===field.id.substr(-4)&&hasClass(field.nextElementSibling,"frm_date_inline")}function getFileVals(fileID){var val="",fileFields=jQuery('input[name="file'+fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+fileID+']"]');fileFields.each(function(){if(val==="")val=this.value});return val}function checkUrlField(field,errors){var fieldID,url=field.value;if(url!==""&&!/^http(s)?:\/\/(?:localhost|(?:[\da-z\.-]+\.[\da-z\.-]+))/i.test(url)){fieldID=
15
+ getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkEmailField(field,errors){var fieldID=getFieldId(field,true),pattern=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors);
16
+ return errors}function checkPasswordField(field,errors){confirmField(field,errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId);
17
+ value=firstField.value;confirmValue=confirmField.value;if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField(confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,
18
+ errors){var fieldID,text=field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');
19
+ if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=
20
+ $recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!==
21
+ msg&&shouldWrapErrorHtmlAroundMessageType(messageType)){errorHtml=field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldWrapErrorHtmlAroundMessageType(type){return"pattern"!==type}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||
22
+ frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset,data,success,error;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");data=jQuery(object).serialize()+"&action=frm_entries_"+action+"&nonce="+frm_js.nonce;success=function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,
23
+ inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),
24
+ false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+
25
+ formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);
26
+ else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=
27
+ frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");
28
+ scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}};error=function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()};postToAjaxUrl(object,data,success,error)}function postToAjaxUrl(form,data,success,error){var ajaxUrl,action,ajaxParams;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"===
29
+ typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];ajaxParams={type:"POST",url:ajaxUrl,data:data,success:success};if("function"===typeof error)ajaxParams.error=error;jQuery.ajax(ajaxParams)}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,
30
+ response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;
31
+ if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,
32
+ id,describedBy,roleString;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{if(-1!==jsErrors[key].indexOf("<div"))$fieldCont.append(jsErrors[key]);else{roleString=frm_js.include_alert_role?'role="alert"':"";$fieldCont.append('<div class="frm_error" '+
33
+ roleString+' id="'+id+'">'+jsErrors[key]+"</div>")}if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");
34
+ $fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);input.removeAttr("aria-describedby");if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();
35
+ if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}
36
+ function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,
37
+ loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;
38
+ thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",
39
+ entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){var len,
40
+ from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=
41
+ function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}
42
+ function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}
43
  function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;if(!frm_js.focus_first_error)return;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");
44
+ if(null!==textarea)textarea.focus()};else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}function isIE(){return navigator.userAgent.indexOf("MSIE")>-1||navigator.userAgent.indexOf("Trident")>-1}function documentOn(event,selector,handler,options){if("undefined"===typeof options)options=false;document.addEventListener(event,function(e){var target;
45
+ for(target=e.target;target&&target!=this;target=target.parentNode)if(target.matches(selector)){handler.call(target,e);break}},options)}function initFloatingLabels(){var checkFloatLabel,checkDropdownLabel,checkPlaceholderIE,runOnLoad,selector,floatClass;selector=".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea";floatClass="frm_label_float_top";checkFloatLabel=function(input){var container,shouldFloatTop,firstOpt;
46
+ container=input.closest(".frm_inside_container");shouldFloatTop=input.value||document.activeElement===input;container.classList.toggle(floatClass,shouldFloatTop);if("SELECT"===input.tagName){firstOpt=input.querySelector("option:first-child");if(shouldFloatTop){if(firstOpt.getAttribute("data-label")){firstOpt.text=firstOpt.getAttribute("data-label");firstOpt.removeAttribute("data-label")}}else if(firstOpt.text){firstOpt.setAttribute("data-label",firstOpt.text);firstOpt.text=""}}else if(isIE())checkPlaceholderIE(input)};
47
+ checkDropdownLabel=function(){document.querySelectorAll(".frm-show-form .frm_inside_container:not(."+floatClass+") select").forEach(function(input){var firstOpt=input.querySelector("option:first-child");if(firstOpt.text){firstOpt.setAttribute("data-label",firstOpt.text);firstOpt.text=""}})};checkPlaceholderIE=function(input){if(input.value)return;if(document.activeElement===input){if(input.getAttribute("data-placeholder")){input.placeholder=input.getAttribute("data-placeholder");input.removeAttribute("data-placeholder")}}else if(input.placeholder){input.setAttribute("data-placeholder",
48
+ input.placeholder);input.placeholder=""}};["focus","blur","change"].forEach(function(eventName){documentOn(eventName,selector,function(event){checkFloatLabel(event.target)},true)});jQuery(document).on("change",selector,function(event){checkFloatLabel(event.target)});runOnLoad=function(firstLoad){if(firstLoad&&document.activeElement&&-1!==["INPUT","SELECT","TEXTAREA"].indexOf(document.activeElement.tagName))checkFloatLabel(document.activeElement);else if(firstLoad)document.querySelectorAll(".frm_inside_container").forEach(function(container){var input=
49
+ container.querySelector("input, select, textarea");if(input&&""!==input.value)checkFloatLabel(input)});checkDropdownLabel();if(isIE())document.querySelectorAll(selector).forEach(function(input){checkPlaceholderIE(input)})};runOnLoad(true);jQuery(document).on("frmPageChanged",function(event){runOnLoad()});document.addEventListener("frm_after_start_over",function(event){runOnLoad()})}return{init:function(){maybeAddPolyfills();jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",
50
+ ".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',
51
+ frmFrontForm.fieldValueChanged);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv);checkForErrorsAndMaybeSetFocus();changeFocusWhenClickComboFieldLabel();addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8();initFloatingLabels()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,
52
+ recaptchaID,size=captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")};if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,
53
+ params);captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token,formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);
54
+ if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length<1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);
55
+ if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,antispamInput,classList=object.className.trim().split(/\s+/gi);if(object.hasAttribute("data-token")&&null===object.querySelector('[name="antispam_token"]')){antispamInput=document.createElement("input");antispamInput.type="hidden";antispamInput.name="antispam_token";antispamInput.value=object.getAttribute("data-token");object.appendChild(antispamInput)}if(classList.indexOf("frm_ajax_submit")>
56
+ -1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action=jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},
57
+ getAjaxFormErrors:function(object){var customErrors,key;jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+
58
+ "_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object);checkForErrorsAndMaybeSetFocus()},checkFormErrors:function(object,action){getFormErrors(object,action)},checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=
59
+ jQuery(document.getElementById(id));frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+id+"_container");else scrollObj=id;jQuery(scrollObj).trigger("focus");newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;
60
+ newPos=newPos-frm_js.offset;m=jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos<screenTop){if(typeof animate==="undefined")jQuery(window).scrollTop(newPos);else jQuery("html,body").animate({scrollTop:newPos},500);return false}}},fieldValueChanged:function(e){var fieldId=
61
+ frmFrontForm.getFieldId(this,false);if(!fieldId||typeof fieldId==="undefined")return;if(e.frmTriggered&&e.frmTriggered==fieldId)return;jQuery(document).trigger("frmFieldChanged",[this,fieldId,e]);if(e.selfTriggered!==true)maybeValidateChange(this)},savingDraft:function(object){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if(typeof frmProForm!=="undefined")return frmProForm.savingDraft(object)},goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");
62
+ if(typeof frmProForm!=="undefined")return frmProForm.goingToPreviousPage(object)},hideOrShowFields:function(){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");if(typeof frmProForm!=="undefined")frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},
63
+ checkDependentDynamicFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentDynamicFields(ids)},checkDependentLookupFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");
64
+ frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});
65
+ function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}function frmAfterRecaptcha(token){frmFrontForm.afterSingleRecaptcha(token)}
66
  function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
67
  entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
68
  function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
js/formidable_admin.js CHANGED
@@ -317,7 +317,7 @@ function frmAdminBuildJS() {
317
 
318
  /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */
319
 
320
- const { tag, div, span, a, svg } = frmDom;
321
  const { doJsonFetch } = frmDom.ajax;
322
 
323
  var $newFields = jQuery( document.getElementById( 'frm-show-fields' ) ),
@@ -5661,67 +5661,211 @@ function frmAdminBuildJS() {
5661
  }
5662
 
5663
  function initUpgradeModal() {
5664
- var $info = initModal( '#frm_upgrade_modal' );
5665
  if ( $info === false ) {
5666
  return;
5667
  }
5668
 
5669
- jQuery( document ).on( 'click', '[data-upgrade]', function( event ) {
5670
- var upgradeLabel, requires, button, link, content;
5671
 
5672
- event.preventDefault();
5673
- upgradeLabel = this.getAttribute( 'data-upgrade' );
 
 
 
 
 
 
 
 
 
5674
 
5675
- if ( '' === upgradeLabel ) {
5676
- // if the upgrade level is empty, it's because this upgrade is already active.
 
 
 
5677
  return;
5678
  }
5679
 
5680
- jQuery( '#frm_upgrade_modal .frm_lock_icon' ).removeClass( 'frm_lock_open_icon' );
5681
- jQuery( '#frm_upgrade_modal .frm_lock_icon use' ).attr( 'xlink:href', '#frm_lock_icon' );
5682
 
5683
- requires = this.getAttribute( 'data-requires' );
5684
- if ( typeof requires === 'undefined' || requires === null || requires === '' ) {
5685
- requires = 'Pro';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5686
  }
5687
- jQuery( '.license-level' ).text( requires );
5688
 
5689
  // If one click upgrade, hide other content
5690
- addOneClickModal( this );
5691
 
5692
- jQuery( '.frm_feature_label' ).text( upgradeLabel );
5693
- jQuery( '#frm_upgrade_modal h2' ).show();
 
5694
 
5695
  $info.dialog( 'open' );
5696
 
5697
  // set the utm medium
5698
- button = $info.find( '.button-primary:not(#frm-oneclick-button)' );
5699
- link = button.attr( 'href' ).replace( /(medium=)[a-z_-]+/ig, '$1' + this.getAttribute( 'data-medium' ) );
5700
- content = this.getAttribute( 'data-content' );
5701
  if ( content === null ) {
5702
  content = '';
5703
  }
5704
  link = link.replace( /(content=)[a-z_-]+/ig, '$1' + content );
5705
- button.attr( 'href', link );
5706
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5707
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5708
  }
5709
 
5710
  /**
5711
  * Allow addons to be installed from the upgrade modal.
5712
  */
5713
- function addOneClickModal( link ) {
5714
  var oneclickMessage = document.getElementById( 'frm-oneclick' ),
5715
  oneclick = link.getAttribute( 'data-oneclick' ),
5716
  customLink = link.getAttribute( 'data-link' ),
5717
- showLink = document.getElementById( 'frm-upgrade-modal-link' ),
5718
  upgradeMessage = document.getElementById( 'frm-upgrade-message' ),
5719
  newMessage = link.getAttribute( 'data-message' ),
5720
- button = document.getElementById( 'frm-oneclick-button' ),
5721
  showIt = 'block',
5722
  showMsg = 'block',
5723
  hideIt = 'none';
5724
 
 
 
 
 
 
 
 
5725
  // If one click upgrade, hide other content.
5726
  if ( oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick ) {
5727
  if ( newMessage === null ) {
@@ -7879,6 +8023,10 @@ function frmAdminBuildJS() {
7879
  jQuery( document ).on( 'click', '.frm-trigger-new-form-modal', triggerNewFormModal );
7880
  $modal = initModal( '#frm_new_form_modal', '600px' );
7881
 
 
 
 
 
7882
  setTimeout(
7883
  function() {
7884
  $modal.get( 0 ).querySelector( '.postbox' ).style.display = 'block'; // Fixes pro issue #3508, prevent a conflict that hides the postbox in modal.
@@ -8939,10 +9087,17 @@ function frmAdminBuildJS() {
8939
  // tabs
8940
  jQuery( document ).on( 'click', '#frm-nav-tabs a', clickNewTab );
8941
  jQuery( '.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a' ).on( 'click', function() {
8942
- if ( ! this.classList.contains( 'frm_noallow' ) ) {
8943
- clickTab( this );
8944
- return false;
8945
  }
 
 
 
 
 
 
 
8946
  });
8947
  clickTab( jQuery( '.starttab a' ), 'auto' );
8948
 
317
 
318
  /*global jQuery:false, frm_admin_js, frmGlobal, ajaxurl, fromDom */
319
 
320
+ const { tag, div, span, a, svg, img } = frmDom;
321
  const { doJsonFetch } = frmDom.ajax;
322
 
323
  var $newFields = jQuery( document.getElementById( 'frm-show-fields' ) ),
5661
  }
5662
 
5663
  function initUpgradeModal() {
5664
+ const $info = initModal( '#frm_upgrade_modal' );
5665
  if ( $info === false ) {
5666
  return;
5667
  }
5668
 
5669
+ document.addEventListener( 'click', handleUpgradeClick );
 
5670
 
5671
+ function handleUpgradeClick( event ) {
5672
+ let element, upgradeLabel, link, content;
5673
+
5674
+ element = event.target;
5675
+ upgradeLabel = element.dataset.upgrade;
5676
+
5677
+ if ( ! upgradeLabel ) {
5678
+ const parent = element.closest( '[data-upgrade]' );
5679
+ if ( ! parent ) {
5680
+ return;
5681
+ }
5682
 
5683
+ element = parent;
5684
+ upgradeLabel = parent.dataset.upgrade;
5685
+ }
5686
+
5687
+ if ( ! upgradeLabel || element.classList.contains( 'frm_show_upgrade_tab' ) ) {
5688
  return;
5689
  }
5690
 
5691
+ event.preventDefault();
 
5692
 
5693
+ const modal = $info.get( 0 );
5694
+ const lockIcon = modal.querySelector( '.frm_lock_icon' );
5695
+
5696
+ if ( lockIcon ) {
5697
+ lockIcon.style.display = 'block';
5698
+ lockIcon.classList.remove( 'frm_lock_open_icon' );
5699
+ lockIcon.querySelector( 'use' ).setAttribute( 'href', '#frm_lock_icon' );
5700
+ }
5701
+
5702
+ const upgradeImageId = 'frm_upgrade_modal_image';
5703
+ const oldImage = document.getElementById( upgradeImageId );
5704
+ if ( oldImage ) {
5705
+ oldImage.remove();
5706
+ }
5707
+
5708
+ if ( element.dataset.image ) {
5709
+ if ( lockIcon ) {
5710
+ lockIcon.style.display = 'none';
5711
+ }
5712
+ lockIcon.parentNode.insertBefore( img({ id: upgradeImageId, src: frmGlobal.url + '/images/' + element.dataset.image }), lockIcon );
5713
+ }
5714
+
5715
+ const level = modal.querySelector( '.license-level' );
5716
+ if ( level ) {
5717
+ level.textContent = getRequiredLicenseFromTrigger( element );
5718
  }
 
5719
 
5720
  // If one click upgrade, hide other content
5721
+ addOneClickModal( element );
5722
 
5723
+ modal.querySelector( '.frm_are_not_installed' ).style.display = element.dataset.image ? 'none' : 'block';
5724
+ modal.querySelector( '.frm_feature_label' ).textContent = upgradeLabel;
5725
+ modal.querySelector( 'h2' ).style.display = 'block';
5726
 
5727
  $info.dialog( 'open' );
5728
 
5729
  // set the utm medium
5730
+ const button = modal.querySelector( '.button-primary:not(#frm-oneclick-button)' );
5731
+ link = button.getAttribute( 'href' ).replace( /(medium=)[a-z_-]+/ig, '$1' + element.getAttribute( 'data-medium' ) );
5732
+ content = element.getAttribute( 'data-content' );
5733
  if ( content === null ) {
5734
  content = '';
5735
  }
5736
  link = link.replace( /(content=)[a-z_-]+/ig, '$1' + content );
5737
+ button.setAttribute( 'href', link );
5738
+ }
5739
+ }
5740
+
5741
+ function getRequiredLicenseFromTrigger( element ) {
5742
+ if ( element.dataset.requires ) {
5743
+ return element.dataset.requires;
5744
+ }
5745
+ return 'Pro';
5746
+ }
5747
+
5748
+ function populateUpgradeTab( element ) {
5749
+ const title = element.dataset.upgrade;
5750
+ let message = element.dataset.message;
5751
+
5752
+ if ( ! message ) {
5753
+ message = document.getElementById( 'frm-upgrade-message' ).dataset.default;
5754
+ message = message.replace( '<span class="frm_feature_label"></span>', title );
5755
+ }
5756
+
5757
+ const tab = element.getAttribute( 'href' ).replace( '#', '' );
5758
+ const container = document.querySelector( '.frm_' + tab ) || document.querySelector( '.' + tab );
5759
+
5760
+ if ( ! container ) {
5761
+ return;
5762
+ }
5763
+
5764
+ if ( container.querySelector( '.frm-tab-message' ) ) {
5765
+ // Tab has already been populated.
5766
+ return;
5767
+ }
5768
+
5769
+ const h2 = container.querySelector( 'h2' );
5770
+ h2.style.borderBottom = 'none';
5771
+
5772
+ /* translators: %s: Form Setting section name (ie Form Permissions, Form Scheduling). */
5773
+ h2.textContent = __( '%s are not installed' ).replace( '%s', title );
5774
+
5775
+ container.classList.add( 'frmcenter' );
5776
+ container.appendChild(
5777
+ tag(
5778
+ 'p',
5779
+ {
5780
+ className: 'frm-tab-message',
5781
+ text: message
5782
+ }
5783
+ )
5784
+ );
5785
+
5786
+ const upgradeModalLink = document.getElementById( 'frm-upgrade-modal-link' );
5787
+
5788
+ // Borrow the call to action from the Upgrade modal which should exist on the settings page (it is still used for other upgrades including Actions).
5789
+ if ( upgradeModalLink ) {
5790
+ const upgradeButton = upgradeModalLink.cloneNode( true );
5791
+ upgradeButton.id = 'frm_upgrade_link_' + getAutoId();
5792
+
5793
+ const level = upgradeButton.querySelector( '.license-level' );
5794
+
5795
+ if ( level ) {
5796
+ level.textContent = getRequiredLicenseFromTrigger( element );
5797
+ }
5798
+
5799
+ container.appendChild( upgradeButton );
5800
+
5801
+ // Maybe append the secondary "Already purchased?" link from the modal as well.
5802
+ if ( upgradeModalLink.nextElementSibling && upgradeModalLink.nextElementSibling.querySelector( '.frm-link-secondary' ) ) {
5803
+ container.appendChild( upgradeModalLink.nextElementSibling.cloneNode( true ) );
5804
+ }
5805
+
5806
+ const oneClickButton = document.getElementById( 'frm-oneclick-button' ).cloneNode( true );
5807
+ oneClickButton.id = 'frm_one_click_' + getAutoId();
5808
+ container.appendChild( oneClickButton );
5809
+ addOneClickModal( element, oneClickButton, upgradeButton );
5810
+ }
5811
+
5812
+ if ( element.dataset.screenshot ) {
5813
+ container.appendChild( getScreenshotWrapper( element.dataset.screenshot ) );
5814
+ }
5815
+ }
5816
+
5817
+ function getScreenshotWrapper( screenshot ) {
5818
+ const folderUrl = frmGlobal.url + '/images/screenshots/';
5819
+ const wrapper = div({
5820
+ className: 'frm-settings-screenshot-wrapper',
5821
+ children: [
5822
+ getToolbar(),
5823
+ div({ child: img({ src: folderUrl + screenshot }) })
5824
+ ]
5825
  });
5826
+
5827
+ function getToolbar() {
5828
+ const children = getColorIcons();
5829
+ children.push( img({ src: frmGlobal.url + '/images/tab.svg' }) );
5830
+ return div({
5831
+ className: 'frm-settings-screenshot-toolbar',
5832
+ children
5833
+ });
5834
+ }
5835
+
5836
+ function getColorIcons() {
5837
+ return [ '#ED8181', '#EDE06A', '#80BE30' ].map(
5838
+ color => {
5839
+ const circle = div({ className: 'frm-minmax-icon' });
5840
+ circle.style.backgroundColor = color;
5841
+ return circle;
5842
+ }
5843
+ );
5844
+ }
5845
+
5846
+ return wrapper;
5847
  }
5848
 
5849
  /**
5850
  * Allow addons to be installed from the upgrade modal.
5851
  */
5852
+ function addOneClickModal( link, button, showLink ) {
5853
  var oneclickMessage = document.getElementById( 'frm-oneclick' ),
5854
  oneclick = link.getAttribute( 'data-oneclick' ),
5855
  customLink = link.getAttribute( 'data-link' ),
 
5856
  upgradeMessage = document.getElementById( 'frm-upgrade-message' ),
5857
  newMessage = link.getAttribute( 'data-message' ),
 
5858
  showIt = 'block',
5859
  showMsg = 'block',
5860
  hideIt = 'none';
5861
 
5862
+ if ( undefined === button ) {
5863
+ button = document.getElementById( 'frm-oneclick-button' );
5864
+ }
5865
+ if ( undefined === showLink ) {
5866
+ showLink = document.getElementById( 'frm-upgrade-modal-link' );
5867
+ }
5868
+
5869
  // If one click upgrade, hide other content.
5870
  if ( oneclickMessage !== null && typeof oneclick !== 'undefined' && oneclick ) {
5871
  if ( newMessage === null ) {
8023
  jQuery( document ).on( 'click', '.frm-trigger-new-form-modal', triggerNewFormModal );
8024
  $modal = initModal( '#frm_new_form_modal', '600px' );
8025
 
8026
+ if ( false === $modal ) {
8027
+ return;
8028
+ }
8029
+
8030
  setTimeout(
8031
  function() {
8032
  $modal.get( 0 ).querySelector( '.postbox' ).style.display = 'block'; // Fixes pro issue #3508, prevent a conflict that hides the postbox in modal.
9087
  // tabs
9088
  jQuery( document ).on( 'click', '#frm-nav-tabs a', clickNewTab );
9089
  jQuery( '.post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a' ).on( 'click', function() {
9090
+ const showUpgradeTab = this.classList.contains( 'frm_show_upgrade_tab' );
9091
+ if ( this.classList.contains( 'frm_noallow' ) && ! showUpgradeTab ) {
9092
+ return;
9093
  }
9094
+
9095
+ if ( showUpgradeTab ) {
9096
+ populateUpgradeTab( this );
9097
+ }
9098
+
9099
+ clickTab( this );
9100
+ return false;
9101
  });
9102
  clickTab( jQuery( '.starttab a' ), 'auto' );
9103
 
js/formidable_blocks.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateAttribute=function(e,t,n){n(function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n;return e}({},e,t))},t.setTextAttribute=function(e,t){if(e)return" "+t+'="'+e+'"';return""},t.getSubDir=function(){var e=window.location.pathname,t=e.indexOf("wp-admin"),n="/";t>-1&&(n=e.substr(0,t));return n};t.cssHideAdvancedSettings="\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"},function(e,t,n){e.exports=n(8)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(0);function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){return l(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return wp.element.createElement("div",null,"[formidable",(e=this.props,t=e.formId,n=e.title,r=e.description,l=e.minimize,i="",i+=(0,o.setTextAttribute)(t,"id"),i+=(0,o.setTextAttribute)(n,"title"),i+=(0,o.setTextAttribute)(r,"description"),i+=(0,o.setTextAttribute)(l,"minimize")),"]");var e,t,n,r,l,i}}]),t}(wp.element.Component);t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=i(n(10)),l=i(n(1));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n.__,s=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.formId,n=e.setAttributes,r=e.forms;return wp.element.createElement(o.default,{selected:t,itemName:u("form","formidable"),itemNamePlural:u("forms","formidable"),items:r,onChange:function(e){n({formId:e})}})}}]),t}(wp.element.Component);t.default=s,s.propTypes={formId:l.default.string,setAttributes:l.default.func.isRequired}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var i=wp.element.Component,a=wp.components.Dashicon,c=function(e){function t(){return o(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return"svg"!==formidable_form_selector.icon?wp.element.createElement(a,{icon:formidable_form_selector.icon,size:"120"}):wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 599.68 601.37",width:"120",height:"120"},wp.element.createElement("path",{className:"cls-1 orange",d:"M289.6 384h140v76h-140z"}),wp.element.createElement("path",{className:"cls-1",d:"M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z"}),wp.element.createElement("path",{className:"cls-1",d:"M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z"}))}}]),t}(i);t.default=c},function(e,t,n){"use strict";n(6),n(11)},function(e,t,n){"use strict";var r=c(n(2)),o=c(n(7)),l=c(n(4)),i=c(n(3)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}var u=wp.element.Fragment,s=wp.i18n.__,f=wp.blocks.registerBlockType,p=wp.components,m=p.ServerSideRender,d=p.Notice;f("formidable/simple-form",{title:formidable_form_selector.name,description:s("Display a Form","formidable"),icon:l.default,category:"widgets",keywords:[s("contact forms","formidable"),"formidable"],edit:function(e){var t=e.setAttributes,n=e.attributes,r=e.isSelected,c=n.formId,f=formidable_form_selector.forms;return 0===f.length?wp.element.createElement(d,{status:"warning",isDismissible:!1},s("This site does not have any forms.","formidable")):c?wp.element.createElement(u,null,wp.element.createElement(o.default,{attributes:n,setAttributes:t,forms:f}),r&&wp.element.createElement("style",null,a.cssHideAdvancedSettings),wp.element.createElement(m,{block:"formidable/simple-form",attributes:n})):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(l.default,null),wp.element.createElement("div",{className:"frm-block-title"},formidable_form_selector.name),wp.element.createElement("div",{className:"frm-block-selector-screen"},wp.element.createElement(i.default,{formId:c,setAttributes:t,forms:f}))))},save:function(e){var t=e.attributes;return void 0===t.formId?"":wp.element.createElement(u,null,wp.element.createElement(r.default,t))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=c(n(1)),l=c(n(3)),i=c(n(2)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=wp.i18n.__,p=wp.element.Component,m=wp.blockEditor.InspectorControls,d=wp.components,b=d.PanelBody,y=d.PanelRow,w=d.ToggleControl,h=d.ExternalLink,v=function(e){function t(){return u(this,t),s(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.setAttributes,n=e.attributes,r=e.forms,o=n.formId,c=n.title,u=n.description,s=n.minimize;return wp.element.createElement(m,null,wp.element.createElement(b,{title:f("Select Form","formidable"),initialOpen:!0},wp.element.createElement(y,null,wp.element.createElement(l.default,{formId:o,setAttributes:t,forms:r})),o&&wp.element.createElement(y,null,wp.element.createElement(h,{href:(0,a.getSubDir)()+"wp-admin/admin.php?page=formidable&frm_action=edit&id="+o},f("Go to form","formidable")))),wp.element.createElement(b,{title:f("Options","formidable"),initialOpen:!1},wp.element.createElement(w,{label:f("Show Form Title","formidable"),checked:c,onChange:function(e){(0,a.updateAttribute)("title",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Show Form Description","formidable"),checked:u,onChange:function(e){(0,a.updateAttribute)("description",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Minimize HTML","formidable"),checked:s,onChange:function(e){(0,a.updateAttribute)("minimize",e?"1":"",t)}})),wp.element.createElement(b,{title:f("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(y,null,wp.element.createElement(i.default,this.props.attributes))))}}]),t}(p);t.default=v,v.propTypes={attributes:o.default.object,setAttributes:o.default.func}},function(e,t,n){"use strict";var r=n(9);function o(){}e.exports=function(){function e(e,t,n,o,l,i){if(i!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(1),i=(r=l)&&r.__esModule?r:{default:r};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n,s=u.__,f=u.sprintf,p=wp.element.Component,m=wp.components.SelectControl,d=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"createOptions",value:function(e,t){var n=e.map((function(e){return{label:e.label,value:e.value}}));return[{label:f(s("Select a %s","formidable"),t),value:""}].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n))}},{key:"render",value:function(){var e=this.props,t=e.selected,n=e.items,r=e.onChange,o=e.itemName,l=e.itemNamePlural,i=e.label,a=e.help;return n&&0!==n.length?wp.element.createElement(m,{value:t,options:this.createOptions(n,o),label:i,help:a,onChange:r}):wp.element.createElement("p",{className:"frm-block-select-no-items"},f(s("Currently, there are no %s","formidable"),l))}}]),t}(p);t.default=d,d.defaultProps={itemName:"item",itemNamePlural:"items"},d.propTypes={selected:i.default.oneOfType([i.default.string,i.default.number]),items:i.default.array,onChange:i.default.func,itemName:i.default.string,itemNamePlural:i.default.string,label:i.default.string,help:i.default.string}},function(e,t,n){"use strict";var r,o=n(4),l=(r=o)&&r.__esModule?r:{default:r};var i=wp.i18n.__,a=wp.blocks.registerBlockType,c=wp.components.Notice,u=wp.element.createElement("svg",{width:20,height:20},wp.element.createElement("path",{d:"M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z"}));a("formidable/calculator",{title:i("Calculator Form","formidable"),description:i("Display a Calculator Form","formidable"),icon:u,category:"widgets",keywords:["calculation","formidable"],edit:function(e){e.setAttributes,e.attributes.formId;return 0===formidable_form_selector.forms.length?wp.element.createElement(c,{status:"warning",isDismissible:!1},i("This site does not have any forms.","formidable")):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(l.default,null),wp.element.createElement("div",{className:"frm-block-title"},i("Calculator Form","formidable")),wp.element.createElement("div",{className:"frm-block-selector-screen frm_pro_tip"},wp.element.createElement(c,{status:"warning",isDismissible:!1},i("This site does not have any calculator forms.","formidable"),wp.element.createElement("br",null),wp.element.createElement("a",{href:formidable_form_selector.link,target:"_blank"},i("Upgrade Formidable Forms.","formidable"))),wp.element.createElement("img",{src:formidable_form_selector.url+"/images/conversion-calc.jpg",alt:i("Calculator Form","formidable")}))))}})}]);
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateAttribute=function(e,t,n){n(function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n;return e}({},e,t))},t.setTextAttribute=function(e,t){if(e)return" "+t+'="'+e+'"';return""},t.getSubDir=function(){var e=window.location.pathname,t=e.indexOf("wp-admin"),n="/";t>-1&&(n=e.substr(0,t));return n};t.cssHideAdvancedSettings="\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"},function(e,t,n){e.exports=n(8)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(0);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){return i(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return wp.element.createElement("div",null,"[formidable",(e=this.props,t=e.formId,n=e.title,r=e.description,i=e.minimize,l="",l+=(0,o.setTextAttribute)(t,"id"),l+=(0,o.setTextAttribute)(n,"title"),l+=(0,o.setTextAttribute)(r,"description"),l+=(0,o.setTextAttribute)(i,"minimize")),"]");var e,t,n,r,i,l}}]),t}(wp.element.Component);t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=l(n(10)),i=l(n(1));function l(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n.__,s=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.formId,n=e.setAttributes,r=e.forms;return wp.element.createElement(o.default,{selected:t,itemName:u("form","formidable"),itemNamePlural:u("forms","formidable"),items:r,onChange:function(e){n({formId:e})}})}}]),t}(wp.element.Component);t.default=s,s.propTypes={formId:i.default.string,setAttributes:i.default.func.isRequired}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=wp.element.Component,a=wp.components.Dashicon,c=function(e){function t(){return o(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return"svg"!==formidable_form_selector.icon?wp.element.createElement(a,{icon:formidable_form_selector.icon,size:"120"}):wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 599.68 601.37",width:"120",height:"120"},wp.element.createElement("path",{className:"cls-1 orange",d:"M289.6 384h140v76h-140z"}),wp.element.createElement("path",{className:"cls-1",d:"M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z"}),wp.element.createElement("path",{className:"cls-1",d:"M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z"}))}}]),t}(l);t.default=c},function(e,t,n){"use strict";n(6),n(11)},function(e,t,n){"use strict";var r=c(n(2)),o=c(n(7)),i=c(n(4)),l=c(n(3)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}var u=wp.element.Fragment,s=wp.i18n.__,f=wp.blocks.registerBlockType,p=wp.components,m=p.ServerSideRender,b=p.Notice;f("formidable/simple-form",{title:formidable_form_selector.name,description:s("Display a Form","formidable"),icon:i.default,category:"widgets",keywords:[s("contact forms","formidable"),"formidable"],edit:function(e){var t=e.setAttributes,n=e.attributes,r=e.isSelected,c=n.formId,f=formidable_form_selector.forms;return 0===f.length?wp.element.createElement(b,{status:"warning",isDismissible:!1},s("This site does not have any forms.","formidable")):c?wp.element.createElement(u,null,wp.element.createElement(o.default,{attributes:n,setAttributes:t,forms:f}),r&&wp.element.createElement("style",null,a.cssHideAdvancedSettings),wp.element.createElement(m,{block:"formidable/simple-form",attributes:n})):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(i.default,null),wp.element.createElement("div",{className:"frm-block-title"},formidable_form_selector.name),wp.element.createElement("div",{className:"frm-block-selector-screen"},wp.element.createElement(l.default,{formId:c,setAttributes:t,forms:f}))))},save:function(e){var t=e.attributes;return void 0===t.formId?"":wp.element.createElement(u,null,wp.element.createElement(r.default,t))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=c(n(1)),i=c(n(3)),l=c(n(2)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=wp.i18n.__,p=wp.element.Component,m=wp.blockEditor.InspectorControls,b=wp.components,d=b.PanelBody,y=b.PanelRow,w=b.ToggleControl,h=b.ExternalLink,v=function(e){function t(){return u(this,t),s(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.setAttributes,n=e.attributes,r=e.forms,o=n.formId,c=n.title,u=n.description,s=n.minimize;return wp.element.createElement(m,null,wp.element.createElement(d,{title:f("Select Form","formidable"),initialOpen:!0},wp.element.createElement(y,null,wp.element.createElement(i.default,{formId:o,setAttributes:t,forms:r})),o&&wp.element.createElement(y,null,wp.element.createElement(h,{href:(0,a.getSubDir)()+"wp-admin/admin.php?page=formidable&frm_action=edit&id="+o},f("Go to form","formidable")))),wp.element.createElement(d,{title:f("Options","formidable"),initialOpen:!1},wp.element.createElement(w,{label:f("Show Form Title","formidable"),checked:c,onChange:function(e){(0,a.updateAttribute)("title",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Show Form Description","formidable"),checked:u,onChange:function(e){(0,a.updateAttribute)("description",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Minimize HTML","formidable"),checked:s,onChange:function(e){(0,a.updateAttribute)("minimize",e?"1":"",t)}})),wp.element.createElement(d,{title:f("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(y,null,wp.element.createElement(l.default,this.props.attributes))))}}]),t}(p);t.default=v,v.propTypes={attributes:o.default.object,setAttributes:o.default.func}},function(e,t,n){"use strict";var r=n(9);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,l){if(l!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(1),l=(r=i)&&r.__esModule?r:{default:r};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n,s=u.__,f=u.sprintf,p=wp.element.Component,m=wp.components.SelectControl,b=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"createOptions",value:function(e,t){var n=e.map((function(e){return{label:e.label,value:e.value}}));return[{label:f(s("Select a %s","formidable"),t),value:""}].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n))}},{key:"render",value:function(){var e=this.props,t=e.selected,n=e.items,r=e.onChange,o=e.itemName,i=e.itemNamePlural,l=e.label,a=e.help;return n&&0!==n.length?wp.element.createElement(m,{value:t,options:this.createOptions(n,o),label:l,help:a,onChange:r}):wp.element.createElement("p",{className:"frm-block-select-no-items"},f(s("Currently, there are no %s","formidable"),i))}}]),t}(p);t.default=b,b.defaultProps={itemName:"item",itemNamePlural:"items"},b.propTypes={selected:l.default.oneOfType([l.default.string,l.default.number]),items:l.default.array,onChange:l.default.func,itemName:l.default.string,itemNamePlural:l.default.string,label:l.default.string,help:l.default.string}},function(e,t,n){"use strict";var r,o=n(4),i=(r=o)&&r.__esModule?r:{default:r};var l=wp.i18n.__,a=wp.blocks.registerBlockType,c=wp.components.Notice,u=wp.element.createElement("svg",{width:20,height:20},wp.element.createElement("path",{d:"M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z"}));a("formidable/calculator",{title:l("Calculator Form","formidable"),description:l("Display a Calculator Form","formidable"),icon:u,category:"widgets",keywords:["calculation","formidable"],edit:function(e){e.setAttributes,e.attributes.formId;return 0===formidable_form_selector.forms.length?wp.element.createElement(c,{status:"warning",isDismissible:!1},l("This site does not have any forms.","formidable")):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(i.default,null),wp.element.createElement("div",{className:"frm-block-title"},l("Calculator Form","formidable")),wp.element.createElement("div",{className:"frm-block-selector-screen frm_pro_tip"},wp.element.createElement(c,{status:"warning",isDismissible:!1},l("This site does not have any calculator forms.","formidable"),wp.element.createElement("br",null),wp.element.createElement("a",{href:formidable_form_selector.link,target:"_blank"},l("Upgrade Formidable Forms.","formidable"))),wp.element.createElement("img",{src:formidable_form_selector.url+"/images/conversion-calc.jpg",alt:l("Calculator Form","formidable")}))))}})}]);
languages/formidable.pot CHANGED
@@ -2,16 +2,16 @@
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.4\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: 2022-06-22T14:58:50+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"
16
 
17
  #: js/src/common/components/itemselect.js:26
@@ -153,7 +153,7 @@ msgid "Installed"
153
  msgstr ""
154
 
155
  #: classes/controllers/FrmAddonsController.php:638
156
- #: classes/helpers/FrmAppHelper.php:2815
157
  msgid "Active"
158
  msgstr ""
159
 
@@ -181,7 +181,7 @@ msgstr ""
181
  #: classes/controllers/FrmAddonsController.php:1198
182
  #: classes/controllers/FrmWelcomeController.php:141
183
  #: classes/views/frm-forms/new-form-overlay.php:105
184
- #: classes/views/shared/reports-info.php:24
185
  #: js/admin/applications.js:390
186
  msgid "Upgrade Now"
187
  msgstr ""
@@ -233,7 +233,7 @@ msgid "Applications"
233
  msgstr ""
234
 
235
  #: classes/controllers/FrmEntriesController.php:79
236
- #: classes/controllers/FrmFormsController.php:1393
237
  #: classes/views/frm-entries/form.php:63
238
  #: classes/views/frm-entries/sidebar-shared.php:57
239
  msgid "Entry Key"
@@ -510,148 +510,148 @@ msgstr ""
510
  msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
511
  msgstr ""
512
 
513
- #: classes/controllers/FrmFormsController.php:1139
514
  msgid "Form Scheduling"
515
  msgstr ""
516
 
517
- #: classes/controllers/FrmFormsController.php:1144
518
  msgid "Form scheduling settings"
519
  msgstr ""
520
 
521
- #: classes/controllers/FrmFormsController.php:1148
522
  msgid "Styling & Buttons"
523
  msgstr ""
524
 
525
- #: classes/controllers/FrmFormsController.php:1154
526
  msgid "Form Landing Page"
527
  msgstr ""
528
 
529
- #: classes/controllers/FrmFormsController.php:1160
530
- #: classes/controllers/FrmFormsController.php:1166
531
  msgid "Conversational Forms"
532
  msgstr ""
533
 
534
- #: classes/controllers/FrmFormsController.php:1167
535
  msgid "Ask one question at a time for automated conversations."
536
  msgstr ""
537
 
538
- #: classes/controllers/FrmFormsController.php:1172
539
  msgid "Customize HTML"
540
  msgstr ""
541
 
542
- #: classes/controllers/FrmFormsController.php:1308
543
  msgid "Customize field values with the following parameters."
544
  msgstr ""
545
 
546
- #: classes/controllers/FrmFormsController.php:1346
547
  msgid "Separator"
548
  msgstr ""
549
 
550
- #: classes/controllers/FrmFormsController.php:1347
551
  msgid "Use a different separator for checkbox fields"
552
  msgstr ""
553
 
554
- #: classes/controllers/FrmFormsController.php:1350
555
  msgid "Date Format"
556
  msgstr ""
557
 
558
- #: classes/controllers/FrmFormsController.php:1353
559
  #: classes/views/frm-fields/back-end/settings.php:27
560
  msgid "Field Label"
561
  msgstr ""
562
 
563
- #: classes/controllers/FrmFormsController.php:1356
564
  msgid "No Auto P"
565
  msgstr ""
566
 
567
- #: classes/controllers/FrmFormsController.php:1357
568
  msgid "Do not automatically add any paragraphs or line breaks"
569
  msgstr ""
570
 
571
- #: classes/controllers/FrmFormsController.php:1372
572
  #: classes/models/FrmField.php:62
573
  msgid "User ID"
574
  msgstr ""
575
 
576
- #: classes/controllers/FrmFormsController.php:1373
577
  msgid "First Name"
578
  msgstr ""
579
 
580
- #: classes/controllers/FrmFormsController.php:1374
581
  msgid "Last Name"
582
  msgstr ""
583
 
584
- #: classes/controllers/FrmFormsController.php:1375
585
  msgid "Display Name"
586
  msgstr ""
587
 
588
- #: classes/controllers/FrmFormsController.php:1376
589
  msgid "User Login"
590
  msgstr ""
591
 
592
- #: classes/controllers/FrmFormsController.php:1377
593
  #: classes/models/FrmField.php:34
594
  msgid "Email"
595
  msgstr ""
596
 
597
- #: classes/controllers/FrmFormsController.php:1378
598
  msgid "Avatar"
599
  msgstr ""
600
 
601
- #: classes/controllers/FrmFormsController.php:1379
602
  msgid "Author Link"
603
  msgstr ""
604
 
605
- #: classes/controllers/FrmFormsController.php:1392
606
  #: classes/views/frm-entries/sidebar-shared.php:51
607
  msgid "Entry ID"
608
  msgstr ""
609
 
610
- #: classes/controllers/FrmFormsController.php:1394
611
  msgid "Post ID"
612
  msgstr ""
613
 
614
- #: classes/controllers/FrmFormsController.php:1395
615
  msgid "User IP"
616
  msgstr ""
617
 
618
- #: classes/controllers/FrmFormsController.php:1396
619
  msgid "Entry created"
620
  msgstr ""
621
 
622
- #: classes/controllers/FrmFormsController.php:1397
623
  msgid "Entry updated"
624
  msgstr ""
625
 
626
- #: classes/controllers/FrmFormsController.php:1399
627
  msgid "Site URL"
628
  msgstr ""
629
 
630
- #: classes/controllers/FrmFormsController.php:1400
631
  msgid "Site Name"
632
  msgstr ""
633
 
634
- #: classes/controllers/FrmFormsController.php:1408
635
  msgid "Default Msg"
636
  msgstr ""
637
 
638
- #: classes/controllers/FrmFormsController.php:1409
639
  msgid "Default HTML"
640
  msgstr ""
641
 
642
- #: classes/controllers/FrmFormsController.php:1410
643
  msgid "Default Plain"
644
  msgstr ""
645
 
646
- #: classes/controllers/FrmFormsController.php:1513
647
  msgid "No forms were specified"
648
  msgstr ""
649
 
650
- #: classes/controllers/FrmFormsController.php:1627
651
  msgid "Abnormal HTML characters prevented your form from saving correctly"
652
  msgstr ""
653
 
654
- #: classes/controllers/FrmFormsController.php:1742
655
  #: classes/helpers/FrmFormsHelper.php:57
656
  #: classes/helpers/FrmFormsHelper.php:112
657
  #: classes/helpers/FrmFormsHelper.php:166