Forminator Payment, Quiz and Contact Form Plugin - Version 1.6.1

Version Description

  • Add: Accessibility settings for UI
  • Add: Brand new poll wizard UI/UX
  • Add: Poll integrations
  • Add: Front-end AJAX render for forms/polls/quizzes
  • Improvement: Remove activation tooltips
  • Improvement: Add option to enable/disabled DONOTCACHEPAGE constant
  • Improvement: Compatibility with Admin Menu Editor plugin
  • Fix: Hitting Return/Enter on an edit field has incorrect behaviour
  • Fix: Encoding special characters
  • Fix: Double value attribute for input fields
  • Fix: Form with pagination scroll on load
  • Fix: Anonymous post author even default author selected
  • Fix: HTML element doesn't work when Text editor is used
  • Other minor enhancements/fixes
Download this release

Release Info

Developer jdailey
Plugin Icon 128x128 Forminator Payment, Quiz and Contact Form Plugin
Version 1.6.1
Comparing to
See all releases

Code changes from version 1.6.0.3 to 1.6.1

Files changed (92) hide show
  1. addons/class-addon-default-holder.php +15 -0
  2. addons/pro/activecampaign/forminator-addon-activecampaign-form-hooks.php +1 -1
  3. addons/pro/activecampaign/forminator-addon-activecampaign.php +14 -0
  4. addons/pro/activecampaign/views/form-settings/setup-options.php +1 -1
  5. addons/pro/aweber/forminator-addon-aweber-form-hooks.php +1 -1
  6. addons/pro/aweber/forminator-addon-aweber.php +14 -0
  7. addons/pro/campaignmonitor/forminator-addon-campaignmonitor-form-hooks.php +1 -1
  8. addons/pro/campaignmonitor/forminator-addon-campaignmonitor.php +14 -0
  9. addons/pro/googlesheet/forminator-addon-googlesheet-form-hooks.php +1 -1
  10. addons/pro/googlesheet/forminator-addon-googlesheet-form-settings.php +1 -0
  11. addons/pro/googlesheet/forminator-addon-googlesheet-poll-hooks.php +587 -0
  12. addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings-exception.php +81 -0
  13. addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings.php +403 -0
  14. addons/pro/googlesheet/forminator-addon-googlesheet.php +72 -3
  15. addons/pro/googlesheet/googlesheet.php +8 -3
  16. addons/pro/googlesheet/lib/class-wp-googlesheet-client-logger.php +5 -0
  17. addons/pro/googlesheet/views/poll-settings/pick-name.php +40 -0
  18. addons/pro/googlesheet/views/poll-settings/setup-sheet.php +75 -0
  19. addons/pro/googlesheet/views/settings/setup-client.php +3 -1
  20. addons/pro/gutenberg/js/forms-block.min.js +1 -508
  21. addons/pro/gutenberg/js/polls-block.min.js +1 -424
  22. addons/pro/gutenberg/js/quizzes-block.min.js +1 -444
  23. addons/pro/gutenberg/library/blocks/class-block-forms.php +10 -3
  24. addons/pro/gutenberg/library/blocks/class-block-polls.php +1 -5
  25. addons/pro/gutenberg/library/blocks/class-block-quizzes.php +1 -5
  26. addons/pro/gutenberg/package-lock.json +4891 -0
  27. addons/pro/gutenberg/webpack.common.js +21 -0
  28. addons/pro/gutenberg/webpack.dev.js +6 -0
  29. addons/pro/gutenberg/webpack.prod.js +12 -0
  30. addons/pro/mailchimp/forminator-addon-mailchimp-form-settings.php +3 -3
  31. addons/pro/mailchimp/forminator-addon-mailchimp.php +18 -3
  32. addons/pro/slack/forminator-addon-slack-form-hooks.php +1 -1
  33. addons/pro/slack/forminator-addon-slack-form-settings.php +5 -9
  34. addons/pro/slack/forminator-addon-slack-poll-hooks.php +432 -0
  35. addons/pro/slack/forminator-addon-slack-poll-settings-exception.php +68 -0
  36. addons/pro/slack/forminator-addon-slack-poll-settings.php +633 -0
  37. addons/pro/slack/forminator-addon-slack.php +68 -1
  38. addons/pro/slack/slack.php +6 -1
  39. addons/pro/slack/views/poll-settings/pick-name.php +34 -0
  40. addons/pro/slack/views/poll-settings/select-target.php +40 -0
  41. addons/pro/slack/views/poll-settings/select-type.php +39 -0
  42. addons/pro/slack/views/poll-settings/setup-message.php +60 -0
  43. addons/pro/slack/views/settings/setup-client.php +1 -1
  44. addons/pro/trello/forminator-addon-trello-form-hooks.php +1 -1
  45. addons/pro/trello/forminator-addon-trello-poll-hooks.php +521 -0
  46. addons/pro/trello/forminator-addon-trello-poll-settings-exception.php +68 -0
  47. addons/pro/trello/forminator-addon-trello-poll-settings.php +778 -0
  48. addons/pro/trello/forminator-addon-trello.php +64 -2
  49. addons/pro/trello/trello.php +6 -1
  50. addons/pro/trello/views/poll-settings/setup-board.php +38 -0
  51. addons/pro/trello/views/poll-settings/setup-card.php +199 -0
  52. addons/pro/trello/views/poll-settings/setup-list.php +46 -0
  53. addons/pro/trello/views/poll-settings/setup-name.php +34 -0
  54. addons/pro/zapier/forminator-addon-zapier-form-hooks.php +1 -1
  55. addons/pro/zapier/forminator-addon-zapier-poll-hooks.php +368 -0
  56. addons/pro/zapier/forminator-addon-zapier-poll-settings-exception.php +68 -0
  57. addons/pro/zapier/forminator-addon-zapier-poll-settings.php +392 -0
  58. addons/pro/zapier/forminator-addon-zapier.php +63 -1
  59. addons/pro/zapier/views/poll-settings/setup-webhook.php +67 -0
  60. addons/pro/zapier/zapier.php +6 -1
  61. admin/abstracts/class-admin-module.php +4 -0
  62. admin/abstracts/class-admin-page.php +2 -1
  63. admin/classes/class-admin-ajax.php +112 -41
  64. admin/classes/class-admin-data.php +30 -26
  65. admin/classes/class-admin-l10n.php +3 -0
  66. admin/locale.php +120 -26
  67. admin/views/dashboard/widgets/widget-cform.php +4 -0
  68. admin/views/dashboard/widgets/widget-poll.php +10 -3
  69. admin/views/dashboard/widgets/widget-quiz.php +4 -0
  70. admin/views/integrations/poll-addon.php +130 -0
  71. admin/views/integrations/poll-content.php +58 -0
  72. admin/views/poll/list/content.php +70 -25
  73. admin/views/poll/wizard/content.php +1 -1
  74. admin/views/poll/wizard/header.php +0 -9
  75. admin/views/settings/content.php +13 -4
  76. admin/views/settings/data/forms-privacy.php +58 -42
  77. admin/views/settings/data/polls-privacy.php +108 -20
  78. admin/views/settings/popup/edit-captcha-content.php +0 -50
  79. admin/views/settings/popup/edit-currency-content.php +0 -40
  80. admin/views/settings/popup/edit-email-content.php +0 -36
  81. admin/views/settings/popup/edit-pagination-entries-content.php +0 -22
  82. admin/views/settings/popup/edit-pagination-listings-content.php +0 -19
  83. admin/views/settings/popup/edit-paypal-content.php +0 -55
  84. admin/views/settings/popup/edit-privacy-settings.php +0 -130
  85. admin/views/settings/popup/edit-uninstall-content.php +0 -26
  86. admin/views/settings/popup/exports-content.php +0 -44
  87. admin/views/settings/tab-accessibility.php +70 -0
  88. admin/views/settings/tab-data.php +3 -1
  89. admin/views/settings/tab-emails.php +3 -1
  90. admin/views/settings/tab-pagination.php +7 -5
  91. admin/views/settings/tab-recaptcha.php +3 -1
  92. assets/css/front.min.css.map +0 -1
addons/class-addon-default-holder.php CHANGED
@@ -89,4 +89,19 @@ class Forminator_Addon_Default_Holder extends Forminator_Addon_Abstract {
89
  public function check_is_activable() {
90
  return false;
91
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  }
89
  public function check_is_activable() {
90
  return false;
91
  }
92
+
93
+ /**
94
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
95
+ *
96
+ * Please apply necessary WordPress hook on the inheritance class
97
+ *
98
+ * @since 1.6.1
99
+ *
100
+ * @param $poll_id
101
+ *
102
+ * @return boolean
103
+ */
104
+ public function is_poll_connected( $poll_id ) {
105
+ return false;
106
+ }
107
  }
addons/pro/activecampaign/forminator-addon-activecampaign-form-hooks.php CHANGED
@@ -287,7 +287,7 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
287
  return array(
288
  'is_sent' => true,
289
  'connection_name' => $connection_settings['name'],
290
- 'description' => __( 'Successfully sent data to ActiveCampaign', Forminator::DOMAIN ),
291
  'data_sent' => $ac_api->get_last_data_sent(),
292
  'data_received' => $ac_api->get_last_data_received(),
293
  'url_request' => $ac_api->get_last_url_request(),
287
  return array(
288
  'is_sent' => true,
289
  'connection_name' => $connection_settings['name'],
290
+ 'description' => __( 'Successfully send data to ActiveCampaign', Forminator::DOMAIN ),
291
  'data_sent' => $ac_api->get_last_data_sent(),
292
  'data_received' => $ac_api->get_last_data_received(),
293
  'url_request' => $ac_api->get_last_url_request(),
addons/pro/activecampaign/forminator-addon-activecampaign.php CHANGED
@@ -474,4 +474,18 @@ final class Forminator_Addon_Activecampaign extends Forminator_Addon_Abstract {
474
  return $values;
475
  }
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
  }
474
  return $values;
475
  }
476
 
477
+ /**
478
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
479
+ *
480
+ * Please apply necessary WordPress hook on the inheritance class
481
+ *
482
+ * @since 1.6.1
483
+ *
484
+ * @param $poll_id
485
+ *
486
+ * @return boolean
487
+ */
488
+ public function is_poll_connected( $poll_id ) {
489
+ return false;
490
+ }
491
  }
addons/pro/activecampaign/views/form-settings/setup-options.php CHANGED
@@ -71,7 +71,7 @@ foreach ( $template_vars as $key => $val ) {
71
  <?php endif; ?>
72
 
73
  <span class="sui-description">
74
- <?php esc_html_e( 'Tags for contact that was sent to ActiveCampaign.', Forminator::DOMAIN ); ?>
75
  </span>
76
 
77
  </div>
71
  <?php endif; ?>
72
 
73
  <span class="sui-description">
74
+ <?php esc_html_e( 'Tags for contact that sent to ActiveCampaign.', Forminator::DOMAIN ); ?>
75
  </span>
76
 
77
  </div>
addons/pro/aweber/forminator-addon-aweber-form-hooks.php CHANGED
@@ -466,7 +466,7 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
466
  return array(
467
  'is_sent' => true,
468
  'connection_name' => $connection_settings['name'],
469
- 'description' => __( 'Successfully sent data to AWeber', Forminator::DOMAIN ),
470
  'data_sent' => $api->get_last_data_sent(),
471
  'data_received' => $api->get_last_data_received(),
472
  'url_request' => $api->get_last_url_request(),
466
  return array(
467
  'is_sent' => true,
468
  'connection_name' => $connection_settings['name'],
469
+ 'description' => __( 'Successfully send data to AWeber', Forminator::DOMAIN ),
470
  'data_sent' => $api->get_last_data_sent(),
471
  'data_received' => $api->get_last_data_received(),
472
  'url_request' => $api->get_last_url_request(),
addons/pro/aweber/forminator-addon-aweber.php CHANGED
@@ -608,4 +608,18 @@ final class Forminator_Addon_Aweber extends Forminator_Addon_Abstract {
608
  return $this->_account_id;
609
  }
610
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  }
608
  return $this->_account_id;
609
  }
610
 
611
+ /**
612
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
613
+ *
614
+ * Please apply necessary WordPress hook on the inheritance class
615
+ *
616
+ * @since 1.6.1
617
+ *
618
+ * @param $poll_id
619
+ *
620
+ * @return boolean
621
+ */
622
+ public function is_poll_connected( $poll_id ) {
623
+ return false;
624
+ }
625
  }
addons/pro/campaignmonitor/forminator-addon-campaignmonitor-form-hooks.php CHANGED
@@ -252,7 +252,7 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
252
  return array(
253
  'is_sent' => true,
254
  'connection_name' => $connection_settings['name'],
255
- 'description' => __( 'Successfully sent data to Campaign Monitor', Forminator::DOMAIN ),
256
  'data_sent' => $api->get_last_data_sent(),
257
  'data_received' => $api->get_last_data_received(),
258
  'url_request' => $api->get_last_url_request(),
252
  return array(
253
  'is_sent' => true,
254
  'connection_name' => $connection_settings['name'],
255
+ 'description' => __( 'Successfully send data to Campaign Monitor', Forminator::DOMAIN ),
256
  'data_sent' => $api->get_last_data_sent(),
257
  'data_received' => $api->get_last_data_received(),
258
  'url_request' => $api->get_last_url_request(),
addons/pro/campaignmonitor/forminator-addon-campaignmonitor.php CHANGED
@@ -507,4 +507,18 @@ final class Forminator_Addon_Campaignmonitor extends Forminator_Addon_Abstract {
507
  return $client_id;
508
  }
509
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  }
507
  return $client_id;
508
  }
509
 
510
+ /**
511
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
512
+ *
513
+ * Please apply necessary WordPress hook on the inheritance class
514
+ *
515
+ * @since 1.6.1
516
+ *
517
+ * @param $poll_id
518
+ *
519
+ * @return boolean
520
+ */
521
+ public function is_poll_connected( $poll_id ) {
522
+ return false;
523
+ }
524
  }
addons/pro/googlesheet/forminator-addon-googlesheet-form-hooks.php CHANGED
@@ -309,7 +309,7 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
309
  return array(
310
  'is_sent' => true,
311
  'connection_name' => $connection_settings['name'],
312
- 'description' => __( 'Successfully sent data to Googlesheet', Forminator::DOMAIN ),
313
  );
314
 
315
  } catch ( Google_Exception $e ) {
309
  return array(
310
  'is_sent' => true,
311
  'connection_name' => $connection_settings['name'],
312
+ 'description' => __( 'Successfully send data to Googlesheet', Forminator::DOMAIN ),
313
  );
314
 
315
  } catch ( Google_Exception $e ) {
addons/pro/googlesheet/forminator-addon-googlesheet-form-settings.php CHANGED
@@ -163,6 +163,7 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
163
  * @param $submitted_data
164
  *
165
  * @return array
 
166
  */
167
  public function setup_sheet( $submitted_data ) {
168
  $template = forminator_addon_googlesheet_dir() . 'views/form-settings/setup-sheet.php';
163
  * @param $submitted_data
164
  *
165
  * @return array
166
+ * @throws Exception
167
  */
168
  public function setup_sheet( $submitted_data ) {
169
  $template = forminator_addon_googlesheet_dir() . 'views/form-settings/setup-sheet.php';
addons/pro/googlesheet/forminator-addon-googlesheet-poll-hooks.php ADDED
@@ -0,0 +1,587 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Googlesheet_Poll_Hooks
5
+ *
6
+ * @since 1.6.1
7
+ *
8
+ */
9
+ class Forminator_Addon_Googlesheet_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abstract {
10
+
11
+ /**
12
+ * Addon instance are auto available form abstract
13
+ * Its added here for development purpose,
14
+ * Auto-complete will resolve addon directly to `Googlesheet` instance instead of the abstract
15
+ * And its public properties can be exposed
16
+ *
17
+ * @since 1.6.1
18
+ * @var Forminator_Addon_Googlesheet
19
+ */
20
+ protected $addon;
21
+
22
+ /**
23
+ * Poll Settings Instance
24
+ *
25
+ * @since 1.6.1
26
+ * @var Forminator_Addon_Googlesheet_Poll_Settings | null
27
+ */
28
+ protected $poll_settings_instance;
29
+
30
+ /**
31
+ * Google sheet column titles
32
+ */
33
+ const GSHEET_ANSWER_COLUMN_NAME = 'Answer';
34
+ const GSHEET_EXTRA_COLUMN_NAME = 'Extra';
35
+
36
+ /**
37
+ * Forminator_Addon_Googlesheet_Poll_Hooks constructor.
38
+ *
39
+ * @since 1.6.1
40
+ *
41
+ * @param Forminator_Addon_Abstract $addon
42
+ * @param $poll_id
43
+ *
44
+ * @throws Forminator_Addon_Exception
45
+ */
46
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
47
+ parent::__construct( $addon, $poll_id );
48
+ $this->_submit_poll_error_message = __( 'Googlesheet failed to process submitted data. Please check your poll and try again', Forminator::DOMAIN );
49
+ }
50
+
51
+ /**
52
+ * Save status of request sent and received for each connected Googlesheet
53
+ *
54
+ * @since 1.6.1
55
+ *
56
+ * @param array $submitted_data
57
+ * @param array $current_entry_fields
58
+ *
59
+ * @return array
60
+ */
61
+ public function add_entry_fields( $submitted_data, $current_entry_fields = array() ) {
62
+ $poll_id = $this->poll_id;
63
+ $poll_settings_instance = $this->poll_settings_instance;
64
+
65
+ /**
66
+ * Filter Googlesheet submitted poll data to be processed
67
+ *
68
+ * @since 1.6.1
69
+ *
70
+ * @param array $submitted_data
71
+ * @param array $current_entry_fields
72
+ * @param int $poll_id current Poll ID
73
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon poll Settings instance
74
+ */
75
+ $submitted_data = apply_filters(
76
+ 'forminator_addon_googlesheet_poll_submitted_data',
77
+ $submitted_data,
78
+ $current_entry_fields,
79
+ $poll_id,
80
+ $poll_settings_instance
81
+ );
82
+
83
+ /**
84
+ * Filter current poll entry fields data to be processed by Googlesheet
85
+ *
86
+ * @since 1.6.1
87
+ *
88
+ * @param array $current_entry_fields
89
+ * @param array $submitted_data
90
+ * @param int $poll_id current Poll ID
91
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
92
+ */
93
+ $current_entry_fields = apply_filters(
94
+ 'forminator_addon_googlesheet_poll_entry_fields',
95
+ $current_entry_fields,
96
+ $submitted_data,
97
+ $poll_id,
98
+ $poll_settings_instance
99
+ );
100
+
101
+ forminator_addon_maybe_log( __METHOD__, $submitted_data );
102
+
103
+ $addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
104
+
105
+ $data = array();
106
+
107
+ /**
108
+ * Fires before poll create row on Googlesheet
109
+ *
110
+ * @since 1.6.1
111
+ *
112
+ * @param int $poll_id current Poll ID
113
+ * @param array $submitted_data
114
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
115
+ */
116
+ do_action( 'forminator_addon_googlesheet_poll_before_create_row', $poll_id, $submitted_data, $poll_settings_instance );
117
+
118
+ foreach ( $addon_setting_values as $key => $addon_setting_value ) {
119
+ // save it on entry field, with name `status-$MULTI_ID`, and value is the return result on sending data to Googlesheet
120
+ if ( $poll_settings_instance->is_multi_poll_settings_complete( $key ) ) {
121
+ // exec only on completed connection
122
+ $data[] = array(
123
+ 'name' => 'status-' . $key,
124
+ 'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
125
+ );
126
+ }
127
+
128
+ }
129
+
130
+ $entry_fields = $data;
131
+ /**
132
+ * Filter Googlesheet entry fields to be saved to entry model
133
+ *
134
+ * @since 1.6.1
135
+ *
136
+ * @param array $entry_fields
137
+ * @param int $poll_id current Poll ID
138
+ * @param array $submitted_data
139
+ * @param array $current_entry_fields
140
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
141
+ */
142
+ $data = apply_filters(
143
+ 'forminator_addon_poll_googlesheet_entry_fields',
144
+ $entry_fields,
145
+ $poll_id,
146
+ $submitted_data,
147
+ $current_entry_fields,
148
+ $poll_settings_instance
149
+ );
150
+
151
+ return $data;
152
+ }
153
+
154
+ /**
155
+ * Get status on create Googlesheet row
156
+ *
157
+ * @since 1.6.1
158
+ *
159
+ * @param string $connection_id
160
+ * @param array $submitted_data
161
+ * @param array $connection_settings
162
+ * @param array $poll_entry_fields
163
+ *
164
+ * @return array `is_sent` true means its success send data to Googlesheet, false otherwise
165
+ */
166
+ public function get_status_on_create_row( $connection_id, $submitted_data, $connection_settings, $poll_entry_fields ) {
167
+ // initialize as null
168
+ $api = null;
169
+
170
+ $poll_id = $this->poll_id;
171
+ $poll_settings_instance = $this->poll_settings_instance;
172
+
173
+ try {
174
+
175
+ /**
176
+ * Fires before checking and modifying headers row of googlesheet
177
+ *
178
+ * @since 1.6.1
179
+ *
180
+ * @param array $connection_settings
181
+ * @param int $poll_id current Poll ID
182
+ * @param array $submitted_data
183
+ * @param array $poll_entry_fields
184
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
185
+ */
186
+ do_action( 'forminator_addon_poll_googlesheet_before_prepare_sheet_headers', $connection_settings, $poll_id, $submitted_data, $poll_entry_fields, $poll_settings_instance );
187
+
188
+ // prepare headers
189
+ $header_fields = $this->get_sheet_headers( $connection_settings['file_id'] );
190
+
191
+ /**
192
+ * Filter Sheet headers fields that will be used to map the entry rows
193
+ *
194
+ * @since 1.6.1
195
+ *
196
+ * @param array $header_fields sheet headers
197
+ * @param array $connection_settings
198
+ * @param int $poll_id current Poll ID
199
+ * @param array $submitted_data
200
+ * @param array $poll_entry_fields
201
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
202
+ */
203
+ $header_fields = apply_filters(
204
+ 'forminator_addon_poll_googlesheet_sheet_headers',
205
+ $header_fields,
206
+ $connection_settings,
207
+ $poll_id,
208
+ $submitted_data,
209
+ $poll_entry_fields,
210
+ $poll_settings_instance
211
+ );
212
+
213
+ /**
214
+ * Fires after headers row of googlesheet checked and modified
215
+ *
216
+ * @since 1.6.1
217
+ *
218
+ * @param array $header_fields sheet headers
219
+ * @param array $connection_settings
220
+ * @param int $poll_id current Poll ID
221
+ * @param array $submitted_data
222
+ * @param array $poll_entry_fields
223
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
224
+ */
225
+ do_action( 'forminator_addon_poll_googlesheet_after_prepare_sheet_headers', $header_fields, $connection_settings, $poll_id, $submitted_data, $poll_entry_fields, $poll_settings_instance );
226
+
227
+
228
+ $values = array();
229
+
230
+ $answer = '';
231
+ $extra = '';
232
+ foreach ( $poll_entry_fields as $poll_entry_field ) {
233
+ $key = isset( $poll_entry_field['name'] ) ? $poll_entry_field['name'] : '';
234
+ $value = isset( $poll_entry_field['value'] ) ? $poll_entry_field['value'] : '';
235
+ if ( stripos( $key, 'answer-' ) === 0 ) {
236
+ $answer = $value;
237
+ } elseif ( 'extra' === $key ) {
238
+ $extra = $value;
239
+ }
240
+ }
241
+ forminator_addon_maybe_log( __METHOD__, $poll_entry_fields, $answer, $extra );
242
+
243
+ foreach ( $header_fields as $column_name => $header_field ) {
244
+ if ( self::GSHEET_ANSWER_COLUMN_NAME === $column_name ) {
245
+ $value = new Google_Service_Sheets_ExtendedValue();
246
+ $cell_data = new Google_Service_Sheets_CellData();
247
+ $value->setStringValue( $answer );
248
+ $cell_data->setUserEnteredValue( $value );
249
+ $values[] = $cell_data;
250
+ } elseif ( self::GSHEET_EXTRA_COLUMN_NAME === $column_name ) {
251
+ $value = new Google_Service_Sheets_ExtendedValue();
252
+ $cell_data = new Google_Service_Sheets_CellData();
253
+ $value->setStringValue( $extra );
254
+ $cell_data->setUserEnteredValue( $value );
255
+ $values[] = $cell_data;
256
+ } else {
257
+ // unknown column, set empty
258
+ $value = new Google_Service_Sheets_ExtendedValue();
259
+ $cell_data = new Google_Service_Sheets_CellData();
260
+ $value->setStringValue( '' );
261
+ $cell_data->setUserEnteredValue( $value );
262
+ $values[] = $cell_data;
263
+ }
264
+
265
+ }
266
+
267
+ // Build the RowData
268
+ $row_data = new Google_Service_Sheets_RowData();
269
+ $row_data->setValues( $values );
270
+
271
+ // Prepare the request
272
+ $append_request = new Google_Service_Sheets_AppendCellsRequest();
273
+ $append_request->setSheetId( 0 );
274
+ $append_request->setRows( $row_data );
275
+ $append_request->setFields( 'userEnteredValue' );
276
+
277
+ // Set the request
278
+ $request = new Google_Service_Sheets_Request();
279
+ $request->setAppendCells( $append_request );
280
+ // Add the request to the requests array
281
+ $requests = array();
282
+ $requests[] = $request;
283
+
284
+ // Prepare the update
285
+ $batch_update_request = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(
286
+ array(
287
+ 'requests' => $requests,
288
+ )
289
+ );
290
+
291
+ $google_client = $this->addon->get_google_client();
292
+ $google_client->setAccessToken( $this->addon->get_client_access_token() );
293
+ $spreadsheet_service = new Google_Service_Sheets( $google_client );
294
+ $spreadsheet_service->spreadsheets->batchUpdate( $connection_settings['file_id'], $batch_update_request );
295
+
296
+ if ( $google_client->getAccessToken() !== $this->addon->get_client_access_token() ) {
297
+ $this->addon->update_client_access_token( $google_client->getAccessToken() );
298
+ }
299
+
300
+ forminator_addon_maybe_log( __METHOD__, 'Success Send Data' );
301
+
302
+ return array(
303
+ 'is_sent' => true,
304
+ 'connection_name' => $connection_settings['name'],
305
+ 'description' => __( 'Successfully send data to Googlesheet', Forminator::DOMAIN ),
306
+ );
307
+
308
+ } catch ( Google_Exception $e ) {
309
+ forminator_addon_maybe_log( __METHOD__, 'Failed to Send to Googlesheet' );
310
+
311
+ return array(
312
+ 'is_sent' => false,
313
+ 'description' => $e->getMessage(),
314
+ 'connection_name' => $connection_settings['name'],
315
+ );
316
+ } catch ( Forminator_Addon_Googlesheet_Exception $e ) {
317
+ forminator_addon_maybe_log( __METHOD__, 'Failed to Send to Googlesheet' );
318
+
319
+ return array(
320
+ 'is_sent' => false,
321
+ 'description' => $e->getMessage(),
322
+ 'connection_name' => $connection_settings['name'],
323
+ );
324
+ } catch ( Exception $e ) {
325
+ forminator_addon_maybe_log( __METHOD__, 'Failed to Send to Googlesheet' );
326
+
327
+ return array(
328
+ 'is_sent' => false,
329
+ 'description' => $e->getMessage(),
330
+ 'connection_name' => $connection_settings['name'],
331
+ );
332
+ }
333
+ }
334
+
335
+ /**
336
+ * Prepare headers of spreadsheet
337
+ *
338
+ * @since 1.6.1
339
+ *
340
+ * @param $file_id
341
+ *
342
+ * @return array
343
+ * @throws Forminator_Addon_Googlesheet_Exception
344
+ * @throws Exception
345
+ */
346
+ public function get_sheet_headers( $file_id ) {
347
+
348
+ $google_client = $this->addon->get_google_client();
349
+ $google_client->setAccessToken( $this->addon->get_client_access_token() );
350
+
351
+ $spreadsheet_service = new Google_Service_Sheets( $google_client );
352
+ $spreadsheet = $spreadsheet_service->spreadsheets->get( $file_id );
353
+ $sheets = $spreadsheet->getSheets();
354
+
355
+ if ( ! isset( $sheets[0] ) || ! isset( $sheets[0]->properties ) ) {
356
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'No sheet found', Forminator::DOMAIN ) );
357
+ }
358
+
359
+ if ( ! isset( $sheets[0]->properties->title ) || empty( $sheets[0]->properties->title ) ) {
360
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'Sheet title not found', Forminator::DOMAIN ) );
361
+ }
362
+
363
+ if ( ! isset( $sheets[0]->properties->gridProperties ) || ! isset( $sheets[0]->properties->gridProperties->columnCount ) ) {
364
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'Failed to get column count of the sheet', Forminator::DOMAIN ) );
365
+ }
366
+
367
+ $sheet_title = $sheets[0]->properties->title;
368
+ $sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
369
+
370
+ $headers_range = $sheet_title . '!' . '1:1';
371
+ $header_rows = $spreadsheet_service->spreadsheets_values->get(
372
+ $spreadsheet->getSpreadsheetId(),
373
+ $headers_range
374
+ );
375
+
376
+ $values = $header_rows->getValues();
377
+
378
+ forminator_addon_maybe_log( __METHOD__, '$sheet_column_count', $sheet_column_count );
379
+
380
+ $header_fields = array();
381
+
382
+ $column_number = 1;
383
+ $columns_filled = 0;
384
+ if ( isset( $values[0] ) && is_array( $values[0] ) ) {
385
+ foreach ( $values[0] as $value ) {
386
+ $key_range = $sheet_title . '!' . Forminator_Addon_Googlesheet_Form_Hooks::column_number_to_letter( $column_number ) . '1';
387
+ // forminator poll header format = 'Answer,Extra'
388
+ $header_fields[ $value ] = array(
389
+ 'range' => $key_range,
390
+ 'value' => $value,
391
+ );
392
+ $column_number ++;
393
+ $columns_filled ++;
394
+ }
395
+ }
396
+
397
+ // dont use translation because it will be used as reference
398
+ $required_header_columns = array( self::GSHEET_ANSWER_COLUMN_NAME, self::GSHEET_EXTRA_COLUMN_NAME );
399
+
400
+ $new_column_count = 0;
401
+ $update_bodies = array();
402
+ foreach ( $required_header_columns as $required_header_column ) {
403
+ $expected_header_value = $required_header_column;
404
+ if ( ! in_array( $required_header_column, array_keys( $header_fields ), true ) ) {
405
+ //add
406
+ $new_range = $sheet_title . '!' . Forminator_Addon_Googlesheet_Form_Hooks::column_number_to_letter( $column_number ) . '1';
407
+
408
+ // update headers map
409
+ $header_fields[ $required_header_column ] = array(
410
+ 'range' => $new_range,
411
+ 'value' => $expected_header_value,
412
+ );
413
+
414
+ // increment for next usage
415
+ $column_number ++;
416
+ $update_body = new Google_Service_Sheets_ValueRange();
417
+ $update_body->setRange( $new_range );
418
+ $update_body->setValues( array( array( $expected_header_value ) ) );
419
+ $update_bodies[] = $update_body;
420
+ $new_column_count ++;
421
+ } else {
422
+ $header_field = $header_fields[ $required_header_column ];
423
+ if ( $expected_header_value !== $header_field['value'] ) {
424
+ // update headers map
425
+ $header_fields[ $required_header_column ]['value'] = $expected_header_value;
426
+
427
+ // update sheet
428
+ $update_body = new Google_Service_Sheets_ValueRange();
429
+ $update_body->setRange( $header_field['range'] );
430
+ $update_body->setValues( array( array( $expected_header_value ) ) );
431
+ $update_bodies[] = $update_body;
432
+ }
433
+ }
434
+ }
435
+
436
+ //calc column to be added
437
+ $total_column_needed = $columns_filled + $new_column_count;
438
+ $new_column_needed = $total_column_needed - $sheet_column_count;
439
+ if ( $new_column_needed > 0 ) {
440
+ $dimension_range = new Google_Service_Sheets_DimensionRange();
441
+ $dimension_range->setSheetId( 0 );
442
+ $dimension_range->setDimension( 'COLUMNS' );
443
+ $dimension_range->setStartIndex( $sheet_column_count );
444
+ $dimension_range->setEndIndex( $total_column_needed );
445
+
446
+ $insert_dimension = new Google_Service_Sheets_InsertDimensionRequest();
447
+ $insert_dimension->setRange( $dimension_range );
448
+ $insert_dimension->setInheritFromBefore( true );
449
+
450
+ $request = new Google_Service_Sheets_Request();
451
+ $request->setInsertDimension( $insert_dimension );
452
+
453
+ $request_body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
454
+ $request_body->setRequests( array( $request ) );
455
+
456
+ $spreadsheet_service->spreadsheets->batchUpdate( $file_id, $request_body );
457
+ }
458
+ if ( ! empty( $update_bodies ) ) {
459
+ $request_body = new Google_Service_Sheets_BatchUpdateValuesRequest();
460
+ $request_body->setData( $update_bodies );
461
+ $request_body->setValueInputOption( 'RAW' );
462
+ $spreadsheet_service->spreadsheets_values->batchUpdate( $file_id, $request_body );
463
+ }
464
+
465
+ $grid_properties = new Google_Service_Sheets_GridProperties();
466
+ $grid_properties->setFrozenRowCount( 1 );
467
+
468
+ $sheet_properties = new Google_Service_Sheets_SheetProperties();
469
+ $sheet_properties->setSheetId( 0 );
470
+ $sheet_properties->setGridProperties( $grid_properties );
471
+
472
+ $update_properties = new Google_Service_Sheets_UpdateSheetPropertiesRequest();
473
+ $update_properties->setProperties( $sheet_properties );
474
+ $update_properties->setFields( 'gridProperties(frozenRowCount)' );
475
+
476
+ $request = new Google_Service_Sheets_Request();
477
+ $request->setUpdateSheetProperties( $update_properties );
478
+
479
+ $request_body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
480
+ $request_body->setRequests( array( $request ) );
481
+
482
+ $spreadsheet_service->spreadsheets->batchUpdate( $file_id, $request_body );
483
+
484
+ if ( $google_client->getAccessToken() !== $this->addon->get_client_access_token() ) {
485
+ $this->addon->update_client_access_token( $google_client->getAccessToken() );
486
+ }
487
+
488
+ return $header_fields;
489
+
490
+ }
491
+
492
+ /**
493
+ * Googlesheet will add a column on the title/header row
494
+ * its called `Googlesheet Info` which can be translated on forminator lang
495
+ *
496
+ * @since 1.6.1
497
+ * @return array
498
+ */
499
+ public function on_export_render_title_row() {
500
+
501
+ $export_headers = array(
502
+ 'info' => __( 'Google Sheets Info', Forminator::DOMAIN ),
503
+ );
504
+
505
+ $poll_id = $this->poll_id;
506
+ $poll_settings_instance = $this->poll_settings_instance;
507
+
508
+ /**
509
+ * Filter Googlesheet headers on export file
510
+ *
511
+ * @since 1.6.1
512
+ *
513
+ * @param array $export_headers headers to be displayed on export file
514
+ * @param int $poll_id current Poll ID
515
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
516
+ */
517
+ $export_headers = apply_filters(
518
+ 'forminator_addon_poll_googlesheet_export_headers',
519
+ $export_headers,
520
+ $poll_id,
521
+ $poll_settings_instance
522
+ );
523
+
524
+ return $export_headers;
525
+ }
526
+
527
+ /**
528
+ * Googlesheet will add a column that give user information whether sending data to Googlesheet successfully or not
529
+ * It will only add one column even its multiple connection, every connection will be separated by comma
530
+ *
531
+ * @since 1.6.1
532
+ *
533
+ * @param Forminator_Form_Entry_Model $entry_model
534
+ * @param $addon_meta_data
535
+ *
536
+ * @return array
537
+ */
538
+ public function on_export_render_entry( Forminator_Form_Entry_Model $entry_model, $addon_meta_data ) {
539
+
540
+ $poll_id = $this->poll_id;
541
+ $poll_settings_instance = $this->poll_settings_instance;
542
+
543
+ /**
544
+ *
545
+ * Filter Googlesheet metadata that previously saved on db to be processed
546
+ *
547
+ * @since 1.6.1
548
+ *
549
+ * @param array $addon_meta_data
550
+ * @param int $poll_id current Poll ID
551
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Form Settings instance
552
+ */
553
+ $addon_meta_data = apply_filters(
554
+ 'forminator_addon_poll_googlesheet_metadata',
555
+ $addon_meta_data,
556
+ $poll_id,
557
+ $poll_settings_instance
558
+ );
559
+
560
+ $export_columns = array(
561
+ 'info' => $this->get_from_addon_meta_data( $addon_meta_data, 'description', '' ),
562
+ );
563
+
564
+ /**
565
+ * Filter Googlesheet columns to be displayed on export submissions
566
+ *
567
+ * @since 1.2
568
+ *
569
+ * @param array $export_columns column to be exported
570
+ * @param int $poll_id current Poll ID
571
+ * @param Forminator_Form_Entry_Model $entry_model Form Entry Model
572
+ * @param array $addon_meta_data meta data saved by addon on entry fields
573
+ * @param Forminator_Addon_Googlesheet_Poll_Settings $poll_settings_instance Googlesheet Addon Poll Settings instance
574
+ */
575
+ $export_columns = apply_filters(
576
+ 'forminator_addon_poll_googlesheet_export_columns',
577
+ $export_columns,
578
+ $poll_id,
579
+ $entry_model,
580
+ $addon_meta_data,
581
+ $poll_settings_instance
582
+ );
583
+
584
+ return $export_columns;
585
+ }
586
+
587
+ }
addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings-exception.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Googlesheet_Form_Settings_Exception
5
+ * Wrapper of Poll Settings Googlesheet Exception
6
+ *
7
+ * @since 1.6.1
8
+ */
9
+ class Forminator_Addon_Googlesheet_Poll_Settings_Exception extends Forminator_Addon_Googlesheet_Exception {
10
+
11
+ /**
12
+ * Holder of input exceptions
13
+ *
14
+ * @since 1.6.1
15
+ * @var array
16
+ */
17
+ protected $input_exceptions = array();
18
+
19
+ /**
20
+ * Forminator_Addon_Googlesheet_Poll_Settings_Exception constructor.
21
+ *
22
+ * Useful if input_id is needed for later.
23
+ * If no input_id needed, use @see Forminator_Addon_Googlesheet_Exception
24
+ *
25
+ * @since 1.6.1
26
+ *
27
+ * @param string $message
28
+ * @param string $input_id
29
+ */
30
+ public function __construct( $message = '', $input_id = '' ) {
31
+ parent::__construct( $message, 0 );
32
+ if ( ! empty( $input_id ) ) {
33
+ $this->add_input_exception( $message, $input_id );
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Set exception message for an input
39
+ *
40
+ * @since 1.6.1
41
+ *
42
+ * @param $message
43
+ * @param $input_id
44
+ */
45
+ public function add_input_exception( $message, $input_id ) {
46
+ $this->input_exceptions[ $input_id ] = $message;
47
+ }
48
+
49
+ /**
50
+ * Get all input exceptions
51
+ *
52
+ * @since 1.6.1
53
+ * @return array
54
+ */
55
+ public function get_input_exceptions() {
56
+ return $this->input_exceptions;
57
+ }
58
+
59
+ /**
60
+ * Check if there is input_exceptions_is_available
61
+ *
62
+ * @since 1.6.1
63
+ * @return bool
64
+ */
65
+ public function input_exceptions_is_available() {
66
+ return count( $this->input_exceptions ) > 0;
67
+ }
68
+
69
+ /**
70
+ * Check if there is input_exception for $input_id
71
+ *
72
+ * @since 1.6.1
73
+ *
74
+ * @param $input_id
75
+ *
76
+ * @return bool
77
+ */
78
+ public function input_exception_is_available( $input_id ) {
79
+ return isset( $this->input_exceptions[ $input_id ] );
80
+ }
81
+ }
addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings.php ADDED
@@ -0,0 +1,403 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-settings-exception.php';
4
+
5
+ /**
6
+ * Class Forminator_Addon_Googlesheet_Poll_Settings
7
+ * Handle how poll settings displayed and saved
8
+ *
9
+ * @since 1.6.1
10
+ */
11
+ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_Settings_Abstract {
12
+
13
+ /**
14
+ * @var Forminator_Addon_Googlesheet
15
+ * @since 1.0 Googlesheet Addon
16
+ */
17
+ protected $addon;
18
+
19
+ /**
20
+ * Forminator_Addon_Googlesheet_Form_Settings constructor.
21
+ *
22
+ * @since 1.6.1
23
+ *
24
+ * @param Forminator_Addon_Abstract $addon
25
+ * @param $poll_id
26
+ *
27
+ * @throws Forminator_Addon_Exception
28
+ */
29
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
30
+ parent::__construct( $addon, $poll_id );
31
+
32
+ $this->_update_poll_settings_error_message = __(
33
+ 'The update to your settings for this poll failed, check the form input and try again.',
34
+ Forminator::DOMAIN
35
+ );
36
+ }
37
+
38
+ /**
39
+ * Wizard configuration
40
+ *
41
+ * @since 1.6.1
42
+ * @return array
43
+ */
44
+ public function poll_settings_wizards() {
45
+ // numerical array steps
46
+ return array(
47
+ array(
48
+ 'callback' => array( $this, 'pick_name' ),
49
+ 'is_completed' => array( $this, 'pick_name_is_completed' ),
50
+ ),
51
+ array(
52
+ 'callback' => array( $this, 'setup_sheet' ),
53
+ 'is_completed' => array( $this, 'setup_sheet_is_completed' ),
54
+ ),
55
+ );
56
+ }
57
+
58
+ /**
59
+ * Setup Connection Name
60
+ *
61
+ * @since 1.6.1
62
+ *
63
+ * @param $submitted_data
64
+ *
65
+ * @return array
66
+ */
67
+ public function pick_name( $submitted_data ) {
68
+ $template = forminator_addon_googlesheet_dir() . 'views/poll-settings/pick-name.php';
69
+
70
+ $multi_id = $this->generate_multi_id();
71
+ if ( isset( $submitted_data['multi_id'] ) ) {
72
+ $multi_id = $submitted_data['multi_id'];
73
+ }
74
+
75
+ $template_params = array(
76
+ 'name' => $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' ),
77
+ 'file_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'file_id', '' ),
78
+ 'name_error' => '',
79
+ 'multi_id' => $multi_id,
80
+ );
81
+
82
+ unset( $submitted_data['multi_id'] );
83
+
84
+ $is_submit = ! empty( $submitted_data );
85
+ $has_errors = false;
86
+ if ( $is_submit ) {
87
+ $name = isset( $submitted_data['name'] ) ? $submitted_data['name'] : '';
88
+ $template_params['name'] = $name;
89
+
90
+ try {
91
+ if ( empty( $name ) ) {
92
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'Please pick valid name' ) );
93
+ }
94
+
95
+ $time_added = $this->get_multi_id_poll_settings_value( $multi_id, 'time_added', time() );
96
+ $this->save_multi_id_poll_setting_values(
97
+ $multi_id,
98
+ array(
99
+ 'name' => $name,
100
+ 'time_added' => $time_added,
101
+ )
102
+ );
103
+
104
+ } catch ( Forminator_Addon_Googlesheet_Exception $e ) {
105
+ $template_params['name_error'] = $e->getMessage();
106
+ $has_errors = true;
107
+ }
108
+ }
109
+
110
+ $buttons = array();
111
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
112
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
113
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
114
+ esc_html__( 'Disconnect this Google Sheets Integration from this Poll.', Forminator::DOMAIN )
115
+ );
116
+ }
117
+
118
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
119
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
120
+ '</div>';
121
+
122
+ return array(
123
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
124
+ 'buttons' => $buttons,
125
+ 'redirect' => false,
126
+ 'has_errors' => $has_errors,
127
+ );
128
+ }
129
+
130
+ /**
131
+ * Setup sheet
132
+ *
133
+ * @since 1.6.1
134
+ *
135
+ * @param $submitted_data
136
+ *
137
+ * @return array
138
+ * @throws Exception
139
+ */
140
+ public function setup_sheet( $submitted_data ) {
141
+ $template = forminator_addon_googlesheet_dir() . 'views/poll-settings/setup-sheet.php';
142
+
143
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
144
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
145
+ }
146
+
147
+ $multi_id = $submitted_data['multi_id'];
148
+ unset( $submitted_data['multi_id'] );
149
+
150
+ $template_params = array(
151
+ 'folder_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'folder_id', '' ),
152
+ 'file_name' => $this->get_multi_id_poll_settings_value( $multi_id, 'file_name', '' ),
153
+ 'spreadsheet_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'spreadsheet_id', '' ),
154
+ 'file_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'file_id', '' ),
155
+ 'error_message' => '',
156
+ 'multi_id' => $multi_id,
157
+ );
158
+
159
+
160
+ $is_submit = ! empty( $submitted_data );
161
+ $has_errors = false;
162
+ $notification = array();
163
+ $is_close = false;
164
+
165
+ if ( $is_submit ) {
166
+ $folder_id = isset( $submitted_data['folder_id'] ) ? $submitted_data['folder_id'] : '';
167
+ $template_params['folder_id'] = $folder_id;
168
+ $file_name = isset( $submitted_data['file_name'] ) ? $submitted_data['file_name'] : '';
169
+ $template_params['file_name'] = $file_name;
170
+
171
+ try {
172
+ $input_exceptions = new Forminator_Addon_Googlesheet_Poll_Settings_Exception();
173
+ if ( empty( $file_name ) ) {
174
+ $input_exceptions->add_input_exception( __( 'Please put valid spread sheet name', Forminator::DOMAIN ), 'file_name_error' );
175
+ }
176
+
177
+ $google_client = $this->addon->get_google_client();
178
+ $google_client->setAccessToken( $this->addon->get_client_access_token() );
179
+
180
+
181
+ if ( ! empty( $folder_id ) ) {
182
+ $drive = new Google_Service_Drive( $google_client );
183
+ try {
184
+ $folder = $drive->files->get( $folder_id );
185
+
186
+ // its from API var
187
+ // phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
188
+ if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
189
+ $input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
190
+ }
191
+
192
+ } catch ( Google_Exception $google_exception ) {
193
+ // catch 404
194
+ if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
195
+ $input_exceptions->add_input_exception( __( 'Folder not found, please put Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
196
+ } else {
197
+ throw $google_exception;
198
+ }
199
+ }
200
+ }
201
+
202
+ if ( $input_exceptions->input_exceptions_is_available() ) {
203
+ throw $input_exceptions;
204
+ }
205
+
206
+ $file = new Google_Service_Drive_DriveFile();
207
+ $file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
208
+ $file->setName( $file_name );
209
+
210
+
211
+ if ( ! empty( $folder_id ) ) {
212
+ $file->setParents( array( $folder_id ) );
213
+ }
214
+
215
+ $drive = new Google_Service_Drive( $google_client );
216
+ $new_sheet = $drive->files->create( $file );
217
+
218
+ $this->save_multi_id_poll_setting_values(
219
+ $multi_id,
220
+ array(
221
+ 'folder_id' => $folder_id,
222
+ 'file_name' => $file_name,
223
+ 'file_id' => $new_sheet->getId(),
224
+ )
225
+ );
226
+
227
+ $notification = array(
228
+ 'type' => 'success',
229
+ 'text' => '<strong>' . $this->addon->get_title() . '</strong> ' . __( 'Successfully created spreadsheet and connected to your poll' ),
230
+ );
231
+ $is_close = true;
232
+
233
+
234
+ } catch ( Forminator_Addon_Googlesheet_Poll_Settings_Exception $e ) {
235
+ $input_errors = $e->get_input_exceptions();
236
+ $template_params = array_merge( $template_params, $input_errors );
237
+ $has_errors = true;
238
+ } catch ( Forminator_Addon_Googlesheet_Exception $e ) {
239
+ $template_params['error_message'] = $e->getMessage();
240
+ $has_errors = true;
241
+ } catch ( Google_Exception $e ) {
242
+ $template_params['error_message'] = $e->getMessage();
243
+ $has_errors = true;
244
+ }
245
+ }
246
+
247
+ $buttons = array();
248
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
249
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
250
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
251
+ esc_html__( 'Disconnect this Google Sheets Integration from this poll.', Forminator::DOMAIN )
252
+ );
253
+ }
254
+
255
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
256
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Create', Forminator::DOMAIN ), 'forminator-addon-next' ) .
257
+ '</div>';
258
+
259
+ return array(
260
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
261
+ 'buttons' => $buttons,
262
+ 'redirect' => false,
263
+ 'has_errors' => $has_errors,
264
+ 'has_back' => true,
265
+ 'notification' => $notification,
266
+ 'is_close' => $is_close,
267
+ 'size' => 'normal',
268
+ );
269
+ }
270
+
271
+ /**
272
+ * Check if setup sheet completed
273
+ *
274
+ * @since 1.6.1
275
+ *
276
+ * @param $submitted_data
277
+ *
278
+ * @return bool
279
+ */
280
+ public function setup_sheet_is_completed( $submitted_data ) {
281
+ $multi_id = '';
282
+ if ( isset( $submitted_data['multi_id'] ) ) {
283
+ $multi_id = $submitted_data['multi_id'];
284
+ }
285
+
286
+ if ( empty( $multi_id ) ) {
287
+ return false;
288
+ }
289
+
290
+ $file_name = $this->get_multi_id_poll_settings_value( $multi_id, 'file_name', '' );
291
+
292
+ if ( empty( $file_name ) ) {
293
+ return false;
294
+ }
295
+
296
+ $file_id = $this->get_multi_id_poll_settings_value( $multi_id, 'file_id', '' );
297
+
298
+ if ( empty( $file_id ) ) {
299
+ return false;
300
+ }
301
+
302
+ return true;
303
+ }
304
+
305
+ /**
306
+ * Check if pick name step completed
307
+ *
308
+ * @since 1.6.1
309
+ *
310
+ * @param $submitted_data
311
+ *
312
+ * @return bool
313
+ */
314
+ public function pick_name_is_completed( $submitted_data ) {
315
+ $multi_id = '';
316
+ if ( isset( $submitted_data['multi_id'] ) ) {
317
+ $multi_id = $submitted_data['multi_id'];
318
+ }
319
+
320
+ if ( empty( $multi_id ) ) {
321
+ return false;
322
+ }
323
+
324
+ $name = $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' );
325
+
326
+ if ( empty( $name ) ) {
327
+ return false;
328
+ }
329
+
330
+ return true;
331
+ }
332
+
333
+ /**
334
+ * Generate multi id for multiple connection
335
+ *
336
+ * @since 1.6.1
337
+ * @return string
338
+ */
339
+ public function generate_multi_id() {
340
+ return uniqid( 'googlesheet_', true );
341
+ }
342
+
343
+
344
+ /**
345
+ * Override how multi connection displayed
346
+ *
347
+ * @since 1.6.1
348
+ * @return array
349
+ */
350
+ public function get_multi_ids() {
351
+ $multi_ids = array();
352
+ foreach ( $this->get_poll_settings_values() as $key => $value ) {
353
+ $multi_ids[] = array(
354
+ 'id' => $key,
355
+ // use name that was added by user on creating connection
356
+ 'label' => isset( $value['name'] ) ? $value['name'] : $key,
357
+ );
358
+ }
359
+
360
+ return $multi_ids;
361
+ }
362
+
363
+ /**
364
+ * Disconnect a connection from current poll
365
+ *
366
+ * @since 1.6.1
367
+ *
368
+ * @param array $submitted_data
369
+ */
370
+ public function disconnect_poll( $submitted_data ) {
371
+ // only execute if multi_id provided on submitted data
372
+ if ( isset( $submitted_data['multi_id'] ) && ! empty( $submitted_data['multi_id'] ) ) {
373
+ $addon_poll_settings = $this->get_poll_settings_values();
374
+ unset( $addon_poll_settings[ $submitted_data['multi_id'] ] );
375
+ $this->save_poll_settings_values( $addon_poll_settings );
376
+ }
377
+ }
378
+
379
+ /**
380
+ * Check if multi_id poll settings values completed
381
+ *
382
+ * Override when needed
383
+ *
384
+ * @since 1.6.1
385
+ *
386
+ * @param $multi_id
387
+ *
388
+ * @return bool
389
+ */
390
+ public function is_multi_poll_settings_complete( $multi_id ) {
391
+ $data = array( 'multi_id' => $multi_id );
392
+
393
+ if ( ! $this->pick_name_is_completed( $data ) ) {
394
+ return false;
395
+ }
396
+
397
+ if ( ! $this->setup_sheet_is_completed( $data ) ) {
398
+ return false;
399
+ }
400
+
401
+ return true;
402
+ }
403
+ }
addons/pro/googlesheet/forminator-addon-googlesheet.php CHANGED
@@ -31,6 +31,9 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
31
  const MIME_TYPE_GOOGLE_DRIVE_FOLDER = 'application/vnd.google-apps.folder';
32
  const MIME_TYPE_GOOGLE_SPREADSHEET = 'application/vnd.google-apps.spreadsheet';
33
 
 
 
 
34
  /**
35
  * Forminator_Addon_Googlesheet constructor.
36
  *
@@ -141,8 +144,8 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
141
  *
142
  * @since 1.0
143
  *
144
- * @param bool $is_form_connected
145
- * @param int $form_id Current Form ID
146
  * @param Forminator_Addon_Googlesheet_Form_Settings|null $form_settings_instance Instance of form settings, or null when unavailable
147
  *
148
  */
@@ -349,6 +352,7 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
349
  *
350
  * @since 1.0 Google Sheet Addon
351
  * @return array
 
352
  */
353
  public function authorize_access() {
354
 
@@ -384,6 +388,7 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
384
  *
385
  * @since 1.0 Googlesheet Addon
386
  * @return array
 
387
  */
388
  public function wait_authorize_access() {
389
  $template = forminator_addon_googlesheet_dir() . 'views/settings/wait-authorize.php';
@@ -436,6 +441,7 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
436
  * Get Auth Url
437
  *
438
  * @return string
 
439
  */
440
  public function get_auth_url() {
441
  $google_client = $this->get_google_client();
@@ -600,6 +606,7 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
600
  *
601
  * @since 1.0 Googlesheet Addon
602
  * @return Google_Client
 
603
  */
604
  public function get_google_client() {
605
  spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
@@ -650,17 +657,19 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
650
  public function before_get_settings_values( $values ) {
651
  if ( isset( $values['token'] ) ) {
652
  $this->_token = $values['token'];
653
- forminator_addon_maybe_log( __METHOD__, $this->_token );
654
  }
655
 
656
  return $values;
657
  }
658
 
 
659
  /**
660
  * Revoke token on Google before deactivate
661
  *
662
  * @since 1.0 Google Sheet Addon
663
  * @return bool
 
 
664
  */
665
  public function deactivate() {
666
  try {
@@ -681,4 +690,64 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
681
  return true;
682
  }
683
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
684
  }
31
  const MIME_TYPE_GOOGLE_DRIVE_FOLDER = 'application/vnd.google-apps.folder';
32
  const MIME_TYPE_GOOGLE_SPREADSHEET = 'application/vnd.google-apps.spreadsheet';
33
 
34
+ protected $_poll_settings = 'Forminator_Addon_Googlesheet_Poll_Settings';
35
+ protected $_poll_hooks = 'Forminator_Addon_Googlesheet_Poll_Hooks';
36
+
37
  /**
38
  * Forminator_Addon_Googlesheet constructor.
39
  *
144
  *
145
  * @since 1.0
146
  *
147
+ * @param bool $is_form_connected
148
+ * @param int $form_id Current Form ID
149
  * @param Forminator_Addon_Googlesheet_Form_Settings|null $form_settings_instance Instance of form settings, or null when unavailable
150
  *
151
  */
352
  *
353
  * @since 1.0 Google Sheet Addon
354
  * @return array
355
+ * @throws Exception
356
  */
357
  public function authorize_access() {
358
 
388
  *
389
  * @since 1.0 Googlesheet Addon
390
  * @return array
391
+ * @throws Exception
392
  */
393
  public function wait_authorize_access() {
394
  $template = forminator_addon_googlesheet_dir() . 'views/settings/wait-authorize.php';
441
  * Get Auth Url
442
  *
443
  * @return string
444
+ * @throws Exception
445
  */
446
  public function get_auth_url() {
447
  $google_client = $this->get_google_client();
606
  *
607
  * @since 1.0 Googlesheet Addon
608
  * @return Google_Client
609
+ * @throws Exception
610
  */
611
  public function get_google_client() {
612
  spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
657
  public function before_get_settings_values( $values ) {
658
  if ( isset( $values['token'] ) ) {
659
  $this->_token = $values['token'];
 
660
  }
661
 
662
  return $values;
663
  }
664
 
665
+ /** @noinspection PhpUndefinedClassInspection */
666
  /**
667
  * Revoke token on Google before deactivate
668
  *
669
  * @since 1.0 Google Sheet Addon
670
  * @return bool
671
+ * @throws Google_Auth_Exception
672
+ * @throws Exception
673
  */
674
  public function deactivate() {
675
  try {
690
  return true;
691
  }
692
 
693
+ /**
694
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
695
+ *
696
+ * Please apply necessary WordPress hook on the inheritance class
697
+ *
698
+ * @since 1.6.1
699
+ *
700
+ * @param $poll_id
701
+ *
702
+ * @return boolean
703
+ */
704
+ public function is_poll_connected( $poll_id ) {
705
+ try {
706
+ $poll_settings_instance = null;
707
+ if ( ! $this->is_connected() ) {
708
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'GoogleSheet is not connected', Forminator::DOMAIN ) );
709
+ }
710
+
711
+ $poll_settings_instance = $this->get_addon_poll_settings( $poll_id );
712
+ if ( ! $poll_settings_instance instanceof Forminator_Addon_Googlesheet_Poll_Settings ) {
713
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'Invalid Poll Settings of GoogleSheet', Forminator::DOMAIN ) );
714
+ }
715
+
716
+ // Mark as active when there is at least one active connection
717
+ if ( false === $poll_settings_instance->find_one_active_connection() ) {
718
+ throw new Forminator_Addon_Googlesheet_Exception( __( 'No active GoogleSheet connection found in this poll', Forminator::DOMAIN ) );
719
+ }
720
+
721
+ $is_poll_connected = true;
722
+
723
+ } catch ( Forminator_Addon_Googlesheet_Exception $e ) {
724
+
725
+ $is_poll_connected = false;
726
+ }
727
+
728
+ /**
729
+ * Filter connected status GoogleSheet with the poll
730
+ *
731
+ * @since 1.6.1
732
+ *
733
+ * @param bool $is_poll_connected
734
+ * @param int $poll_id Current Poll ID
735
+ * @param Forminator_Addon_Googlesheet_Poll_Settings|null $poll_settings_instance Instance of poll settings, or null when unavailable
736
+ *
737
+ */
738
+ $is_poll_connected = apply_filters( 'forminator_addon_googlesheet_is_poll_connected', $is_poll_connected, $poll_id, $poll_settings_instance );
739
+
740
+ return $is_poll_connected;
741
+ }
742
+
743
+ /**
744
+ * Allow multiple connection on one poll
745
+ *
746
+ * @since 1.6.1
747
+ * @return bool
748
+ */
749
+ public function is_allow_multi_on_poll() {
750
+ return true;
751
+ }
752
+
753
  }
addons/pro/googlesheet/googlesheet.php CHANGED
@@ -2,14 +2,14 @@
2
 
3
  /**
4
  * Addon Name: Googlesheet
5
- * Version: 1.0
6
  * Plugin URI: https://premium.wpmudev.org/
7
- * Description: Integrate Forminator Custom Forms with Googlesheet to get notified in real time.
8
  * Author: WPMU DEV
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
- define( 'FORMINATOR_ADDON_GOOGLESHEET_VERSION', '1.0' );
13
 
14
  function forminator_addon_googlesheet_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/googlesheet' );
@@ -43,8 +43,13 @@ function forminator_addon_googlesheet_google_api_client_autoload( $class_name )
43
  //spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
44
 
45
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet.php';
 
46
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-settings.php';
47
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-hooks.php';
 
 
 
 
48
  require_once dirname( __FILE__ ) . '/lib/class-wp-googlesheet-client-logger.php';
49
  //Direct Load
50
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Googlesheet' );
2
 
3
  /**
4
  * Addon Name: Googlesheet
5
+ * Version: 1.1
6
  * Plugin URI: https://premium.wpmudev.org/
7
+ * Description: Integrate Forminator Custom Forms and Polls with Googlesheet to get notified in real time.
8
  * Author: WPMU DEV
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
+ define( 'FORMINATOR_ADDON_GOOGLESHEET_VERSION', '1.1' );
13
 
14
  function forminator_addon_googlesheet_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/googlesheet' );
43
  //spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
44
 
45
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet.php';
46
+
47
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-settings.php';
48
  require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-hooks.php';
49
+
50
+ require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-settings.php';
51
+ require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-hooks.php';
52
+
53
  require_once dirname( __FILE__ ) . '/lib/class-wp-googlesheet-client-logger.php';
54
  //Direct Load
55
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Googlesheet' );
addons/pro/googlesheet/lib/class-wp-googlesheet-client-logger.php CHANGED
@@ -1,5 +1,10 @@
1
  <?php
2
 
 
 
 
 
 
3
  if ( ! class_exists( 'Google_Logger_Abstract' ) ) {
4
  require_once dirname( __FILE__ ) . '/external/Google/Logger/Abstract.php';
5
  }
1
  <?php
2
 
3
+ /**
4
+ * In case you are wondering
5
+ * this is the entry-point of autoload-ing Google library
6
+ * Google/Logger/Abstract.php does include autoloder itself
7
+ */
8
  if ( ! class_exists( 'Google_Logger_Abstract' ) ) {
9
  require_once dirname( __FILE__ ) . '/external/Google/Logger/Abstract.php';
10
  }
addons/pro/googlesheet/views/poll-settings/pick-name.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'name' => '',
6
+ 'name_error' => '',
7
+ 'multi_id' => '',
8
+ 'file_id' => '',
9
+ );
10
+ /** @var array $template_vars */
11
+ foreach ( $template_vars as $key => $val ) {
12
+ $vars[ $key ] = $val;
13
+ }
14
+
15
+ ?>
16
+ <div class="integration-header">
17
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Setup Name', Forminator::DOMAIN ) ); ?></h3>
18
+ <p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
19
+ <?php if ( ! empty( $vars['file_id'] ) ) : ?>
20
+ <span class="sui-notice sui-notice-info"><p>
21
+ <?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
22
+ <a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
23
+ <?php endif; ?>
24
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
25
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
26
+ <?php endif; ?>
27
+ </div>
28
+ <form>
29
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
30
+ <label class="sui-label"><?php esc_html_e( 'Name', Forminator::DOMAIN ); ?></label>
31
+ <input
32
+ class="sui-form-control"
33
+ name="name" placeholder="<?php echo esc_attr( __( 'Friendly Name', Forminator::DOMAIN ) ); ?>"
34
+ value="<?php echo esc_attr( $vars['name'] ); ?>">
35
+ <?php if ( ! empty( $vars['name_error'] ) ) : ?>
36
+ <span class="sui-error-message"><?php echo esc_html( $vars['name_error'] ); ?></span>
37
+ <?php endif; ?>
38
+ </div>
39
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
40
+ </form>
addons/pro/googlesheet/views/poll-settings/setup-sheet.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'folder_id' => '',
6
+ 'folder_id_error' => '',
7
+ 'file_name' => '',
8
+ 'file_name_error' => '',
9
+ 'file_id' => '',
10
+ );
11
+
12
+ /** @var array $template_vars */
13
+ foreach ( $template_vars as $key => $val ) {
14
+ $vars[ $key ] = $val;
15
+ } ?>
16
+
17
+ <div class="integration-header">
18
+
19
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Create Spread Sheet', Forminator::DOMAIN ) ); ?></h3>
20
+ <p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
21
+ <?php if ( ! empty( $vars['file_id'] ) ) : ?>
22
+ <span class="sui-notice sui-notice-info"><p>
23
+ <?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
24
+ <a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
25
+ <?php endif; ?>
26
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
27
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
28
+ <?php endif; ?>
29
+ </div>
30
+ <form>
31
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['folder_id_error'] ) ? 'sui-form-field-error' : '' ); ?>">
32
+ <label class="sui-label"><?php esc_html_e( 'Drive Folder ID', Forminator::DOMAIN ); ?></label>
33
+ <input
34
+ class="sui-form-control"
35
+ name="folder_id" placeholder="<?php echo esc_attr( __( 'Folder ID', Forminator::DOMAIN ) ); ?>"
36
+ value="<?php echo esc_attr( $vars['folder_id'] ); ?>">
37
+ <?php if ( ! empty( $vars['folder_id_error'] ) ) : ?>
38
+ <span class="sui-error-message"><?php echo esc_html( $vars['folder_id_error'] ); ?></span>
39
+ <?php endif; ?>
40
+ <span class="sui-description">
41
+ <ol class="instructions" id="directory-instructions" style="display: block;">
42
+ <li>
43
+ <?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
44
+ </li>
45
+ <li>
46
+ <?php echo sprintf(
47
+ __( 'Go to your %1$s.', Forminator::DOMAIN ),
48
+ '<a href="https://drive.google.com/#my-drive" target="_blank">' . __( 'Drive account', Forminator::DOMAIN ) . '</a>'
49
+ ); //wpcs: xss ok?>
50
+ <?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
51
+ </li>
52
+ <li>
53
+ <?php echo sprintf(
54
+ __( 'The URL for the directory will be something similar to %1$s. The Directory ID would be the last part after %2$s, which is %3$s in this case.', Forminator::DOMAIN ),
55
+ '<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
56
+ '<em>/#folders/</em>',
57
+ '<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
58
+ ); //wpcs: xss ok?></li>
59
+ </ol>
60
+ </span>
61
+ </div>
62
+
63
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['file_name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
64
+ <label class="sui-label"><?php esc_html_e( 'Spreadsheet File Name', Forminator::DOMAIN ); ?></label>
65
+ <input
66
+ class="sui-form-control"
67
+ name="file_name" placeholder="<?php echo esc_attr( __( 'File Name', Forminator::DOMAIN ) ); ?>"
68
+ value="<?php echo esc_attr( $vars['file_name'] ); ?>">
69
+ <?php if ( ! empty( $vars['file_name_error'] ) ) : ?>
70
+ <span class="sui-error-message"><?php echo esc_html( $vars['file_name_error'] ); ?></span>
71
+ <?php endif; ?>
72
+ </div>
73
+
74
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
75
+ </form>
addons/pro/googlesheet/views/settings/setup-client.php CHANGED
@@ -22,7 +22,9 @@ foreach ( $template_vars as $key => $val ) {
22
  <?php if ( ! empty( $vars['token'] ) ) : ?>
23
  <span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Your Google Sheets account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?></span>
24
  <?php else : ?>
25
- <span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Setup Google Client to be used by Forminator to communicate with the Google Sheets server.', Forminator::DOMAIN ); ?></span>
 
 
26
  <?php if ( ! empty( $vars['error_message'] ) ) : ?>
27
  <div class="sui-notice sui-notice-error">
28
  <p><?php echo esc_html( $vars['error_message'] ); ?></p>
22
  <?php if ( ! empty( $vars['token'] ) ) : ?>
23
  <span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Your Google Sheets account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?></span>
24
  <?php else : ?>
25
+ <span class="sui-description" style="margin-top: 20px;">
26
+ <?php esc_html_e( 'Setup Google Client to be used by Forminator to communicating with the Google Sheets server.', Forminator::DOMAIN ); ?>
27
+ </span>
28
  <?php if ( ! empty( $vars['error_message'] ) ) : ?>
29
  <div class="sui-notice sui-notice-error">
30
  <p><?php echo esc_html( $vars['error_message'] ); ?></p>
addons/pro/gutenberg/js/forms-block.min.js CHANGED
@@ -1,508 +1 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, {
40
- /******/ configurable: false,
41
- /******/ enumerable: true,
42
- /******/ get: getter
43
- /******/ });
44
- /******/ }
45
- /******/ };
46
- /******/
47
- /******/ // getDefaultExport function for compatibility with non-harmony modules
48
- /******/ __webpack_require__.n = function(module) {
49
- /******/ var getter = module && module.__esModule ?
50
- /******/ function getDefault() { return module['default']; } :
51
- /******/ function getModuleExports() { return module; };
52
- /******/ __webpack_require__.d(getter, 'a', getter);
53
- /******/ return getter;
54
- /******/ };
55
- /******/
56
- /******/ // Object.prototype.hasOwnProperty.call
57
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
- /******/
59
- /******/ // __webpack_public_path__
60
- /******/ __webpack_require__.p = "";
61
- /******/
62
- /******/ // Load entry module and return exports
63
- /******/ return __webpack_require__(__webpack_require__.s = 0);
64
- /******/ })
65
- /************************************************************************/
66
- /******/ ([
67
- /* 0 */
68
- /***/ (function(module, exports) {
69
-
70
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
71
-
72
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
73
-
74
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
75
-
76
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
77
-
78
- /**
79
- * WordPress dependencies
80
- */
81
- var __ = wp.i18n.__;
82
- var registerBlockType = wp.blocks.registerBlockType;
83
- var _wp$element = wp.element,
84
- Component = _wp$element.Component,
85
- RawHTML = _wp$element.RawHTML;
86
-
87
- /**
88
- * Block edit class
89
- */
90
-
91
- var BlockEdit = function (_Component) {
92
- _inherits(BlockEdit, _Component);
93
-
94
- /**
95
- * Class constructor
96
- */
97
- function BlockEdit() {
98
- _classCallCheck(this, BlockEdit);
99
-
100
- var _this = _possibleConstructorReturn(this, (BlockEdit.__proto__ || Object.getPrototypeOf(BlockEdit)).apply(this, arguments));
101
-
102
- _this.update_id = _this.update_id.bind(_this);
103
- _this.preview = _this.preview.bind(_this);
104
-
105
- _this.state = {
106
- loading: false, // Set to true while loading preview markup
107
- markup: '' // Preview markup
108
- };
109
- return _this;
110
- }
111
-
112
- /**
113
- * Update module id
114
- */
115
-
116
-
117
- _createClass(BlockEdit, [{
118
- key: 'update_id',
119
- value: function update_id(id) {
120
- this.props.setAttributes({ module_id: id });
121
- }
122
-
123
- /**
124
- * Preview module
125
- */
126
-
127
- }, {
128
- key: 'preview',
129
- value: function preview(attributes) {
130
- var _this2 = this;
131
-
132
- var module_id = attributes.module_id;
133
-
134
- // Check if we already process ajax request
135
-
136
- if (this.state.loading) {
137
- // Ajax request in process, skip
138
- return;
139
- }
140
-
141
- // Set loading to true
142
- this.setState({ loading: true });
143
-
144
- // Build AJAX Url
145
- var ajax_url = wpApiSettings.root + 'forminator/v1/preview/forms/?module_id=' + module_id;
146
-
147
- window.fetch(ajax_url).then(function (response) {
148
- return response.json();
149
- }).then(function (data) {
150
-
151
- if (data.success) {
152
- _this2.setState({ markup: data.data.markup });
153
- }
154
-
155
- setTimeout(function () {
156
- var form = window.jQuery('form.forminator-custom-form');
157
- _this2.form_scripts(form, module_id);
158
- }, 10);
159
-
160
- // Set loading to false
161
- _this2.setState({ loading: false });
162
- }).catch(function (error) {
163
- return { success: false };
164
- });
165
- }
166
- }, {
167
- key: 'form_scripts',
168
- value: function form_scripts(form, module_id) {
169
- //Prevent form submission
170
- form.submit(function (e) {
171
- e.preventDefault();
172
-
173
- return false;
174
- });
175
-
176
- // Pagination
177
- var total_steps = form.find(".forminator-pagination").length;
178
- if (total_steps > 0) {
179
- form.forminatorFrontPagination({
180
- totalSteps: total_steps,
181
- step: 0
182
- });
183
- }
184
-
185
- //Remove container div
186
- form.siblings('div.forminator-custom-form').remove();
187
-
188
- // Date picker
189
- // form.find('.forminator-datepicker').forminatorFrontDatePicker();
190
-
191
- // Select 2
192
- if (form.hasClass('forminator-design--default')) {
193
- form.find(".forminator-select").wpmuiSelect({
194
- allowClear: false,
195
- containerCssClass: "forminator-select2",
196
- dropdownCssClass: "forminator-dropdown forminator-dropdown--default forminator-ddfor--" + module_id
197
- });
198
-
199
- form.find(".forminator-time").wpmuiSelect({
200
- allowClear: false,
201
- containerCssClass: "forminator-select2",
202
- dropdownCssClass: "forminator-droptime forminator-droptime--default forminator-ddfor--" + module_id
203
- });
204
- } else if (form.hasClass('forminator-design--material')) {
205
-
206
- form.find(".forminator-select").wpmuiSelect({
207
- allowClear: false,
208
- containerCssClass: "forminator-select2",
209
- dropdownCssClass: "forminator-dropdown forminator-dropdown--material forminator-ddfor--" + module_id
210
- });
211
-
212
- form.find(".forminator-time").wpmuiSelect({
213
- allowClear: false,
214
- containerCssClass: "forminator-select2",
215
- dropdownCssClass: "forminator-droptime forminator-droptime--material forminator-ddfor--" + module_id
216
- });
217
- } else if (form.hasClass('forminator-design--bold')) {
218
-
219
- form.find(".forminator-select").wpmuiSelect({
220
- allowClear: false,
221
- containerCssClass: "forminator-select2",
222
- dropdownCssClass: "forminator-dropdown forminator-dropdown--bold forminator-ddfor--" + module_id
223
- });
224
-
225
- form.find(".forminator-time").wpmuiSelect({
226
- allowClear: false,
227
- containerCssClass: "forminator-select2",
228
- dropdownCssClass: "forminator-droptime forminator-droptime--bold forminator-ddfor--" + module_id
229
- });
230
- } else if (form.hasClass('forminator-design--flat')) {
231
-
232
- form.find(".forminator-select").wpmuiSelect({
233
- allowClear: false,
234
- containerCssClass: "forminator-select2",
235
- dropdownCssClass: "forminator-dropdown forminator-dropdown--flat forminator-ddfor--" + module_id
236
- });
237
-
238
- form.find(".forminator-time").wpmuiSelect({
239
- allowClear: false,
240
- containerCssClass: "forminator-select2",
241
- dropdownCssClass: "forminator-droptime forminator-droptime--flat forminator-ddfor--" + module_id
242
- });
243
- } else {
244
-
245
- form.find(".forminator-select").wpmuiSelect({
246
- allowClear: false,
247
- containerCssClass: "forminator-select2",
248
- dropdownCssClass: "forminator-dropdown forminator-ddfor--" + module_id
249
- });
250
-
251
- form.find(".forminator-time").wpmuiSelect({
252
- allowClear: false,
253
- containerCssClass: "forminator-select2",
254
- dropdownCssClass: "forminator-droptime forminator-droptime--flat forminator-ddfor--" + module_id
255
- });
256
- }
257
- }
258
-
259
- /**
260
- * React method called when block initialized
261
- */
262
-
263
- }, {
264
- key: 'componentDidMount',
265
- value: function componentDidMount() {
266
- var attributes = this.props.attributes;
267
- var module_id = attributes.module_id;
268
-
269
- // Check if module ID set
270
-
271
- if (!module_id) {
272
- // Fallback
273
- return;
274
- } else {
275
- // Load preview
276
- this.preview(attributes);
277
- }
278
- }
279
-
280
- /**
281
- * React method called when block updated
282
- */
283
-
284
- }, {
285
- key: 'componentDidUpdate',
286
- value: function componentDidUpdate(prevProps) {
287
- var attributes = this.props.attributes;
288
-
289
- // Check if module is same => skip preview update
290
-
291
- if (prevProps.attributes.module_id === attributes.module_id) {
292
- return;
293
- }
294
-
295
- // Check if we have module ID set
296
- if (!attributes.module_id) {
297
-
298
- // Clear the preview markup
299
- this.setState({ markup: '' });
300
-
301
- return;
302
- }
303
-
304
- // Load preview
305
- this.preview(attributes);
306
- }
307
- }, {
308
- key: 'update_alignment',
309
- value: function update_alignment(nextAlign) {
310
- this.props.setAttributes({ alignment: nextAlign });
311
- }
312
- }, {
313
- key: 'open_settings',
314
- value: function open_settings(module_id) {
315
- var url = frmnt_form_data.admin_url + '?page=forminator-cform-wizard&id=' + module_id;
316
-
317
- window.location.href = url;
318
- }
319
-
320
- /**
321
- * Render
322
- */
323
-
324
- }, {
325
- key: 'render',
326
- value: function render() {
327
- var _this3 = this;
328
-
329
- var _state = this.state,
330
- loading = _state.loading,
331
- markup = _state.markup;
332
- var _props = this.props,
333
- attributes = _props.attributes,
334
- setAttributes = _props.setAttributes,
335
- isSelected = _props.isSelected;
336
- var module_id = attributes.module_id,
337
- alignment = attributes.alignment;
338
-
339
- var update = function update(e) {
340
- return _this3.update_id(e.target.value);
341
- };
342
- var update_alignment = function update_alignment(e) {
343
- return _this3.update_alignment(e.target);
344
- };
345
- var open_settings = function open_settings(e) {
346
- return _this3.open_settings(module_id);
347
- };
348
-
349
- var options = frmnt_form_data.forms;
350
-
351
- var controls = [isSelected && wp.element.createElement(
352
- wp.editor.InspectorControls,
353
- { key: 'inspector' },
354
- wp.element.createElement(wp.components.SelectControl, {
355
- label: frmnt_form_data.l10n.choose_form,
356
- value: module_id,
357
- options: options,
358
- onChange: this.update_id
359
- })
360
- ), wp.element.createElement(
361
- wp.editor.BlockControls,
362
- null,
363
- wp.element.createElement(wp.editor.BlockAlignmentToolbar, {
364
- value: alignment,
365
- onChange: update_alignment
366
- }),
367
- !!module_id && wp.element.createElement(
368
- wp.components.Toolbar,
369
- null,
370
- wp.element.createElement(wp.components.IconButton, {
371
- className: 'components-toolbar__control',
372
- label: frmnt_form_data.l10n.customize_form,
373
- icon: 'edit',
374
- onClick: open_settings
375
- })
376
- )
377
- )];
378
-
379
- // If preview is being loaded, show spinner
380
- if (loading) {
381
- return [controls, wp.element.createElement(
382
- 'div',
383
- { key: 'loading', className: 'wp-block-embed is-loading' },
384
- wp.element.createElement(wp.components.Spinner, null),
385
- wp.element.createElement(
386
- 'span',
387
- null,
388
- frmnt_form_data.l10n.rendering
389
- )
390
- )];
391
- }
392
-
393
- // If we have preview markup display it
394
- if (markup) {
395
- return [controls, wp.element.createElement(
396
- wp.element.RawHTML,
397
- null,
398
- markup
399
- )];
400
- }
401
-
402
- // Fallback, display the select
403
- return [controls, wp.element.createElement(
404
- wp.components.Placeholder,
405
- { key: 'placeholder', className: 'wp-block-embed' },
406
- wp.element.createElement(
407
- 'div',
408
- { className: 'forminator-forms--placeholder' },
409
- wp.element.createElement(
410
- 'svg',
411
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
412
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
413
- ),
414
- wp.element.createElement(
415
- 'strong',
416
- null,
417
- 'Choose form'
418
- )
419
- ),
420
- wp.element.createElement(
421
- 'form',
422
- null,
423
- wp.element.createElement(
424
- 'select',
425
- { value: module_id, onChange: update },
426
- options.map(function (row) {
427
- return wp.element.createElement(
428
- 'option',
429
- { key: row.value, value: row.value },
430
- row.label
431
- );
432
- })
433
- )
434
- )
435
- )];
436
- }
437
- }]);
438
-
439
- return BlockEdit;
440
- }(Component);
441
-
442
- /**
443
- * Register block
444
- */
445
-
446
-
447
- registerBlockType('forminator/forms', {
448
- title: frmnt_form_data.l10n.form,
449
- description: frmnt_form_data.l10n.form_description,
450
- icon: function icon() {
451
- return wp.element.createElement(
452
- 'svg',
453
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
454
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
455
- );
456
- },
457
- category: 'embed',
458
- attributes: {
459
- module_id: {
460
- type: 'string'
461
- },
462
- alignment: {
463
- type: 'string',
464
- default: 'none'
465
- }
466
- },
467
- supports: {
468
- customClassName: false,
469
- className: false,
470
- html: false
471
- },
472
- transforms: {
473
- from: [{
474
- type: 'shortcode',
475
- tag: 'forminator_form',
476
- attributes: {
477
- module_id: {
478
- type: 'string',
479
- shortcode: function shortcode(_ref) {
480
- var id = _ref.named.id;
481
-
482
- return id;
483
- }
484
- }
485
- }
486
- }]
487
- },
488
- edit: BlockEdit,
489
- save: function save(props) {
490
- var module_id = props.attributes.module_id;
491
-
492
-
493
- if (module_id) {
494
- return wp.element.createElement(
495
- 'div',
496
- { 'class': 'forminator-guttenberg' },
497
- '[forminator_form id="',
498
- module_id,
499
- '"]'
500
- );
501
- }
502
-
503
- return null;
504
- }
505
- });
506
-
507
- /***/ })
508
- /******/ ]);
1
+ !function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(module,exports){function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),__=wp.i18n.__,registerBlockType=wp.blocks.registerBlockType,_wp$element=wp.element,Component=_wp$element.Component,RawHTML=_wp$element.RawHTML,BlockEdit=function(_Component){function BlockEdit(){_classCallCheck(this,BlockEdit);var e=_possibleConstructorReturn(this,(BlockEdit.__proto__||Object.getPrototypeOf(BlockEdit)).apply(this,arguments));return e.update_id=e.update_id.bind(e),e.preview=e.preview.bind(e),e.state={loading:!1,markup:""},e}return _inherits(BlockEdit,_Component),_createClass(BlockEdit,[{key:"update_id",value:function(e){this.props.setAttributes({module_id:e})}},{key:"preview",value:function(e){var t=this,n=e.module_id;if(!this.state.loading){this.setState({loading:!0});var o=wpApiSettings.root+"forminator/v1/preview/forms/?module_id="+n;window.fetch(o).then(function(e){return e.json()}).then(function(e){e.success&&t.setState({markup:e.data.markup}),setTimeout(function(){var e=window.jQuery("form.forminator-custom-form");t.form_scripts(e,n)},10),t.setState({loading:!1})}).catch(function(e){return{success:!1}})}}},{key:"form_scripts",value:function form_scripts(form,module_id){var this_form=window.jQuery("form.forminator-custom-form-"+module_id);this_form.parent().find("script").each(function(){eval(jQuery(this).text())})}},{key:"componentDidMount",value:function(){var e=this.props.attributes;e.module_id&&this.preview(e)}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes;if(e.attributes.module_id!==t.module_id)return t.module_id?void this.preview(t):void this.setState({markup:""})}},{key:"update_alignment",value:function(e){this.props.setAttributes({alignment:e})}},{key:"open_settings",value:function(e){var t=frmnt_form_data.admin_url+"?page=forminator-cform-wizard&id="+e;window.location.href=t}},{key:"render",value:function(){var e=this,t=this.state,n=t.loading,o=t.markup,r=this.props,i=r.attributes,l=(r.setAttributes,r.isSelected),a=i.module_id,s=i.alignment,u=function(t){return e.update_id(t.target.value)},c=function(t){return e.update_alignment(t.target)},m=function(t){return e.open_settings(a)},p=frmnt_form_data.forms,d=[l&&wp.element.createElement(wp.editor.InspectorControls,{key:"inspector"},wp.element.createElement(wp.components.SelectControl,{label:frmnt_form_data.l10n.choose_form,value:a,options:p,onChange:this.update_id})),wp.element.createElement(wp.editor.BlockControls,null,wp.element.createElement(wp.editor.BlockAlignmentToolbar,{value:s,onChange:c}),!!a&&wp.element.createElement(wp.components.Toolbar,null,wp.element.createElement(wp.components.IconButton,{className:"components-toolbar__control",label:frmnt_form_data.l10n.customize_form,icon:"edit",onClick:m})))];return n?[d,wp.element.createElement("div",{key:"loading",className:"wp-block-embed is-loading"},wp.element.createElement(wp.components.Spinner,null),wp.element.createElement("span",null,frmnt_form_data.l10n.rendering))]:o?[d,wp.element.createElement(wp.element.RawHTML,null,o)]:[d,wp.element.createElement(wp.components.Placeholder,{key:"placeholder",className:"wp-block-embed"},wp.element.createElement("div",{className:"forminator-forms--placeholder"},wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"})),wp.element.createElement("strong",null,"Choose form")),wp.element.createElement("form",null,wp.element.createElement("select",{value:a,onChange:u},p.map(function(e){return wp.element.createElement("option",{key:e.value,value:e.value},e.label)}))))]}}]),BlockEdit}(Component);registerBlockType("forminator/forms",{title:frmnt_form_data.l10n.form,description:frmnt_form_data.l10n.form_description,icon:function(){return wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"}))},category:"embed",attributes:{module_id:{type:"string"},alignment:{type:"string",default:"none"}},supports:{customClassName:!1,className:!1,html:!1},transforms:{from:[{type:"shortcode",tag:"forminator_form",attributes:{module_id:{type:"string",shortcode:function(e){return e.named.id}}}}]},edit:BlockEdit,save:function(e){var t=e.attributes.module_id;return t?wp.element.createElement("div",{class:"forminator-guttenberg"},'[forminator_form id="',t,'"]'):null}})}]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/pro/gutenberg/js/polls-block.min.js CHANGED
@@ -1,424 +1 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, {
40
- /******/ configurable: false,
41
- /******/ enumerable: true,
42
- /******/ get: getter
43
- /******/ });
44
- /******/ }
45
- /******/ };
46
- /******/
47
- /******/ // getDefaultExport function for compatibility with non-harmony modules
48
- /******/ __webpack_require__.n = function(module) {
49
- /******/ var getter = module && module.__esModule ?
50
- /******/ function getDefault() { return module['default']; } :
51
- /******/ function getModuleExports() { return module; };
52
- /******/ __webpack_require__.d(getter, 'a', getter);
53
- /******/ return getter;
54
- /******/ };
55
- /******/
56
- /******/ // Object.prototype.hasOwnProperty.call
57
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
- /******/
59
- /******/ // __webpack_public_path__
60
- /******/ __webpack_require__.p = "";
61
- /******/
62
- /******/ // Load entry module and return exports
63
- /******/ return __webpack_require__(__webpack_require__.s = 1);
64
- /******/ })
65
- /************************************************************************/
66
- /******/ ([
67
- /* 0 */,
68
- /* 1 */
69
- /***/ (function(module, exports) {
70
-
71
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
72
-
73
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
74
-
75
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
76
-
77
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
78
-
79
- /**
80
- * WordPress dependencies
81
- */
82
- var __ = wp.i18n.__;
83
- var registerBlockType = wp.blocks.registerBlockType;
84
- var Component = wp.element.Component;
85
-
86
- /**
87
- * Block edit class
88
- */
89
-
90
- var BlockEdit = function (_Component) {
91
- _inherits(BlockEdit, _Component);
92
-
93
- /**
94
- * Class constructor
95
- */
96
- function BlockEdit() {
97
- _classCallCheck(this, BlockEdit);
98
-
99
- var _this = _possibleConstructorReturn(this, (BlockEdit.__proto__ || Object.getPrototypeOf(BlockEdit)).apply(this, arguments));
100
-
101
- _this.update_id = _this.update_id.bind(_this);
102
- _this.preview = _this.preview.bind(_this);
103
-
104
- _this.state = {
105
- loading: false, // Set to true while loading preview markup
106
- markup: '' // Preview markup
107
- };
108
- return _this;
109
- }
110
-
111
- /**
112
- * Update module id
113
- */
114
-
115
-
116
- _createClass(BlockEdit, [{
117
- key: 'update_id',
118
- value: function update_id(id) {
119
- this.props.setAttributes({ module_id: id });
120
- }
121
-
122
- /**
123
- * Preview module
124
- */
125
-
126
- }, {
127
- key: 'preview',
128
- value: function preview(attributes) {
129
- var _this2 = this;
130
-
131
- var module_id = attributes.module_id;
132
-
133
- // Check if we already process ajax request
134
-
135
- if (this.state.loading) {
136
- // Ajax request in process, skip
137
- return;
138
- }
139
-
140
- // Set loading to true
141
- this.setState({ loading: true });
142
-
143
- // Build AJAX Url
144
- var ajax_url = wpApiSettings.root + 'forminator/v1/preview/polls/?module_id=' + module_id;
145
-
146
- window.fetch(ajax_url).then(function (response) {
147
- return response.json();
148
- }).then(function (data) {
149
-
150
- if (data.success) {
151
- _this2.setState({ markup: data.data.markup });
152
- }
153
-
154
- setTimeout(function () {
155
- //Prevent form submission
156
- var form = window.jQuery('form.forminator-poll');
157
- form.submit(function (e) {
158
- e.preventDefault();
159
-
160
- return false;
161
- });
162
-
163
- //Remove container div
164
- form.siblings('div.forminator-poll').remove();
165
- }, 10);
166
-
167
- // Set loading to false
168
- _this2.setState({ loading: false });
169
- }).catch(function (error) {
170
- return { success: false };
171
- });
172
- }
173
-
174
- /**
175
- * React method called when block initialized
176
- */
177
-
178
- }, {
179
- key: 'componentDidMount',
180
- value: function componentDidMount() {
181
- var attributes = this.props.attributes;
182
- var module_id = attributes.module_id;
183
-
184
- // Check if module ID set
185
-
186
- if (!module_id) {
187
- // Fallback
188
- return;
189
- } else {
190
- // Load preview
191
- this.preview(attributes);
192
- }
193
- }
194
-
195
- /**
196
- * React method called when block updated
197
- */
198
-
199
- }, {
200
- key: 'componentDidUpdate',
201
- value: function componentDidUpdate(prevProps) {
202
- var attributes = this.props.attributes;
203
-
204
- // Check if module is same => skip preview update
205
-
206
- if (prevProps.attributes.module_id === attributes.module_id) {
207
- return;
208
- }
209
-
210
- // Check if we have module ID set
211
- if (!attributes.module_id) {
212
-
213
- // Clear the preview markup
214
- this.setState({ markup: '' });
215
-
216
- return;
217
- }
218
-
219
- // Load preview
220
- this.preview(attributes);
221
- }
222
- }, {
223
- key: 'update_alignment',
224
- value: function update_alignment(nextAlign) {
225
- this.props.setAttributes({ alignment: nextAlign });
226
- }
227
- }, {
228
- key: 'open_settings',
229
- value: function open_settings(module_id) {
230
- var url = frmnt_poll_data.admin_url + '?page=forminator-poll-wizard&id=' + module_id;
231
-
232
- window.location.href = url;
233
- }
234
-
235
- /**
236
- * Render
237
- */
238
-
239
- }, {
240
- key: 'render',
241
- value: function render() {
242
- var _this3 = this;
243
-
244
- var _state = this.state,
245
- loading = _state.loading,
246
- markup = _state.markup;
247
- var _props = this.props,
248
- attributes = _props.attributes,
249
- setAttributes = _props.setAttributes,
250
- isSelected = _props.isSelected;
251
- var module_id = attributes.module_id,
252
- alignment = attributes.alignment;
253
-
254
- var update = function update(e) {
255
- return _this3.update_id(e.target.value);
256
- };
257
- var update_alignment = function update_alignment(e) {
258
- return _this3.update_alignment(e.target);
259
- };
260
- var open_settings = function open_settings(e) {
261
- return _this3.open_settings(module_id);
262
- };
263
-
264
- var options = frmnt_poll_data.forms;
265
-
266
- var controls = [isSelected && wp.element.createElement(
267
- wp.editor.InspectorControls,
268
- { key: 'inspector' },
269
- wp.element.createElement(wp.components.SelectControl, {
270
- label: frmnt_poll_data.l10n.choose_form,
271
- value: module_id,
272
- options: options,
273
- onChange: this.update_id
274
- })
275
- ), wp.element.createElement(
276
- wp.editor.BlockControls,
277
- null,
278
- wp.element.createElement(wp.editor.BlockAlignmentToolbar, {
279
- value: alignment,
280
- onChange: update_alignment
281
- }),
282
- !!module_id && wp.element.createElement(
283
- wp.components.Toolbar,
284
- null,
285
- wp.element.createElement(wp.components.IconButton, {
286
- className: 'components-toolbar__control',
287
- label: frmnt_poll_data.l10n.customize_form,
288
- icon: 'edit',
289
- onClick: open_settings
290
- })
291
- )
292
- )];
293
-
294
- // If preview is being loaded, show spinner
295
- if (loading) {
296
- return [controls, wp.element.createElement(
297
- 'div',
298
- { key: 'loading', className: 'wp-block-embed is-loading' },
299
- wp.element.createElement(wp.components.Spinner, null),
300
- wp.element.createElement(
301
- 'span',
302
- null,
303
- frmnt_poll_data.l10n.rendering
304
- )
305
- )];
306
- }
307
-
308
- // If we have preview markup display it
309
- if (markup) {
310
- return [controls, wp.element.createElement(
311
- wp.element.RawHTML,
312
- null,
313
- markup
314
- )];
315
- }
316
-
317
- // Fallback, display the select
318
- return [controls, wp.element.createElement(
319
- wp.components.Placeholder,
320
- { key: 'placeholder', className: 'wp-block-embed' },
321
- wp.element.createElement(
322
- 'div',
323
- { className: 'forminator-polls--placeholder' },
324
- wp.element.createElement(
325
- 'svg',
326
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
327
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
328
- ),
329
- wp.element.createElement(
330
- 'strong',
331
- null,
332
- 'Choose poll'
333
- )
334
- ),
335
- wp.element.createElement(
336
- 'form',
337
- null,
338
- wp.element.createElement(
339
- 'select',
340
- { value: module_id, onChange: update },
341
- options.map(function (row) {
342
- return wp.element.createElement(
343
- 'option',
344
- { key: row.value, value: row.value },
345
- row.label
346
- );
347
- })
348
- )
349
- )
350
- )];
351
- }
352
- }]);
353
-
354
- return BlockEdit;
355
- }(Component);
356
-
357
- /**
358
- * Register block
359
- */
360
-
361
-
362
- registerBlockType('forminator/polls', {
363
- title: frmnt_poll_data.l10n.poll,
364
- description: frmnt_poll_data.l10n.poll_description,
365
- icon: function icon() {
366
- return wp.element.createElement(
367
- 'svg',
368
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
369
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
370
- );
371
- },
372
- category: 'embed',
373
- attributes: {
374
- module_id: {
375
- type: 'string'
376
- },
377
- alignment: {
378
- type: 'string',
379
- default: 'none'
380
- }
381
- },
382
- supports: {
383
- customClassName: false,
384
- className: false,
385
- html: false
386
- },
387
- transforms: {
388
- from: [{
389
- type: 'shortcode',
390
- tag: ['forminator_poll'],
391
- attributes: {
392
- module_id: {
393
- type: 'string',
394
- shortcode: function shortcode(_ref) {
395
- var id = _ref.named.id;
396
-
397
- return id;
398
- }
399
- }
400
- }
401
- }]
402
- },
403
- edit: BlockEdit,
404
- save: function save(_ref2) {
405
- var attributes = _ref2.attributes;
406
- var module_id = attributes.module_id;
407
-
408
-
409
- if (module_id) {
410
- return wp.element.createElement(
411
- 'div',
412
- { 'class': 'forminator-guttenberg' },
413
- '[forminator_poll id="',
414
- module_id,
415
- '"]'
416
- );
417
- }
418
-
419
- return null;
420
- }
421
- });
422
-
423
- /***/ })
424
- /******/ ]);
1
+ !function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)}([,function(module,exports){function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),__=wp.i18n.__,registerBlockType=wp.blocks.registerBlockType,Component=wp.element.Component,BlockEdit=function(_Component){function BlockEdit(){_classCallCheck(this,BlockEdit);var e=_possibleConstructorReturn(this,(BlockEdit.__proto__||Object.getPrototypeOf(BlockEdit)).apply(this,arguments));return e.update_id=e.update_id.bind(e),e.preview=e.preview.bind(e),e.state={loading:!1,markup:""},e}return _inherits(BlockEdit,_Component),_createClass(BlockEdit,[{key:"update_id",value:function(e){this.props.setAttributes({module_id:e})}},{key:"preview",value:function preview(attributes){var _this2=this,module_id=attributes.module_id;if(!this.state.loading){this.setState({loading:!0});var ajax_url=wpApiSettings.root+"forminator/v1/preview/polls/?module_id="+module_id;window.fetch(ajax_url).then(function(e){return e.json()}).then(function(data){data.success&&_this2.setState({markup:data.data.markup}),setTimeout(function(){window.jQuery("form.forminator-poll-"+module_id).parent().find("script").each(function(){eval(jQuery(this).text())})},10),_this2.setState({loading:!1})}).catch(function(e){return{success:!1}})}}},{key:"componentDidMount",value:function(){var e=this.props.attributes;e.module_id&&this.preview(e)}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes;if(e.attributes.module_id!==t.module_id)return t.module_id?void this.preview(t):void this.setState({markup:""})}},{key:"update_alignment",value:function(e){this.props.setAttributes({alignment:e})}},{key:"open_settings",value:function(e){var t=frmnt_poll_data.admin_url+"?page=forminator-poll-wizard&id="+e;window.location.href=t}},{key:"render",value:function(){var e=this,t=this.state,n=t.loading,o=t.markup,r=this.props,l=r.attributes,i=(r.setAttributes,r.isSelected),a=l.module_id,p=l.alignment,s=function(t){return e.update_id(t.target.value)},u=function(t){return e.update_alignment(t.target)},c=function(t){return e.open_settings(a)},m=frmnt_poll_data.forms,d=[i&&wp.element.createElement(wp.editor.InspectorControls,{key:"inspector"},wp.element.createElement(wp.components.SelectControl,{label:frmnt_poll_data.l10n.choose_form,value:a,options:m,onChange:this.update_id})),wp.element.createElement(wp.editor.BlockControls,null,wp.element.createElement(wp.editor.BlockAlignmentToolbar,{value:p,onChange:u}),!!a&&wp.element.createElement(wp.components.Toolbar,null,wp.element.createElement(wp.components.IconButton,{className:"components-toolbar__control",label:frmnt_poll_data.l10n.customize_form,icon:"edit",onClick:c})))];return n?[d,wp.element.createElement("div",{key:"loading",className:"wp-block-embed is-loading"},wp.element.createElement(wp.components.Spinner,null),wp.element.createElement("span",null,frmnt_poll_data.l10n.rendering))]:o?[d,wp.element.createElement(wp.element.RawHTML,null,o)]:[d,wp.element.createElement(wp.components.Placeholder,{key:"placeholder",className:"wp-block-embed"},wp.element.createElement("div",{className:"forminator-polls--placeholder"},wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"})),wp.element.createElement("strong",null,"Choose poll")),wp.element.createElement("form",null,wp.element.createElement("select",{value:a,onChange:s},m.map(function(e){return wp.element.createElement("option",{key:e.value,value:e.value},e.label)}))))]}}]),BlockEdit}(Component);registerBlockType("forminator/polls",{title:frmnt_poll_data.l10n.poll,description:frmnt_poll_data.l10n.poll_description,icon:function(){return wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"}))},category:"embed",attributes:{module_id:{type:"string"},alignment:{type:"string",default:"none"}},supports:{customClassName:!1,className:!1,html:!1},transforms:{from:[{type:"shortcode",tag:["forminator_poll"],attributes:{module_id:{type:"string",shortcode:function(e){return e.named.id}}}}]},edit:BlockEdit,save:function(e){var t=e.attributes,n=t.module_id;return n?wp.element.createElement("div",{class:"forminator-guttenberg"},'[forminator_poll id="',n,'"]'):null}})}]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/pro/gutenberg/js/quizzes-block.min.js CHANGED
@@ -1,444 +1 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, {
40
- /******/ configurable: false,
41
- /******/ enumerable: true,
42
- /******/ get: getter
43
- /******/ });
44
- /******/ }
45
- /******/ };
46
- /******/
47
- /******/ // getDefaultExport function for compatibility with non-harmony modules
48
- /******/ __webpack_require__.n = function(module) {
49
- /******/ var getter = module && module.__esModule ?
50
- /******/ function getDefault() { return module['default']; } :
51
- /******/ function getModuleExports() { return module; };
52
- /******/ __webpack_require__.d(getter, 'a', getter);
53
- /******/ return getter;
54
- /******/ };
55
- /******/
56
- /******/ // Object.prototype.hasOwnProperty.call
57
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
- /******/
59
- /******/ // __webpack_public_path__
60
- /******/ __webpack_require__.p = "";
61
- /******/
62
- /******/ // Load entry module and return exports
63
- /******/ return __webpack_require__(__webpack_require__.s = 2);
64
- /******/ })
65
- /************************************************************************/
66
- /******/ ({
67
-
68
- /***/ 2:
69
- /***/ (function(module, exports) {
70
-
71
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
72
-
73
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
74
-
75
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
76
-
77
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
78
-
79
- /**
80
- * WordPress dependencies
81
- */
82
- var __ = wp.i18n.__;
83
- var registerBlockType = wp.blocks.registerBlockType;
84
- var Component = wp.element.Component;
85
-
86
- /**
87
- * Block edit class
88
- */
89
-
90
- var BlockEdit = function (_Component) {
91
- _inherits(BlockEdit, _Component);
92
-
93
- /**
94
- * Class constructor
95
- */
96
- function BlockEdit() {
97
- _classCallCheck(this, BlockEdit);
98
-
99
- var _this = _possibleConstructorReturn(this, (BlockEdit.__proto__ || Object.getPrototypeOf(BlockEdit)).apply(this, arguments));
100
-
101
- _this.update_id = _this.update_id.bind(_this);
102
- _this.preview = _this.preview.bind(_this);
103
-
104
- _this.state = {
105
- loading: false, // Set to true while loading preview markup
106
- markup: '', // Preview markup
107
- type: '' // Quiz type (knowledge or nowrong)
108
- };
109
- return _this;
110
- }
111
-
112
- /**
113
- * Update module id
114
- */
115
-
116
-
117
- _createClass(BlockEdit, [{
118
- key: 'update_id',
119
- value: function update_id(id) {
120
- this.props.setAttributes({ module_id: id });
121
- }
122
-
123
- /**
124
- * Preview module
125
- */
126
-
127
- }, {
128
- key: 'preview',
129
- value: function preview(attributes) {
130
- var _this2 = this;
131
-
132
- var module_id = attributes.module_id;
133
-
134
- // Check if we already process ajax request
135
-
136
- if (this.state.loading) {
137
- // Ajax request in process, skip
138
- return;
139
- }
140
-
141
- // Set loading to true
142
- this.setState({ loading: true });
143
-
144
- // Build AJAX Url
145
- var ajax_url = wpApiSettings.root + 'forminator/v1/preview/quizzes/?module_id=' + module_id;
146
-
147
- window.fetch(ajax_url).then(function (response) {
148
- return response.json();
149
- }).then(function (data) {
150
-
151
- if (data.success) {
152
- _this2.setState({
153
- markup: data.data.markup,
154
- type: data.data.type
155
- });
156
- }
157
-
158
- setTimeout(function () {
159
- var form = window.jQuery('form.forminator-quiz');
160
- form.submit(function (e) {
161
- e.preventDefault();
162
-
163
- return false;
164
- });
165
-
166
- //Remove container div
167
- form.siblings('div.forminator-quiz').remove();
168
- }, 10);
169
-
170
- // Set loading to false
171
- _this2.setState({ loading: false });
172
- }).catch(function (error) {
173
- return { success: false };
174
- });
175
- }
176
-
177
- /**
178
- * React method called when block initialized
179
- */
180
-
181
- }, {
182
- key: 'componentDidMount',
183
- value: function componentDidMount() {
184
- var attributes = this.props.attributes;
185
- var module_id = attributes.module_id;
186
-
187
- // Check if module ID set
188
-
189
- if (!module_id) {
190
- // Fallback
191
- return;
192
- } else {
193
- // Load preview
194
- this.preview(attributes);
195
- }
196
- }
197
-
198
- /**
199
- * React method called when block updated
200
- */
201
-
202
- }, {
203
- key: 'componentDidUpdate',
204
- value: function componentDidUpdate(prevProps) {
205
- var attributes = this.props.attributes;
206
-
207
- // Check if module is same => skip preview update
208
-
209
- if (prevProps.attributes.module_id === attributes.module_id) {
210
- return;
211
- }
212
-
213
- // Check if we have module ID set
214
- if (!attributes.module_id) {
215
-
216
- // Clear the preview markup
217
- this.setState({
218
- markup: '',
219
- type: ''
220
- });
221
-
222
- return;
223
- }
224
-
225
- // Load preview
226
- this.preview(attributes);
227
- }
228
- }, {
229
- key: 'update_alignment',
230
- value: function update_alignment(nextAlign) {
231
- this.props.setAttributes({ alignment: nextAlign });
232
- }
233
- }, {
234
- key: 'open_settings',
235
- value: function open_settings(module_id, type) {
236
- var url = '';
237
-
238
- if (type === "knowledge") {
239
- url = frmnt_quiz_data.admin_url + '?page=forminator-knowledge-wizard&id=' + module_id;
240
- }
241
-
242
- if (type === "nowrong") {
243
- url = frmnt_quiz_data.admin_url + '?page=forminator-nowrong-wizard&id=' + module_id;
244
- }
245
-
246
- if (url) {
247
- window.location.href = url;
248
- }
249
-
250
- return;
251
- }
252
-
253
- /**
254
- * Render
255
- */
256
-
257
- }, {
258
- key: 'render',
259
- value: function render() {
260
- var _this3 = this;
261
-
262
- var _state = this.state,
263
- loading = _state.loading,
264
- markup = _state.markup,
265
- type = _state.type;
266
- var _props = this.props,
267
- attributes = _props.attributes,
268
- setAttributes = _props.setAttributes,
269
- isSelected = _props.isSelected;
270
- var module_id = attributes.module_id,
271
- alignment = attributes.alignment;
272
-
273
- var update = function update(e) {
274
- return _this3.update_id(e.target.value);
275
- };
276
- var update_alignment = function update_alignment(e) {
277
- return _this3.update_alignment(e.target);
278
- };
279
- var open_settings = function open_settings(e) {
280
- return _this3.open_settings(module_id, type);
281
- };
282
-
283
- var options = frmnt_quiz_data.forms;
284
-
285
- var controls = [isSelected && wp.element.createElement(
286
- wp.editor.InspectorControls,
287
- { key: 'inspector' },
288
- wp.element.createElement(wp.components.SelectControl, {
289
- label: frmnt_quiz_data.l10n.choose_poll,
290
- value: module_id,
291
- options: options,
292
- onChange: this.update_id
293
- })
294
- ), wp.element.createElement(
295
- wp.editor.BlockControls,
296
- null,
297
- wp.element.createElement(wp.editor.BlockAlignmentToolbar, {
298
- value: alignment,
299
- onChange: update_alignment
300
- }),
301
- !!module_id && wp.element.createElement(
302
- wp.components.Toolbar,
303
- null,
304
- wp.element.createElement(wp.components.IconButton, {
305
- className: 'components-toolbar__control',
306
- label: frmnt_quiz_data.l10n.customize_quiz,
307
- icon: 'edit',
308
- onClick: open_settings
309
- })
310
- )
311
- )];
312
-
313
- // If preview is being loaded, show spinner
314
- if (loading) {
315
- return [controls, wp.element.createElement(
316
- 'div',
317
- { key: 'loading', className: 'wp-block-embed is-loading' },
318
- wp.element.createElement(wp.components.Spinner, null),
319
- wp.element.createElement(
320
- 'span',
321
- null,
322
- frmnt_quiz_data.l10n.rendering
323
- )
324
- )];
325
- }
326
-
327
- // If we have preview markup display it
328
- if (markup) {
329
- return [controls, wp.element.createElement(
330
- wp.element.RawHTML,
331
- null,
332
- markup
333
- )];
334
- }
335
-
336
- // Fallback, display the select
337
- return [controls, wp.element.createElement(
338
- wp.components.Placeholder,
339
- { key: 'placeholder', className: 'wp-block-embed' },
340
- wp.element.createElement(
341
- 'div',
342
- { className: 'forminator-quizzes--placeholder' },
343
- wp.element.createElement(
344
- 'svg',
345
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
346
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
347
- ),
348
- wp.element.createElement(
349
- 'strong',
350
- null,
351
- 'Choose quiz'
352
- )
353
- ),
354
- wp.element.createElement(
355
- 'form',
356
- null,
357
- wp.element.createElement(
358
- 'select',
359
- { value: module_id, onChange: update },
360
- options.map(function (row) {
361
- return wp.element.createElement(
362
- 'option',
363
- { key: row.value, value: row.value },
364
- row.label
365
- );
366
- })
367
- )
368
- )
369
- )];
370
- }
371
- }]);
372
-
373
- return BlockEdit;
374
- }(Component);
375
-
376
- /**
377
- * Register block
378
- */
379
-
380
-
381
- registerBlockType('forminator/quizzes', {
382
- title: frmnt_quiz_data.l10n.quiz,
383
- description: frmnt_quiz_data.l10n.quiz_description,
384
- icon: function icon() {
385
- return wp.element.createElement(
386
- 'svg',
387
- { xmlns: 'http://www.w3.org/2000/svg', width: '21', height: '19', viewBox: '0 0 21 19' },
388
- wp.element.createElement('path', { 'fill-rule': 'evenodd', d: 'M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z' })
389
- );
390
- },
391
- category: 'embed',
392
- attributes: {
393
- module_id: {
394
- type: 'string'
395
- },
396
- alignment: {
397
- type: 'string',
398
- default: 'none'
399
- }
400
- },
401
- supports: {
402
- customClassName: false,
403
- className: false,
404
- html: false
405
- },
406
- transforms: {
407
- from: [{
408
- type: 'shortcode',
409
- tag: ['forminator_quiz'],
410
- attributes: {
411
- module_id: {
412
- type: 'string',
413
- shortcode: function shortcode(_ref) {
414
- var id = _ref.named.id;
415
-
416
- return id;
417
- }
418
- }
419
- }
420
- }]
421
- },
422
- edit: BlockEdit,
423
- save: function save(_ref2) {
424
- var attributes = _ref2.attributes;
425
- var module_id = attributes.module_id;
426
-
427
-
428
- if (module_id) {
429
- return wp.element.createElement(
430
- 'div',
431
- { 'class': 'forminator-guttenberg' },
432
- '[forminator_quiz id="',
433
- module_id,
434
- '"]'
435
- );
436
- }
437
-
438
- return null;
439
- }
440
- });
441
-
442
- /***/ })
443
-
444
- /******/ });
1
+ !function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}({2:function(module,exports){function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _createClass=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),__=wp.i18n.__,registerBlockType=wp.blocks.registerBlockType,Component=wp.element.Component,BlockEdit=function(_Component){function BlockEdit(){_classCallCheck(this,BlockEdit);var e=_possibleConstructorReturn(this,(BlockEdit.__proto__||Object.getPrototypeOf(BlockEdit)).apply(this,arguments));return e.update_id=e.update_id.bind(e),e.preview=e.preview.bind(e),e.state={loading:!1,markup:"",type:""},e}return _inherits(BlockEdit,_Component),_createClass(BlockEdit,[{key:"update_id",value:function(e){this.props.setAttributes({module_id:e})}},{key:"preview",value:function preview(attributes){var _this2=this,module_id=attributes.module_id;if(!this.state.loading){this.setState({loading:!0});var ajax_url=wpApiSettings.root+"forminator/v1/preview/quizzes/?module_id="+module_id;window.fetch(ajax_url).then(function(e){return e.json()}).then(function(data){data.success&&_this2.setState({markup:data.data.markup,type:data.data.type}),setTimeout(function(){window.jQuery("form.forminator-quiz-"+module_id).parent().find("script").each(function(){eval(jQuery(this).text())})},10),_this2.setState({loading:!1})}).catch(function(e){return{success:!1}})}}},{key:"componentDidMount",value:function(){var e=this.props.attributes;e.module_id&&this.preview(e)}},{key:"componentDidUpdate",value:function(e){var t=this.props.attributes;if(e.attributes.module_id!==t.module_id)return t.module_id?void this.preview(t):void this.setState({markup:"",type:""})}},{key:"update_alignment",value:function(e){this.props.setAttributes({alignment:e})}},{key:"open_settings",value:function(e,t){var n="";"knowledge"===t&&(n=frmnt_quiz_data.admin_url+"?page=forminator-knowledge-wizard&id="+e),"nowrong"===t&&(n=frmnt_quiz_data.admin_url+"?page=forminator-nowrong-wizard&id="+e),n&&(window.location.href=n)}},{key:"render",value:function(){var e=this,t=this.state,n=t.loading,o=t.markup,r=t.type,i=this.props,a=i.attributes,l=(i.setAttributes,i.isSelected),u=a.module_id,s=a.alignment,c=function(t){return e.update_id(t.target.value)},p=function(t){return e.update_alignment(t.target)},d=function(t){return e.open_settings(u,r)},m=frmnt_quiz_data.forms,C=[l&&wp.element.createElement(wp.editor.InspectorControls,{key:"inspector"},wp.element.createElement(wp.components.SelectControl,{label:frmnt_quiz_data.l10n.choose_poll,value:u,options:m,onChange:this.update_id})),wp.element.createElement(wp.editor.BlockControls,null,wp.element.createElement(wp.editor.BlockAlignmentToolbar,{value:s,onChange:p}),!!u&&wp.element.createElement(wp.components.Toolbar,null,wp.element.createElement(wp.components.IconButton,{className:"components-toolbar__control",label:frmnt_quiz_data.l10n.customize_quiz,icon:"edit",onClick:d})))];return n?[C,wp.element.createElement("div",{key:"loading",className:"wp-block-embed is-loading"},wp.element.createElement(wp.components.Spinner,null),wp.element.createElement("span",null,frmnt_quiz_data.l10n.rendering))]:o?[C,wp.element.createElement(wp.element.RawHTML,null,o)]:[C,wp.element.createElement(wp.components.Placeholder,{key:"placeholder",className:"wp-block-embed"},wp.element.createElement("div",{className:"forminator-quizzes--placeholder"},wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"})),wp.element.createElement("strong",null,"Choose quiz")),wp.element.createElement("form",null,wp.element.createElement("select",{value:u,onChange:c},m.map(function(e){return wp.element.createElement("option",{key:e.value,value:e.value},e.label)}))))]}}]),BlockEdit}(Component);registerBlockType("forminator/quizzes",{title:frmnt_quiz_data.l10n.quiz,description:frmnt_quiz_data.l10n.quiz_description,icon:function(){return wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"19",viewBox:"0 0 21 19"},wp.element.createElement("path",{"fill-rule":"evenodd",d:"M13.5451769,1.48693014 L12.356375,0.277549982 L12.356375,0.277370522 C12.1589668,0.0776914902 11.8400315,0.0778709501 11.644035,0.277549982 L3.85388279,8.20010569 C3.75915623,8.29591605 3.70603717,8.42627017 3.70635606,8.5621361 C3.70635606,8.69900417 3.75882569,8.82773673 3.85388279,8.9241665 L5.04274349,10.1335467 C5.13711698,10.2296063 5.26521317,10.2835046 5.39873701,10.2833358 C5.53236272,10.2835841 5.66057917,10.2296798 5.75502464,10.1335467 L13.5451769,2.21099096 C13.7415263,2.01125211 13.7415263,1.68660918 13.5451769,1.48693014 Z M19.9111198,2.79064639 L18.7219062,1.58144568 C18.5259097,1.38176665 18.2059744,1.38176665 18.0099779,1.58144568 L7.67751904,12.0887621 C7.48116967,12.2884411 7.48116967,12.6132635 7.67751904,12.8129426 L8.86673268,14.0221433 C8.96108128,14.1182263 9.08920386,14.1720926 9.22272619,14.1718128 C9.35154738,14.1718128 9.48066267,14.1219828 9.57860207,14.0221433 L19.9111786,3.51464738 C20.107175,3.31514781 20.107175,2.99050488 19.9111786,2.79064639 L19.9111198,2.79064639 Z M3.06548538,12.612127 C2.98066339,12.5261058 2.86166556,12.4904532 2.74331477,12.5197649 C2.62715849,12.547545 2.53376958,12.6351195 2.49714279,12.7506102 L1.44463254,16.0325725 C1.4040862,16.157297 1.43633413,16.2946136 1.52792514,16.3872451 C1.61898925,16.4804231 1.75399238,16.5133047 1.8766835,16.4721894 L5.10438943,15.4017112 L5.10438943,15.4015318 C5.21787953,15.3643255 5.30393376,15.2694133 5.33120882,15.1513647 C5.35929029,15.0334893 5.32470763,14.9092629 5.24003401,14.8238504 L3.0655442,12.612127 L3.06548538,12.612127 Z M17.695866,8.01897085 L15.7484897,9.99937049 C15.6760825,10.0726186 15.6280511,10.1670889 15.6111393,10.2695174 C15.0349145,13.5837826 12.2153188,15.9893825 8.9066143,15.9893825 C8.57691443,15.9893825 8.24156759,15.9616859 7.8819859,15.9048569 C7.72563581,15.8795531 7.56110939,15.932733 7.44834674,16.0474079 L6.57312739,16.9374093 C6.44265917,17.0702694 6.39448358,17.2575657 6.4443062,17.4387604 C6.49412882,17.6202541 6.63147926,17.7552678 6.81141716,17.7999533 C7.49733836,17.9696708 8.20074162,18.0554422 8.90667313,18.0554444 C13.7857019,18.0554444 17.7552179,14.0187933 17.7552179,9.05702664 C17.7552179,8.85148525 17.7407476,8.64947324 17.7263949,8.44764069 L17.695866,8.01897085 Z M9.61448377,0.0884590833 L7.51793371,2.21888719 C7.44475857,2.29126935 7.34123105,2.32052131 7.24046817,2.34474839 C4.51304725,3.00085373 2.15938423,5.57323172 2.09544422,8.80231324 C2.0888561,9.13754431 2.08991491,9.46948527 2.13950224,9.83612182 C2.16161948,9.99554201 2.10650284,10.1619013 1.99179905,10.2746021 L1.1014035,11.1488709 C0.968464742,11.2792784 0.812291115,11.3312021 0.606236044,11.2711429 C0.400180972,11.2110836 0.288594769,11.06943 0.247830806,10.8857229 C0.0931277404,10.1871454 0.0364817131,9.46787013 0.065481185,8.73860498 C0.262948177,3.78144441 4.17987685,0.158448438 8.70673559,0.0590276622 C8.90884956,0.0546009851 8.93349617,0.0510117874 9.13172785,0.0691970557 L9.61454259,0.0884590833 L9.61448377,0.0884590833 Z"}))},category:"embed",attributes:{module_id:{type:"string"},alignment:{type:"string",default:"none"}},supports:{customClassName:!1,className:!1,html:!1},transforms:{from:[{type:"shortcode",tag:["forminator_quiz"],attributes:{module_id:{type:"string",shortcode:function(e){return e.named.id}}}}]},edit:BlockEdit,save:function(e){var t=e.attributes,n=t.module_id;return n?wp.element.createElement("div",{class:"forminator-guttenberg"},'[forminator_quiz id="',n,'"]'):null}})}});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/pro/gutenberg/library/blocks/class-block-forms.php CHANGED
@@ -67,9 +67,7 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
- ob_start();
71
- forminator_form( $properties['module_id'], true, false );
72
- $html = ob_get_clean();
73
 
74
  return $html;
75
  }
@@ -131,6 +129,15 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
131
  false
132
  );
133
 
 
 
 
 
 
 
 
 
 
134
  wp_localize_script( 'forminator-front-scripts', 'ForminatorFront', forminator_localize_data() );
135
  }
136
 
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
+ $html = forminator_form( $properties['module_id'], true, false );
 
 
71
 
72
  return $html;
73
  }
129
  false
130
  );
131
 
132
+ wp_enqueue_script('jquery-ui-datepicker');
133
+ $style_src = forminator_plugin_url() . 'assets/css/intlTelInput.min.css';
134
+ $style_version = "4.0.3";
135
+
136
+ $script_src = forminator_plugin_url() . 'assets/js/library/intlTelInput.min.js';
137
+ $script_version = FORMINATOR_VERSION;
138
+ wp_enqueue_style( 'intlTelInput-forminator-css', $style_src, array(), $style_version ); // intlTelInput
139
+ wp_enqueue_script( 'forminator-intlTelInput', $script_src, array( 'jquery' ), $script_version, false ); // intlTelInput
140
+
141
  wp_localize_script( 'forminator-front-scripts', 'ForminatorFront', forminator_localize_data() );
142
  }
143
 
addons/pro/gutenberg/library/blocks/class-block-polls.php CHANGED
@@ -67,11 +67,7 @@ class Forminator_GFBlock_Polls extends Forminator_GFBlock_Abstract {
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
- ob_start();
71
- forminator_poll( $properties['module_id'], true, false );
72
- $html = ob_get_clean();
73
-
74
- return $html;
75
  }
76
 
77
  return false;
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
+ return forminator_poll( $properties['module_id'], true, false );
 
 
 
 
71
  }
72
 
73
  return false;
addons/pro/gutenberg/library/blocks/class-block-quizzes.php CHANGED
@@ -67,11 +67,7 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
- ob_start();
71
- forminator_quiz( $properties['module_id'], true, false );
72
- $html = ob_get_clean();
73
-
74
- return $html;
75
  }
76
 
77
  return false;
67
  */
68
  public function preview_block( $properties = array() ) {
69
  if( isset( $properties['module_id'] ) ) {
70
+ return forminator_quiz( $properties['module_id'], true, false );
 
 
 
 
71
  }
72
 
73
  return false;
addons/pro/gutenberg/package-lock.json ADDED
@@ -0,0 +1,4891 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "forminator-gutenberg-blocks",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "acorn": {
8
+ "version": "5.7.3",
9
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
10
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
11
+ "dev": true
12
+ },
13
+ "acorn-dynamic-import": {
14
+ "version": "2.0.2",
15
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
16
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
17
+ "dev": true,
18
+ "requires": {
19
+ "acorn": "^4.0.3"
20
+ },
21
+ "dependencies": {
22
+ "acorn": {
23
+ "version": "4.0.13",
24
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
25
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
26
+ "dev": true
27
+ }
28
+ }
29
+ },
30
+ "ajv": {
31
+ "version": "6.5.5",
32
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
33
+ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
34
+ "dev": true,
35
+ "requires": {
36
+ "fast-deep-equal": "^2.0.1",
37
+ "fast-json-stable-stringify": "^2.0.0",
38
+ "json-schema-traverse": "^0.4.1",
39
+ "uri-js": "^4.2.2"
40
+ }
41
+ },
42
+ "ajv-keywords": {
43
+ "version": "3.2.0",
44
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
45
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
46
+ "dev": true
47
+ },
48
+ "align-text": {
49
+ "version": "0.1.4",
50
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
51
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
52
+ "dev": true,
53
+ "requires": {
54
+ "kind-of": "^3.0.2",
55
+ "longest": "^1.0.1",
56
+ "repeat-string": "^1.5.2"
57
+ }
58
+ },
59
+ "ansi-regex": {
60
+ "version": "2.1.1",
61
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
62
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
63
+ "dev": true
64
+ },
65
+ "ansi-styles": {
66
+ "version": "2.2.1",
67
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
68
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
69
+ "dev": true
70
+ },
71
+ "anymatch": {
72
+ "version": "2.0.0",
73
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
74
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
75
+ "dev": true,
76
+ "requires": {
77
+ "micromatch": "^3.1.4",
78
+ "normalize-path": "^2.1.1"
79
+ }
80
+ },
81
+ "arr-diff": {
82
+ "version": "4.0.0",
83
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
84
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
85
+ "dev": true
86
+ },
87
+ "arr-flatten": {
88
+ "version": "1.1.0",
89
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
90
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
91
+ "dev": true
92
+ },
93
+ "arr-union": {
94
+ "version": "3.1.0",
95
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
96
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
97
+ "dev": true
98
+ },
99
+ "array-unique": {
100
+ "version": "0.3.2",
101
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
102
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
103
+ "dev": true
104
+ },
105
+ "asn1.js": {
106
+ "version": "4.10.1",
107
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
108
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
109
+ "dev": true,
110
+ "requires": {
111
+ "bn.js": "^4.0.0",
112
+ "inherits": "^2.0.1",
113
+ "minimalistic-assert": "^1.0.0"
114
+ }
115
+ },
116
+ "assert": {
117
+ "version": "1.4.1",
118
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
119
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
120
+ "dev": true,
121
+ "requires": {
122
+ "util": "0.10.3"
123
+ },
124
+ "dependencies": {
125
+ "inherits": {
126
+ "version": "2.0.1",
127
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
128
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
129
+ "dev": true
130
+ },
131
+ "util": {
132
+ "version": "0.10.3",
133
+ "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz",
134
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
135
+ "dev": true,
136
+ "requires": {
137
+ "inherits": "2.0.1"
138
+ }
139
+ }
140
+ }
141
+ },
142
+ "assign-symbols": {
143
+ "version": "1.0.0",
144
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
145
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
146
+ "dev": true
147
+ },
148
+ "async": {
149
+ "version": "2.6.1",
150
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
151
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
152
+ "dev": true,
153
+ "requires": {
154
+ "lodash": "^4.17.10"
155
+ }
156
+ },
157
+ "async-each": {
158
+ "version": "1.0.1",
159
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
160
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
161
+ "dev": true
162
+ },
163
+ "atob": {
164
+ "version": "2.1.2",
165
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
166
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
167
+ "dev": true
168
+ },
169
+ "babel-code-frame": {
170
+ "version": "6.26.0",
171
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
172
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
173
+ "dev": true,
174
+ "requires": {
175
+ "chalk": "^1.1.3",
176
+ "esutils": "^2.0.2",
177
+ "js-tokens": "^3.0.2"
178
+ }
179
+ },
180
+ "babel-core": {
181
+ "version": "6.26.3",
182
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
183
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
184
+ "dev": true,
185
+ "requires": {
186
+ "babel-code-frame": "^6.26.0",
187
+ "babel-generator": "^6.26.0",
188
+ "babel-helpers": "^6.24.1",
189
+ "babel-messages": "^6.23.0",
190
+ "babel-register": "^6.26.0",
191
+ "babel-runtime": "^6.26.0",
192
+ "babel-template": "^6.26.0",
193
+ "babel-traverse": "^6.26.0",
194
+ "babel-types": "^6.26.0",
195
+ "babylon": "^6.18.0",
196
+ "convert-source-map": "^1.5.1",
197
+ "debug": "^2.6.9",
198
+ "json5": "^0.5.1",
199
+ "lodash": "^4.17.4",
200
+ "minimatch": "^3.0.4",
201
+ "path-is-absolute": "^1.0.1",
202
+ "private": "^0.1.8",
203
+ "slash": "^1.0.0",
204
+ "source-map": "^0.5.7"
205
+ }
206
+ },
207
+ "babel-generator": {
208
+ "version": "6.26.1",
209
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
210
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
211
+ "dev": true,
212
+ "requires": {
213
+ "babel-messages": "^6.23.0",
214
+ "babel-runtime": "^6.26.0",
215
+ "babel-types": "^6.26.0",
216
+ "detect-indent": "^4.0.0",
217
+ "jsesc": "^1.3.0",
218
+ "lodash": "^4.17.4",
219
+ "source-map": "^0.5.7",
220
+ "trim-right": "^1.0.1"
221
+ }
222
+ },
223
+ "babel-helper-builder-binary-assignment-operator-visitor": {
224
+ "version": "6.24.1",
225
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
226
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
227
+ "dev": true,
228
+ "requires": {
229
+ "babel-helper-explode-assignable-expression": "^6.24.1",
230
+ "babel-runtime": "^6.22.0",
231
+ "babel-types": "^6.24.1"
232
+ }
233
+ },
234
+ "babel-helper-builder-react-jsx": {
235
+ "version": "6.26.0",
236
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
237
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
238
+ "dev": true,
239
+ "requires": {
240
+ "babel-runtime": "^6.26.0",
241
+ "babel-types": "^6.26.0",
242
+ "esutils": "^2.0.2"
243
+ }
244
+ },
245
+ "babel-helper-call-delegate": {
246
+ "version": "6.24.1",
247
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
248
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
249
+ "dev": true,
250
+ "requires": {
251
+ "babel-helper-hoist-variables": "^6.24.1",
252
+ "babel-runtime": "^6.22.0",
253
+ "babel-traverse": "^6.24.1",
254
+ "babel-types": "^6.24.1"
255
+ }
256
+ },
257
+ "babel-helper-define-map": {
258
+ "version": "6.26.0",
259
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
260
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
261
+ "dev": true,
262
+ "requires": {
263
+ "babel-helper-function-name": "^6.24.1",
264
+ "babel-runtime": "^6.26.0",
265
+ "babel-types": "^6.26.0",
266
+ "lodash": "^4.17.4"
267
+ }
268
+ },
269
+ "babel-helper-explode-assignable-expression": {
270
+ "version": "6.24.1",
271
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
272
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
273
+ "dev": true,
274
+ "requires": {
275
+ "babel-runtime": "^6.22.0",
276
+ "babel-traverse": "^6.24.1",
277
+ "babel-types": "^6.24.1"
278
+ }
279
+ },
280
+ "babel-helper-function-name": {
281
+ "version": "6.24.1",
282
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
283
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
284
+ "dev": true,
285
+ "requires": {
286
+ "babel-helper-get-function-arity": "^6.24.1",
287
+ "babel-runtime": "^6.22.0",
288
+ "babel-template": "^6.24.1",
289
+ "babel-traverse": "^6.24.1",
290
+ "babel-types": "^6.24.1"
291
+ }
292
+ },
293
+ "babel-helper-get-function-arity": {
294
+ "version": "6.24.1",
295
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
296
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
297
+ "dev": true,
298
+ "requires": {
299
+ "babel-runtime": "^6.22.0",
300
+ "babel-types": "^6.24.1"
301
+ }
302
+ },
303
+ "babel-helper-hoist-variables": {
304
+ "version": "6.24.1",
305
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
306
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
307
+ "dev": true,
308
+ "requires": {
309
+ "babel-runtime": "^6.22.0",
310
+ "babel-types": "^6.24.1"
311
+ }
312
+ },
313
+ "babel-helper-optimise-call-expression": {
314
+ "version": "6.24.1",
315
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
316
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
317
+ "dev": true,
318
+ "requires": {
319
+ "babel-runtime": "^6.22.0",
320
+ "babel-types": "^6.24.1"
321
+ }
322
+ },
323
+ "babel-helper-regex": {
324
+ "version": "6.26.0",
325
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
326
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
327
+ "dev": true,
328
+ "requires": {
329
+ "babel-runtime": "^6.26.0",
330
+ "babel-types": "^6.26.0",
331
+ "lodash": "^4.17.4"
332
+ }
333
+ },
334
+ "babel-helper-remap-async-to-generator": {
335
+ "version": "6.24.1",
336
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
337
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
338
+ "dev": true,
339
+ "requires": {
340
+ "babel-helper-function-name": "^6.24.1",
341
+ "babel-runtime": "^6.22.0",
342
+ "babel-template": "^6.24.1",
343
+ "babel-traverse": "^6.24.1",
344
+ "babel-types": "^6.24.1"
345
+ }
346
+ },
347
+ "babel-helper-replace-supers": {
348
+ "version": "6.24.1",
349
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
350
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
351
+ "dev": true,
352
+ "requires": {
353
+ "babel-helper-optimise-call-expression": "^6.24.1",
354
+ "babel-messages": "^6.23.0",
355
+ "babel-runtime": "^6.22.0",
356
+ "babel-template": "^6.24.1",
357
+ "babel-traverse": "^6.24.1",
358
+ "babel-types": "^6.24.1"
359
+ }
360
+ },
361
+ "babel-helpers": {
362
+ "version": "6.24.1",
363
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
364
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
365
+ "dev": true,
366
+ "requires": {
367
+ "babel-runtime": "^6.22.0",
368
+ "babel-template": "^6.24.1"
369
+ }
370
+ },
371
+ "babel-loader": {
372
+ "version": "7.1.5",
373
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
374
+ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
375
+ "dev": true,
376
+ "requires": {
377
+ "find-cache-dir": "^1.0.0",
378
+ "loader-utils": "^1.0.2",
379
+ "mkdirp": "^0.5.1"
380
+ }
381
+ },
382
+ "babel-messages": {
383
+ "version": "6.23.0",
384
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
385
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
386
+ "dev": true,
387
+ "requires": {
388
+ "babel-runtime": "^6.22.0"
389
+ }
390
+ },
391
+ "babel-plugin-check-es2015-constants": {
392
+ "version": "6.22.0",
393
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
394
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
395
+ "dev": true,
396
+ "requires": {
397
+ "babel-runtime": "^6.22.0"
398
+ }
399
+ },
400
+ "babel-plugin-syntax-async-functions": {
401
+ "version": "6.13.0",
402
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
403
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
404
+ "dev": true
405
+ },
406
+ "babel-plugin-syntax-exponentiation-operator": {
407
+ "version": "6.13.0",
408
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
409
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
410
+ "dev": true
411
+ },
412
+ "babel-plugin-syntax-jsx": {
413
+ "version": "6.18.0",
414
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
415
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
416
+ "dev": true
417
+ },
418
+ "babel-plugin-syntax-trailing-function-commas": {
419
+ "version": "6.22.0",
420
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
421
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
422
+ "dev": true
423
+ },
424
+ "babel-plugin-transform-async-to-generator": {
425
+ "version": "6.24.1",
426
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
427
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
428
+ "dev": true,
429
+ "requires": {
430
+ "babel-helper-remap-async-to-generator": "^6.24.1",
431
+ "babel-plugin-syntax-async-functions": "^6.8.0",
432
+ "babel-runtime": "^6.22.0"
433
+ }
434
+ },
435
+ "babel-plugin-transform-es2015-arrow-functions": {
436
+ "version": "6.22.0",
437
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
438
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
439
+ "dev": true,
440
+ "requires": {
441
+ "babel-runtime": "^6.22.0"
442
+ }
443
+ },
444
+ "babel-plugin-transform-es2015-block-scoped-functions": {
445
+ "version": "6.22.0",
446
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
447
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
448
+ "dev": true,
449
+ "requires": {
450
+ "babel-runtime": "^6.22.0"
451
+ }
452
+ },
453
+ "babel-plugin-transform-es2015-block-scoping": {
454
+ "version": "6.26.0",
455
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
456
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
457
+ "dev": true,
458
+ "requires": {
459
+ "babel-runtime": "^6.26.0",
460
+ "babel-template": "^6.26.0",
461
+ "babel-traverse": "^6.26.0",
462
+ "babel-types": "^6.26.0",
463
+ "lodash": "^4.17.4"
464
+ }
465
+ },
466
+ "babel-plugin-transform-es2015-classes": {
467
+ "version": "6.24.1",
468
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
469
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
470
+ "dev": true,
471
+ "requires": {
472
+ "babel-helper-define-map": "^6.24.1",
473
+ "babel-helper-function-name": "^6.24.1",
474
+ "babel-helper-optimise-call-expression": "^6.24.1",
475
+ "babel-helper-replace-supers": "^6.24.1",
476
+ "babel-messages": "^6.23.0",
477
+ "babel-runtime": "^6.22.0",
478
+ "babel-template": "^6.24.1",
479
+ "babel-traverse": "^6.24.1",
480
+ "babel-types": "^6.24.1"
481
+ }
482
+ },
483
+ "babel-plugin-transform-es2015-computed-properties": {
484
+ "version": "6.24.1",
485
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
486
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
487
+ "dev": true,
488
+ "requires": {
489
+ "babel-runtime": "^6.22.0",
490
+ "babel-template": "^6.24.1"
491
+ }
492
+ },
493
+ "babel-plugin-transform-es2015-destructuring": {
494
+ "version": "6.23.0",
495
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
496
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
497
+ "dev": true,
498
+ "requires": {
499
+ "babel-runtime": "^6.22.0"
500
+ }
501
+ },
502
+ "babel-plugin-transform-es2015-duplicate-keys": {
503
+ "version": "6.24.1",
504
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
505
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
506
+ "dev": true,
507
+ "requires": {
508
+ "babel-runtime": "^6.22.0",
509
+ "babel-types": "^6.24.1"
510
+ }
511
+ },
512
+ "babel-plugin-transform-es2015-for-of": {
513
+ "version": "6.23.0",
514
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
515
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
516
+ "dev": true,
517
+ "requires": {
518
+ "babel-runtime": "^6.22.0"
519
+ }
520
+ },
521
+ "babel-plugin-transform-es2015-function-name": {
522
+ "version": "6.24.1",
523
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
524
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
525
+ "dev": true,
526
+ "requires": {
527
+ "babel-helper-function-name": "^6.24.1",
528
+ "babel-runtime": "^6.22.0",
529
+ "babel-types": "^6.24.1"
530
+ }
531
+ },
532
+ "babel-plugin-transform-es2015-literals": {
533
+ "version": "6.22.0",
534
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
535
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
536
+ "dev": true,
537
+ "requires": {
538
+ "babel-runtime": "^6.22.0"
539
+ }
540
+ },
541
+ "babel-plugin-transform-es2015-modules-amd": {
542
+ "version": "6.24.1",
543
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
544
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
545
+ "dev": true,
546
+ "requires": {
547
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
548
+ "babel-runtime": "^6.22.0",
549
+ "babel-template": "^6.24.1"
550
+ }
551
+ },
552
+ "babel-plugin-transform-es2015-modules-commonjs": {
553
+ "version": "6.26.2",
554
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
555
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
556
+ "dev": true,
557
+ "requires": {
558
+ "babel-plugin-transform-strict-mode": "^6.24.1",
559
+ "babel-runtime": "^6.26.0",
560
+ "babel-template": "^6.26.0",
561
+ "babel-types": "^6.26.0"
562
+ }
563
+ },
564
+ "babel-plugin-transform-es2015-modules-systemjs": {
565
+ "version": "6.24.1",
566
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
567
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
568
+ "dev": true,
569
+ "requires": {
570
+ "babel-helper-hoist-variables": "^6.24.1",
571
+ "babel-runtime": "^6.22.0",
572
+ "babel-template": "^6.24.1"
573
+ }
574
+ },
575
+ "babel-plugin-transform-es2015-modules-umd": {
576
+ "version": "6.24.1",
577
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
578
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
579
+ "dev": true,
580
+ "requires": {
581
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
582
+ "babel-runtime": "^6.22.0",
583
+ "babel-template": "^6.24.1"
584
+ }
585
+ },
586
+ "babel-plugin-transform-es2015-object-super": {
587
+ "version": "6.24.1",
588
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
589
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
590
+ "dev": true,
591
+ "requires": {
592
+ "babel-helper-replace-supers": "^6.24.1",
593
+ "babel-runtime": "^6.22.0"
594
+ }
595
+ },
596
+ "babel-plugin-transform-es2015-parameters": {
597
+ "version": "6.24.1",
598
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
599
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
600
+ "dev": true,
601
+ "requires": {
602
+ "babel-helper-call-delegate": "^6.24.1",
603
+ "babel-helper-get-function-arity": "^6.24.1",
604
+ "babel-runtime": "^6.22.0",
605
+ "babel-template": "^6.24.1",
606
+ "babel-traverse": "^6.24.1",
607
+ "babel-types": "^6.24.1"
608
+ }
609
+ },
610
+ "babel-plugin-transform-es2015-shorthand-properties": {
611
+ "version": "6.24.1",
612
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
613
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
614
+ "dev": true,
615
+ "requires": {
616
+ "babel-runtime": "^6.22.0",
617
+ "babel-types": "^6.24.1"
618
+ }
619
+ },
620
+ "babel-plugin-transform-es2015-spread": {
621
+ "version": "6.22.0",
622
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
623
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
624
+ "dev": true,
625
+ "requires": {
626
+ "babel-runtime": "^6.22.0"
627
+ }
628
+ },
629
+ "babel-plugin-transform-es2015-sticky-regex": {
630
+ "version": "6.24.1",
631
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
632
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
633
+ "dev": true,
634
+ "requires": {
635
+ "babel-helper-regex": "^6.24.1",
636
+ "babel-runtime": "^6.22.0",
637
+ "babel-types": "^6.24.1"
638
+ }
639
+ },
640
+ "babel-plugin-transform-es2015-template-literals": {
641
+ "version": "6.22.0",
642
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
643
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
644
+ "dev": true,
645
+ "requires": {
646
+ "babel-runtime": "^6.22.0"
647
+ }
648
+ },
649
+ "babel-plugin-transform-es2015-typeof-symbol": {
650
+ "version": "6.23.0",
651
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
652
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
653
+ "dev": true,
654
+ "requires": {
655
+ "babel-runtime": "^6.22.0"
656
+ }
657
+ },
658
+ "babel-plugin-transform-es2015-unicode-regex": {
659
+ "version": "6.24.1",
660
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
661
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
662
+ "dev": true,
663
+ "requires": {
664
+ "babel-helper-regex": "^6.24.1",
665
+ "babel-runtime": "^6.22.0",
666
+ "regexpu-core": "^2.0.0"
667
+ }
668
+ },
669
+ "babel-plugin-transform-exponentiation-operator": {
670
+ "version": "6.24.1",
671
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
672
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
673
+ "dev": true,
674
+ "requires": {
675
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
676
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
677
+ "babel-runtime": "^6.22.0"
678
+ }
679
+ },
680
+ "babel-plugin-transform-react-jsx": {
681
+ "version": "6.24.1",
682
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
683
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
684
+ "dev": true,
685
+ "requires": {
686
+ "babel-helper-builder-react-jsx": "^6.24.1",
687
+ "babel-plugin-syntax-jsx": "^6.8.0",
688
+ "babel-runtime": "^6.22.0"
689
+ }
690
+ },
691
+ "babel-plugin-transform-regenerator": {
692
+ "version": "6.26.0",
693
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
694
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
695
+ "dev": true,
696
+ "requires": {
697
+ "regenerator-transform": "^0.10.0"
698
+ }
699
+ },
700
+ "babel-plugin-transform-strict-mode": {
701
+ "version": "6.24.1",
702
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
703
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
704
+ "dev": true,
705
+ "requires": {
706
+ "babel-runtime": "^6.22.0",
707
+ "babel-types": "^6.24.1"
708
+ }
709
+ },
710
+ "babel-preset-env": {
711
+ "version": "1.7.0",
712
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
713
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
714
+ "dev": true,
715
+ "requires": {
716
+ "babel-plugin-check-es2015-constants": "^6.22.0",
717
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
718
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
719
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
720
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
721
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
722
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
723
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
724
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
725
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
726
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
727
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
728
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
729
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
730
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
731
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
732
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
733
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
734
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
735
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
736
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
737
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
738
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
739
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
740
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
741
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
742
+ "babel-plugin-transform-regenerator": "^6.22.0",
743
+ "browserslist": "^3.2.6",
744
+ "invariant": "^2.2.2",
745
+ "semver": "^5.3.0"
746
+ }
747
+ },
748
+ "babel-register": {
749
+ "version": "6.26.0",
750
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
751
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
752
+ "dev": true,
753
+ "requires": {
754
+ "babel-core": "^6.26.0",
755
+ "babel-runtime": "^6.26.0",
756
+ "core-js": "^2.5.0",
757
+ "home-or-tmp": "^2.0.0",
758
+ "lodash": "^4.17.4",
759
+ "mkdirp": "^0.5.1",
760
+ "source-map-support": "^0.4.15"
761
+ }
762
+ },
763
+ "babel-runtime": {
764
+ "version": "6.26.0",
765
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
766
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
767
+ "dev": true,
768
+ "requires": {
769
+ "core-js": "^2.4.0",
770
+ "regenerator-runtime": "^0.11.0"
771
+ }
772
+ },
773
+ "babel-template": {
774
+ "version": "6.26.0",
775
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
776
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
777
+ "dev": true,
778
+ "requires": {
779
+ "babel-runtime": "^6.26.0",
780
+ "babel-traverse": "^6.26.0",
781
+ "babel-types": "^6.26.0",
782
+ "babylon": "^6.18.0",
783
+ "lodash": "^4.17.4"
784
+ }
785
+ },
786
+ "babel-traverse": {
787
+ "version": "6.26.0",
788
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
789
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
790
+ "dev": true,
791
+ "requires": {
792
+ "babel-code-frame": "^6.26.0",
793
+ "babel-messages": "^6.23.0",
794
+ "babel-runtime": "^6.26.0",
795
+ "babel-types": "^6.26.0",
796
+ "babylon": "^6.18.0",
797
+ "debug": "^2.6.8",
798
+ "globals": "^9.18.0",
799
+ "invariant": "^2.2.2",
800
+ "lodash": "^4.17.4"
801
+ }
802
+ },
803
+ "babel-types": {
804
+ "version": "6.26.0",
805
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
806
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
807
+ "dev": true,
808
+ "requires": {
809
+ "babel-runtime": "^6.26.0",
810
+ "esutils": "^2.0.2",
811
+ "lodash": "^4.17.4",
812
+ "to-fast-properties": "^1.0.3"
813
+ }
814
+ },
815
+ "babylon": {
816
+ "version": "6.18.0",
817
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
818
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
819
+ "dev": true
820
+ },
821
+ "balanced-match": {
822
+ "version": "1.0.0",
823
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
824
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
825
+ "dev": true
826
+ },
827
+ "base": {
828
+ "version": "0.11.2",
829
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
830
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
831
+ "dev": true,
832
+ "requires": {
833
+ "cache-base": "^1.0.1",
834
+ "class-utils": "^0.3.5",
835
+ "component-emitter": "^1.2.1",
836
+ "define-property": "^1.0.0",
837
+ "isobject": "^3.0.1",
838
+ "mixin-deep": "^1.2.0",
839
+ "pascalcase": "^0.1.1"
840
+ },
841
+ "dependencies": {
842
+ "define-property": {
843
+ "version": "1.0.0",
844
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
845
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
846
+ "dev": true,
847
+ "requires": {
848
+ "is-descriptor": "^1.0.0"
849
+ }
850
+ },
851
+ "is-accessor-descriptor": {
852
+ "version": "1.0.0",
853
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
854
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
855
+ "dev": true,
856
+ "requires": {
857
+ "kind-of": "^6.0.0"
858
+ }
859
+ },
860
+ "is-data-descriptor": {
861
+ "version": "1.0.0",
862
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
863
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
864
+ "dev": true,
865
+ "requires": {
866
+ "kind-of": "^6.0.0"
867
+ }
868
+ },
869
+ "is-descriptor": {
870
+ "version": "1.0.2",
871
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
872
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
873
+ "dev": true,
874
+ "requires": {
875
+ "is-accessor-descriptor": "^1.0.0",
876
+ "is-data-descriptor": "^1.0.0",
877
+ "kind-of": "^6.0.2"
878
+ }
879
+ },
880
+ "kind-of": {
881
+ "version": "6.0.2",
882
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
883
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
884
+ "dev": true
885
+ }
886
+ }
887
+ },
888
+ "base64-js": {
889
+ "version": "1.3.0",
890
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
891
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
892
+ "dev": true
893
+ },
894
+ "big.js": {
895
+ "version": "3.2.0",
896
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
897
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
898
+ "dev": true
899
+ },
900
+ "binary-extensions": {
901
+ "version": "1.12.0",
902
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
903
+ "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
904
+ "dev": true
905
+ },
906
+ "bn.js": {
907
+ "version": "4.11.8",
908
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
909
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
910
+ "dev": true
911
+ },
912
+ "brace-expansion": {
913
+ "version": "1.1.11",
914
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
915
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
916
+ "dev": true,
917
+ "requires": {
918
+ "balanced-match": "^1.0.0",
919
+ "concat-map": "0.0.1"
920
+ }
921
+ },
922
+ "braces": {
923
+ "version": "2.3.2",
924
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
925
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
926
+ "dev": true,
927
+ "requires": {
928
+ "arr-flatten": "^1.1.0",
929
+ "array-unique": "^0.3.2",
930
+ "extend-shallow": "^2.0.1",
931
+ "fill-range": "^4.0.0",
932
+ "isobject": "^3.0.1",
933
+ "repeat-element": "^1.1.2",
934
+ "snapdragon": "^0.8.1",
935
+ "snapdragon-node": "^2.0.1",
936
+ "split-string": "^3.0.2",
937
+ "to-regex": "^3.0.1"
938
+ },
939
+ "dependencies": {
940
+ "extend-shallow": {
941
+ "version": "2.0.1",
942
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
943
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
944
+ "dev": true,
945
+ "requires": {
946
+ "is-extendable": "^0.1.0"
947
+ }
948
+ }
949
+ }
950
+ },
951
+ "brorand": {
952
+ "version": "1.1.0",
953
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
954
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
955
+ "dev": true
956
+ },
957
+ "browserify-aes": {
958
+ "version": "1.2.0",
959
+ "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
960
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
961
+ "dev": true,
962
+ "requires": {
963
+ "buffer-xor": "^1.0.3",
964
+ "cipher-base": "^1.0.0",
965
+ "create-hash": "^1.1.0",
966
+ "evp_bytestokey": "^1.0.3",
967
+ "inherits": "^2.0.1",
968
+ "safe-buffer": "^5.0.1"
969
+ }
970
+ },
971
+ "browserify-cipher": {
972
+ "version": "1.0.1",
973
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
974
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
975
+ "dev": true,
976
+ "requires": {
977
+ "browserify-aes": "^1.0.4",
978
+ "browserify-des": "^1.0.0",
979
+ "evp_bytestokey": "^1.0.0"
980
+ }
981
+ },
982
+ "browserify-des": {
983
+ "version": "1.0.2",
984
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
985
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
986
+ "dev": true,
987
+ "requires": {
988
+ "cipher-base": "^1.0.1",
989
+ "des.js": "^1.0.0",
990
+ "inherits": "^2.0.1",
991
+ "safe-buffer": "^5.1.2"
992
+ }
993
+ },
994
+ "browserify-rsa": {
995
+ "version": "4.0.1",
996
+ "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
997
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
998
+ "dev": true,
999
+ "requires": {
1000
+ "bn.js": "^4.1.0",
1001
+ "randombytes": "^2.0.1"
1002
+ }
1003
+ },
1004
+ "browserify-sign": {
1005
+ "version": "4.0.4",
1006
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
1007
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
1008
+ "dev": true,
1009
+ "requires": {
1010
+ "bn.js": "^4.1.1",
1011
+ "browserify-rsa": "^4.0.0",
1012
+ "create-hash": "^1.1.0",
1013
+ "create-hmac": "^1.1.2",
1014
+ "elliptic": "^6.0.0",
1015
+ "inherits": "^2.0.1",
1016
+ "parse-asn1": "^5.0.0"
1017
+ }
1018
+ },
1019
+ "browserify-zlib": {
1020
+ "version": "0.2.0",
1021
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
1022
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
1023
+ "dev": true,
1024
+ "requires": {
1025
+ "pako": "~1.0.5"
1026
+ }
1027
+ },
1028
+ "browserslist": {
1029
+ "version": "3.2.8",
1030
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
1031
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
1032
+ "dev": true,
1033
+ "requires": {
1034
+ "caniuse-lite": "^1.0.30000844",
1035
+ "electron-to-chromium": "^1.3.47"
1036
+ }
1037
+ },
1038
+ "buffer": {
1039
+ "version": "4.9.1",
1040
+ "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
1041
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
1042
+ "dev": true,
1043
+ "requires": {
1044
+ "base64-js": "^1.0.2",
1045
+ "ieee754": "^1.1.4",
1046
+ "isarray": "^1.0.0"
1047
+ }
1048
+ },
1049
+ "buffer-xor": {
1050
+ "version": "1.0.3",
1051
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
1052
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
1053
+ "dev": true
1054
+ },
1055
+ "builtin-modules": {
1056
+ "version": "1.1.1",
1057
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1058
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1059
+ "dev": true
1060
+ },
1061
+ "builtin-status-codes": {
1062
+ "version": "3.0.0",
1063
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
1064
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
1065
+ "dev": true
1066
+ },
1067
+ "cache-base": {
1068
+ "version": "1.0.1",
1069
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
1070
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
1071
+ "dev": true,
1072
+ "requires": {
1073
+ "collection-visit": "^1.0.0",
1074
+ "component-emitter": "^1.2.1",
1075
+ "get-value": "^2.0.6",
1076
+ "has-value": "^1.0.0",
1077
+ "isobject": "^3.0.1",
1078
+ "set-value": "^2.0.0",
1079
+ "to-object-path": "^0.3.0",
1080
+ "union-value": "^1.0.0",
1081
+ "unset-value": "^1.0.0"
1082
+ }
1083
+ },
1084
+ "camelcase": {
1085
+ "version": "1.2.1",
1086
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
1087
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
1088
+ "dev": true
1089
+ },
1090
+ "caniuse-lite": {
1091
+ "version": "1.0.30000910",
1092
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000910.tgz",
1093
+ "integrity": "sha512-u/nxtHGAzCGZzIxt3dA/tpSPOcirBZFWKwz1EPz4aaupnBI2XR0Rbr74g0zc6Hzy41OEM4uMoZ38k56TpYAWjQ==",
1094
+ "dev": true
1095
+ },
1096
+ "center-align": {
1097
+ "version": "0.1.3",
1098
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
1099
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
1100
+ "dev": true,
1101
+ "requires": {
1102
+ "align-text": "^0.1.3",
1103
+ "lazy-cache": "^1.0.3"
1104
+ }
1105
+ },
1106
+ "chalk": {
1107
+ "version": "1.1.3",
1108
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1109
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1110
+ "dev": true,
1111
+ "requires": {
1112
+ "ansi-styles": "^2.2.1",
1113
+ "escape-string-regexp": "^1.0.2",
1114
+ "has-ansi": "^2.0.0",
1115
+ "strip-ansi": "^3.0.0",
1116
+ "supports-color": "^2.0.0"
1117
+ }
1118
+ },
1119
+ "chokidar": {
1120
+ "version": "2.0.4",
1121
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
1122
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
1123
+ "dev": true,
1124
+ "requires": {
1125
+ "anymatch": "^2.0.0",
1126
+ "async-each": "^1.0.0",
1127
+ "braces": "^2.3.0",
1128
+ "fsevents": "^1.2.2",
1129
+ "glob-parent": "^3.1.0",
1130
+ "inherits": "^2.0.1",
1131
+ "is-binary-path": "^1.0.0",
1132
+ "is-glob": "^4.0.0",
1133
+ "lodash.debounce": "^4.0.8",
1134
+ "normalize-path": "^2.1.1",
1135
+ "path-is-absolute": "^1.0.0",
1136
+ "readdirp": "^2.0.0",
1137
+ "upath": "^1.0.5"
1138
+ }
1139
+ },
1140
+ "cipher-base": {
1141
+ "version": "1.0.4",
1142
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
1143
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
1144
+ "dev": true,
1145
+ "requires": {
1146
+ "inherits": "^2.0.1",
1147
+ "safe-buffer": "^5.0.1"
1148
+ }
1149
+ },
1150
+ "class-utils": {
1151
+ "version": "0.3.6",
1152
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
1153
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
1154
+ "dev": true,
1155
+ "requires": {
1156
+ "arr-union": "^3.1.0",
1157
+ "define-property": "^0.2.5",
1158
+ "isobject": "^3.0.0",
1159
+ "static-extend": "^0.1.1"
1160
+ },
1161
+ "dependencies": {
1162
+ "define-property": {
1163
+ "version": "0.2.5",
1164
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1165
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1166
+ "dev": true,
1167
+ "requires": {
1168
+ "is-descriptor": "^0.1.0"
1169
+ }
1170
+ }
1171
+ }
1172
+ },
1173
+ "cliui": {
1174
+ "version": "2.1.0",
1175
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
1176
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
1177
+ "dev": true,
1178
+ "requires": {
1179
+ "center-align": "^0.1.1",
1180
+ "right-align": "^0.1.1",
1181
+ "wordwrap": "0.0.2"
1182
+ }
1183
+ },
1184
+ "code-point-at": {
1185
+ "version": "1.1.0",
1186
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
1187
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
1188
+ "dev": true
1189
+ },
1190
+ "collection-visit": {
1191
+ "version": "1.0.0",
1192
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
1193
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
1194
+ "dev": true,
1195
+ "requires": {
1196
+ "map-visit": "^1.0.0",
1197
+ "object-visit": "^1.0.0"
1198
+ }
1199
+ },
1200
+ "color-convert": {
1201
+ "version": "1.9.3",
1202
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1203
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1204
+ "dev": true,
1205
+ "requires": {
1206
+ "color-name": "1.1.3"
1207
+ }
1208
+ },
1209
+ "color-name": {
1210
+ "version": "1.1.3",
1211
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1212
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1213
+ "dev": true
1214
+ },
1215
+ "commondir": {
1216
+ "version": "1.0.1",
1217
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1218
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
1219
+ "dev": true
1220
+ },
1221
+ "component-emitter": {
1222
+ "version": "1.2.1",
1223
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
1224
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
1225
+ "dev": true
1226
+ },
1227
+ "concat-map": {
1228
+ "version": "0.0.1",
1229
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1230
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1231
+ "dev": true
1232
+ },
1233
+ "console-browserify": {
1234
+ "version": "1.1.0",
1235
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
1236
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
1237
+ "dev": true,
1238
+ "requires": {
1239
+ "date-now": "^0.1.4"
1240
+ }
1241
+ },
1242
+ "constants-browserify": {
1243
+ "version": "1.0.0",
1244
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
1245
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
1246
+ "dev": true
1247
+ },
1248
+ "convert-source-map": {
1249
+ "version": "1.6.0",
1250
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
1251
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
1252
+ "dev": true,
1253
+ "requires": {
1254
+ "safe-buffer": "~5.1.1"
1255
+ }
1256
+ },
1257
+ "copy-descriptor": {
1258
+ "version": "0.1.1",
1259
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
1260
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
1261
+ "dev": true
1262
+ },
1263
+ "core-js": {
1264
+ "version": "2.5.7",
1265
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
1266
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
1267
+ "dev": true
1268
+ },
1269
+ "core-util-is": {
1270
+ "version": "1.0.2",
1271
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1272
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
1273
+ "dev": true
1274
+ },
1275
+ "create-ecdh": {
1276
+ "version": "4.0.3",
1277
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
1278
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
1279
+ "dev": true,
1280
+ "requires": {
1281
+ "bn.js": "^4.1.0",
1282
+ "elliptic": "^6.0.0"
1283
+ }
1284
+ },
1285
+ "create-hash": {
1286
+ "version": "1.2.0",
1287
+ "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
1288
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
1289
+ "dev": true,
1290
+ "requires": {
1291
+ "cipher-base": "^1.0.1",
1292
+ "inherits": "^2.0.1",
1293
+ "md5.js": "^1.3.4",
1294
+ "ripemd160": "^2.0.1",
1295
+ "sha.js": "^2.4.0"
1296
+ }
1297
+ },
1298
+ "create-hmac": {
1299
+ "version": "1.1.7",
1300
+ "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
1301
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
1302
+ "dev": true,
1303
+ "requires": {
1304
+ "cipher-base": "^1.0.3",
1305
+ "create-hash": "^1.1.0",
1306
+ "inherits": "^2.0.1",
1307
+ "ripemd160": "^2.0.0",
1308
+ "safe-buffer": "^5.0.1",
1309
+ "sha.js": "^2.4.8"
1310
+ }
1311
+ },
1312
+ "cross-env": {
1313
+ "version": "5.2.0",
1314
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
1315
+ "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
1316
+ "dev": true,
1317
+ "requires": {
1318
+ "cross-spawn": "^6.0.5",
1319
+ "is-windows": "^1.0.0"
1320
+ }
1321
+ },
1322
+ "cross-spawn": {
1323
+ "version": "6.0.5",
1324
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1325
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1326
+ "dev": true,
1327
+ "requires": {
1328
+ "nice-try": "^1.0.4",
1329
+ "path-key": "^2.0.1",
1330
+ "semver": "^5.5.0",
1331
+ "shebang-command": "^1.2.0",
1332
+ "which": "^1.2.9"
1333
+ }
1334
+ },
1335
+ "crypto-browserify": {
1336
+ "version": "3.12.0",
1337
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
1338
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
1339
+ "dev": true,
1340
+ "requires": {
1341
+ "browserify-cipher": "^1.0.0",
1342
+ "browserify-sign": "^4.0.0",
1343
+ "create-ecdh": "^4.0.0",
1344
+ "create-hash": "^1.1.0",
1345
+ "create-hmac": "^1.1.0",
1346
+ "diffie-hellman": "^5.0.0",
1347
+ "inherits": "^2.0.1",
1348
+ "pbkdf2": "^3.0.3",
1349
+ "public-encrypt": "^4.0.0",
1350
+ "randombytes": "^2.0.0",
1351
+ "randomfill": "^1.0.3"
1352
+ }
1353
+ },
1354
+ "d": {
1355
+ "version": "1.0.0",
1356
+ "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
1357
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
1358
+ "dev": true,
1359
+ "requires": {
1360
+ "es5-ext": "^0.10.9"
1361
+ }
1362
+ },
1363
+ "date-now": {
1364
+ "version": "0.1.4",
1365
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
1366
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
1367
+ "dev": true
1368
+ },
1369
+ "debug": {
1370
+ "version": "2.6.9",
1371
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1372
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1373
+ "dev": true,
1374
+ "requires": {
1375
+ "ms": "2.0.0"
1376
+ }
1377
+ },
1378
+ "decamelize": {
1379
+ "version": "1.2.0",
1380
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1381
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
1382
+ "dev": true
1383
+ },
1384
+ "decode-uri-component": {
1385
+ "version": "0.2.0",
1386
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
1387
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
1388
+ "dev": true
1389
+ },
1390
+ "define-property": {
1391
+ "version": "2.0.2",
1392
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
1393
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
1394
+ "dev": true,
1395
+ "requires": {
1396
+ "is-descriptor": "^1.0.2",
1397
+ "isobject": "^3.0.1"
1398
+ },
1399
+ "dependencies": {
1400
+ "is-accessor-descriptor": {
1401
+ "version": "1.0.0",
1402
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1403
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1404
+ "dev": true,
1405
+ "requires": {
1406
+ "kind-of": "^6.0.0"
1407
+ }
1408
+ },
1409
+ "is-data-descriptor": {
1410
+ "version": "1.0.0",
1411
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1412
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1413
+ "dev": true,
1414
+ "requires": {
1415
+ "kind-of": "^6.0.0"
1416
+ }
1417
+ },
1418
+ "is-descriptor": {
1419
+ "version": "1.0.2",
1420
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1421
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1422
+ "dev": true,
1423
+ "requires": {
1424
+ "is-accessor-descriptor": "^1.0.0",
1425
+ "is-data-descriptor": "^1.0.0",
1426
+ "kind-of": "^6.0.2"
1427
+ }
1428
+ },
1429
+ "kind-of": {
1430
+ "version": "6.0.2",
1431
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1432
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1433
+ "dev": true
1434
+ }
1435
+ }
1436
+ },
1437
+ "des.js": {
1438
+ "version": "1.0.0",
1439
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
1440
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
1441
+ "dev": true,
1442
+ "requires": {
1443
+ "inherits": "^2.0.1",
1444
+ "minimalistic-assert": "^1.0.0"
1445
+ }
1446
+ },
1447
+ "detect-indent": {
1448
+ "version": "4.0.0",
1449
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
1450
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
1451
+ "dev": true,
1452
+ "requires": {
1453
+ "repeating": "^2.0.0"
1454
+ }
1455
+ },
1456
+ "diffie-hellman": {
1457
+ "version": "5.0.3",
1458
+ "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
1459
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
1460
+ "dev": true,
1461
+ "requires": {
1462
+ "bn.js": "^4.1.0",
1463
+ "miller-rabin": "^4.0.0",
1464
+ "randombytes": "^2.0.0"
1465
+ }
1466
+ },
1467
+ "domain-browser": {
1468
+ "version": "1.2.0",
1469
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
1470
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
1471
+ "dev": true
1472
+ },
1473
+ "electron-to-chromium": {
1474
+ "version": "1.3.84",
1475
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz",
1476
+ "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==",
1477
+ "dev": true
1478
+ },
1479
+ "elliptic": {
1480
+ "version": "6.4.1",
1481
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
1482
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
1483
+ "dev": true,
1484
+ "requires": {
1485
+ "bn.js": "^4.4.0",
1486
+ "brorand": "^1.0.1",
1487
+ "hash.js": "^1.0.0",
1488
+ "hmac-drbg": "^1.0.0",
1489
+ "inherits": "^2.0.1",
1490
+ "minimalistic-assert": "^1.0.0",
1491
+ "minimalistic-crypto-utils": "^1.0.0"
1492
+ }
1493
+ },
1494
+ "emojis-list": {
1495
+ "version": "2.1.0",
1496
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
1497
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
1498
+ "dev": true
1499
+ },
1500
+ "enhanced-resolve": {
1501
+ "version": "3.4.1",
1502
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
1503
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
1504
+ "dev": true,
1505
+ "requires": {
1506
+ "graceful-fs": "^4.1.2",
1507
+ "memory-fs": "^0.4.0",
1508
+ "object-assign": "^4.0.1",
1509
+ "tapable": "^0.2.7"
1510
+ }
1511
+ },
1512
+ "errno": {
1513
+ "version": "0.1.7",
1514
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
1515
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
1516
+ "dev": true,
1517
+ "requires": {
1518
+ "prr": "~1.0.1"
1519
+ }
1520
+ },
1521
+ "error-ex": {
1522
+ "version": "1.3.2",
1523
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1524
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1525
+ "dev": true,
1526
+ "requires": {
1527
+ "is-arrayish": "^0.2.1"
1528
+ }
1529
+ },
1530
+ "es5-ext": {
1531
+ "version": "0.10.46",
1532
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
1533
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
1534
+ "dev": true,
1535
+ "requires": {
1536
+ "es6-iterator": "~2.0.3",
1537
+ "es6-symbol": "~3.1.1",
1538
+ "next-tick": "1"
1539
+ }
1540
+ },
1541
+ "es6-iterator": {
1542
+ "version": "2.0.3",
1543
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
1544
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
1545
+ "dev": true,
1546
+ "requires": {
1547
+ "d": "1",
1548
+ "es5-ext": "^0.10.35",
1549
+ "es6-symbol": "^3.1.1"
1550
+ }
1551
+ },
1552
+ "es6-map": {
1553
+ "version": "0.1.5",
1554
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
1555
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
1556
+ "dev": true,
1557
+ "requires": {
1558
+ "d": "1",
1559
+ "es5-ext": "~0.10.14",
1560
+ "es6-iterator": "~2.0.1",
1561
+ "es6-set": "~0.1.5",
1562
+ "es6-symbol": "~3.1.1",
1563
+ "event-emitter": "~0.3.5"
1564
+ }
1565
+ },
1566
+ "es6-set": {
1567
+ "version": "0.1.5",
1568
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
1569
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
1570
+ "dev": true,
1571
+ "requires": {
1572
+ "d": "1",
1573
+ "es5-ext": "~0.10.14",
1574
+ "es6-iterator": "~2.0.1",
1575
+ "es6-symbol": "3.1.1",
1576
+ "event-emitter": "~0.3.5"
1577
+ }
1578
+ },
1579
+ "es6-symbol": {
1580
+ "version": "3.1.1",
1581
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
1582
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
1583
+ "dev": true,
1584
+ "requires": {
1585
+ "d": "1",
1586
+ "es5-ext": "~0.10.14"
1587
+ }
1588
+ },
1589
+ "es6-weak-map": {
1590
+ "version": "2.0.2",
1591
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
1592
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
1593
+ "dev": true,
1594
+ "requires": {
1595
+ "d": "1",
1596
+ "es5-ext": "^0.10.14",
1597
+ "es6-iterator": "^2.0.1",
1598
+ "es6-symbol": "^3.1.1"
1599
+ }
1600
+ },
1601
+ "escape-string-regexp": {
1602
+ "version": "1.0.5",
1603
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1604
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1605
+ "dev": true
1606
+ },
1607
+ "escope": {
1608
+ "version": "3.6.0",
1609
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
1610
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
1611
+ "dev": true,
1612
+ "requires": {
1613
+ "es6-map": "^0.1.3",
1614
+ "es6-weak-map": "^2.0.1",
1615
+ "esrecurse": "^4.1.0",
1616
+ "estraverse": "^4.1.1"
1617
+ }
1618
+ },
1619
+ "esrecurse": {
1620
+ "version": "4.2.1",
1621
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
1622
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
1623
+ "dev": true,
1624
+ "requires": {
1625
+ "estraverse": "^4.1.0"
1626
+ }
1627
+ },
1628
+ "estraverse": {
1629
+ "version": "4.2.0",
1630
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
1631
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
1632
+ "dev": true
1633
+ },
1634
+ "esutils": {
1635
+ "version": "2.0.2",
1636
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
1637
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
1638
+ "dev": true
1639
+ },
1640
+ "event-emitter": {
1641
+ "version": "0.3.5",
1642
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
1643
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
1644
+ "dev": true,
1645
+ "requires": {
1646
+ "d": "1",
1647
+ "es5-ext": "~0.10.14"
1648
+ }
1649
+ },
1650
+ "events": {
1651
+ "version": "1.1.1",
1652
+ "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz",
1653
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
1654
+ "dev": true
1655
+ },
1656
+ "evp_bytestokey": {
1657
+ "version": "1.0.3",
1658
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
1659
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
1660
+ "dev": true,
1661
+ "requires": {
1662
+ "md5.js": "^1.3.4",
1663
+ "safe-buffer": "^5.1.1"
1664
+ }
1665
+ },
1666
+ "execa": {
1667
+ "version": "0.7.0",
1668
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
1669
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
1670
+ "dev": true,
1671
+ "requires": {
1672
+ "cross-spawn": "^5.0.1",
1673
+ "get-stream": "^3.0.0",
1674
+ "is-stream": "^1.1.0",
1675
+ "npm-run-path": "^2.0.0",
1676
+ "p-finally": "^1.0.0",
1677
+ "signal-exit": "^3.0.0",
1678
+ "strip-eof": "^1.0.0"
1679
+ },
1680
+ "dependencies": {
1681
+ "cross-spawn": {
1682
+ "version": "5.1.0",
1683
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
1684
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
1685
+ "dev": true,
1686
+ "requires": {
1687
+ "lru-cache": "^4.0.1",
1688
+ "shebang-command": "^1.2.0",
1689
+ "which": "^1.2.9"
1690
+ }
1691
+ }
1692
+ }
1693
+ },
1694
+ "expand-brackets": {
1695
+ "version": "2.1.4",
1696
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1697
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1698
+ "dev": true,
1699
+ "requires": {
1700
+ "debug": "^2.3.3",
1701
+ "define-property": "^0.2.5",
1702
+ "extend-shallow": "^2.0.1",
1703
+ "posix-character-classes": "^0.1.0",
1704
+ "regex-not": "^1.0.0",
1705
+ "snapdragon": "^0.8.1",
1706
+ "to-regex": "^3.0.1"
1707
+ },
1708
+ "dependencies": {
1709
+ "define-property": {
1710
+ "version": "0.2.5",
1711
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1712
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1713
+ "dev": true,
1714
+ "requires": {
1715
+ "is-descriptor": "^0.1.0"
1716
+ }
1717
+ },
1718
+ "extend-shallow": {
1719
+ "version": "2.0.1",
1720
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1721
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1722
+ "dev": true,
1723
+ "requires": {
1724
+ "is-extendable": "^0.1.0"
1725
+ }
1726
+ }
1727
+ }
1728
+ },
1729
+ "extend-shallow": {
1730
+ "version": "3.0.2",
1731
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1732
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1733
+ "dev": true,
1734
+ "requires": {
1735
+ "assign-symbols": "^1.0.0",
1736
+ "is-extendable": "^1.0.1"
1737
+ },
1738
+ "dependencies": {
1739
+ "is-extendable": {
1740
+ "version": "1.0.1",
1741
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1742
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1743
+ "dev": true,
1744
+ "requires": {
1745
+ "is-plain-object": "^2.0.4"
1746
+ }
1747
+ }
1748
+ }
1749
+ },
1750
+ "extglob": {
1751
+ "version": "2.0.4",
1752
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
1753
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
1754
+ "dev": true,
1755
+ "requires": {
1756
+ "array-unique": "^0.3.2",
1757
+ "define-property": "^1.0.0",
1758
+ "expand-brackets": "^2.1.4",
1759
+ "extend-shallow": "^2.0.1",
1760
+ "fragment-cache": "^0.2.1",
1761
+ "regex-not": "^1.0.0",
1762
+ "snapdragon": "^0.8.1",
1763
+ "to-regex": "^3.0.1"
1764
+ },
1765
+ "dependencies": {
1766
+ "define-property": {
1767
+ "version": "1.0.0",
1768
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1769
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1770
+ "dev": true,
1771
+ "requires": {
1772
+ "is-descriptor": "^1.0.0"
1773
+ }
1774
+ },
1775
+ "extend-shallow": {
1776
+ "version": "2.0.1",
1777
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1778
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1779
+ "dev": true,
1780
+ "requires": {
1781
+ "is-extendable": "^0.1.0"
1782
+ }
1783
+ },
1784
+ "is-accessor-descriptor": {
1785
+ "version": "1.0.0",
1786
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1787
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1788
+ "dev": true,
1789
+ "requires": {
1790
+ "kind-of": "^6.0.0"
1791
+ }
1792
+ },
1793
+ "is-data-descriptor": {
1794
+ "version": "1.0.0",
1795
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1796
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1797
+ "dev": true,
1798
+ "requires": {
1799
+ "kind-of": "^6.0.0"
1800
+ }
1801
+ },
1802
+ "is-descriptor": {
1803
+ "version": "1.0.2",
1804
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1805
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1806
+ "dev": true,
1807
+ "requires": {
1808
+ "is-accessor-descriptor": "^1.0.0",
1809
+ "is-data-descriptor": "^1.0.0",
1810
+ "kind-of": "^6.0.2"
1811
+ }
1812
+ },
1813
+ "kind-of": {
1814
+ "version": "6.0.2",
1815
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1816
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1817
+ "dev": true
1818
+ }
1819
+ }
1820
+ },
1821
+ "fast-deep-equal": {
1822
+ "version": "2.0.1",
1823
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
1824
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
1825
+ "dev": true
1826
+ },
1827
+ "fast-json-stable-stringify": {
1828
+ "version": "2.0.0",
1829
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
1830
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
1831
+ "dev": true
1832
+ },
1833
+ "fill-range": {
1834
+ "version": "4.0.0",
1835
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1836
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1837
+ "dev": true,
1838
+ "requires": {
1839
+ "extend-shallow": "^2.0.1",
1840
+ "is-number": "^3.0.0",
1841
+ "repeat-string": "^1.6.1",
1842
+ "to-regex-range": "^2.1.0"
1843
+ },
1844
+ "dependencies": {
1845
+ "extend-shallow": {
1846
+ "version": "2.0.1",
1847
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1848
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1849
+ "dev": true,
1850
+ "requires": {
1851
+ "is-extendable": "^0.1.0"
1852
+ }
1853
+ }
1854
+ }
1855
+ },
1856
+ "find-cache-dir": {
1857
+ "version": "1.0.0",
1858
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
1859
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
1860
+ "dev": true,
1861
+ "requires": {
1862
+ "commondir": "^1.0.1",
1863
+ "make-dir": "^1.0.0",
1864
+ "pkg-dir": "^2.0.0"
1865
+ }
1866
+ },
1867
+ "find-up": {
1868
+ "version": "2.1.0",
1869
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1870
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1871
+ "dev": true,
1872
+ "requires": {
1873
+ "locate-path": "^2.0.0"
1874
+ }
1875
+ },
1876
+ "for-in": {
1877
+ "version": "1.0.2",
1878
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1879
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1880
+ "dev": true
1881
+ },
1882
+ "fragment-cache": {
1883
+ "version": "0.2.1",
1884
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1885
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1886
+ "dev": true,
1887
+ "requires": {
1888
+ "map-cache": "^0.2.2"
1889
+ }
1890
+ },
1891
+ "fsevents": {
1892
+ "version": "1.2.4",
1893
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
1894
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
1895
+ "dev": true,
1896
+ "optional": true,
1897
+ "requires": {
1898
+ "nan": "^2.9.2",
1899
+ "node-pre-gyp": "^0.10.0"
1900
+ },
1901
+ "dependencies": {
1902
+ "abbrev": {
1903
+ "version": "1.1.1",
1904
+ "bundled": true,
1905
+ "dev": true,
1906
+ "optional": true
1907
+ },
1908
+ "ansi-regex": {
1909
+ "version": "2.1.1",
1910
+ "bundled": true,
1911
+ "dev": true
1912
+ },
1913
+ "aproba": {
1914
+ "version": "1.2.0",
1915
+ "bundled": true,
1916
+ "dev": true,
1917
+ "optional": true
1918
+ },
1919
+ "are-we-there-yet": {
1920
+ "version": "1.1.4",
1921
+ "bundled": true,
1922
+ "dev": true,
1923
+ "optional": true,
1924
+ "requires": {
1925
+ "delegates": "^1.0.0",
1926
+ "readable-stream": "^2.0.6"
1927
+ }
1928
+ },
1929
+ "balanced-match": {
1930
+ "version": "1.0.0",
1931
+ "bundled": true,
1932
+ "dev": true
1933
+ },
1934
+ "brace-expansion": {
1935
+ "version": "1.1.11",
1936
+ "bundled": true,
1937
+ "dev": true,
1938
+ "requires": {
1939
+ "balanced-match": "^1.0.0",
1940
+ "concat-map": "0.0.1"
1941
+ }
1942
+ },
1943
+ "chownr": {
1944
+ "version": "1.0.1",
1945
+ "bundled": true,
1946
+ "dev": true,
1947
+ "optional": true
1948
+ },
1949
+ "code-point-at": {
1950
+ "version": "1.1.0",
1951
+ "bundled": true,
1952
+ "dev": true
1953
+ },
1954
+ "concat-map": {
1955
+ "version": "0.0.1",
1956
+ "bundled": true,
1957
+ "dev": true
1958
+ },
1959
+ "console-control-strings": {
1960
+ "version": "1.1.0",
1961
+ "bundled": true,
1962
+ "dev": true
1963
+ },
1964
+ "core-util-is": {
1965
+ "version": "1.0.2",
1966
+ "bundled": true,
1967
+ "dev": true,
1968
+ "optional": true
1969
+ },
1970
+ "debug": {
1971
+ "version": "2.6.9",
1972
+ "bundled": true,
1973
+ "dev": true,
1974
+ "optional": true,
1975
+ "requires": {
1976
+ "ms": "2.0.0"
1977
+ }
1978
+ },
1979
+ "deep-extend": {
1980
+ "version": "0.5.1",
1981
+ "bundled": true,
1982
+ "dev": true,
1983
+ "optional": true
1984
+ },
1985
+ "delegates": {
1986
+ "version": "1.0.0",
1987
+ "bundled": true,
1988
+ "dev": true,
1989
+ "optional": true
1990
+ },
1991
+ "detect-libc": {
1992
+ "version": "1.0.3",
1993
+ "bundled": true,
1994
+ "dev": true,
1995
+ "optional": true
1996
+ },
1997
+ "fs-minipass": {
1998
+ "version": "1.2.5",
1999
+ "bundled": true,
2000
+ "dev": true,
2001
+ "optional": true,
2002
+ "requires": {
2003
+ "minipass": "^2.2.1"
2004
+ }
2005
+ },
2006
+ "fs.realpath": {
2007
+ "version": "1.0.0",
2008
+ "bundled": true,
2009
+ "dev": true,
2010
+ "optional": true
2011
+ },
2012
+ "gauge": {
2013
+ "version": "2.7.4",
2014
+ "bundled": true,
2015
+ "dev": true,
2016
+ "optional": true,
2017
+ "requires": {
2018
+ "aproba": "^1.0.3",
2019
+ "console-control-strings": "^1.0.0",
2020
+ "has-unicode": "^2.0.0",
2021
+ "object-assign": "^4.1.0",
2022
+ "signal-exit": "^3.0.0",
2023
+ "string-width": "^1.0.1",
2024
+ "strip-ansi": "^3.0.1",
2025
+ "wide-align": "^1.1.0"
2026
+ }
2027
+ },
2028
+ "glob": {
2029
+ "version": "7.1.2",
2030
+ "bundled": true,
2031
+ "dev": true,
2032
+ "optional": true,
2033
+ "requires": {
2034
+ "fs.realpath": "^1.0.0",
2035
+ "inflight": "^1.0.4",
2036
+ "inherits": "2",
2037
+ "minimatch": "^3.0.4",
2038
+ "once": "^1.3.0",
2039
+ "path-is-absolute": "^1.0.0"
2040
+ }
2041
+ },
2042
+ "has-unicode": {
2043
+ "version": "2.0.1",
2044
+ "bundled": true,
2045
+ "dev": true,
2046
+ "optional": true
2047
+ },
2048
+ "iconv-lite": {
2049
+ "version": "0.4.21",
2050
+ "bundled": true,
2051
+ "dev": true,
2052
+ "optional": true,
2053
+ "requires": {
2054
+ "safer-buffer": "^2.1.0"
2055
+ }
2056
+ },
2057
+ "ignore-walk": {
2058
+ "version": "3.0.1",
2059
+ "bundled": true,
2060
+ "dev": true,
2061
+ "optional": true,
2062
+ "requires": {
2063
+ "minimatch": "^3.0.4"
2064
+ }
2065
+ },
2066
+ "inflight": {
2067
+ "version": "1.0.6",
2068
+ "bundled": true,
2069
+ "dev": true,
2070
+ "optional": true,
2071
+ "requires": {
2072
+ "once": "^1.3.0",
2073
+ "wrappy": "1"
2074
+ }
2075
+ },
2076
+ "inherits": {
2077
+ "version": "2.0.3",
2078
+ "bundled": true,
2079
+ "dev": true
2080
+ },
2081
+ "ini": {
2082
+ "version": "1.3.5",
2083
+ "bundled": true,
2084
+ "dev": true,
2085
+ "optional": true
2086
+ },
2087
+ "is-fullwidth-code-point": {
2088
+ "version": "1.0.0",
2089
+ "bundled": true,
2090
+ "dev": true,
2091
+ "requires": {
2092
+ "number-is-nan": "^1.0.0"
2093
+ }
2094
+ },
2095
+ "isarray": {
2096
+ "version": "1.0.0",
2097
+ "bundled": true,
2098
+ "dev": true,
2099
+ "optional": true
2100
+ },
2101
+ "minimatch": {
2102
+ "version": "3.0.4",
2103
+ "bundled": true,
2104
+ "dev": true,
2105
+ "requires": {
2106
+ "brace-expansion": "^1.1.7"
2107
+ }
2108
+ },
2109
+ "minimist": {
2110
+ "version": "0.0.8",
2111
+ "bundled": true,
2112
+ "dev": true
2113
+ },
2114
+ "minipass": {
2115
+ "version": "2.2.4",
2116
+ "bundled": true,
2117
+ "dev": true,
2118
+ "requires": {
2119
+ "safe-buffer": "^5.1.1",
2120
+ "yallist": "^3.0.0"
2121
+ }
2122
+ },
2123
+ "minizlib": {
2124
+ "version": "1.1.0",
2125
+ "bundled": true,
2126
+ "dev": true,
2127
+ "optional": true,
2128
+ "requires": {
2129
+ "minipass": "^2.2.1"
2130
+ }
2131
+ },
2132
+ "mkdirp": {
2133
+ "version": "0.5.1",
2134
+ "bundled": true,
2135
+ "dev": true,
2136
+ "requires": {
2137
+ "minimist": "0.0.8"
2138
+ }
2139
+ },
2140
+ "ms": {
2141
+ "version": "2.0.0",
2142
+ "bundled": true,
2143
+ "dev": true,
2144
+ "optional": true
2145
+ },
2146
+ "needle": {
2147
+ "version": "2.2.0",
2148
+ "bundled": true,
2149
+ "dev": true,
2150
+ "optional": true,
2151
+ "requires": {
2152
+ "debug": "^2.1.2",
2153
+ "iconv-lite": "^0.4.4",
2154
+ "sax": "^1.2.4"
2155
+ }
2156
+ },
2157
+ "node-pre-gyp": {
2158
+ "version": "0.10.0",
2159
+ "bundled": true,
2160
+ "dev": true,
2161
+ "optional": true,
2162
+ "requires": {
2163
+ "detect-libc": "^1.0.2",
2164
+ "mkdirp": "^0.5.1",
2165
+ "needle": "^2.2.0",
2166
+ "nopt": "^4.0.1",
2167
+ "npm-packlist": "^1.1.6",
2168
+ "npmlog": "^4.0.2",
2169
+ "rc": "^1.1.7",
2170
+ "rimraf": "^2.6.1",
2171
+ "semver": "^5.3.0",
2172
+ "tar": "^4"
2173
+ }
2174
+ },
2175
+ "nopt": {
2176
+ "version": "4.0.1",
2177
+ "bundled": true,
2178
+ "dev": true,
2179
+ "optional": true,
2180
+ "requires": {
2181
+ "abbrev": "1",
2182
+ "osenv": "^0.1.4"
2183
+ }
2184
+ },
2185
+ "npm-bundled": {
2186
+ "version": "1.0.3",
2187
+ "bundled": true,
2188
+ "dev": true,
2189
+ "optional": true
2190
+ },
2191
+ "npm-packlist": {
2192
+ "version": "1.1.10",
2193
+ "bundled": true,
2194
+ "dev": true,
2195
+ "optional": true,
2196
+ "requires": {
2197
+ "ignore-walk": "^3.0.1",
2198
+ "npm-bundled": "^1.0.1"
2199
+ }
2200
+ },
2201
+ "npmlog": {
2202
+ "version": "4.1.2",
2203
+ "bundled": true,
2204
+ "dev": true,
2205
+ "optional": true,
2206
+ "requires": {
2207
+ "are-we-there-yet": "~1.1.2",
2208
+ "console-control-strings": "~1.1.0",
2209
+ "gauge": "~2.7.3",
2210
+ "set-blocking": "~2.0.0"
2211
+ }
2212
+ },
2213
+ "number-is-nan": {
2214
+ "version": "1.0.1",
2215
+ "bundled": true,
2216
+ "dev": true
2217
+ },
2218
+ "object-assign": {
2219
+ "version": "4.1.1",
2220
+ "bundled": true,
2221
+ "dev": true,
2222
+ "optional": true
2223
+ },
2224
+ "once": {
2225
+ "version": "1.4.0",
2226
+ "bundled": true,
2227
+ "dev": true,
2228
+ "requires": {
2229
+ "wrappy": "1"
2230
+ }
2231
+ },
2232
+ "os-homedir": {
2233
+ "version": "1.0.2",
2234
+ "bundled": true,
2235
+ "dev": true,
2236
+ "optional": true
2237
+ },
2238
+ "os-tmpdir": {
2239
+ "version": "1.0.2",
2240
+ "bundled": true,
2241
+ "dev": true,
2242
+ "optional": true
2243
+ },
2244
+ "osenv": {
2245
+ "version": "0.1.5",
2246
+ "bundled": true,
2247
+ "dev": true,
2248
+ "optional": true,
2249
+ "requires": {
2250
+ "os-homedir": "^1.0.0",
2251
+ "os-tmpdir": "^1.0.0"
2252
+ }
2253
+ },
2254
+ "path-is-absolute": {
2255
+ "version": "1.0.1",
2256
+ "bundled": true,
2257
+ "dev": true,
2258
+ "optional": true
2259
+ },
2260
+ "process-nextick-args": {
2261
+ "version": "2.0.0",
2262
+ "bundled": true,
2263
+ "dev": true,
2264
+ "optional": true
2265
+ },
2266
+ "rc": {
2267
+ "version": "1.2.7",
2268
+ "bundled": true,
2269
+ "dev": true,
2270
+ "optional": true,
2271
+ "requires": {
2272
+ "deep-extend": "^0.5.1",
2273
+ "ini": "~1.3.0",
2274
+ "minimist": "^1.2.0",
2275
+ "strip-json-comments": "~2.0.1"
2276
+ },
2277
+ "dependencies": {
2278
+ "minimist": {
2279
+ "version": "1.2.0",
2280
+ "bundled": true,
2281
+ "dev": true,
2282
+ "optional": true
2283
+ }
2284
+ }
2285
+ },
2286
+ "readable-stream": {
2287
+ "version": "2.3.6",
2288
+ "bundled": true,
2289
+ "dev": true,
2290
+ "optional": true,
2291
+ "requires": {
2292
+ "core-util-is": "~1.0.0",
2293
+ "inherits": "~2.0.3",
2294
+ "isarray": "~1.0.0",
2295
+ "process-nextick-args": "~2.0.0",
2296
+ "safe-buffer": "~5.1.1",
2297
+ "string_decoder": "~1.1.1",
2298
+ "util-deprecate": "~1.0.1"
2299
+ }
2300
+ },
2301
+ "rimraf": {
2302
+ "version": "2.6.2",
2303
+ "bundled": true,
2304
+ "dev": true,
2305
+ "optional": true,
2306
+ "requires": {
2307
+ "glob": "^7.0.5"
2308
+ }
2309
+ },
2310
+ "safe-buffer": {
2311
+ "version": "5.1.1",
2312
+ "bundled": true,
2313
+ "dev": true
2314
+ },
2315
+ "safer-buffer": {
2316
+ "version": "2.1.2",
2317
+ "bundled": true,
2318
+ "dev": true,
2319
+ "optional": true
2320
+ },
2321
+ "sax": {
2322
+ "version": "1.2.4",
2323
+ "bundled": true,
2324
+ "dev": true,
2325
+ "optional": true
2326
+ },
2327
+ "semver": {
2328
+ "version": "5.5.0",
2329
+ "bundled": true,
2330
+ "dev": true,
2331
+ "optional": true
2332
+ },
2333
+ "set-blocking": {
2334
+ "version": "2.0.0",
2335
+ "bundled": true,
2336
+ "dev": true,
2337
+ "optional": true
2338
+ },
2339
+ "signal-exit": {
2340
+ "version": "3.0.2",
2341
+ "bundled": true,
2342
+ "dev": true,
2343
+ "optional": true
2344
+ },
2345
+ "string-width": {
2346
+ "version": "1.0.2",
2347
+ "bundled": true,
2348
+ "dev": true,
2349
+ "requires": {
2350
+ "code-point-at": "^1.0.0",
2351
+ "is-fullwidth-code-point": "^1.0.0",
2352
+ "strip-ansi": "^3.0.0"
2353
+ }
2354
+ },
2355
+ "string_decoder": {
2356
+ "version": "1.1.1",
2357
+ "bundled": true,
2358
+ "dev": true,
2359
+ "optional": true,
2360
+ "requires": {
2361
+ "safe-buffer": "~5.1.0"
2362
+ }
2363
+ },
2364
+ "strip-ansi": {
2365
+ "version": "3.0.1",
2366
+ "bundled": true,
2367
+ "dev": true,
2368
+ "requires": {
2369
+ "ansi-regex": "^2.0.0"
2370
+ }
2371
+ },
2372
+ "strip-json-comments": {
2373
+ "version": "2.0.1",
2374
+ "bundled": true,
2375
+ "dev": true,
2376
+ "optional": true
2377
+ },
2378
+ "tar": {
2379
+ "version": "4.4.1",
2380
+ "bundled": true,
2381
+ "dev": true,
2382
+ "optional": true,
2383
+ "requires": {
2384
+ "chownr": "^1.0.1",
2385
+ "fs-minipass": "^1.2.5",
2386
+ "minipass": "^2.2.4",
2387
+ "minizlib": "^1.1.0",
2388
+ "mkdirp": "^0.5.0",
2389
+ "safe-buffer": "^5.1.1",
2390
+ "yallist": "^3.0.2"
2391
+ }
2392
+ },
2393
+ "util-deprecate": {
2394
+ "version": "1.0.2",
2395
+ "bundled": true,
2396
+ "dev": true,
2397
+ "optional": true
2398
+ },
2399
+ "wide-align": {
2400
+ "version": "1.1.2",
2401
+ "bundled": true,
2402
+ "dev": true,
2403
+ "optional": true,
2404
+ "requires": {
2405
+ "string-width": "^1.0.2"
2406
+ }
2407
+ },
2408
+ "wrappy": {
2409
+ "version": "1.0.2",
2410
+ "bundled": true,
2411
+ "dev": true
2412
+ },
2413
+ "yallist": {
2414
+ "version": "3.0.2",
2415
+ "bundled": true,
2416
+ "dev": true
2417
+ }
2418
+ }
2419
+ },
2420
+ "get-caller-file": {
2421
+ "version": "1.0.3",
2422
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
2423
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
2424
+ "dev": true
2425
+ },
2426
+ "get-stream": {
2427
+ "version": "3.0.0",
2428
+ "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
2429
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
2430
+ "dev": true
2431
+ },
2432
+ "get-value": {
2433
+ "version": "2.0.6",
2434
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2435
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
2436
+ "dev": true
2437
+ },
2438
+ "glob-parent": {
2439
+ "version": "3.1.0",
2440
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
2441
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
2442
+ "dev": true,
2443
+ "requires": {
2444
+ "is-glob": "^3.1.0",
2445
+ "path-dirname": "^1.0.0"
2446
+ },
2447
+ "dependencies": {
2448
+ "is-glob": {
2449
+ "version": "3.1.0",
2450
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2451
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2452
+ "dev": true,
2453
+ "requires": {
2454
+ "is-extglob": "^2.1.0"
2455
+ }
2456
+ }
2457
+ }
2458
+ },
2459
+ "global-modules-path": {
2460
+ "version": "2.3.0",
2461
+ "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz",
2462
+ "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==",
2463
+ "dev": true
2464
+ },
2465
+ "globals": {
2466
+ "version": "9.18.0",
2467
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
2468
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
2469
+ "dev": true
2470
+ },
2471
+ "graceful-fs": {
2472
+ "version": "4.1.15",
2473
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
2474
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
2475
+ "dev": true
2476
+ },
2477
+ "has-ansi": {
2478
+ "version": "2.0.0",
2479
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2480
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2481
+ "dev": true,
2482
+ "requires": {
2483
+ "ansi-regex": "^2.0.0"
2484
+ }
2485
+ },
2486
+ "has-flag": {
2487
+ "version": "2.0.0",
2488
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2489
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
2490
+ "dev": true
2491
+ },
2492
+ "has-value": {
2493
+ "version": "1.0.0",
2494
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2495
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2496
+ "dev": true,
2497
+ "requires": {
2498
+ "get-value": "^2.0.6",
2499
+ "has-values": "^1.0.0",
2500
+ "isobject": "^3.0.0"
2501
+ }
2502
+ },
2503
+ "has-values": {
2504
+ "version": "1.0.0",
2505
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2506
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2507
+ "dev": true,
2508
+ "requires": {
2509
+ "is-number": "^3.0.0",
2510
+ "kind-of": "^4.0.0"
2511
+ },
2512
+ "dependencies": {
2513
+ "kind-of": {
2514
+ "version": "4.0.0",
2515
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2516
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2517
+ "dev": true,
2518
+ "requires": {
2519
+ "is-buffer": "^1.1.5"
2520
+ }
2521
+ }
2522
+ }
2523
+ },
2524
+ "hash-base": {
2525
+ "version": "3.0.4",
2526
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
2527
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
2528
+ "dev": true,
2529
+ "requires": {
2530
+ "inherits": "^2.0.1",
2531
+ "safe-buffer": "^5.0.1"
2532
+ }
2533
+ },
2534
+ "hash.js": {
2535
+ "version": "1.1.5",
2536
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
2537
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
2538
+ "dev": true,
2539
+ "requires": {
2540
+ "inherits": "^2.0.3",
2541
+ "minimalistic-assert": "^1.0.1"
2542
+ }
2543
+ },
2544
+ "hmac-drbg": {
2545
+ "version": "1.0.1",
2546
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
2547
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
2548
+ "dev": true,
2549
+ "requires": {
2550
+ "hash.js": "^1.0.3",
2551
+ "minimalistic-assert": "^1.0.0",
2552
+ "minimalistic-crypto-utils": "^1.0.1"
2553
+ }
2554
+ },
2555
+ "home-or-tmp": {
2556
+ "version": "2.0.0",
2557
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
2558
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
2559
+ "dev": true,
2560
+ "requires": {
2561
+ "os-homedir": "^1.0.0",
2562
+ "os-tmpdir": "^1.0.1"
2563
+ }
2564
+ },
2565
+ "hosted-git-info": {
2566
+ "version": "2.7.1",
2567
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
2568
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
2569
+ "dev": true
2570
+ },
2571
+ "https-browserify": {
2572
+ "version": "1.0.0",
2573
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
2574
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
2575
+ "dev": true
2576
+ },
2577
+ "ieee754": {
2578
+ "version": "1.1.12",
2579
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
2580
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
2581
+ "dev": true
2582
+ },
2583
+ "import-local": {
2584
+ "version": "2.0.0",
2585
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
2586
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
2587
+ "dev": true,
2588
+ "requires": {
2589
+ "pkg-dir": "^3.0.0",
2590
+ "resolve-cwd": "^2.0.0"
2591
+ },
2592
+ "dependencies": {
2593
+ "find-up": {
2594
+ "version": "3.0.0",
2595
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
2596
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
2597
+ "dev": true,
2598
+ "requires": {
2599
+ "locate-path": "^3.0.0"
2600
+ }
2601
+ },
2602
+ "locate-path": {
2603
+ "version": "3.0.0",
2604
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
2605
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
2606
+ "dev": true,
2607
+ "requires": {
2608
+ "p-locate": "^3.0.0",
2609
+ "path-exists": "^3.0.0"
2610
+ }
2611
+ },
2612
+ "p-limit": {
2613
+ "version": "2.0.0",
2614
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
2615
+ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
2616
+ "dev": true,
2617
+ "requires": {
2618
+ "p-try": "^2.0.0"
2619
+ }
2620
+ },
2621
+ "p-locate": {
2622
+ "version": "3.0.0",
2623
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
2624
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
2625
+ "dev": true,
2626
+ "requires": {
2627
+ "p-limit": "^2.0.0"
2628
+ }
2629
+ },
2630
+ "p-try": {
2631
+ "version": "2.0.0",
2632
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
2633
+ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
2634
+ "dev": true
2635
+ },
2636
+ "pkg-dir": {
2637
+ "version": "3.0.0",
2638
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
2639
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
2640
+ "dev": true,
2641
+ "requires": {
2642
+ "find-up": "^3.0.0"
2643
+ }
2644
+ }
2645
+ }
2646
+ },
2647
+ "indexof": {
2648
+ "version": "0.0.1",
2649
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
2650
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
2651
+ "dev": true
2652
+ },
2653
+ "inherits": {
2654
+ "version": "2.0.3",
2655
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2656
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2657
+ "dev": true
2658
+ },
2659
+ "interpret": {
2660
+ "version": "1.1.0",
2661
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
2662
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
2663
+ "dev": true
2664
+ },
2665
+ "invariant": {
2666
+ "version": "2.2.4",
2667
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
2668
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
2669
+ "dev": true,
2670
+ "requires": {
2671
+ "loose-envify": "^1.0.0"
2672
+ }
2673
+ },
2674
+ "invert-kv": {
2675
+ "version": "1.0.0",
2676
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2677
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
2678
+ "dev": true
2679
+ },
2680
+ "is-accessor-descriptor": {
2681
+ "version": "0.1.6",
2682
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2683
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2684
+ "dev": true,
2685
+ "requires": {
2686
+ "kind-of": "^3.0.2"
2687
+ }
2688
+ },
2689
+ "is-arrayish": {
2690
+ "version": "0.2.1",
2691
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2692
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2693
+ "dev": true
2694
+ },
2695
+ "is-binary-path": {
2696
+ "version": "1.0.1",
2697
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2698
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2699
+ "dev": true,
2700
+ "requires": {
2701
+ "binary-extensions": "^1.0.0"
2702
+ }
2703
+ },
2704
+ "is-buffer": {
2705
+ "version": "1.1.6",
2706
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2707
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2708
+ "dev": true
2709
+ },
2710
+ "is-builtin-module": {
2711
+ "version": "1.0.0",
2712
+ "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2713
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2714
+ "dev": true,
2715
+ "requires": {
2716
+ "builtin-modules": "^1.0.0"
2717
+ }
2718
+ },
2719
+ "is-data-descriptor": {
2720
+ "version": "0.1.4",
2721
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2722
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2723
+ "dev": true,
2724
+ "requires": {
2725
+ "kind-of": "^3.0.2"
2726
+ }
2727
+ },
2728
+ "is-descriptor": {
2729
+ "version": "0.1.6",
2730
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2731
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2732
+ "dev": true,
2733
+ "requires": {
2734
+ "is-accessor-descriptor": "^0.1.6",
2735
+ "is-data-descriptor": "^0.1.4",
2736
+ "kind-of": "^5.0.0"
2737
+ },
2738
+ "dependencies": {
2739
+ "kind-of": {
2740
+ "version": "5.1.0",
2741
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2742
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2743
+ "dev": true
2744
+ }
2745
+ }
2746
+ },
2747
+ "is-extendable": {
2748
+ "version": "0.1.1",
2749
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2750
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2751
+ "dev": true
2752
+ },
2753
+ "is-extglob": {
2754
+ "version": "2.1.1",
2755
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2756
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2757
+ "dev": true
2758
+ },
2759
+ "is-finite": {
2760
+ "version": "1.0.2",
2761
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2762
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2763
+ "dev": true,
2764
+ "requires": {
2765
+ "number-is-nan": "^1.0.0"
2766
+ }
2767
+ },
2768
+ "is-fullwidth-code-point": {
2769
+ "version": "1.0.0",
2770
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2771
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2772
+ "dev": true,
2773
+ "requires": {
2774
+ "number-is-nan": "^1.0.0"
2775
+ }
2776
+ },
2777
+ "is-glob": {
2778
+ "version": "4.0.0",
2779
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
2780
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
2781
+ "dev": true,
2782
+ "requires": {
2783
+ "is-extglob": "^2.1.1"
2784
+ }
2785
+ },
2786
+ "is-number": {
2787
+ "version": "3.0.0",
2788
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2789
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2790
+ "dev": true,
2791
+ "requires": {
2792
+ "kind-of": "^3.0.2"
2793
+ }
2794
+ },
2795
+ "is-plain-object": {
2796
+ "version": "2.0.4",
2797
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2798
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2799
+ "dev": true,
2800
+ "requires": {
2801
+ "isobject": "^3.0.1"
2802
+ }
2803
+ },
2804
+ "is-stream": {
2805
+ "version": "1.1.0",
2806
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2807
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2808
+ "dev": true
2809
+ },
2810
+ "is-windows": {
2811
+ "version": "1.0.2",
2812
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2813
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2814
+ "dev": true
2815
+ },
2816
+ "isarray": {
2817
+ "version": "1.0.0",
2818
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2819
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2820
+ "dev": true
2821
+ },
2822
+ "isexe": {
2823
+ "version": "2.0.0",
2824
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2825
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2826
+ "dev": true
2827
+ },
2828
+ "isobject": {
2829
+ "version": "3.0.1",
2830
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2831
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2832
+ "dev": true
2833
+ },
2834
+ "js-tokens": {
2835
+ "version": "3.0.2",
2836
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
2837
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
2838
+ "dev": true
2839
+ },
2840
+ "jsesc": {
2841
+ "version": "1.3.0",
2842
+ "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
2843
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
2844
+ "dev": true
2845
+ },
2846
+ "json-loader": {
2847
+ "version": "0.5.7",
2848
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
2849
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
2850
+ "dev": true
2851
+ },
2852
+ "json-schema-traverse": {
2853
+ "version": "0.4.1",
2854
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2855
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2856
+ "dev": true
2857
+ },
2858
+ "json5": {
2859
+ "version": "0.5.1",
2860
+ "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
2861
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
2862
+ "dev": true
2863
+ },
2864
+ "kind-of": {
2865
+ "version": "3.2.2",
2866
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2867
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2868
+ "dev": true,
2869
+ "requires": {
2870
+ "is-buffer": "^1.1.5"
2871
+ }
2872
+ },
2873
+ "lazy-cache": {
2874
+ "version": "1.0.4",
2875
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
2876
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
2877
+ "dev": true
2878
+ },
2879
+ "lcid": {
2880
+ "version": "1.0.0",
2881
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2882
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2883
+ "dev": true,
2884
+ "requires": {
2885
+ "invert-kv": "^1.0.0"
2886
+ }
2887
+ },
2888
+ "load-json-file": {
2889
+ "version": "2.0.0",
2890
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
2891
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
2892
+ "dev": true,
2893
+ "requires": {
2894
+ "graceful-fs": "^4.1.2",
2895
+ "parse-json": "^2.2.0",
2896
+ "pify": "^2.0.0",
2897
+ "strip-bom": "^3.0.0"
2898
+ },
2899
+ "dependencies": {
2900
+ "pify": {
2901
+ "version": "2.3.0",
2902
+ "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2903
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2904
+ "dev": true
2905
+ }
2906
+ }
2907
+ },
2908
+ "loader-runner": {
2909
+ "version": "2.3.1",
2910
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz",
2911
+ "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==",
2912
+ "dev": true
2913
+ },
2914
+ "loader-utils": {
2915
+ "version": "1.1.0",
2916
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
2917
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
2918
+ "dev": true,
2919
+ "requires": {
2920
+ "big.js": "^3.1.3",
2921
+ "emojis-list": "^2.0.0",
2922
+ "json5": "^0.5.0"
2923
+ }
2924
+ },
2925
+ "locate-path": {
2926
+ "version": "2.0.0",
2927
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2928
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2929
+ "dev": true,
2930
+ "requires": {
2931
+ "p-locate": "^2.0.0",
2932
+ "path-exists": "^3.0.0"
2933
+ }
2934
+ },
2935
+ "lodash": {
2936
+ "version": "4.17.11",
2937
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2938
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
2939
+ "dev": true
2940
+ },
2941
+ "lodash.debounce": {
2942
+ "version": "4.0.8",
2943
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
2944
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
2945
+ "dev": true
2946
+ },
2947
+ "longest": {
2948
+ "version": "1.0.1",
2949
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
2950
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
2951
+ "dev": true
2952
+ },
2953
+ "loose-envify": {
2954
+ "version": "1.4.0",
2955
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2956
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2957
+ "dev": true,
2958
+ "requires": {
2959
+ "js-tokens": "^3.0.0 || ^4.0.0"
2960
+ }
2961
+ },
2962
+ "lru-cache": {
2963
+ "version": "4.1.4",
2964
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz",
2965
+ "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==",
2966
+ "dev": true,
2967
+ "requires": {
2968
+ "pseudomap": "^1.0.2",
2969
+ "yallist": "^3.0.2"
2970
+ }
2971
+ },
2972
+ "make-dir": {
2973
+ "version": "1.3.0",
2974
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
2975
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
2976
+ "dev": true,
2977
+ "requires": {
2978
+ "pify": "^3.0.0"
2979
+ }
2980
+ },
2981
+ "map-age-cleaner": {
2982
+ "version": "0.1.3",
2983
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
2984
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
2985
+ "dev": true,
2986
+ "requires": {
2987
+ "p-defer": "^1.0.0"
2988
+ }
2989
+ },
2990
+ "map-cache": {
2991
+ "version": "0.2.2",
2992
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2993
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2994
+ "dev": true
2995
+ },
2996
+ "map-visit": {
2997
+ "version": "1.0.0",
2998
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2999
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
3000
+ "dev": true,
3001
+ "requires": {
3002
+ "object-visit": "^1.0.0"
3003
+ }
3004
+ },
3005
+ "md5.js": {
3006
+ "version": "1.3.5",
3007
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
3008
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
3009
+ "dev": true,
3010
+ "requires": {
3011
+ "hash-base": "^3.0.0",
3012
+ "inherits": "^2.0.1",
3013
+ "safe-buffer": "^5.1.2"
3014
+ }
3015
+ },
3016
+ "mem": {
3017
+ "version": "1.1.0",
3018
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
3019
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
3020
+ "dev": true,
3021
+ "requires": {
3022
+ "mimic-fn": "^1.0.0"
3023
+ }
3024
+ },
3025
+ "memory-fs": {
3026
+ "version": "0.4.1",
3027
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
3028
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
3029
+ "dev": true,
3030
+ "requires": {
3031
+ "errno": "^0.1.3",
3032
+ "readable-stream": "^2.0.1"
3033
+ }
3034
+ },
3035
+ "micromatch": {
3036
+ "version": "3.1.10",
3037
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
3038
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
3039
+ "dev": true,
3040
+ "requires": {
3041
+ "arr-diff": "^4.0.0",
3042
+ "array-unique": "^0.3.2",
3043
+ "braces": "^2.3.1",
3044
+ "define-property": "^2.0.2",
3045
+ "extend-shallow": "^3.0.2",
3046
+ "extglob": "^2.0.4",
3047
+ "fragment-cache": "^0.2.1",
3048
+ "kind-of": "^6.0.2",
3049
+ "nanomatch": "^1.2.9",
3050
+ "object.pick": "^1.3.0",
3051
+ "regex-not": "^1.0.0",
3052
+ "snapdragon": "^0.8.1",
3053
+ "to-regex": "^3.0.2"
3054
+ },
3055
+ "dependencies": {
3056
+ "kind-of": {
3057
+ "version": "6.0.2",
3058
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3059
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
3060
+ "dev": true
3061
+ }
3062
+ }
3063
+ },
3064
+ "miller-rabin": {
3065
+ "version": "4.0.1",
3066
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
3067
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
3068
+ "dev": true,
3069
+ "requires": {
3070
+ "bn.js": "^4.0.0",
3071
+ "brorand": "^1.0.1"
3072
+ }
3073
+ },
3074
+ "mimic-fn": {
3075
+ "version": "1.2.0",
3076
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
3077
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
3078
+ "dev": true
3079
+ },
3080
+ "minimalistic-assert": {
3081
+ "version": "1.0.1",
3082
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
3083
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
3084
+ "dev": true
3085
+ },
3086
+ "minimalistic-crypto-utils": {
3087
+ "version": "1.0.1",
3088
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
3089
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
3090
+ "dev": true
3091
+ },
3092
+ "minimatch": {
3093
+ "version": "3.0.4",
3094
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3095
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3096
+ "dev": true,
3097
+ "requires": {
3098
+ "brace-expansion": "^1.1.7"
3099
+ }
3100
+ },
3101
+ "minimist": {
3102
+ "version": "0.0.8",
3103
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
3104
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
3105
+ "dev": true
3106
+ },
3107
+ "mixin-deep": {
3108
+ "version": "1.3.1",
3109
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
3110
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
3111
+ "dev": true,
3112
+ "requires": {
3113
+ "for-in": "^1.0.2",
3114
+ "is-extendable": "^1.0.1"
3115
+ },
3116
+ "dependencies": {
3117
+ "is-extendable": {
3118
+ "version": "1.0.1",
3119
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
3120
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
3121
+ "dev": true,
3122
+ "requires": {
3123
+ "is-plain-object": "^2.0.4"
3124
+ }
3125
+ }
3126
+ }
3127
+ },
3128
+ "mkdirp": {
3129
+ "version": "0.5.1",
3130
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
3131
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
3132
+ "dev": true,
3133
+ "requires": {
3134
+ "minimist": "0.0.8"
3135
+ }
3136
+ },
3137
+ "ms": {
3138
+ "version": "2.0.0",
3139
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3140
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3141
+ "dev": true
3142
+ },
3143
+ "nan": {
3144
+ "version": "2.11.1",
3145
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
3146
+ "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
3147
+ "dev": true,
3148
+ "optional": true
3149
+ },
3150
+ "nanomatch": {
3151
+ "version": "1.2.13",
3152
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3153
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3154
+ "dev": true,
3155
+ "requires": {
3156
+ "arr-diff": "^4.0.0",
3157
+ "array-unique": "^0.3.2",
3158
+ "define-property": "^2.0.2",
3159
+ "extend-shallow": "^3.0.2",
3160
+ "fragment-cache": "^0.2.1",
3161
+ "is-windows": "^1.0.2",
3162
+ "kind-of": "^6.0.2",
3163
+ "object.pick": "^1.3.0",
3164
+ "regex-not": "^1.0.0",
3165
+ "snapdragon": "^0.8.1",
3166
+ "to-regex": "^3.0.1"
3167
+ },
3168
+ "dependencies": {
3169
+ "kind-of": {
3170
+ "version": "6.0.2",
3171
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3172
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
3173
+ "dev": true
3174
+ }
3175
+ }
3176
+ },
3177
+ "neo-async": {
3178
+ "version": "2.6.0",
3179
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
3180
+ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
3181
+ "dev": true
3182
+ },
3183
+ "next-tick": {
3184
+ "version": "1.0.0",
3185
+ "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
3186
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
3187
+ "dev": true
3188
+ },
3189
+ "nice-try": {
3190
+ "version": "1.0.5",
3191
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
3192
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
3193
+ "dev": true
3194
+ },
3195
+ "node-libs-browser": {
3196
+ "version": "2.1.0",
3197
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
3198
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
3199
+ "dev": true,
3200
+ "requires": {
3201
+ "assert": "^1.1.1",
3202
+ "browserify-zlib": "^0.2.0",
3203
+ "buffer": "^4.3.0",
3204
+ "console-browserify": "^1.1.0",
3205
+ "constants-browserify": "^1.0.0",
3206
+ "crypto-browserify": "^3.11.0",
3207
+ "domain-browser": "^1.1.1",
3208
+ "events": "^1.0.0",
3209
+ "https-browserify": "^1.0.0",
3210
+ "os-browserify": "^0.3.0",
3211
+ "path-browserify": "0.0.0",
3212
+ "process": "^0.11.10",
3213
+ "punycode": "^1.2.4",
3214
+ "querystring-es3": "^0.2.0",
3215
+ "readable-stream": "^2.3.3",
3216
+ "stream-browserify": "^2.0.1",
3217
+ "stream-http": "^2.7.2",
3218
+ "string_decoder": "^1.0.0",
3219
+ "timers-browserify": "^2.0.4",
3220
+ "tty-browserify": "0.0.0",
3221
+ "url": "^0.11.0",
3222
+ "util": "^0.10.3",
3223
+ "vm-browserify": "0.0.4"
3224
+ },
3225
+ "dependencies": {
3226
+ "punycode": {
3227
+ "version": "1.4.1",
3228
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
3229
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
3230
+ "dev": true
3231
+ }
3232
+ }
3233
+ },
3234
+ "normalize-package-data": {
3235
+ "version": "2.4.0",
3236
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
3237
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
3238
+ "dev": true,
3239
+ "requires": {
3240
+ "hosted-git-info": "^2.1.4",
3241
+ "is-builtin-module": "^1.0.0",
3242
+ "semver": "2 || 3 || 4 || 5",
3243
+ "validate-npm-package-license": "^3.0.1"
3244
+ }
3245
+ },
3246
+ "normalize-path": {
3247
+ "version": "2.1.1",
3248
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
3249
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
3250
+ "dev": true,
3251
+ "requires": {
3252
+ "remove-trailing-separator": "^1.0.1"
3253
+ }
3254
+ },
3255
+ "npm-run-path": {
3256
+ "version": "2.0.2",
3257
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
3258
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
3259
+ "dev": true,
3260
+ "requires": {
3261
+ "path-key": "^2.0.0"
3262
+ }
3263
+ },
3264
+ "number-is-nan": {
3265
+ "version": "1.0.1",
3266
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
3267
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
3268
+ "dev": true
3269
+ },
3270
+ "object-assign": {
3271
+ "version": "4.1.1",
3272
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3273
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
3274
+ "dev": true
3275
+ },
3276
+ "object-copy": {
3277
+ "version": "0.1.0",
3278
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3279
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3280
+ "dev": true,
3281
+ "requires": {
3282
+ "copy-descriptor": "^0.1.0",
3283
+ "define-property": "^0.2.5",
3284
+ "kind-of": "^3.0.3"
3285
+ },
3286
+ "dependencies": {
3287
+ "define-property": {
3288
+ "version": "0.2.5",
3289
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3290
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3291
+ "dev": true,
3292
+ "requires": {
3293
+ "is-descriptor": "^0.1.0"
3294
+ }
3295
+ }
3296
+ }
3297
+ },
3298
+ "object-visit": {
3299
+ "version": "1.0.1",
3300
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3301
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3302
+ "dev": true,
3303
+ "requires": {
3304
+ "isobject": "^3.0.0"
3305
+ }
3306
+ },
3307
+ "object.pick": {
3308
+ "version": "1.3.0",
3309
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3310
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3311
+ "dev": true,
3312
+ "requires": {
3313
+ "isobject": "^3.0.1"
3314
+ }
3315
+ },
3316
+ "os-browserify": {
3317
+ "version": "0.3.0",
3318
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
3319
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
3320
+ "dev": true
3321
+ },
3322
+ "os-homedir": {
3323
+ "version": "1.0.2",
3324
+ "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
3325
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
3326
+ "dev": true
3327
+ },
3328
+ "os-locale": {
3329
+ "version": "2.1.0",
3330
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
3331
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
3332
+ "dev": true,
3333
+ "requires": {
3334
+ "execa": "^0.7.0",
3335
+ "lcid": "^1.0.0",
3336
+ "mem": "^1.1.0"
3337
+ }
3338
+ },
3339
+ "os-tmpdir": {
3340
+ "version": "1.0.2",
3341
+ "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
3342
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
3343
+ "dev": true
3344
+ },
3345
+ "p-defer": {
3346
+ "version": "1.0.0",
3347
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
3348
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
3349
+ "dev": true
3350
+ },
3351
+ "p-finally": {
3352
+ "version": "1.0.0",
3353
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
3354
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
3355
+ "dev": true
3356
+ },
3357
+ "p-is-promise": {
3358
+ "version": "1.1.0",
3359
+ "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
3360
+ "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
3361
+ "dev": true
3362
+ },
3363
+ "p-limit": {
3364
+ "version": "1.3.0",
3365
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
3366
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
3367
+ "dev": true,
3368
+ "requires": {
3369
+ "p-try": "^1.0.0"
3370
+ }
3371
+ },
3372
+ "p-locate": {
3373
+ "version": "2.0.0",
3374
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
3375
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
3376
+ "dev": true,
3377
+ "requires": {
3378
+ "p-limit": "^1.1.0"
3379
+ }
3380
+ },
3381
+ "p-try": {
3382
+ "version": "1.0.0",
3383
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
3384
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
3385
+ "dev": true
3386
+ },
3387
+ "pako": {
3388
+ "version": "1.0.6",
3389
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
3390
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
3391
+ "dev": true
3392
+ },
3393
+ "parse-asn1": {
3394
+ "version": "5.1.1",
3395
+ "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
3396
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
3397
+ "dev": true,
3398
+ "requires": {
3399
+ "asn1.js": "^4.0.0",
3400
+ "browserify-aes": "^1.0.0",
3401
+ "create-hash": "^1.1.0",
3402
+ "evp_bytestokey": "^1.0.0",
3403
+ "pbkdf2": "^3.0.3"
3404
+ }
3405
+ },
3406
+ "parse-json": {
3407
+ "version": "2.2.0",
3408
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
3409
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
3410
+ "dev": true,
3411
+ "requires": {
3412
+ "error-ex": "^1.2.0"
3413
+ }
3414
+ },
3415
+ "pascalcase": {
3416
+ "version": "0.1.1",
3417
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3418
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3419
+ "dev": true
3420
+ },
3421
+ "path-browserify": {
3422
+ "version": "0.0.0",
3423
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
3424
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
3425
+ "dev": true
3426
+ },
3427
+ "path-dirname": {
3428
+ "version": "1.0.2",
3429
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3430
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
3431
+ "dev": true
3432
+ },
3433
+ "path-exists": {
3434
+ "version": "3.0.0",
3435
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
3436
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
3437
+ "dev": true
3438
+ },
3439
+ "path-is-absolute": {
3440
+ "version": "1.0.1",
3441
+ "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3442
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3443
+ "dev": true
3444
+ },
3445
+ "path-key": {
3446
+ "version": "2.0.1",
3447
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
3448
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
3449
+ "dev": true
3450
+ },
3451
+ "path-type": {
3452
+ "version": "2.0.0",
3453
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
3454
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
3455
+ "dev": true,
3456
+ "requires": {
3457
+ "pify": "^2.0.0"
3458
+ },
3459
+ "dependencies": {
3460
+ "pify": {
3461
+ "version": "2.3.0",
3462
+ "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3463
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
3464
+ "dev": true
3465
+ }
3466
+ }
3467
+ },
3468
+ "pbkdf2": {
3469
+ "version": "3.0.17",
3470
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
3471
+ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
3472
+ "dev": true,
3473
+ "requires": {
3474
+ "create-hash": "^1.1.2",
3475
+ "create-hmac": "^1.1.4",
3476
+ "ripemd160": "^2.0.1",
3477
+ "safe-buffer": "^5.0.1",
3478
+ "sha.js": "^2.4.8"
3479
+ }
3480
+ },
3481
+ "pify": {
3482
+ "version": "3.0.0",
3483
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
3484
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
3485
+ "dev": true
3486
+ },
3487
+ "pkg-dir": {
3488
+ "version": "2.0.0",
3489
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
3490
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
3491
+ "dev": true,
3492
+ "requires": {
3493
+ "find-up": "^2.1.0"
3494
+ }
3495
+ },
3496
+ "posix-character-classes": {
3497
+ "version": "0.1.1",
3498
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3499
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3500
+ "dev": true
3501
+ },
3502
+ "private": {
3503
+ "version": "0.1.8",
3504
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
3505
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
3506
+ "dev": true
3507
+ },
3508
+ "process": {
3509
+ "version": "0.11.10",
3510
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
3511
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
3512
+ "dev": true
3513
+ },
3514
+ "process-nextick-args": {
3515
+ "version": "2.0.0",
3516
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
3517
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
3518
+ "dev": true
3519
+ },
3520
+ "prr": {
3521
+ "version": "1.0.1",
3522
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
3523
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
3524
+ "dev": true
3525
+ },
3526
+ "pseudomap": {
3527
+ "version": "1.0.2",
3528
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
3529
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
3530
+ "dev": true
3531
+ },
3532
+ "public-encrypt": {
3533
+ "version": "4.0.3",
3534
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
3535
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
3536
+ "dev": true,
3537
+ "requires": {
3538
+ "bn.js": "^4.1.0",
3539
+ "browserify-rsa": "^4.0.0",
3540
+ "create-hash": "^1.1.0",
3541
+ "parse-asn1": "^5.0.0",
3542
+ "randombytes": "^2.0.1",
3543
+ "safe-buffer": "^5.1.2"
3544
+ }
3545
+ },
3546
+ "punycode": {
3547
+ "version": "2.1.1",
3548
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3549
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
3550
+ "dev": true
3551
+ },
3552
+ "querystring": {
3553
+ "version": "0.2.0",
3554
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
3555
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
3556
+ "dev": true
3557
+ },
3558
+ "querystring-es3": {
3559
+ "version": "0.2.1",
3560
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
3561
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
3562
+ "dev": true
3563
+ },
3564
+ "randombytes": {
3565
+ "version": "2.0.6",
3566
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
3567
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
3568
+ "dev": true,
3569
+ "requires": {
3570
+ "safe-buffer": "^5.1.0"
3571
+ }
3572
+ },
3573
+ "randomfill": {
3574
+ "version": "1.0.4",
3575
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
3576
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
3577
+ "dev": true,
3578
+ "requires": {
3579
+ "randombytes": "^2.0.5",
3580
+ "safe-buffer": "^5.1.0"
3581
+ }
3582
+ },
3583
+ "read-pkg": {
3584
+ "version": "2.0.0",
3585
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
3586
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
3587
+ "dev": true,
3588
+ "requires": {
3589
+ "load-json-file": "^2.0.0",
3590
+ "normalize-package-data": "^2.3.2",
3591
+ "path-type": "^2.0.0"
3592
+ }
3593
+ },
3594
+ "read-pkg-up": {
3595
+ "version": "2.0.0",
3596
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
3597
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
3598
+ "dev": true,
3599
+ "requires": {
3600
+ "find-up": "^2.0.0",
3601
+ "read-pkg": "^2.0.0"
3602
+ }
3603
+ },
3604
+ "readable-stream": {
3605
+ "version": "2.3.6",
3606
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
3607
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
3608
+ "dev": true,
3609
+ "requires": {
3610
+ "core-util-is": "~1.0.0",
3611
+ "inherits": "~2.0.3",
3612
+ "isarray": "~1.0.0",
3613
+ "process-nextick-args": "~2.0.0",
3614
+ "safe-buffer": "~5.1.1",
3615
+ "string_decoder": "~1.1.1",
3616
+ "util-deprecate": "~1.0.1"
3617
+ }
3618
+ },
3619
+ "readdirp": {
3620
+ "version": "2.2.1",
3621
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
3622
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
3623
+ "dev": true,
3624
+ "requires": {
3625
+ "graceful-fs": "^4.1.11",
3626
+ "micromatch": "^3.1.10",
3627
+ "readable-stream": "^2.0.2"
3628
+ }
3629
+ },
3630
+ "regenerate": {
3631
+ "version": "1.4.0",
3632
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
3633
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
3634
+ "dev": true
3635
+ },
3636
+ "regenerator-runtime": {
3637
+ "version": "0.11.1",
3638
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
3639
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
3640
+ "dev": true
3641
+ },
3642
+ "regenerator-transform": {
3643
+ "version": "0.10.1",
3644
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
3645
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
3646
+ "dev": true,
3647
+ "requires": {
3648
+ "babel-runtime": "^6.18.0",
3649
+ "babel-types": "^6.19.0",
3650
+ "private": "^0.1.6"
3651
+ }
3652
+ },
3653
+ "regex-not": {
3654
+ "version": "1.0.2",
3655
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3656
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3657
+ "dev": true,
3658
+ "requires": {
3659
+ "extend-shallow": "^3.0.2",
3660
+ "safe-regex": "^1.1.0"
3661
+ }
3662
+ },
3663
+ "regexpu-core": {
3664
+ "version": "2.0.0",
3665
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
3666
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
3667
+ "dev": true,
3668
+ "requires": {
3669
+ "regenerate": "^1.2.1",
3670
+ "regjsgen": "^0.2.0",
3671
+ "regjsparser": "^0.1.4"
3672
+ }
3673
+ },
3674
+ "regjsgen": {
3675
+ "version": "0.2.0",
3676
+ "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
3677
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
3678
+ "dev": true
3679
+ },
3680
+ "regjsparser": {
3681
+ "version": "0.1.5",
3682
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
3683
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
3684
+ "dev": true,
3685
+ "requires": {
3686
+ "jsesc": "~0.5.0"
3687
+ },
3688
+ "dependencies": {
3689
+ "jsesc": {
3690
+ "version": "0.5.0",
3691
+ "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
3692
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
3693
+ "dev": true
3694
+ }
3695
+ }
3696
+ },
3697
+ "remove-trailing-separator": {
3698
+ "version": "1.1.0",
3699
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3700
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3701
+ "dev": true
3702
+ },
3703
+ "repeat-element": {
3704
+ "version": "1.1.3",
3705
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3706
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3707
+ "dev": true
3708
+ },
3709
+ "repeat-string": {
3710
+ "version": "1.6.1",
3711
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3712
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3713
+ "dev": true
3714
+ },
3715
+ "repeating": {
3716
+ "version": "2.0.1",
3717
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
3718
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
3719
+ "dev": true,
3720
+ "requires": {
3721
+ "is-finite": "^1.0.0"
3722
+ }
3723
+ },
3724
+ "require-directory": {
3725
+ "version": "2.1.1",
3726
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3727
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3728
+ "dev": true
3729
+ },
3730
+ "require-main-filename": {
3731
+ "version": "1.0.1",
3732
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
3733
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
3734
+ "dev": true
3735
+ },
3736
+ "resolve-cwd": {
3737
+ "version": "2.0.0",
3738
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
3739
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
3740
+ "dev": true,
3741
+ "requires": {
3742
+ "resolve-from": "^3.0.0"
3743
+ }
3744
+ },
3745
+ "resolve-from": {
3746
+ "version": "3.0.0",
3747
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
3748
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
3749
+ "dev": true
3750
+ },
3751
+ "resolve-url": {
3752
+ "version": "0.2.1",
3753
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3754
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
3755
+ "dev": true
3756
+ },
3757
+ "ret": {
3758
+ "version": "0.1.15",
3759
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3760
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3761
+ "dev": true
3762
+ },
3763
+ "right-align": {
3764
+ "version": "0.1.3",
3765
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
3766
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
3767
+ "dev": true,
3768
+ "requires": {
3769
+ "align-text": "^0.1.1"
3770
+ }
3771
+ },
3772
+ "ripemd160": {
3773
+ "version": "2.0.2",
3774
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
3775
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
3776
+ "dev": true,
3777
+ "requires": {
3778
+ "hash-base": "^3.0.0",
3779
+ "inherits": "^2.0.1"
3780
+ }
3781
+ },
3782
+ "safe-buffer": {
3783
+ "version": "5.1.2",
3784
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3785
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3786
+ "dev": true
3787
+ },
3788
+ "safe-regex": {
3789
+ "version": "1.1.0",
3790
+ "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3791
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3792
+ "dev": true,
3793
+ "requires": {
3794
+ "ret": "~0.1.10"
3795
+ }
3796
+ },
3797
+ "semver": {
3798
+ "version": "5.6.0",
3799
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
3800
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
3801
+ "dev": true
3802
+ },
3803
+ "set-blocking": {
3804
+ "version": "2.0.0",
3805
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3806
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3807
+ "dev": true
3808
+ },
3809
+ "set-value": {
3810
+ "version": "2.0.0",
3811
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
3812
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
3813
+ "dev": true,
3814
+ "requires": {
3815
+ "extend-shallow": "^2.0.1",
3816
+ "is-extendable": "^0.1.1",
3817
+ "is-plain-object": "^2.0.3",
3818
+ "split-string": "^3.0.1"
3819
+ },
3820
+ "dependencies": {
3821
+ "extend-shallow": {
3822
+ "version": "2.0.1",
3823
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3824
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3825
+ "dev": true,
3826
+ "requires": {
3827
+ "is-extendable": "^0.1.0"
3828
+ }
3829
+ }
3830
+ }
3831
+ },
3832
+ "setimmediate": {
3833
+ "version": "1.0.5",
3834
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
3835
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
3836
+ "dev": true
3837
+ },
3838
+ "sha.js": {
3839
+ "version": "2.4.11",
3840
+ "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
3841
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
3842
+ "dev": true,
3843
+ "requires": {
3844
+ "inherits": "^2.0.1",
3845
+ "safe-buffer": "^5.0.1"
3846
+ }
3847
+ },
3848
+ "shebang-command": {
3849
+ "version": "1.2.0",
3850
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
3851
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
3852
+ "dev": true,
3853
+ "requires": {
3854
+ "shebang-regex": "^1.0.0"
3855
+ }
3856
+ },
3857
+ "shebang-regex": {
3858
+ "version": "1.0.0",
3859
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
3860
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
3861
+ "dev": true
3862
+ },
3863
+ "signal-exit": {
3864
+ "version": "3.0.2",
3865
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
3866
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
3867
+ "dev": true
3868
+ },
3869
+ "slash": {
3870
+ "version": "1.0.0",
3871
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
3872
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
3873
+ "dev": true
3874
+ },
3875
+ "snapdragon": {
3876
+ "version": "0.8.2",
3877
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
3878
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
3879
+ "dev": true,
3880
+ "requires": {
3881
+ "base": "^0.11.1",
3882
+ "debug": "^2.2.0",
3883
+ "define-property": "^0.2.5",
3884
+ "extend-shallow": "^2.0.1",
3885
+ "map-cache": "^0.2.2",
3886
+ "source-map": "^0.5.6",
3887
+ "source-map-resolve": "^0.5.0",
3888
+ "use": "^3.1.0"
3889
+ },
3890
+ "dependencies": {
3891
+ "define-property": {
3892
+ "version": "0.2.5",
3893
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3894
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3895
+ "dev": true,
3896
+ "requires": {
3897
+ "is-descriptor": "^0.1.0"
3898
+ }
3899
+ },
3900
+ "extend-shallow": {
3901
+ "version": "2.0.1",
3902
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3903
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3904
+ "dev": true,
3905
+ "requires": {
3906
+ "is-extendable": "^0.1.0"
3907
+ }
3908
+ }
3909
+ }
3910
+ },
3911
+ "snapdragon-node": {
3912
+ "version": "2.1.1",
3913
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
3914
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
3915
+ "dev": true,
3916
+ "requires": {
3917
+ "define-property": "^1.0.0",
3918
+ "isobject": "^3.0.0",
3919
+ "snapdragon-util": "^3.0.1"
3920
+ },
3921
+ "dependencies": {
3922
+ "define-property": {
3923
+ "version": "1.0.0",
3924
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
3925
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
3926
+ "dev": true,
3927
+ "requires": {
3928
+ "is-descriptor": "^1.0.0"
3929
+ }
3930
+ },
3931
+ "is-accessor-descriptor": {
3932
+ "version": "1.0.0",
3933
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3934
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3935
+ "dev": true,
3936
+ "requires": {
3937
+ "kind-of": "^6.0.0"
3938
+ }
3939
+ },
3940
+ "is-data-descriptor": {
3941
+ "version": "1.0.0",
3942
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3943
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3944
+ "dev": true,
3945
+ "requires": {
3946
+ "kind-of": "^6.0.0"
3947
+ }
3948
+ },
3949
+ "is-descriptor": {
3950
+ "version": "1.0.2",
3951
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3952
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3953
+ "dev": true,
3954
+ "requires": {
3955
+ "is-accessor-descriptor": "^1.0.0",
3956
+ "is-data-descriptor": "^1.0.0",
3957
+ "kind-of": "^6.0.2"
3958
+ }
3959
+ },
3960
+ "kind-of": {
3961
+ "version": "6.0.2",
3962
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
3963
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
3964
+ "dev": true
3965
+ }
3966
+ }
3967
+ },
3968
+ "snapdragon-util": {
3969
+ "version": "3.0.1",
3970
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
3971
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
3972
+ "dev": true,
3973
+ "requires": {
3974
+ "kind-of": "^3.2.0"
3975
+ }
3976
+ },
3977
+ "source-list-map": {
3978
+ "version": "2.0.1",
3979
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
3980
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
3981
+ "dev": true
3982
+ },
3983
+ "source-map": {
3984
+ "version": "0.5.7",
3985
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3986
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3987
+ "dev": true
3988
+ },
3989
+ "source-map-resolve": {
3990
+ "version": "0.5.2",
3991
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
3992
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
3993
+ "dev": true,
3994
+ "requires": {
3995
+ "atob": "^2.1.1",
3996
+ "decode-uri-component": "^0.2.0",
3997
+ "resolve-url": "^0.2.1",
3998
+ "source-map-url": "^0.4.0",
3999
+ "urix": "^0.1.0"
4000
+ }
4001
+ },
4002
+ "source-map-support": {
4003
+ "version": "0.4.18",
4004
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
4005
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
4006
+ "dev": true,
4007
+ "requires": {
4008
+ "source-map": "^0.5.6"
4009
+ }
4010
+ },
4011
+ "source-map-url": {
4012
+ "version": "0.4.0",
4013
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
4014
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
4015
+ "dev": true
4016
+ },
4017
+ "spdx-correct": {
4018
+ "version": "3.0.2",
4019
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
4020
+ "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
4021
+ "dev": true,
4022
+ "requires": {
4023
+ "spdx-expression-parse": "^3.0.0",
4024
+ "spdx-license-ids": "^3.0.0"
4025
+ }
4026
+ },
4027
+ "spdx-exceptions": {
4028
+ "version": "2.2.0",
4029
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
4030
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
4031
+ "dev": true
4032
+ },
4033
+ "spdx-expression-parse": {
4034
+ "version": "3.0.0",
4035
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
4036
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
4037
+ "dev": true,
4038
+ "requires": {
4039
+ "spdx-exceptions": "^2.1.0",
4040
+ "spdx-license-ids": "^3.0.0"
4041
+ }
4042
+ },
4043
+ "spdx-license-ids": {
4044
+ "version": "3.0.2",
4045
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
4046
+ "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
4047
+ "dev": true
4048
+ },
4049
+ "split-string": {
4050
+ "version": "3.1.0",
4051
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
4052
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
4053
+ "dev": true,
4054
+ "requires": {
4055
+ "extend-shallow": "^3.0.0"
4056
+ }
4057
+ },
4058
+ "static-extend": {
4059
+ "version": "0.1.2",
4060
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
4061
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
4062
+ "dev": true,
4063
+ "requires": {
4064
+ "define-property": "^0.2.5",
4065
+ "object-copy": "^0.1.0"
4066
+ },
4067
+ "dependencies": {
4068
+ "define-property": {
4069
+ "version": "0.2.5",
4070
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4071
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4072
+ "dev": true,
4073
+ "requires": {
4074
+ "is-descriptor": "^0.1.0"
4075
+ }
4076
+ }
4077
+ }
4078
+ },
4079
+ "stream-browserify": {
4080
+ "version": "2.0.1",
4081
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
4082
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
4083
+ "dev": true,
4084
+ "requires": {
4085
+ "inherits": "~2.0.1",
4086
+ "readable-stream": "^2.0.2"
4087
+ }
4088
+ },
4089
+ "stream-http": {
4090
+ "version": "2.8.3",
4091
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
4092
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
4093
+ "dev": true,
4094
+ "requires": {
4095
+ "builtin-status-codes": "^3.0.0",
4096
+ "inherits": "^2.0.1",
4097
+ "readable-stream": "^2.3.6",
4098
+ "to-arraybuffer": "^1.0.0",
4099
+ "xtend": "^4.0.0"
4100
+ }
4101
+ },
4102
+ "string-width": {
4103
+ "version": "2.1.1",
4104
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
4105
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
4106
+ "dev": true,
4107
+ "requires": {
4108
+ "is-fullwidth-code-point": "^2.0.0",
4109
+ "strip-ansi": "^4.0.0"
4110
+ },
4111
+ "dependencies": {
4112
+ "ansi-regex": {
4113
+ "version": "3.0.0",
4114
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
4115
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
4116
+ "dev": true
4117
+ },
4118
+ "is-fullwidth-code-point": {
4119
+ "version": "2.0.0",
4120
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
4121
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
4122
+ "dev": true
4123
+ },
4124
+ "strip-ansi": {
4125
+ "version": "4.0.0",
4126
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
4127
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
4128
+ "dev": true,
4129
+ "requires": {
4130
+ "ansi-regex": "^3.0.0"
4131
+ }
4132
+ }
4133
+ }
4134
+ },
4135
+ "string_decoder": {
4136
+ "version": "1.1.1",
4137
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
4138
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
4139
+ "dev": true,
4140
+ "requires": {
4141
+ "safe-buffer": "~5.1.0"
4142
+ }
4143
+ },
4144
+ "strip-ansi": {
4145
+ "version": "3.0.1",
4146
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
4147
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
4148
+ "dev": true,
4149
+ "requires": {
4150
+ "ansi-regex": "^2.0.0"
4151
+ }
4152
+ },
4153
+ "strip-bom": {
4154
+ "version": "3.0.0",
4155
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
4156
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
4157
+ "dev": true
4158
+ },
4159
+ "strip-eof": {
4160
+ "version": "1.0.0",
4161
+ "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
4162
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
4163
+ "dev": true
4164
+ },
4165
+ "supports-color": {
4166
+ "version": "2.0.0",
4167
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4168
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
4169
+ "dev": true
4170
+ },
4171
+ "tapable": {
4172
+ "version": "0.2.8",
4173
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
4174
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
4175
+ "dev": true
4176
+ },
4177
+ "timers-browserify": {
4178
+ "version": "2.0.10",
4179
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
4180
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
4181
+ "dev": true,
4182
+ "requires": {
4183
+ "setimmediate": "^1.0.4"
4184
+ }
4185
+ },
4186
+ "to-arraybuffer": {
4187
+ "version": "1.0.1",
4188
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
4189
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
4190
+ "dev": true
4191
+ },
4192
+ "to-fast-properties": {
4193
+ "version": "1.0.3",
4194
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
4195
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
4196
+ "dev": true
4197
+ },
4198
+ "to-object-path": {
4199
+ "version": "0.3.0",
4200
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
4201
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
4202
+ "dev": true,
4203
+ "requires": {
4204
+ "kind-of": "^3.0.2"
4205
+ }
4206
+ },
4207
+ "to-regex": {
4208
+ "version": "3.0.2",
4209
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4210
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
4211
+ "dev": true,
4212
+ "requires": {
4213
+ "define-property": "^2.0.2",
4214
+ "extend-shallow": "^3.0.2",
4215
+ "regex-not": "^1.0.2",
4216
+ "safe-regex": "^1.1.0"
4217
+ }
4218
+ },
4219
+ "to-regex-range": {
4220
+ "version": "2.1.1",
4221
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4222
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4223
+ "dev": true,
4224
+ "requires": {
4225
+ "is-number": "^3.0.0",
4226
+ "repeat-string": "^1.6.1"
4227
+ }
4228
+ },
4229
+ "trim-right": {
4230
+ "version": "1.0.1",
4231
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
4232
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
4233
+ "dev": true
4234
+ },
4235
+ "tty-browserify": {
4236
+ "version": "0.0.0",
4237
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
4238
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
4239
+ "dev": true
4240
+ },
4241
+ "uglify-js": {
4242
+ "version": "2.8.29",
4243
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
4244
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
4245
+ "dev": true,
4246
+ "requires": {
4247
+ "source-map": "~0.5.1",
4248
+ "uglify-to-browserify": "~1.0.0",
4249
+ "yargs": "~3.10.0"
4250
+ },
4251
+ "dependencies": {
4252
+ "yargs": {
4253
+ "version": "3.10.0",
4254
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
4255
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
4256
+ "dev": true,
4257
+ "requires": {
4258
+ "camelcase": "^1.0.2",
4259
+ "cliui": "^2.1.0",
4260
+ "decamelize": "^1.0.0",
4261
+ "window-size": "0.1.0"
4262
+ }
4263
+ }
4264
+ }
4265
+ },
4266
+ "uglify-to-browserify": {
4267
+ "version": "1.0.2",
4268
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
4269
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
4270
+ "dev": true,
4271
+ "optional": true
4272
+ },
4273
+ "uglifyjs-webpack-plugin": {
4274
+ "version": "0.4.6",
4275
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
4276
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
4277
+ "dev": true,
4278
+ "requires": {
4279
+ "source-map": "^0.5.6",
4280
+ "uglify-js": "^2.8.29",
4281
+ "webpack-sources": "^1.0.1"
4282
+ }
4283
+ },
4284
+ "union-value": {
4285
+ "version": "1.0.0",
4286
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
4287
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
4288
+ "dev": true,
4289
+ "requires": {
4290
+ "arr-union": "^3.1.0",
4291
+ "get-value": "^2.0.6",
4292
+ "is-extendable": "^0.1.1",
4293
+ "set-value": "^0.4.3"
4294
+ },
4295
+ "dependencies": {
4296
+ "extend-shallow": {
4297
+ "version": "2.0.1",
4298
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4299
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4300
+ "dev": true,
4301
+ "requires": {
4302
+ "is-extendable": "^0.1.0"
4303
+ }
4304
+ },
4305
+ "set-value": {
4306
+ "version": "0.4.3",
4307
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
4308
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
4309
+ "dev": true,
4310
+ "requires": {
4311
+ "extend-shallow": "^2.0.1",
4312
+ "is-extendable": "^0.1.1",
4313
+ "is-plain-object": "^2.0.1",
4314
+ "to-object-path": "^0.3.0"
4315
+ }
4316
+ }
4317
+ }
4318
+ },
4319
+ "unset-value": {
4320
+ "version": "1.0.0",
4321
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
4322
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
4323
+ "dev": true,
4324
+ "requires": {
4325
+ "has-value": "^0.3.1",
4326
+ "isobject": "^3.0.0"
4327
+ },
4328
+ "dependencies": {
4329
+ "has-value": {
4330
+ "version": "0.3.1",
4331
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
4332
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
4333
+ "dev": true,
4334
+ "requires": {
4335
+ "get-value": "^2.0.3",
4336
+ "has-values": "^0.1.4",
4337
+ "isobject": "^2.0.0"
4338
+ },
4339
+ "dependencies": {
4340
+ "isobject": {
4341
+ "version": "2.1.0",
4342
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4343
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4344
+ "dev": true,
4345
+ "requires": {
4346
+ "isarray": "1.0.0"
4347
+ }
4348
+ }
4349
+ }
4350
+ },
4351
+ "has-values": {
4352
+ "version": "0.1.4",
4353
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
4354
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
4355
+ "dev": true
4356
+ }
4357
+ }
4358
+ },
4359
+ "upath": {
4360
+ "version": "1.1.0",
4361
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
4362
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
4363
+ "dev": true
4364
+ },
4365
+ "uri-js": {
4366
+ "version": "4.2.2",
4367
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
4368
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
4369
+ "dev": true,
4370
+ "requires": {
4371
+ "punycode": "^2.1.0"
4372
+ }
4373
+ },
4374
+ "urix": {
4375
+ "version": "0.1.0",
4376
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
4377
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
4378
+ "dev": true
4379
+ },
4380
+ "url": {
4381
+ "version": "0.11.0",
4382
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
4383
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
4384
+ "dev": true,
4385
+ "requires": {
4386
+ "punycode": "1.3.2",
4387
+ "querystring": "0.2.0"
4388
+ },
4389
+ "dependencies": {
4390
+ "punycode": {
4391
+ "version": "1.3.2",
4392
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
4393
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
4394
+ "dev": true
4395
+ }
4396
+ }
4397
+ },
4398
+ "use": {
4399
+ "version": "3.1.1",
4400
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
4401
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
4402
+ "dev": true
4403
+ },
4404
+ "util": {
4405
+ "version": "0.10.4",
4406
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
4407
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
4408
+ "dev": true,
4409
+ "requires": {
4410
+ "inherits": "2.0.3"
4411
+ }
4412
+ },
4413
+ "util-deprecate": {
4414
+ "version": "1.0.2",
4415
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4416
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
4417
+ "dev": true
4418
+ },
4419
+ "v8-compile-cache": {
4420
+ "version": "2.0.2",
4421
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz",
4422
+ "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==",
4423
+ "dev": true
4424
+ },
4425
+ "validate-npm-package-license": {
4426
+ "version": "3.0.4",
4427
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4428
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4429
+ "dev": true,
4430
+ "requires": {
4431
+ "spdx-correct": "^3.0.0",
4432
+ "spdx-expression-parse": "^3.0.0"
4433
+ }
4434
+ },
4435
+ "vm-browserify": {
4436
+ "version": "0.0.4",
4437
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
4438
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
4439
+ "dev": true,
4440
+ "requires": {
4441
+ "indexof": "0.0.1"
4442
+ }
4443
+ },
4444
+ "watchpack": {
4445
+ "version": "1.6.0",
4446
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
4447
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
4448
+ "dev": true,
4449
+ "requires": {
4450
+ "chokidar": "^2.0.2",
4451
+ "graceful-fs": "^4.1.2",
4452
+ "neo-async": "^2.5.0"
4453
+ }
4454
+ },
4455
+ "webpack": {
4456
+ "version": "3.12.0",
4457
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
4458
+ "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
4459
+ "dev": true,
4460
+ "requires": {
4461
+ "acorn": "^5.0.0",
4462
+ "acorn-dynamic-import": "^2.0.0",
4463
+ "ajv": "^6.1.0",
4464
+ "ajv-keywords": "^3.1.0",
4465
+ "async": "^2.1.2",
4466
+ "enhanced-resolve": "^3.4.0",
4467
+ "escope": "^3.6.0",
4468
+ "interpret": "^1.0.0",
4469
+ "json-loader": "^0.5.4",
4470
+ "json5": "^0.5.1",
4471
+ "loader-runner": "^2.3.0",
4472
+ "loader-utils": "^1.1.0",
4473
+ "memory-fs": "~0.4.1",
4474
+ "mkdirp": "~0.5.0",
4475
+ "node-libs-browser": "^2.0.0",
4476
+ "source-map": "^0.5.3",
4477
+ "supports-color": "^4.2.1",
4478
+ "tapable": "^0.2.7",
4479
+ "uglifyjs-webpack-plugin": "^0.4.6",
4480
+ "watchpack": "^1.4.0",
4481
+ "webpack-sources": "^1.0.1",
4482
+ "yargs": "^8.0.2"
4483
+ },
4484
+ "dependencies": {
4485
+ "supports-color": {
4486
+ "version": "4.5.0",
4487
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
4488
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
4489
+ "dev": true,
4490
+ "requires": {
4491
+ "has-flag": "^2.0.0"
4492
+ }
4493
+ }
4494
+ }
4495
+ },
4496
+ "webpack-cli": {
4497
+ "version": "3.1.2",
4498
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz",
4499
+ "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==",
4500
+ "dev": true,
4501
+ "requires": {
4502
+ "chalk": "^2.4.1",
4503
+ "cross-spawn": "^6.0.5",
4504
+ "enhanced-resolve": "^4.1.0",
4505
+ "global-modules-path": "^2.3.0",
4506
+ "import-local": "^2.0.0",
4507
+ "interpret": "^1.1.0",
4508
+ "loader-utils": "^1.1.0",
4509
+ "supports-color": "^5.5.0",
4510
+ "v8-compile-cache": "^2.0.2",
4511
+ "yargs": "^12.0.2"
4512
+ },
4513
+ "dependencies": {
4514
+ "ansi-regex": {
4515
+ "version": "3.0.0",
4516
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
4517
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
4518
+ "dev": true
4519
+ },
4520
+ "ansi-styles": {
4521
+ "version": "3.2.1",
4522
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
4523
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
4524
+ "dev": true,
4525
+ "requires": {
4526
+ "color-convert": "^1.9.0"
4527
+ }
4528
+ },
4529
+ "camelcase": {
4530
+ "version": "5.0.0",
4531
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
4532
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
4533
+ "dev": true
4534
+ },
4535
+ "chalk": {
4536
+ "version": "2.4.1",
4537
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
4538
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
4539
+ "dev": true,
4540
+ "requires": {
4541
+ "ansi-styles": "^3.2.1",
4542
+ "escape-string-regexp": "^1.0.5",
4543
+ "supports-color": "^5.3.0"
4544
+ }
4545
+ },
4546
+ "cliui": {
4547
+ "version": "4.1.0",
4548
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
4549
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
4550
+ "dev": true,
4551
+ "requires": {
4552
+ "string-width": "^2.1.1",
4553
+ "strip-ansi": "^4.0.0",
4554
+ "wrap-ansi": "^2.0.0"
4555
+ }
4556
+ },
4557
+ "enhanced-resolve": {
4558
+ "version": "4.1.0",
4559
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
4560
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
4561
+ "dev": true,
4562
+ "requires": {
4563
+ "graceful-fs": "^4.1.2",
4564
+ "memory-fs": "^0.4.0",
4565
+ "tapable": "^1.0.0"
4566
+ }
4567
+ },
4568
+ "execa": {
4569
+ "version": "0.10.0",
4570
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
4571
+ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
4572
+ "dev": true,
4573
+ "requires": {
4574
+ "cross-spawn": "^6.0.0",
4575
+ "get-stream": "^3.0.0",
4576
+ "is-stream": "^1.1.0",
4577
+ "npm-run-path": "^2.0.0",
4578
+ "p-finally": "^1.0.0",
4579
+ "signal-exit": "^3.0.0",
4580
+ "strip-eof": "^1.0.0"
4581
+ }
4582
+ },
4583
+ "find-up": {
4584
+ "version": "3.0.0",
4585
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
4586
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
4587
+ "dev": true,
4588
+ "requires": {
4589
+ "locate-path": "^3.0.0"
4590
+ }
4591
+ },
4592
+ "has-flag": {
4593
+ "version": "3.0.0",
4594
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
4595
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
4596
+ "dev": true
4597
+ },
4598
+ "invert-kv": {
4599
+ "version": "2.0.0",
4600
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
4601
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
4602
+ "dev": true
4603
+ },
4604
+ "lcid": {
4605
+ "version": "2.0.0",
4606
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
4607
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
4608
+ "dev": true,
4609
+ "requires": {
4610
+ "invert-kv": "^2.0.0"
4611
+ }
4612
+ },
4613
+ "locate-path": {
4614
+ "version": "3.0.0",
4615
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
4616
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
4617
+ "dev": true,
4618
+ "requires": {
4619
+ "p-locate": "^3.0.0",
4620
+ "path-exists": "^3.0.0"
4621
+ }
4622
+ },
4623
+ "mem": {
4624
+ "version": "4.0.0",
4625
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
4626
+ "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
4627
+ "dev": true,
4628
+ "requires": {
4629
+ "map-age-cleaner": "^0.1.1",
4630
+ "mimic-fn": "^1.0.0",
4631
+ "p-is-promise": "^1.1.0"
4632
+ }
4633
+ },
4634
+ "os-locale": {
4635
+ "version": "3.0.1",
4636
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
4637
+ "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
4638
+ "dev": true,
4639
+ "requires": {
4640
+ "execa": "^0.10.0",
4641
+ "lcid": "^2.0.0",
4642
+ "mem": "^4.0.0"
4643
+ }
4644
+ },
4645
+ "p-limit": {
4646
+ "version": "2.0.0",
4647
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
4648
+ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
4649
+ "dev": true,
4650
+ "requires": {
4651
+ "p-try": "^2.0.0"
4652
+ }
4653
+ },
4654
+ "p-locate": {
4655
+ "version": "3.0.0",
4656
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
4657
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
4658
+ "dev": true,
4659
+ "requires": {
4660
+ "p-limit": "^2.0.0"
4661
+ }
4662
+ },
4663
+ "p-try": {
4664
+ "version": "2.0.0",
4665
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
4666
+ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
4667
+ "dev": true
4668
+ },
4669
+ "strip-ansi": {
4670
+ "version": "4.0.0",
4671
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
4672
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
4673
+ "dev": true,
4674
+ "requires": {
4675
+ "ansi-regex": "^3.0.0"
4676
+ }
4677
+ },
4678
+ "supports-color": {
4679
+ "version": "5.5.0",
4680
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
4681
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
4682
+ "dev": true,
4683
+ "requires": {
4684
+ "has-flag": "^3.0.0"
4685
+ }
4686
+ },
4687
+ "tapable": {
4688
+ "version": "1.1.0",
4689
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz",
4690
+ "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==",
4691
+ "dev": true
4692
+ },
4693
+ "yargs": {
4694
+ "version": "12.0.5",
4695
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
4696
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
4697
+ "dev": true,
4698
+ "requires": {
4699
+ "cliui": "^4.0.0",
4700
+ "decamelize": "^1.2.0",
4701
+ "find-up": "^3.0.0",
4702
+ "get-caller-file": "^1.0.1",
4703
+ "os-locale": "^3.0.0",
4704
+ "require-directory": "^2.1.1",
4705
+ "require-main-filename": "^1.0.1",
4706
+ "set-blocking": "^2.0.0",
4707
+ "string-width": "^2.0.0",
4708
+ "which-module": "^2.0.0",
4709
+ "y18n": "^3.2.1 || ^4.0.0",
4710
+ "yargs-parser": "^11.1.1"
4711
+ }
4712
+ },
4713
+ "yargs-parser": {
4714
+ "version": "11.1.1",
4715
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
4716
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
4717
+ "dev": true,
4718
+ "requires": {
4719
+ "camelcase": "^5.0.0",
4720
+ "decamelize": "^1.2.0"
4721
+ }
4722
+ }
4723
+ }
4724
+ },
4725
+ "webpack-merge": {
4726
+ "version": "4.1.4",
4727
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
4728
+ "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
4729
+ "dev": true,
4730
+ "requires": {
4731
+ "lodash": "^4.17.5"
4732
+ }
4733
+ },
4734
+ "webpack-sources": {
4735
+ "version": "1.3.0",
4736
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
4737
+ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
4738
+ "dev": true,
4739
+ "requires": {
4740
+ "source-list-map": "^2.0.0",
4741
+ "source-map": "~0.6.1"
4742
+ },
4743
+ "dependencies": {
4744
+ "source-map": {
4745
+ "version": "0.6.1",
4746
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4747
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
4748
+ "dev": true
4749
+ }
4750
+ }
4751
+ },
4752
+ "which": {
4753
+ "version": "1.3.1",
4754
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
4755
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
4756
+ "dev": true,
4757
+ "requires": {
4758
+ "isexe": "^2.0.0"
4759
+ }
4760
+ },
4761
+ "which-module": {
4762
+ "version": "2.0.0",
4763
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
4764
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
4765
+ "dev": true
4766
+ },
4767
+ "window-size": {
4768
+ "version": "0.1.0",
4769
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
4770
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
4771
+ "dev": true
4772
+ },
4773
+ "wordwrap": {
4774
+ "version": "0.0.2",
4775
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
4776
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
4777
+ "dev": true
4778
+ },
4779
+ "wrap-ansi": {
4780
+ "version": "2.1.0",
4781
+ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
4782
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
4783
+ "dev": true,
4784
+ "requires": {
4785
+ "string-width": "^1.0.1",
4786
+ "strip-ansi": "^3.0.1"
4787
+ },
4788
+ "dependencies": {
4789
+ "string-width": {
4790
+ "version": "1.0.2",
4791
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4792
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4793
+ "dev": true,
4794
+ "requires": {
4795
+ "code-point-at": "^1.0.0",
4796
+ "is-fullwidth-code-point": "^1.0.0",
4797
+ "strip-ansi": "^3.0.0"
4798
+ }
4799
+ }
4800
+ }
4801
+ },
4802
+ "xtend": {
4803
+ "version": "4.0.1",
4804
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
4805
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
4806
+ "dev": true
4807
+ },
4808
+ "y18n": {
4809
+ "version": "3.2.1",
4810
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
4811
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
4812
+ "dev": true
4813
+ },
4814
+ "yallist": {
4815
+ "version": "3.0.3",
4816
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
4817
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
4818
+ "dev": true
4819
+ },
4820
+ "yargs": {
4821
+ "version": "8.0.2",
4822
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
4823
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
4824
+ "dev": true,
4825
+ "requires": {
4826
+ "camelcase": "^4.1.0",
4827
+ "cliui": "^3.2.0",
4828
+ "decamelize": "^1.1.1",
4829
+ "get-caller-file": "^1.0.1",
4830
+ "os-locale": "^2.0.0",
4831
+ "read-pkg-up": "^2.0.0",
4832
+ "require-directory": "^2.1.1",
4833
+ "require-main-filename": "^1.0.1",
4834
+ "set-blocking": "^2.0.0",
4835
+ "string-width": "^2.0.0",
4836
+ "which-module": "^2.0.0",
4837
+ "y18n": "^3.2.1",
4838
+ "yargs-parser": "^7.0.0"
4839
+ },
4840
+ "dependencies": {
4841
+ "camelcase": {
4842
+ "version": "4.1.0",
4843
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
4844
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
4845
+ "dev": true
4846
+ },
4847
+ "cliui": {
4848
+ "version": "3.2.0",
4849
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
4850
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
4851
+ "dev": true,
4852
+ "requires": {
4853
+ "string-width": "^1.0.1",
4854
+ "strip-ansi": "^3.0.1",
4855
+ "wrap-ansi": "^2.0.0"
4856
+ },
4857
+ "dependencies": {
4858
+ "string-width": {
4859
+ "version": "1.0.2",
4860
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4861
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4862
+ "dev": true,
4863
+ "requires": {
4864
+ "code-point-at": "^1.0.0",
4865
+ "is-fullwidth-code-point": "^1.0.0",
4866
+ "strip-ansi": "^3.0.0"
4867
+ }
4868
+ }
4869
+ }
4870
+ }
4871
+ }
4872
+ },
4873
+ "yargs-parser": {
4874
+ "version": "7.0.0",
4875
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
4876
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
4877
+ "dev": true,
4878
+ "requires": {
4879
+ "camelcase": "^4.1.0"
4880
+ },
4881
+ "dependencies": {
4882
+ "camelcase": {
4883
+ "version": "4.1.0",
4884
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
4885
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
4886
+ "dev": true
4887
+ }
4888
+ }
4889
+ }
4890
+ }
4891
+ }
addons/pro/gutenberg/webpack.common.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ entry: {
3
+ 'js/forms-block': './js/forms-block.js',
4
+ 'js/polls-block': './js/polls-block.js',
5
+ 'js/quizzes-block': './js/quizzes-block.js'
6
+ },
7
+ output: {
8
+ path: __dirname + '/',
9
+ filename: '[name].min.js',
10
+ },
11
+
12
+ module: {
13
+ loaders: [
14
+ {
15
+ test: /.js$/,
16
+ loader: 'babel-loader',
17
+ exclude: /node_modules/,
18
+ },
19
+ ],
20
+ },
21
+ };
addons/pro/gutenberg/webpack.dev.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ const merge = require( 'webpack-merge' );
2
+ const common = require( './webpack.common.js' );
3
+
4
+ module.exports = merge( common, {
5
+ devtool: 'inline-source-map',
6
+ } );
addons/pro/gutenberg/webpack.prod.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const merge = require( 'webpack-merge' );
2
+ const common = require( './webpack.common.js' );
3
+ const webpack = require( 'webpack' );
4
+
5
+ module.exports = merge( common, {
6
+ plugins: [
7
+ new webpack.DefinePlugin( {
8
+ 'process.env.NODE_ENV': JSON.stringify( 'production' ),
9
+ } ),
10
+ new webpack.optimize.UglifyJsPlugin(),
11
+ ],
12
+ } );
addons/pro/mailchimp/forminator-addon-mailchimp-form-settings.php CHANGED
@@ -486,6 +486,7 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
486
  * @param $mailchimp_required_fields
487
  * @param $post_data
488
  *
 
489
  * @throws Forminator_Addon_Mailchimp_Exception
490
  * @throws Forminator_Addon_Mailchimp_Form_Settings_Exception
491
  */
@@ -514,9 +515,6 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
514
 
515
  // set fields_map from post_data for reuse
516
  foreach ( $post_data as $mailchimp_field_tag => $forminator_field_id ) {
517
- if ( empty( $forminator_field_id ) ) {
518
- continue;
519
- }
520
  $this->addon_form_settings['fields_map'][ $mailchimp_field_tag ] = $post_data[ $mailchimp_field_tag ];
521
  }
522
 
@@ -556,6 +554,8 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
556
  if ( $input_exceptions->input_exceptions_is_available() ) {
557
  throw $input_exceptions;
558
  }
 
 
559
  }
560
 
561
  /**
486
  * @param $mailchimp_required_fields
487
  * @param $post_data
488
  *
489
+ * @return array current addon form settings
490
  * @throws Forminator_Addon_Mailchimp_Exception
491
  * @throws Forminator_Addon_Mailchimp_Form_Settings_Exception
492
  */
515
 
516
  // set fields_map from post_data for reuse
517
  foreach ( $post_data as $mailchimp_field_tag => $forminator_field_id ) {
 
 
 
518
  $this->addon_form_settings['fields_map'][ $mailchimp_field_tag ] = $post_data[ $mailchimp_field_tag ];
519
  }
520
 
554
  if ( $input_exceptions->input_exceptions_is_available() ) {
555
  throw $input_exceptions;
556
  }
557
+
558
+ return $this->addon_form_settings;
559
  }
560
 
561
  /**
addons/pro/mailchimp/forminator-addon-mailchimp.php CHANGED
@@ -449,11 +449,11 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
449
  * @return bool
450
  */
451
  public static function is_enable_delete_member() {
452
- if ( defined( 'FORMINATOR_ADDON_MAILCHIMP_ENABLE_DELETE_MEMBER' ) && false === FORMINATOR_ADDON_MAILCHIMP_ENABLE_DELETE_MEMBER ) {
453
- return false;
454
  }
455
 
456
- return true;
457
  }
458
 
459
  /**
@@ -611,4 +611,19 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
611
  'has_errors' => ! empty( $error_message ) || ! empty( $api_key_error_message ),
612
  );
613
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
614
  }
449
  * @return bool
450
  */
451
  public static function is_enable_delete_member() {
452
+ if ( defined( 'FORMINATOR_ADDON_MAILCHIMP_ENABLE_DELETE_MEMBER' ) && FORMINATOR_ADDON_MAILCHIMP_ENABLE_DELETE_MEMBER ) {
453
+ return true;
454
  }
455
 
456
+ return false;
457
  }
458
 
459
  /**
611
  'has_errors' => ! empty( $error_message ) || ! empty( $api_key_error_message ),
612
  );
613
  }
614
+
615
+ /**
616
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
617
+ *
618
+ * Please apply necessary WordPress hook on the inheritance class
619
+ *
620
+ * @since 1.6.1
621
+ *
622
+ * @param $poll_id
623
+ *
624
+ * @return boolean
625
+ */
626
+ public function is_poll_connected( $poll_id ) {
627
+ return false;
628
+ }
629
  }
addons/pro/slack/forminator-addon-slack-form-hooks.php CHANGED
@@ -227,7 +227,7 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
227
  return array(
228
  'is_sent' => true,
229
  'connection_name' => $connection_settings['name'],
230
- 'description' => __( 'Successfully sent data to Slack', Forminator::DOMAIN ),
231
  'data_sent' => $api->get_last_data_sent(),
232
  'data_received' => $api->get_last_data_received(),
233
  'url_request' => $api->get_last_url_request(),
227
  return array(
228
  'is_sent' => true,
229
  'connection_name' => $connection_settings['name'],
230
+ 'description' => __( 'Successfully send data to Slack', Forminator::DOMAIN ),
231
  'data_sent' => $api->get_last_data_sent(),
232
  'data_received' => $api->get_last_data_received(),
233
  'url_request' => $api->get_last_url_request(),
addons/pro/slack/forminator-addon-slack-form-settings.php CHANGED
@@ -18,10 +18,6 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
18
 
19
  public $target_types = array();
20
 
21
- const TARGET_TYPE_PUBLIC_CHANNEL = 'public_channel';
22
- const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel';
23
- const TARGET_TYPE_DIRECT_MESSAGE = 'direct_message';
24
-
25
  /**
26
  * Forminator_Addon_Slack_Form_Settings constructor.
27
  *
@@ -41,9 +37,9 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
41
  );
42
 
43
  $this->target_types = array(
44
- self::TARGET_TYPE_PUBLIC_CHANNEL => __( 'Public Channel', Forminator::DOMAIN ),
45
- self::TARGET_TYPE_PRIVATE_CHANNEL => __( 'Private Channel', Forminator::DOMAIN ),
46
- self::TARGET_TYPE_DIRECT_MESSAGE => __( 'Direct Message', Forminator::DOMAIN ),
47
  );
48
  }
49
 
@@ -319,12 +315,12 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
319
 
320
  $type = $this->get_multi_id_form_settings_value( $multi_id, 'type', '' );
321
  switch ( $type ) {
322
- case self::TARGET_TYPE_PRIVATE_CHANNEL:
323
  $func_get_targets = 'get_groups_list';
324
  $key_to_walk = 'groups';
325
  $template_params['help_message'] = __( 'Select which Slack private group / channel this feed will post a message to.', Forminator::DOMAIN );
326
  break;
327
- case self::TARGET_TYPE_DIRECT_MESSAGE:
328
  $func_get_targets = 'get_users_list';
329
  $key_to_walk = 'members';
330
  $template_params['help_message'] = __( 'Select which Slack user this feed will post a message to.', Forminator::DOMAIN );
18
 
19
  public $target_types = array();
20
 
 
 
 
 
21
  /**
22
  * Forminator_Addon_Slack_Form_Settings constructor.
23
  *
37
  );
38
 
39
  $this->target_types = array(
40
+ Forminator_Addon_Slack::TARGET_TYPE_PUBLIC_CHANNEL => __( 'Public Channel', Forminator::DOMAIN ),
41
+ Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL => __( 'Private Channel', Forminator::DOMAIN ),
42
+ Forminator_Addon_Slack::TARGET_TYPE_DIRECT_MESSAGE => __( 'Direct Message', Forminator::DOMAIN ),
43
  );
44
  }
45
 
315
 
316
  $type = $this->get_multi_id_form_settings_value( $multi_id, 'type', '' );
317
  switch ( $type ) {
318
+ case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
319
  $func_get_targets = 'get_groups_list';
320
  $key_to_walk = 'groups';
321
  $template_params['help_message'] = __( 'Select which Slack private group / channel this feed will post a message to.', Forminator::DOMAIN );
322
  break;
323
+ case Forminator_Addon_Slack::TARGET_TYPE_DIRECT_MESSAGE:
324
  $func_get_targets = 'get_users_list';
325
  $key_to_walk = 'members';
326
  $template_params['help_message'] = __( 'Select which Slack user this feed will post a message to.', Forminator::DOMAIN );
addons/pro/slack/forminator-addon-slack-poll-hooks.php ADDED
@@ -0,0 +1,432 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Slack_Poll_Hooks
5
+ *
6
+ * @since 1.6.1
7
+ *
8
+ */
9
+ class Forminator_Addon_Slack_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abstract {
10
+
11
+ /**
12
+ * Addon instance are auto available form abstract
13
+ * Its added here for development purpose,
14
+ * Auto-complete will resolve addon directly to `Slack` instance instead of the abstract
15
+ * And its public properties can be exposed
16
+ *
17
+ * @since 1.6.1
18
+ * @var Forminator_Addon_Slack
19
+ */
20
+ protected $addon;
21
+
22
+ /**
23
+ * Poll Settings Instance
24
+ *
25
+ * @since 1.6.1
26
+ * @var Forminator_Addon_Slack_Poll_Settings | null
27
+ */
28
+ protected $poll_settings_instance;
29
+
30
+ /**
31
+ * Save status of request sent and received for each connected Slack Connection
32
+ *
33
+ * @since 1.6.1
34
+ *
35
+ * @param array $submitted_data
36
+ * @param array $form_entry_fields
37
+ *
38
+ * @return array
39
+ */
40
+ public function add_entry_fields( $submitted_data, $form_entry_fields = array() ) {
41
+
42
+ $pol_id = $this->poll_id;
43
+ $poll_settings_instance = $this->poll_settings_instance;
44
+
45
+ /**
46
+ * Filter Slack submitted poll data to be processed
47
+ *
48
+ * @since 1.6.1
49
+ *
50
+ * @param array $submitted_data
51
+ * @param int $pol_id current Poll ID
52
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
53
+ */
54
+ $submitted_data = apply_filters(
55
+ 'forminator_addon_slack_poll_submitted_data',
56
+ $submitted_data,
57
+ $pol_id,
58
+ $poll_settings_instance
59
+ );
60
+
61
+ $addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
62
+
63
+ $data = array();
64
+
65
+ /**
66
+ * Fires before send message to Slack
67
+ *
68
+ * @since 1.6.1
69
+ *
70
+ * @param int $pol_id current Poll ID
71
+ * @param array $submitted_data
72
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
73
+ */
74
+ do_action( 'forminator_addon_slack_poll_before_send_message', $pol_id, $submitted_data, $poll_settings_instance );
75
+
76
+ foreach ( $addon_setting_values as $key => $addon_setting_value ) {
77
+ // save it on entry field, with name `status-$MULTI_ID`, and value is the return result on sending data to slack
78
+ if ( $poll_settings_instance->is_multi_poll_settings_complete( $key ) ) {
79
+ // exec only on completed connection
80
+ $data[] = array(
81
+ 'name' => 'status-' . $key,
82
+ 'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
83
+ );
84
+ }
85
+
86
+ }
87
+
88
+ $entry_fields = $data;
89
+ /**
90
+ * Filter Slack entry fields to be saved to entry model
91
+ *
92
+ * @since 1.6.1
93
+ *
94
+ * @param array $entry_fields
95
+ * @param int $pol_id current Poll ID
96
+ * @param array $submitted_data
97
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
98
+ */
99
+ $data = apply_filters(
100
+ 'forminator_addon_slack_poll_entry_fields',
101
+ $entry_fields,
102
+ $pol_id,
103
+ $submitted_data,
104
+ $poll_settings_instance
105
+ );
106
+
107
+ return $data;
108
+
109
+ }
110
+
111
+ /**
112
+ * Get status on send message to Slack
113
+ *
114
+ * @since 1.6.1
115
+ *
116
+ * @param $connection_id
117
+ * @param $submitted_data
118
+ * @param $connection_settings
119
+ * @param $poll_entry_fields
120
+ *
121
+ * @return array `is_sent` true means its success send data to Slack, false otherwise
122
+ */
123
+ private function get_status_on_send_message( $connection_id, $submitted_data, $connection_settings, $poll_entry_fields ) {
124
+ // initialize as null
125
+ $api = null;
126
+
127
+ $poll_id = $this->poll_id;
128
+ $poll_settings_instance = $this->poll_settings_instance;
129
+ $poll_settings = $this->poll_settings_instance->get_poll_settings();
130
+
131
+ //check required fields
132
+ try {
133
+ $api = $this->addon->get_api();
134
+ $args = array();
135
+
136
+ if ( ! isset( $connection_settings['target_id'] ) ) {
137
+ throw new Forminator_Addon_Slack_Exception( __( 'Target ID not properly setup.', Forminator::DOMAIN ) );
138
+ }
139
+
140
+ if ( ! isset( $connection_settings['message'] ) ) {
141
+ throw new Forminator_Addon_Slack_Exception( __( 'Message not properly setup.', Forminator::DOMAIN ) );
142
+ }
143
+ $text_message = $connection_settings['message'];
144
+ $text_message = forminator_replace_variables( $text_message );
145
+
146
+ // {poll_name_replace}
147
+ $text_message = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $text_message );
148
+
149
+ $attachments = $this->get_poll_data_as_attachments( $submitted_data, $poll_entry_fields );
150
+
151
+ /**
152
+ * Filter `attachments` to passed onto API
153
+ *
154
+ * @since 1.4
155
+ *
156
+ * @param string $card_name
157
+ * @param int $poll_id Current Poll id
158
+ * @param string $connection_id ID of current connection
159
+ * @param array $submitted_data
160
+ * @param array $connection_settings current connection setting, contains options of like `name`, `target_id` etc
161
+ * @param array $poll_entry_fields default entry fields of form
162
+ * @param array $poll_settings Displayed Poll settings
163
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
164
+ */
165
+ $attachments = apply_filters(
166
+ 'forminator_addon_slack_poll_message_attachments',
167
+ $attachments,
168
+ $poll_id,
169
+ $connection_id,
170
+ $submitted_data,
171
+ $connection_settings,
172
+ $poll_entry_fields,
173
+ $poll_settings,
174
+ $poll_settings_instance
175
+ );
176
+
177
+ if ( ! empty( $attachments ) ) {
178
+ $args['attachments'] = $attachments;
179
+ }
180
+
181
+ $args['mrkdwn'] = true;
182
+ /**
183
+ * Filter arguments to passed on to Send Message Slack API
184
+ *
185
+ * @since 1.3
186
+ *
187
+ * @param array $args
188
+ * @param int $poll_id Current Poll id
189
+ * @param string $connection_id ID of current connection
190
+ * @param array $submitted_data
191
+ * @param array $connection_settings current connection setting, contains options of like `name`, `target_id` etc
192
+ * @param array $poll_entry_fields default entry fields of form
193
+ * @param array $poll_settings Displayed Poll settings
194
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
195
+ */
196
+ $args = apply_filters(
197
+ 'forminator_addon_slack_poll_send_message_args',
198
+ $args,
199
+ $poll_id,
200
+ $connection_id,
201
+ $submitted_data,
202
+ $connection_settings,
203
+ $poll_entry_fields,
204
+ $poll_settings,
205
+ $poll_settings_instance
206
+ );
207
+
208
+ $post_message_request = $api->chat_post_message( $connection_settings['target_id'], $text_message, $args );
209
+
210
+ $ts = '';
211
+ if ( is_object( $post_message_request ) && isset( $post_message_request->ts ) ) {
212
+ $ts = (string) $post_message_request->ts;
213
+ }
214
+
215
+ return array(
216
+ 'is_sent' => true,
217
+ 'connection_name' => $connection_settings['name'],
218
+ 'description' => __( 'Successfully send data to Slack', Forminator::DOMAIN ),
219
+ 'data_sent' => $api->get_last_data_sent(),
220
+ 'data_received' => $api->get_last_data_received(),
221
+ 'url_request' => $api->get_last_url_request(),
222
+ 'ts' => $ts, // for delete reference
223
+ 'target_id' => $connection_settings['target_id'], // for delete reference
224
+ );
225
+
226
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
227
+ $addon_entry_fields = array(
228
+ 'is_sent' => false,
229
+ 'description' => $e->getMessage(),
230
+ 'connection_name' => $connection_settings['name'],
231
+ 'data_sent' => ( ( $api instanceof Forminator_Addon_Slack_Wp_Api ) ? $api->get_last_data_sent() : array() ),
232
+ 'data_received' => ( ( $api instanceof Forminator_Addon_Slack_Wp_Api ) ? $api->get_last_data_received() : array() ),
233
+ 'url_request' => ( ( $api instanceof Forminator_Addon_Slack_Wp_Api ) ? $api->get_last_url_request() : '' ),
234
+ 'ts' => '', // for delete reference,
235
+ 'target_id' => '', // for delete reference,
236
+ );
237
+
238
+ return $addon_entry_fields;
239
+ }
240
+ }
241
+
242
+ /**
243
+ * Get Poll Data as attachments
244
+ *
245
+ * @since 1.6.1
246
+ *
247
+ * @param $submitted_data
248
+ * @param $poll_entry_fields
249
+ *
250
+ * @return array
251
+ */
252
+ public function get_poll_data_as_attachments( $submitted_data, $poll_entry_fields ) {
253
+ $attachments = array();
254
+
255
+ /**
256
+ * Attachment 1
257
+ * Answer Extra
258
+ */
259
+ $answer_data = isset( $submitted_data[ $this->poll_id ] ) ? $submitted_data[ $this->poll_id ] : '';
260
+ $extra_field = isset( $submitted_data[ $this->poll_id . '-extra' ] ) ? $submitted_data[ $this->poll_id . '-extra' ] : '';
261
+ $fields_labels = $this->poll->pluck_fields_array( 'title', 'element_id', '1' );
262
+
263
+ $answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
264
+ $extra = $extra_field;
265
+
266
+ $attachment_fields = array();
267
+ $attachment_fields[] = array(
268
+ 'title' => __( 'Vote', Forminator::DOMAIN ),
269
+ 'value' => esc_html( $answer ),
270
+ 'short' => ! empty( $extra ),
271
+ );
272
+
273
+ if ( ! empty( $extra ) ) {
274
+ $attachment_fields[] = array(
275
+ 'title' => __( 'Extra', Forminator::DOMAIN ),
276
+ 'value' => esc_html( $extra ),
277
+ 'short' => true,
278
+ );
279
+ }
280
+
281
+ $attachments[] = array(
282
+ 'title' => __( 'Submitted Vote', Forminator::DOMAIN ),
283
+ 'fields' => $attachment_fields,
284
+ );
285
+
286
+ /**
287
+ * Attachment 2
288
+ * Poll Result
289
+ */
290
+ $attachment_fields = array();
291
+ $fields_array = $this->poll->get_fields_as_array();
292
+ $map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
293
+
294
+ // append new answer
295
+ if ( ! $this->poll->is_prevent_store() ) {
296
+ $entries = 0;
297
+ // exists on map entries
298
+ if ( in_array( $answer_data, array_keys( $map_entries ), true ) ) {
299
+ $entries = $map_entries[ $answer_data ];
300
+ }
301
+
302
+ $entries ++;
303
+ $map_entries[ $answer_data ] = $entries;
304
+
305
+ }
306
+
307
+ $fields = $this->poll->get_fields();
308
+ if ( ! is_null( $fields ) ) {
309
+ foreach ( $fields as $field ) {
310
+ $label = addslashes( $field->title );
311
+
312
+ $slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
313
+ $entries = 0;
314
+ if ( in_array( $slug, array_keys( $map_entries ), true ) ) {
315
+ $entries = $map_entries[ $slug ];
316
+ }
317
+
318
+ $attachment_fields[] = array(
319
+ 'title' => $label,
320
+ 'value' => $entries,
321
+ 'short' => false,
322
+ );
323
+ }
324
+
325
+ }
326
+
327
+ $attachments[] = array(
328
+ 'title' => __( 'Current Poll Result', Forminator::DOMAIN ),
329
+ 'fields' => $attachment_fields,
330
+ );
331
+
332
+
333
+ return $attachments;
334
+ }
335
+
336
+
337
+ /**
338
+ * Slack will add a column on the title/header row
339
+ * its called `Slack Info` which can be translated on forminator lang
340
+ *
341
+ * @since 1.6.1
342
+ * @return array
343
+ */
344
+ public function on_export_render_title_row() {
345
+
346
+ $export_headers = array(
347
+ 'info' => __( 'Slack Info', Forminator::DOMAIN ),
348
+ );
349
+
350
+ $poll_id = $this->poll_id;
351
+ $poll_settings_instance = $this->poll_settings_instance;
352
+
353
+ /**
354
+ * Filter Slack headers on export file
355
+ *
356
+ * @since 1.6.1
357
+ *
358
+ * @param array $export_headers headers to be displayed on export file
359
+ * @param int $poll_id current Poll ID
360
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
361
+ */
362
+ $export_headers = apply_filters(
363
+ 'forminator_addon_slack_poll_export_headers',
364
+ $export_headers,
365
+ $poll_id,
366
+ $poll_settings_instance
367
+ );
368
+
369
+ return $export_headers;
370
+ }
371
+
372
+ /**
373
+ * Slack will add a column that give user information whether sending data to Slack successfully or not
374
+ * It will only add one column even its multiple connection, every connection will be separated by comma
375
+ *
376
+ * @since 1.6.1
377
+ *
378
+ * @param Forminator_Form_Entry_Model $entry_model
379
+ * @param $addon_meta_data
380
+ *
381
+ * @return array
382
+ */
383
+ public function on_export_render_entry( Forminator_Form_Entry_Model $entry_model, $addon_meta_data ) {
384
+
385
+ $poll_id = $this->poll_id;
386
+ $poll_settings_instance = $this->poll_settings_instance;
387
+
388
+ /**
389
+ *
390
+ * Filter Slack metadata that previously saved on db to be processed
391
+ *
392
+ * @since 1.6.1
393
+ *
394
+ * @param array $addon_meta_data
395
+ * @param int $poll_id current Poll ID
396
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
397
+ */
398
+ $addon_meta_data = apply_filters(
399
+ 'forminator_addon_slack_poll_metadata',
400
+ $addon_meta_data,
401
+ $poll_id,
402
+ $poll_settings_instance
403
+ );
404
+
405
+ $export_columns = array(
406
+ 'info' => $this->get_from_addon_meta_data( $addon_meta_data, 'description', '' ),
407
+ );
408
+
409
+ /**
410
+ * Filter Slack columns to be displayed on export submissions
411
+ *
412
+ * @since 1.6.1
413
+ *
414
+ * @param array $export_columns column to be exported
415
+ * @param int $poll_id current Poll ID
416
+ * @param Forminator_Form_Entry_Model $entry_model Form Entry Model
417
+ * @param array $addon_meta_data meta data saved by addon on entry fields
418
+ * @param Forminator_Addon_Slack_Poll_Settings $poll_settings_instance Slack Addon Poll Settings instance
419
+ */
420
+ $export_columns = apply_filters(
421
+ 'forminator_addon_slack_poll_export_columns',
422
+ $export_columns,
423
+ $poll_id,
424
+ $entry_model,
425
+ $addon_meta_data,
426
+ $poll_settings_instance
427
+ );
428
+
429
+ return $export_columns;
430
+ }
431
+
432
+ }
addons/pro/slack/forminator-addon-slack-poll-settings-exception.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Slack_Poll_Settings_Exception
5
+ * Wrapper of Poll Settings Slack Exception
6
+ *
7
+ * @since 1.6.1
8
+ */
9
+ class Forminator_Addon_Slack_Poll_Settings_Exception extends Forminator_Addon_Slack_Exception {
10
+
11
+ /**
12
+ * Holder of input exceptions
13
+ *
14
+ * @since 1.6.1
15
+ * @var array
16
+ */
17
+ protected $input_exceptions = array();
18
+
19
+ /**
20
+ * Forminator_Addon_Slack_Poll_Settings_Exception constructor.
21
+ *
22
+ * Useful if input_id is needed for later.
23
+ * If no input_id needed, use @see Forminator_Addon_Slack_Exception
24
+ *
25
+ * @since 1.6.1
26
+ *
27
+ * @param string $message
28
+ * @param string $input_id
29
+ */
30
+ public function __construct( $message = '', $input_id = '' ) {
31
+ parent::__construct( $message, 0 );
32
+ if ( ! empty( $input_id ) ) {
33
+ $this->add_input_exception( $message, $input_id );
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Set exception message for an input
39
+ *
40
+ * @since 1.6.1
41
+ *
42
+ * @param $message
43
+ * @param $input_id
44
+ */
45
+ public function add_input_exception( $message, $input_id ) {
46
+ $this->input_exceptions[ $input_id ] = $message;
47
+ }
48
+
49
+ /**
50
+ * Get all input exceptions
51
+ *
52
+ * @since 1.6.1
53
+ * @return array
54
+ */
55
+ public function get_input_exceptions() {
56
+ return $this->input_exceptions;
57
+ }
58
+
59
+ /**
60
+ * Check if there is input_exceptions_is_available
61
+ *
62
+ * @since 1.6.1
63
+ * @return bool
64
+ */
65
+ public function input_exceptions_is_available() {
66
+ return count( $this->input_exceptions ) > 0;
67
+ }
68
+ }
addons/pro/slack/forminator-addon-slack-poll-settings.php ADDED
@@ -0,0 +1,633 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-settings-exception.php';
4
+
5
+ /**
6
+ * Class Forminator_Addon_Slack_Poll_Settings
7
+ * Handle how poll settings displayed and saved
8
+ *
9
+ * @since 1.6.1
10
+ */
11
+ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Settings_Abstract {
12
+
13
+ /**
14
+ * @var Forminator_Addon_Slack
15
+ * @since 1.6.1
16
+ */
17
+ protected $addon;
18
+
19
+ public $target_types = array();
20
+
21
+ /**
22
+ * Forminator_Addon_Slack_Poll_Settings constructor.
23
+ *
24
+ * @since 1.6.1
25
+ *
26
+ * @param Forminator_Addon_Abstract $addon
27
+ * @param $poll_id
28
+ *
29
+ * @throws Forminator_Addon_Exception
30
+ */
31
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
32
+ parent::__construct( $addon, $poll_id );
33
+
34
+ $this->_update_poll_settings_error_message = __(
35
+ 'The update to your settings for this poll failed, check the form input and try again.',
36
+ Forminator::DOMAIN
37
+ );
38
+
39
+ $this->target_types = array(
40
+ Forminator_Addon_Slack::TARGET_TYPE_PUBLIC_CHANNEL => __( 'Public Channel', Forminator::DOMAIN ),
41
+ Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL => __( 'Private Channel', Forminator::DOMAIN ),
42
+ Forminator_Addon_Slack::TARGET_TYPE_DIRECT_MESSAGE => __( 'Direct Message', Forminator::DOMAIN ),
43
+ );
44
+ }
45
+
46
+ /**
47
+ * Slack Poll Settings wizard
48
+ *
49
+ * @since 1.6.1
50
+ * @return array
51
+ */
52
+ public function poll_settings_wizards() {
53
+ // numerical array steps
54
+ return array(
55
+ array(
56
+ 'callback' => array( $this, 'pick_name' ),
57
+ 'is_completed' => array( $this, 'pick_name_is_completed' ),
58
+ ),
59
+ array(
60
+ 'callback' => array( $this, 'select_type' ),
61
+ 'is_completed' => array( $this, 'select_type_is_completed' ),
62
+ ),
63
+ array(
64
+ 'callback' => array( $this, 'select_target' ),
65
+ 'is_completed' => array( $this, 'select_target_is_completed' ),
66
+ ),
67
+ array(
68
+ 'callback' => array( $this, 'setup_message' ),
69
+ 'is_completed' => array( $this, 'setup_message_is_completed' ),
70
+ ),
71
+ );
72
+ }
73
+
74
+ /**
75
+ * Setup Connection Name
76
+ *
77
+ * @since 1.6.1
78
+ *
79
+ * @param $submitted_data
80
+ *
81
+ * @return array
82
+ */
83
+ public function pick_name( $submitted_data ) {
84
+ $template = forminator_addon_slack_dir() . 'views/poll-settings/pick-name.php';
85
+
86
+ $multi_id = $this->generate_multi_id();
87
+ if ( isset( $submitted_data['multi_id'] ) ) {
88
+ $multi_id = $submitted_data['multi_id'];
89
+ }
90
+
91
+ $template_params = array(
92
+ 'name' => $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' ),
93
+ 'name_error' => '',
94
+ 'multi_id' => $multi_id,
95
+ );
96
+
97
+ unset( $submitted_data['multi_id'] );
98
+
99
+ $is_submit = ! empty( $submitted_data );
100
+ $has_errors = false;
101
+ if ( $is_submit ) {
102
+ $name = isset( $submitted_data['name'] ) ? $submitted_data['name'] : '';
103
+ $template_params['name'] = $name;
104
+
105
+ try {
106
+ if ( empty( $name ) ) {
107
+ throw new Forminator_Addon_Slack_Exception( __( 'Please pick valid name' ) );
108
+ }
109
+
110
+ $time_added = $this->get_multi_id_poll_settings_value( $multi_id, 'time_added', time() );
111
+ $this->save_multi_id_poll_setting_values(
112
+ $multi_id,
113
+ array(
114
+ 'name' => $name,
115
+ 'time_added' => $time_added,
116
+ )
117
+ );
118
+
119
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
120
+ $template_params['name_error'] = $e->getMessage();
121
+ $has_errors = true;
122
+ }
123
+ }
124
+
125
+ $buttons = array();
126
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
127
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
128
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
129
+ esc_html__( 'Disconnect this Slack Integration from this Poll.', Forminator::DOMAIN )
130
+ );
131
+ }
132
+
133
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
134
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
135
+ '</div>';
136
+
137
+ return array(
138
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
139
+ 'buttons' => $buttons,
140
+ 'redirect' => false,
141
+ 'has_errors' => $has_errors,
142
+ );
143
+ }
144
+
145
+ /**
146
+ * Check if pick name step completed
147
+ *
148
+ * @since 1.6.1
149
+ *
150
+ * @param $submitted_data
151
+ *
152
+ * @return bool
153
+ */
154
+ public function pick_name_is_completed( $submitted_data ) {
155
+ $multi_id = '';
156
+ if ( isset( $submitted_data['multi_id'] ) ) {
157
+ $multi_id = $submitted_data['multi_id'];
158
+ }
159
+
160
+ if ( empty( $multi_id ) ) {
161
+ return false;
162
+ }
163
+
164
+ $name = $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' );
165
+
166
+ if ( empty( $name ) ) {
167
+ return false;
168
+ }
169
+
170
+ return true;
171
+ }
172
+
173
+ /**
174
+ * Select Message Type
175
+ *
176
+ * @since 1.6.1
177
+ *
178
+ * @param $submitted_data
179
+ *
180
+ * @return array
181
+ */
182
+ public function select_type( $submitted_data ) {
183
+ $template = forminator_addon_slack_dir() . 'views/poll-settings/select-type.php';
184
+
185
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
186
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
187
+ }
188
+
189
+ $multi_id = $submitted_data['multi_id'];
190
+ unset( $submitted_data['multi_id'] );
191
+
192
+ $template_params = array(
193
+ 'type' => $this->get_multi_id_poll_settings_value( $multi_id, 'type', '' ),
194
+ 'type_error' => '',
195
+ 'multi_id' => $multi_id,
196
+ 'error_message' => '',
197
+ );
198
+
199
+
200
+ $is_submit = ! empty( $submitted_data );
201
+ $has_errors = false;
202
+
203
+ $types = $this->target_types;
204
+ $template_params['types'] = $types;
205
+
206
+ if ( $is_submit ) {
207
+ $type = isset( $submitted_data['type'] ) ? $submitted_data['type'] : '';
208
+ $template_params['type'] = $type;
209
+
210
+ try {
211
+
212
+ if ( empty( $type ) ) {
213
+ throw new Forminator_Addon_Slack_Exception( __( 'Please pick valid type' ) );
214
+ }
215
+
216
+ if ( ! in_array( $type, array_keys( $types ), true ) ) {
217
+ throw new Forminator_Addon_Slack_Exception( __( 'Please pick valid type' ) );
218
+ }
219
+
220
+ $this->save_multi_id_poll_setting_values(
221
+ $multi_id,
222
+ array(
223
+ 'type' => $type,
224
+ )
225
+ );
226
+
227
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
228
+ $template_params['type_error'] = $e->getMessage();
229
+ $has_errors = true;
230
+ }
231
+ }
232
+
233
+ $buttons = array();
234
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
235
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
236
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
237
+ esc_html__( 'Disconnect this Slack Integration from this Poll.', Forminator::DOMAIN )
238
+ );
239
+ }
240
+
241
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
242
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
243
+ '</div>';
244
+
245
+ return array(
246
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
247
+ 'buttons' => $buttons,
248
+ 'redirect' => false,
249
+ 'has_errors' => $has_errors,
250
+ 'has_back' => true,
251
+ );
252
+ }
253
+
254
+ /**
255
+ * Check if select type completed
256
+ *
257
+ * @since 1.6.1
258
+ *
259
+ * @param $submitted_data
260
+ *
261
+ * @return bool
262
+ */
263
+ public function select_type_is_completed( $submitted_data ) {
264
+ $multi_id = '';
265
+ if ( isset( $submitted_data['multi_id'] ) ) {
266
+ $multi_id = $submitted_data['multi_id'];
267
+ }
268
+
269
+ if ( empty( $multi_id ) ) {
270
+ return false;
271
+ }
272
+
273
+ $type = $this->get_multi_id_poll_settings_value( $multi_id, 'type', '' );
274
+
275
+ if ( empty( $type ) ) {
276
+ return false;
277
+ }
278
+
279
+ $types = $this->target_types;
280
+ if ( ! in_array( $type, array_keys( $types ), true ) ) {
281
+ return false;
282
+ }
283
+
284
+ return true;
285
+ }
286
+
287
+ /**
288
+ * Select Target
289
+ *
290
+ * @since 1.6.1
291
+ *
292
+ * @param $submitted_data
293
+ *
294
+ * @return array
295
+ */
296
+ public function select_target( $submitted_data ) {
297
+ $template = forminator_addon_slack_dir() . 'views/poll-settings/select-target.php';
298
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
299
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
300
+ }
301
+
302
+ $multi_id = $submitted_data['multi_id'];
303
+ unset( $submitted_data['multi_id'] );
304
+
305
+ $template_params = array(
306
+ 'target_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'target_id', '' ),
307
+ 'target_id_error' => '',
308
+ 'multi_id' => $multi_id,
309
+ 'error_message' => '',
310
+ 'targets' => array(),
311
+ 'help_message' => '',
312
+ );
313
+
314
+
315
+ $type = $this->get_multi_id_poll_settings_value( $multi_id, 'type', '' );
316
+ switch ( $type ) {
317
+ case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
318
+ $func_get_targets = 'get_groups_list';
319
+ $key_to_walk = 'groups';
320
+ $template_params['help_message'] = __( 'Select which Slack private group / channel this feed will post a message to.', Forminator::DOMAIN );
321
+ break;
322
+ case Forminator_Addon_Slack::TARGET_TYPE_DIRECT_MESSAGE:
323
+ $func_get_targets = 'get_users_list';
324
+ $key_to_walk = 'members';
325
+ $template_params['help_message'] = __( 'Select which Slack user this feed will post a message to.', Forminator::DOMAIN );
326
+ break;
327
+ default:
328
+ $func_get_targets = 'get_channels_list';
329
+ $key_to_walk = 'channels';
330
+ $template_params['help_message'] = __( 'Select which Slack channel this feed will post a message to.', Forminator::DOMAIN );
331
+ break;
332
+ }
333
+
334
+
335
+ $is_submit = ! empty( $submitted_data );
336
+ $has_errors = false;
337
+
338
+ $targets = array();
339
+
340
+ try {
341
+
342
+ $api = $this->addon->get_api();
343
+ $targets_request = call_user_func( array( $api, $func_get_targets ) );
344
+ if ( ! is_object( $targets_request ) || ! isset( $targets_request->$key_to_walk ) || ! is_array( $targets_request->$key_to_walk ) || empty( $targets_request->$key_to_walk ) ) {
345
+ throw new Forminator_Addon_Slack_Exception( __( 'No target found on your selected target type.', Forminator::DOMAIN ) );
346
+ }
347
+
348
+ foreach ( $targets_request->$key_to_walk as $value ) {
349
+ $targets[ $value->id ] = $value->name;
350
+ }
351
+
352
+ $template_params['targets'] = $targets;
353
+
354
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
355
+ $template_params['error_message'] = $e->getMessage();
356
+ $has_errors = true;
357
+ }
358
+
359
+ if ( $is_submit ) {
360
+ $target_id = isset( $submitted_data['target_id'] ) ? $submitted_data['target_id'] : '';
361
+ $template_params['target_id'] = $target_id;
362
+
363
+ try {
364
+
365
+ if ( empty( $target_id ) ) {
366
+ throw new Forminator_Addon_Slack_Exception( __( 'Please pick valid target' ) );
367
+ }
368
+
369
+ if ( ! in_array( $target_id, array_keys( $targets ), true ) ) {
370
+ throw new Forminator_Addon_Slack_Exception( __( 'Please pick valid target' ) );
371
+ }
372
+
373
+ $target_name = $targets[ $target_id ];
374
+
375
+ $this->save_multi_id_poll_setting_values(
376
+ $multi_id,
377
+ array(
378
+ 'target_id' => $target_id,
379
+ 'target_name' => $target_name,
380
+ )
381
+ );
382
+
383
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
384
+ $template_params['target_id_error'] = $e->getMessage();
385
+ $has_errors = true;
386
+ }
387
+ }
388
+
389
+ $buttons = array();
390
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
391
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
392
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
393
+ esc_html__( 'Disconnect this Slack Integration from this Poll.', Forminator::DOMAIN )
394
+ );
395
+ }
396
+
397
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
398
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
399
+ '</div>';
400
+
401
+ return array(
402
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
403
+ 'buttons' => $buttons,
404
+ 'redirect' => false,
405
+ 'has_errors' => $has_errors,
406
+ 'has_back' => true,
407
+ );
408
+
409
+ }
410
+
411
+ /**
412
+ * Check if select target completed
413
+ *
414
+ * @since 1.6.1
415
+ *
416
+ * @param $submitted_data
417
+ *
418
+ * @return bool
419
+ */
420
+ public function select_target_is_completed( $submitted_data ) {
421
+ $multi_id = '';
422
+ if ( isset( $submitted_data['multi_id'] ) ) {
423
+ $multi_id = $submitted_data['multi_id'];
424
+ }
425
+
426
+ if ( empty( $multi_id ) ) {
427
+ return false;
428
+ }
429
+
430
+ $target_id = $this->get_multi_id_poll_settings_value( $multi_id, 'target_id', '' );
431
+
432
+ if ( empty( $target_id ) ) {
433
+ return false;
434
+ }
435
+
436
+ return true;
437
+ }
438
+
439
+ /**
440
+ * Setup Message
441
+ *
442
+ * @since 1.6.1
443
+ *
444
+ * @param $submitted_data
445
+ *
446
+ * @return array
447
+ */
448
+ public function setup_message( $submitted_data ) {
449
+ $template = forminator_addon_slack_dir() . 'views/poll-settings/setup-message.php';
450
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
451
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
452
+ }
453
+
454
+ $multi_id = $submitted_data['multi_id'];
455
+ unset( $submitted_data['multi_id'] );
456
+
457
+ $template_params = array(
458
+ 'message' => $this->get_multi_id_poll_settings_value( $multi_id, 'message', 'New votes from *{poll_name}*' ),
459
+ 'message_error' => '',
460
+ 'multi_id' => $multi_id,
461
+ 'error_message' => '',
462
+ 'tags' => array(),
463
+ );
464
+
465
+ $template_params['tags'] = forminator_get_vars();
466
+ $template_params['tags']['poll_name'] = __( 'Poll Name', Forminator::DOMAIN );
467
+
468
+ $is_submit = ! empty( $submitted_data );
469
+ $has_errors = false;
470
+ $notification = array();
471
+ $is_close = false;
472
+
473
+ if ( $is_submit ) {
474
+ $message = isset( $submitted_data['message'] ) ? $submitted_data['message'] : '';
475
+ $template_params['message'] = $message;
476
+
477
+ try {
478
+
479
+ if ( empty( $message ) ) {
480
+ throw new Forminator_Addon_Slack_Exception( __( 'Please add a message', Forminator::DOMAIN ) );
481
+ }
482
+
483
+ $this->save_multi_id_poll_setting_values(
484
+ $multi_id,
485
+ array(
486
+ 'message' => $message,
487
+ )
488
+ );
489
+
490
+ $notification = array(
491
+ 'type' => 'success',
492
+ 'text' => '<strong>' . $this->addon->get_title() . '</strong> ' . __( 'Successfully connected to your poll' ),
493
+ );
494
+ $is_close = true;
495
+
496
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
497
+ $template_params['message_error'] = $e->getMessage();
498
+ $has_errors = true;
499
+ }
500
+ }
501
+
502
+ $buttons = array();
503
+ if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
504
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
505
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
506
+ esc_html__( 'Disconnect this Slack Integration from this Poll.', Forminator::DOMAIN )
507
+ );
508
+ }
509
+
510
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
511
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-next' ) .
512
+ '</div>';
513
+
514
+ return array(
515
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
516
+ 'buttons' => $buttons,
517
+ 'redirect' => false,
518
+ 'has_errors' => $has_errors,
519
+ 'has_back' => true,
520
+ 'notification' => $notification,
521
+ 'is_close' => $is_close,
522
+ 'size' => 'normal',
523
+ );
524
+
525
+ }
526
+
527
+ /**
528
+ * Check if setup message completed
529
+ *
530
+ * @since 1.6.1
531
+ *
532
+ * @param $submitted_data
533
+ *
534
+ * @return bool
535
+ */
536
+ public function setup_message_is_completed( $submitted_data ) {
537
+ $multi_id = '';
538
+ if ( isset( $submitted_data['multi_id'] ) ) {
539
+ $multi_id = $submitted_data['multi_id'];
540
+ }
541
+
542
+ if ( empty( $multi_id ) ) {
543
+ return false;
544
+ }
545
+
546
+ $message = $this->get_multi_id_poll_settings_value( $multi_id, 'message', '' );
547
+
548
+ if ( empty( $message ) ) {
549
+ return false;
550
+ }
551
+
552
+ return true;
553
+ }
554
+
555
+ /**
556
+ * Generate multi id for multiple connection
557
+ *
558
+ * @since 1.6.1
559
+ * @return string
560
+ */
561
+ public function generate_multi_id() {
562
+ return uniqid( 'slack_', true );
563
+ }
564
+
565
+
566
+ /**
567
+ * Override how multi connection displayed
568
+ *
569
+ * @since 1.6.1
570
+ * @return array
571
+ */
572
+ public function get_multi_ids() {
573
+ $multi_ids = array();
574
+ foreach ( $this->get_poll_settings_values() as $key => $value ) {
575
+ $multi_ids[] = array(
576
+ 'id' => $key,
577
+ // use name that was added by user on creating connection
578
+ 'label' => isset( $value['name'] ) ? $value['name'] : $key,
579
+ );
580
+ }
581
+
582
+ return $multi_ids;
583
+ }
584
+
585
+ /**
586
+ * Disconnect a connection from current poll
587
+ *
588
+ * @since 1.6.1
589
+ *
590
+ * @param array $submitted_data
591
+ */
592
+ public function disconnect_poll( $submitted_data ) {
593
+ // only execute if multi_id provided on submitted data
594
+ if ( isset( $submitted_data['multi_id'] ) && ! empty( $submitted_data['multi_id'] ) ) {
595
+ $addon_poll_settings = $this->get_poll_settings_values();
596
+ unset( $addon_poll_settings[ $submitted_data['multi_id'] ] );
597
+ $this->save_poll_settings_values( $addon_poll_settings );
598
+ }
599
+ }
600
+
601
+ /**
602
+ * Check if multi_id poll settings values completed
603
+ *
604
+ * Override when needed
605
+ *
606
+ * @since 1.6.1
607
+ *
608
+ * @param $multi_id
609
+ *
610
+ * @return bool
611
+ */
612
+ public function is_multi_poll_settings_complete( $multi_id ) {
613
+ $data = array( 'multi_id' => $multi_id );
614
+
615
+ if ( ! $this->pick_name_is_completed( $data ) ) {
616
+ return false;
617
+ }
618
+
619
+ if ( ! $this->select_type_is_completed( $data ) ) {
620
+ return false;
621
+ }
622
+ if ( ! $this->select_target_is_completed( $data ) ) {
623
+ return false;
624
+ }
625
+ if ( ! $this->setup_message_is_completed( $data ) ) {
626
+ return false;
627
+ }
628
+
629
+ return true;
630
+ }
631
+
632
+
633
+ }
addons/pro/slack/forminator-addon-slack.php CHANGED
@@ -31,11 +31,18 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
31
 
32
  private $_auth_error_message = '';
33
 
 
 
 
 
34
  /**
35
  * @var null|Forminator_Addon_Slack_Wp_Api
36
  */
37
  private static $_api = null;
38
 
 
 
 
39
  /**
40
  * Forminator_Addon_Slack constructor.
41
  *
@@ -668,7 +675,7 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
668
  } else {
669
  $template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
670
  // todo : translate $query_args[error]
671
- $settings['auth_error_message'] = $template_params['error_message'];
672
  $this->save_settings_values( $settings );
673
  $template_params['is_close'] = true;
674
  }
@@ -745,4 +752,64 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
745
 
746
  return $headers;
747
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
748
  }
31
 
32
  private $_auth_error_message = '';
33
 
34
+ const TARGET_TYPE_PUBLIC_CHANNEL = 'public_channel';
35
+ const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel';
36
+ const TARGET_TYPE_DIRECT_MESSAGE = 'direct_message';
37
+
38
  /**
39
  * @var null|Forminator_Addon_Slack_Wp_Api
40
  */
41
  private static $_api = null;
42
 
43
+ protected $_poll_settings = 'Forminator_Addon_Slack_Poll_Settings';
44
+ protected $_poll_hooks = 'Forminator_Addon_Slack_Poll_Hooks';
45
+
46
  /**
47
  * Forminator_Addon_Slack constructor.
48
  *
675
  } else {
676
  $template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
677
  // todo : translate $query_args[error]
678
+ $settings['auth_error_message'] = $template_params['error_message'];
679
  $this->save_settings_values( $settings );
680
  $template_params['is_close'] = true;
681
  }
752
 
753
  return $headers;
754
  }
755
+
756
+ /**
757
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
758
+ *
759
+ * Please apply necessary WordPress hook on the inheritance class
760
+ *
761
+ * @since 1.6.1
762
+ *
763
+ * @param $poll_id
764
+ *
765
+ * @return boolean
766
+ */
767
+ public function is_poll_connected( $poll_id ) {
768
+ try {
769
+ $poll_settings_instance = null;
770
+ if ( ! $this->is_connected() ) {
771
+ throw new Forminator_Addon_Slack_Exception( 'Slack is not connected' );
772
+ }
773
+
774
+ $poll_settings_instance = $this->get_addon_poll_settings( $poll_id );
775
+ if ( ! $poll_settings_instance instanceof Forminator_Addon_Slack_Poll_Settings ) {
776
+ throw new Forminator_Addon_Slack_Exception( 'Invalid Poll Settings of Slack' );
777
+ }
778
+
779
+ // Mark as active when there is at least one active connection
780
+ if ( false === $poll_settings_instance->find_one_active_connection() ) {
781
+ throw new Forminator_Addon_Slack_Exception( 'No active Slack connection found in this poll' );
782
+ }
783
+
784
+ $is_poll_connected = true;
785
+
786
+ } catch ( Forminator_Addon_Slack_Exception $e ) {
787
+
788
+ $is_poll_connected = false;
789
+ }
790
+
791
+ /**
792
+ * Filter connected status Slack with the poll
793
+ *
794
+ * @since 1.6.1
795
+ *
796
+ * @param bool $is_poll_connected
797
+ * @param int $poll_id Current Poll ID
798
+ * @param Forminator_Addon_Slack_Poll_Settings|null $poll_settings_instance Instance of poll settings, or null when unavailable
799
+ *
800
+ */
801
+ $is_poll_connected = apply_filters( 'forminator_addon_slack_is_poll_connected', $is_poll_connected, $poll_id, $poll_settings_instance );
802
+
803
+ return $is_poll_connected;
804
+ }
805
+
806
+ /**
807
+ * Allow multiple connection on one poll
808
+ *
809
+ * @since 1.6.1
810
+ * @return bool
811
+ */
812
+ public function is_allow_multi_on_poll() {
813
+ return true;
814
+ }
815
  }
addons/pro/slack/slack.php CHANGED
@@ -9,7 +9,7 @@
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
- define( 'FORMINATOR_ADDON_SLACK_VERSION', '1.0' );
13
 
14
  function forminator_addon_slack_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/slack' );
@@ -24,7 +24,12 @@ function forminator_addon_slack_assets_url() {
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-slack.php';
 
27
  require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-settings.php';
28
  require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-hooks.php';
 
 
 
 
29
  //Direct Load
30
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Slack' );
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
+ define( 'FORMINATOR_ADDON_SLACK_VERSION', '1.1' );
13
 
14
  function forminator_addon_slack_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/slack' );
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-slack.php';
27
+
28
  require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-settings.php';
29
  require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-hooks.php';
30
+
31
+ require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-settings.php';
32
+ require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-hooks.php';
33
+
34
  //Direct Load
35
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Slack' );
addons/pro/slack/views/poll-settings/pick-name.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'name' => '',
6
+ 'name_error' => '',
7
+ 'multi_id' => '',
8
+ );
9
+ /** @var array $template_vars */
10
+ foreach ( $template_vars as $key => $val ) {
11
+ $vars[ $key ] = $val;
12
+ }
13
+
14
+ ?>
15
+ <div class="integration-header">
16
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Setup Name', Forminator::DOMAIN ) ); ?></h3>
17
+ <p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
18
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
19
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
20
+ <?php endif; ?>
21
+ </div>
22
+ <form>
23
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
24
+ <label class="sui-label"><?php esc_html_e( 'Name', Forminator::DOMAIN ); ?></label>
25
+ <input
26
+ class="sui-form-control"
27
+ name="name" placeholder="<?php echo esc_attr( __( 'Friendly Name', Forminator::DOMAIN ) ); ?>"
28
+ value="<?php echo esc_attr( $vars['name'] ); ?>">
29
+ <?php if ( ! empty( $vars['name_error'] ) ) : ?>
30
+ <span class="sui-error-message"><?php echo esc_html( $vars['name_error'] ); ?></span>
31
+ <?php endif; ?>
32
+ </div>
33
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
34
+ </form>
addons/pro/slack/views/poll-settings/select-target.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'target_id' => '',
6
+ 'target_id_error' => '',
7
+ 'targets' => array(),
8
+ 'help_message' => '',
9
+ );
10
+ /** @var array $template_vars */
11
+ foreach ( $template_vars as $key => $val ) {
12
+ $vars[ $key ] = $val;
13
+ }
14
+
15
+ ?>
16
+ <div class="integration-header">
17
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Select Target', Forminator::DOMAIN ) ); ?></h3>
18
+ <p><?php echo esc_html( $vars['help_message'] ); ?></p>
19
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
20
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
21
+ <?php endif; ?>
22
+ </div>
23
+ <form>
24
+
25
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['target_id_error'] ) ? 'sui-form-field-error' : '' ); ?>">
26
+ <label class="sui-label"><?php esc_html_e( 'Type', Forminator::DOMAIN ); ?>
27
+ <select name="target_id" class="sui-select sui-form-control">
28
+ <option><?php esc_html_e( 'Please select target', Forminator::DOMAIN ); ?></option>
29
+ <?php foreach ( $vars['targets'] as $target_id => $target_name ) : ?>
30
+ <option value="<?php echo esc_attr( $target_id ); ?>" <?php selected( $vars['target_id'], $target_id ); ?>><?php echo esc_html( $target_name ); ?></option>
31
+ <?php endforeach; ?>
32
+ </select>
33
+ <?php if ( ! empty( $vars['target_id_error'] ) ) : ?>
34
+ <span class="sui-error-message"><?php echo esc_html( $vars['target_id_error'] ); ?></span>
35
+ <?php endif; ?>
36
+ </label>
37
+ </div>
38
+
39
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
40
+ </form>
addons/pro/slack/views/poll-settings/select-type.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'type' => '',
6
+ 'type_error' => '',
7
+ 'types' => array(),
8
+ );
9
+ /** @var array $template_vars */
10
+ foreach ( $template_vars as $key => $val ) {
11
+ $vars[ $key ] = $val;
12
+ }
13
+
14
+ ?>
15
+ <div class="integration-header">
16
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Select Type', Forminator::DOMAIN ) ); ?></h3>
17
+ <p><?php esc_html_e( 'Select what type of channel Slack will send the message to: a public channel, a private group or a DM channel.', Forminator::DOMAIN ); ?></p>
18
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
19
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
20
+ <?php endif; ?>
21
+ </div>
22
+ <form>
23
+
24
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['type_error'] ) ? 'sui-form-field-error' : '' ); ?>">
25
+ <label class="sui-label"><?php esc_html_e( 'Type', Forminator::DOMAIN ); ?>
26
+ <select name="type" class="sui-select sui-form-control">
27
+ <option><?php esc_html_e( 'Please select type', Forminator::DOMAIN ); ?></option>
28
+ <?php foreach ( $vars['types'] as $type_id => $type_name ) : ?>
29
+ <option value="<?php echo esc_attr( $type_id ); ?>" <?php selected( $vars['type'], $type_id ); ?>><?php echo esc_html( $type_name ); ?></option>
30
+ <?php endforeach; ?>
31
+ </select>
32
+ <?php if ( ! empty( $vars['type_error'] ) ) : ?>
33
+ <span class="sui-error-message"><?php echo esc_html( $vars['type_error'] ); ?></span>
34
+ <?php endif; ?>
35
+ </label>
36
+ </div>
37
+
38
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
39
+ </form>
addons/pro/slack/views/poll-settings/setup-message.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'message' => '',
5
+ 'message_error' => '',
6
+ 'error_message' => '',
7
+ 'multi_id' => '',
8
+ 'tags' => array(),
9
+ );
10
+ /** @var array $template_vars */
11
+ foreach ( $template_vars as $key => $val ) {
12
+ $vars[ $key ] = $val;
13
+ }
14
+
15
+ ?>
16
+ <div class="integration-header">
17
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Setup Message', Forminator::DOMAIN ) ); ?></h3>
18
+ <p><?php esc_html_e( 'Configure message to be sent.', Forminator::DOMAIN ); ?></p>
19
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
20
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
21
+ <?php endif; ?>
22
+ </div>
23
+
24
+ <form>
25
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['message_error'] ) ? 'sui-form-field-error' : '' ); ?>">
26
+
27
+ <label class="sui-label"><?php esc_html_e( 'Message', Forminator::DOMAIN ); ?></label>
28
+
29
+ <div class="sui-insert-variables">
30
+
31
+ <textarea id="slack_message"
32
+ class="sui-form-control"
33
+ name="message"
34
+ placeholder="<?php echo esc_attr( __( 'Message', Forminator::DOMAIN ) ); ?>"><?php echo esc_html( $vars['message'] ); ?></textarea>
35
+
36
+ <select data-textarea-id="slack_message">
37
+ <?php foreach ( $vars['tags'] as $tag => $label ) : ?>
38
+ <option value="{<?php echo esc_attr( $tag ); ?>}"
39
+ data-content="{<?php echo esc_attr( $tag ); ?>}"><?php echo esc_html( $label ); ?></option>
40
+ <?php endforeach; ?></select>
41
+
42
+ </div>
43
+
44
+ <?php if ( ! empty( $vars['message_error'] ) ) : ?>
45
+ <span class="sui-error-message"><?php echo esc_html( $vars['message_error'] ); ?></span>
46
+ <?php endif; ?>
47
+ <span class="sui-description">
48
+ <?php esc_html_e( 'You can format your message using Slack Flavored Markdown, find more information ', Forminator::DOMAIN ); ?>
49
+ <a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
50
+ </span>
51
+ <span class="sui-description">
52
+ <?php esc_html_e( 'By default sent message will include Poll Answer and Poll Results as attachment using Forminator Format to ease you up, more information about attachment can be found ',
53
+ Forminator::DOMAIN ); ?>
54
+ <a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>
55
+ </span>
56
+
57
+ </div>
58
+
59
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
60
+ </form>
addons/pro/slack/views/settings/setup-client.php CHANGED
@@ -19,7 +19,7 @@ foreach ( $template_vars as $key => $val ) {
19
  <?php if ( ! empty( $vars['token'] ) ) : ?>
20
  <p><?php esc_html_e( 'Your Slack account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?> </p>
21
  <?php else : ?>
22
- <p><?php esc_html_e( 'Setup Slack to be used by Forminator to communicate with the Slack server.', Forminator::DOMAIN ); ?></p>
23
  <?php if ( ! empty( $vars['error_message'] ) ) : ?>
24
  <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
25
  <?php endif; ?>
19
  <?php if ( ! empty( $vars['token'] ) ) : ?>
20
  <p><?php esc_html_e( 'Your Slack account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?> </p>
21
  <?php else : ?>
22
+ <p><?php esc_html_e( 'Setup Slack to be used by Forminator to communicating with the Slack server.', Forminator::DOMAIN ); ?></p>
23
  <?php if ( ! empty( $vars['error_message'] ) ) : ?>
24
  <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
25
  <?php endif; ?>
addons/pro/trello/forminator-addon-trello-form-hooks.php CHANGED
@@ -296,7 +296,7 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
296
  return array(
297
  'is_sent' => true,
298
  'connection_name' => $connection_settings['name'],
299
- 'description' => __( 'Successfully sent data to Trello', Forminator::DOMAIN ),
300
  'data_sent' => $api->get_last_data_sent(),
301
  'data_received' => $api->get_last_data_received(),
302
  'url_request' => $api->get_last_url_request(),
296
  return array(
297
  'is_sent' => true,
298
  'connection_name' => $connection_settings['name'],
299
+ 'description' => __( 'Successfully send data to Trello', Forminator::DOMAIN ),
300
  'data_sent' => $api->get_last_data_sent(),
301
  'data_received' => $api->get_last_data_received(),
302
  'url_request' => $api->get_last_url_request(),
addons/pro/trello/forminator-addon-trello-poll-hooks.php ADDED
@@ -0,0 +1,521 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Trello_Poll_Hooks
5
+ *
6
+ * @since 1.6.1
7
+ *
8
+ */
9
+ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abstract {
10
+
11
+ /**
12
+ * Addon instance are auto available form abstract
13
+ * Its added here for development purpose,
14
+ * Auto-complete will resolve addon directly to `Trello` instance instead of the abstract
15
+ * And its public properties can be exposed
16
+ *
17
+ * @since 1.6.1
18
+ * @var Forminator_Addon_Trello
19
+ */
20
+ protected $addon;
21
+
22
+ /**
23
+ * Form Settings Instance
24
+ *
25
+ * @since 1.6.1
26
+ * @var Forminator_Addon_Trello_Poll_Settings | null
27
+ */
28
+ protected $poll_settings_instance;
29
+
30
+ /**
31
+ * Forminator_Addon_Trello_Poll_Hooks constructor.
32
+ *
33
+ * @since 1.6.1
34
+ *
35
+ * @param Forminator_Addon_Abstract $addon
36
+ * @param $poll_id
37
+ *
38
+ * @throws Forminator_Addon_Exception
39
+ */
40
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
41
+ parent::__construct( $addon, $poll_id );
42
+ $this->_submit_poll_error_message = __( 'Trello failed to process submitted data. Please check your form and try again', Forminator::DOMAIN );
43
+ }
44
+
45
+ /**
46
+ * Save status of request sent and received for each connected Trello
47
+ *
48
+ * @since 1.6.1
49
+ *
50
+ * @param array $submitted_data
51
+ * @param array $current_entry_fields
52
+ *
53
+ * @return array
54
+ */
55
+ public function add_entry_fields( $submitted_data, $current_entry_fields = array() ) {
56
+
57
+ $poll_id = $this->poll_id;
58
+ $poll_settings_instance = $this->poll_settings_instance;
59
+
60
+ /**
61
+ * Filter Trello submitted form data to be processed
62
+ *
63
+ * @since 1.6.1
64
+ *
65
+ * @param array $submitted_data
66
+ * @param array $current_entry_fields
67
+ * @param int $poll_id current Poll ID
68
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
69
+ */
70
+ $submitted_data = apply_filters(
71
+ 'forminator_addon_trello_poll_submitted_data',
72
+ $submitted_data,
73
+ $current_entry_fields,
74
+ $poll_id,
75
+ $poll_settings_instance
76
+ );
77
+
78
+ /**
79
+ * Filter current form entry fields data to be processed by Trello
80
+ *
81
+ * @since 1.6.1
82
+ *
83
+ * @param array $current_entry_fields
84
+ * @param array $submitted_data
85
+ * @param int $poll_id current Poll ID
86
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
87
+ */
88
+ $current_entry_fields = apply_filters(
89
+ 'forminator_addon_trello_poll_current_entry_fields',
90
+ $current_entry_fields,
91
+ $submitted_data,
92
+ $poll_id,
93
+ $poll_settings_instance
94
+ );
95
+
96
+
97
+ $addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
98
+
99
+ $data = array();
100
+
101
+ /**
102
+ * Fires before create card on trello
103
+ *
104
+ * @since 1.6.1
105
+ *
106
+ * @param int $poll_id current Poll ID
107
+ * @param array $submitted_data
108
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
109
+ */
110
+ do_action( 'forminator_addon_trello_poll_before_create_card', $poll_id, $submitted_data, $poll_settings_instance );
111
+
112
+ foreach ( $addon_setting_values as $key => $addon_setting_value ) {
113
+ // save it on entry field, with name `status-$MULTI_ID`, and value is the return result on sending data to trello
114
+ if ( $poll_settings_instance->is_multi_poll_settings_complete( $key ) ) {
115
+ // exec only on completed connection
116
+ $data[] = array(
117
+ 'name' => 'status-' . $key,
118
+ 'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
119
+ );
120
+ }
121
+
122
+ }
123
+
124
+ $entry_fields = $data;
125
+ /**
126
+ * Filter Trello entry fields to be saved to entry model
127
+ *
128
+ * @since 1.6.1
129
+ *
130
+ * @param array $entry_fields
131
+ * @param int $poll_id current Poll ID
132
+ * @param array $submitted_data
133
+ * @param array $current_entry_fields
134
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
135
+ */
136
+ $data = apply_filters(
137
+ 'forminator_addon_trello_poll_entry_fields',
138
+ $entry_fields,
139
+ $poll_id,
140
+ $submitted_data,
141
+ $current_entry_fields,
142
+ $poll_settings_instance
143
+ );
144
+
145
+ return $data;
146
+
147
+ }
148
+
149
+ /**
150
+ * Get status on create Trello card
151
+ *
152
+ * @since 1.6.1
153
+ *
154
+ * @param string $connection_id
155
+ * @param array $submitted_data
156
+ * @param array $connection_settings
157
+ * @param array $current_entry_fields
158
+ *
159
+ * @return array `is_sent` true means its success send data to Trello, false otherwise
160
+ */
161
+ private function get_status_on_create_card( $connection_id, $submitted_data, $connection_settings, $current_entry_fields ) {
162
+ // initialize as null
163
+ $api = null;
164
+
165
+ $poll_id = $this->poll_id;
166
+ $poll_settings_instance = $this->poll_settings_instance;
167
+
168
+ //check required fields
169
+ try {
170
+ $api = $this->addon->get_api();
171
+ $args = array();
172
+
173
+ $poll_settings = $this->poll_settings_instance->get_poll_settings();
174
+
175
+ if ( isset( $connection_settings['list_id'] ) ) {
176
+ $args['idList'] = $connection_settings['list_id'];
177
+ }
178
+
179
+ if ( isset( $connection_settings['card_name'] ) ) {
180
+ $card_name = $connection_settings['card_name'];
181
+ // disable all_fields here
182
+ $card_name = forminator_replace_variables( $card_name );
183
+ // {poll_name_replace}
184
+ $card_name = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $card_name );
185
+
186
+ /**
187
+ * Filter Card Name to passed on to Create Trello Card API
188
+ *
189
+ * @since 1.6.1
190
+ *
191
+ * @param string $card_name
192
+ * @param int $poll_id Current Poll id
193
+ * @param string $connection_id ID of current connection
194
+ * @param array $submitted_data
195
+ * @param array $connection_settings current connection setting, contains options of like `name`, `list_id` etc
196
+ * @param array $current_entry_fields default entry fields of poll
197
+ * @param array $poll_settings Displayed Poll settings
198
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
199
+ */
200
+ $card_name = apply_filters(
201
+ 'forminator_addon_trello_poll_card_name',
202
+ $card_name,
203
+ $poll_id,
204
+ $connection_id,
205
+ $submitted_data,
206
+ $connection_settings,
207
+ $current_entry_fields,
208
+ $poll_settings,
209
+ $poll_settings_instance
210
+ );
211
+ $args['name'] = $card_name;
212
+
213
+ }
214
+
215
+ if ( isset( $connection_settings['card_description'] ) ) {
216
+ $card_description = $connection_settings['card_description'];
217
+ $poll_answer_to_markdown = $this->poll_answer_to_markdown( $submitted_data );
218
+ $poll_result_to_markdown = $this->poll_result_to_markdown( $submitted_data );
219
+ $card_description = str_ireplace( '{poll_answer}', $poll_answer_to_markdown, $card_description );
220
+ $card_description = str_ireplace( '{poll_result}', $poll_result_to_markdown, $card_description );
221
+ $card_description = forminator_replace_variables( $card_description );
222
+
223
+ /**
224
+ * Filter Card Description to passed on to Create Trello Card API
225
+ *
226
+ * @since 1.6.1
227
+ *
228
+ * @param string $card_description
229
+ * @param int $poll_id Current Poll id
230
+ * @param string $connection_id ID of current connection
231
+ * @param array $submitted_data
232
+ * @param array $connection_settings current connection setting, contains options of like `name`, `list_id` etc
233
+ * @param array $current_entry_fields default entry fields of poll
234
+ * @param array $poll_settings Displayed Poll settings
235
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
236
+ */
237
+ $card_description = apply_filters(
238
+ 'forminator_addon_trello_poll_card_description',
239
+ $card_description,
240
+ $poll_id,
241
+ $connection_id,
242
+ $submitted_data,
243
+ $connection_settings,
244
+ $current_entry_fields,
245
+ $poll_settings,
246
+ $poll_settings_instance
247
+ );
248
+ $args['desc'] = $card_description;
249
+ }
250
+
251
+ if ( isset( $connection_settings['position'] ) ) {
252
+ $args['pos'] = $connection_settings['position'];
253
+ }
254
+
255
+ if ( isset( $connection_settings['label_ids'] ) && is_array( $connection_settings['label_ids'] ) ) {
256
+ $args['idLabels'] = implode( ',', $connection_settings['label_ids'] );
257
+ }
258
+
259
+ if ( isset( $connection_settings['member_ids'] ) && is_array( $connection_settings['member_ids'] ) ) {
260
+ $args['idMembers'] = implode( ',', $connection_settings['member_ids'] );
261
+ }
262
+
263
+ if ( isset( $submitted_data['_wp_http_referer'] ) ) {
264
+ $url_source = home_url( $submitted_data['_wp_http_referer'] );
265
+ if ( wp_http_validate_url( $url_source ) ) {
266
+ $args['urlSource'] = $url_source;
267
+ }
268
+ }
269
+
270
+ /**
271
+ * Filter arguments to passed on to Create Trello Card API
272
+ *
273
+ * @since 1.6.1
274
+ *
275
+ * @param array $args
276
+ * @param int $poll_id Current Poll id
277
+ * @param string $connection_id ID of current connection
278
+ * @param array $submitted_data
279
+ * @param array $connection_settings current connection setting, contains options of like `name`, `list_id` etc
280
+ * @param array $poll_settings Displayed Poll settings
281
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
282
+ */
283
+ $args = apply_filters(
284
+ 'forminator_addon_trello_poll_create_card_args',
285
+ $args,
286
+ $poll_id,
287
+ $connection_id,
288
+ $submitted_data,
289
+ $connection_settings,
290
+ $poll_settings,
291
+ $poll_settings_instance
292
+ );
293
+
294
+ $api->create_card( $args );
295
+
296
+ forminator_addon_maybe_log( __METHOD__, 'Success Send Data' );
297
+
298
+ return array(
299
+ 'is_sent' => true,
300
+ 'connection_name' => $connection_settings['name'],
301
+ 'description' => __( 'Successfully send data to Trello', Forminator::DOMAIN ),
302
+ 'data_sent' => $api->get_last_data_sent(),
303
+ 'data_received' => $api->get_last_data_received(),
304
+ 'url_request' => $api->get_last_url_request(),
305
+ );
306
+
307
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
308
+ forminator_addon_maybe_log( __METHOD__, 'Failed to Send to Trello' );
309
+
310
+ return array(
311
+ 'is_sent' => false,
312
+ 'description' => $e->getMessage(),
313
+ 'connection_name' => $connection_settings['name'],
314
+ 'data_sent' => ( ( $api instanceof Forminator_Addon_Trello_Wp_Api ) ? $api->get_last_data_sent() : array() ),
315
+ 'data_received' => ( ( $api instanceof Forminator_Addon_Trello_Wp_Api ) ? $api->get_last_data_received() : array() ),
316
+ 'url_request' => ( ( $api instanceof Forminator_Addon_Trello_Wp_Api ) ? $api->get_last_url_request() : '' ),
317
+ );
318
+ }
319
+ }
320
+
321
+ /**
322
+ * Special Replacer `{poll_answer}` to markdown with Trello Flavour
323
+ *
324
+ * @param array $submitted_data
325
+ *
326
+ * @return string
327
+ */
328
+ private function poll_answer_to_markdown( $submitted_data ) {
329
+
330
+ $answer_data = isset( $submitted_data[ $this->poll_id ] ) ? $submitted_data[ $this->poll_id ] : '';
331
+ $extra_field = isset( $submitted_data[ $this->poll_id . '-extra' ] ) ? $submitted_data[ $this->poll_id . '-extra' ] : '';
332
+ $fields_labels = $this->poll->pluck_fields_array( 'title', 'element_id', '1' );
333
+
334
+ $answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
335
+ $extra = $extra_field;
336
+
337
+ $markdown = "##" . __( 'Poll Answer', Forminator::DOMAIN ) . "\n";
338
+ $markdown .= '**' . __( 'Vote', Forminator::DOMAIN ) . ':** ' . $answer;
339
+ if ( ! empty( $extra ) ) {
340
+ $markdown .= "\n**" . __( 'Extra', Forminator::DOMAIN ) . ':** ' . $extra;
341
+ }
342
+
343
+
344
+ /**
345
+ * Filter markdown for `poll_answer`
346
+ *
347
+ * @since 1.6.1
348
+ *
349
+ * @param string $markdown
350
+ * @param array $submitted_data Submit data
351
+ * @param array $fields_labels Poll Answers Labels
352
+ */
353
+ $markdown = apply_filters(
354
+ 'forminator_addon_trello_poll_answer_markdown',
355
+ $markdown,
356
+ $submitted_data,
357
+ $fields_labels
358
+ );
359
+
360
+ return $markdown;
361
+ }
362
+
363
+ /**
364
+ * Special Replacer `{poll_result}` to markdown with Trello Flavour
365
+ *
366
+ * @since 1.6.1
367
+ *
368
+ * @param array $submitted_data
369
+ *
370
+ * @return string
371
+ */
372
+ private function poll_result_to_markdown( $submitted_data ) {
373
+ $fields_array = $this->poll->get_fields_as_array();
374
+ $map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
375
+
376
+ // append new answer
377
+ if ( ! $this->poll->is_prevent_store() ) {
378
+ $answer_data = isset( $submitted_data[ $this->poll_id ] ) ? $submitted_data[ $this->poll_id ] : '';
379
+
380
+ $entries = 0;
381
+ // exists on map entries
382
+ if ( in_array( $answer_data, array_keys( $map_entries ), true ) ) {
383
+ $entries = $map_entries[ $answer_data ];
384
+ }
385
+
386
+ $entries ++;
387
+ $map_entries[ $answer_data ] = $entries;
388
+
389
+ }
390
+
391
+ $fields = $this->poll->get_fields();
392
+
393
+ $markdown = '##' . __( 'Poll Results', Forminator::DOMAIN );
394
+ if ( ! is_null( $fields ) ) {
395
+ foreach ( $fields as $field ) {
396
+ $label = addslashes( $field->title );
397
+
398
+ $slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
399
+ $entries = 0;
400
+ if ( in_array( $slug, array_keys( $map_entries ), true ) ) {
401
+ $entries = $map_entries[ $slug ];
402
+ }
403
+ $markdown .= "\n**" . $label . ':** ' . $entries;
404
+ }
405
+ }
406
+
407
+
408
+ /**
409
+ * Filter markdown for `poll_result`
410
+ *
411
+ * @since 1.6.1
412
+ *
413
+ * @param string $markdown
414
+ * @param array $fields_array Answers list
415
+ * @param array $map_entries Poll Entries
416
+ */
417
+ $markdown = apply_filters(
418
+ 'forminator_addon_trello_poll_result_markdown',
419
+ $markdown,
420
+ $fields_array,
421
+ $map_entries
422
+ );
423
+
424
+ return $markdown;
425
+ }
426
+
427
+ /**
428
+ * Trello will add a column on the title/header row
429
+ * its called `Trello Info` which can be translated on forminator lang
430
+ *
431
+ * @since 1.6.1
432
+ * @return array
433
+ */
434
+ public function on_export_render_title_row() {
435
+
436
+ $export_headers = array(
437
+ 'info' => __( 'Trello Info', Forminator::DOMAIN ),
438
+ );
439
+
440
+ $poll_id = $this->poll_id;
441
+ $poll_settings_instance = $this->poll_settings_instance;
442
+
443
+ /**
444
+ * Filter Trello headers on export file
445
+ *
446
+ * @since 1.6.1
447
+ *
448
+ * @param array $export_headers headers to be displayed on export file
449
+ * @param int $poll_id current Poll ID
450
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
451
+ */
452
+ $export_headers = apply_filters(
453
+ 'forminator_addon_trello_poll_export_headers',
454
+ $export_headers,
455
+ $poll_id,
456
+ $poll_settings_instance
457
+ );
458
+
459
+ return $export_headers;
460
+ }
461
+
462
+ /**
463
+ * Trello will add a column that give user information whether sending data to Trello successfully or not
464
+ * It will only add one column even its multiple connection, every connection will be separated by comma
465
+ *
466
+ * @since 1.6.1
467
+ *
468
+ * @param Forminator_Form_Entry_Model $entry_model
469
+ * @param $addon_meta_data
470
+ *
471
+ * @return array
472
+ */
473
+ public function on_export_render_entry( Forminator_Form_Entry_Model $entry_model, $addon_meta_data ) {
474
+
475
+ $poll_id = $this->poll_id;
476
+ $poll_settings_instance = $this->poll_settings_instance;
477
+
478
+ /**
479
+ *
480
+ * Filter Trello metadata that previously saved on db to be processed
481
+ *
482
+ * @since 1.6.1
483
+ *
484
+ * @param array $addon_meta_data
485
+ * @param int $poll_id current Poll ID
486
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
487
+ */
488
+ $addon_meta_data = apply_filters(
489
+ 'forminator_addon_trello_poll_metadata',
490
+ $addon_meta_data,
491
+ $poll_id,
492
+ $poll_settings_instance
493
+ );
494
+
495
+ $export_columns = array(
496
+ 'info' => $this->get_from_addon_meta_data( $addon_meta_data, 'description', '' ),
497
+ );
498
+
499
+ /**
500
+ * Filter Trello columns to be displayed on export submissions
501
+ *
502
+ * @since 1.6.1
503
+ *
504
+ * @param array $export_columns column to be exported
505
+ * @param int $poll_id current Poll ID
506
+ * @param Forminator_Form_Entry_Model $entry_model Form Entry Model
507
+ * @param array $addon_meta_data meta data saved by addon on entry fields
508
+ * @param Forminator_Addon_Trello_Poll_Settings $poll_settings_instance Trello Addon Poll Settings instance
509
+ */
510
+ $export_columns = apply_filters(
511
+ 'forminator_addon_trello_poll_export_columns',
512
+ $export_columns,
513
+ $poll_id,
514
+ $entry_model,
515
+ $addon_meta_data,
516
+ $poll_settings_instance
517
+ );
518
+
519
+ return $export_columns;
520
+ }
521
+ }
addons/pro/trello/forminator-addon-trello-poll-settings-exception.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Trello_Poll_Settings_Exception
5
+ * Wrapper of Poll Settings Trello Exception
6
+ *
7
+ * @since 1.6.1
8
+ */
9
+ class Forminator_Addon_Trello_Poll_Settings_Exception extends Forminator_Addon_Trello_Exception {
10
+
11
+ /**
12
+ * Holder of input exceptions
13
+ *
14
+ * @since 1.6.1
15
+ * @var array
16
+ */
17
+ protected $input_exceptions = array();
18
+
19
+ /**
20
+ * Forminator_Addon_Trello_Poll_Settings_Exception constructor.
21
+ *
22
+ * Useful if input_id is needed for later.
23
+ * If no input_id needed, use @see Forminator_Addon_Trello_Exception
24
+ *
25
+ * @since 1.6.1
26
+ *
27
+ * @param string $message
28
+ * @param string $input_id
29
+ */
30
+ public function __construct( $message = '', $input_id = '' ) {
31
+ parent::__construct( $message, 0 );
32
+ if ( ! empty( $input_id ) ) {
33
+ $this->add_input_exception( $message, $input_id );
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Set exception message for an input
39
+ *
40
+ * @since 1.6.1
41
+ *
42
+ * @param $message
43
+ * @param $input_id
44
+ */
45
+ public function add_input_exception( $message, $input_id ) {
46
+ $this->input_exceptions[ $input_id ] = $message;
47
+ }
48
+
49
+ /**
50
+ * Get all input exceptions
51
+ *
52
+ * @since 1.6.1
53
+ * @return array
54
+ */
55
+ public function get_input_exceptions() {
56
+ return $this->input_exceptions;
57
+ }
58
+
59
+ /**
60
+ * Check if there is input_exceptions_is_available
61
+ *
62
+ * @since 1.6.1
63
+ * @return bool
64
+ */
65
+ public function input_exceptions_is_available() {
66
+ return count( $this->input_exceptions ) > 0;
67
+ }
68
+ }
addons/pro/trello/forminator-addon-trello-poll-settings.php ADDED
@@ -0,0 +1,778 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-settings-exception.php';
4
+
5
+ /**
6
+ * Class Forminator_Addon_Trello_Poll_Settings
7
+ * Handle how poll settings displayed and saved
8
+ *
9
+ * @since 1.6.1
10
+ */
11
+ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settings_Abstract {
12
+
13
+ /**
14
+ * @var Forminator_Addon_Trello
15
+ * @since 1.6.1
16
+ */
17
+ protected $addon;
18
+
19
+ /**
20
+ * Forminator_Addon_Trello_Poll_Settings constructor.
21
+ *
22
+ * @since 1.6.1
23
+ *
24
+ * @param Forminator_Addon_Abstract $addon
25
+ * @param $poll_id
26
+ *
27
+ * @throws Forminator_Addon_Exception
28
+ */
29
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
30
+ parent::__construct( $addon, $poll_id );
31
+
32
+ $this->_update_poll_settings_error_message = __(
33
+ 'The update to your settings for this poll failed, check the form input and try again.',
34
+ Forminator::DOMAIN
35
+ );
36
+ }
37
+
38
+ /**
39
+ * Trello Poll Settings wizard
40
+ *
41
+ * @since 1.6.1
42
+ * @return array
43
+ */
44
+ public function poll_settings_wizards() {
45
+ // numerical array steps
46
+ return array(
47
+ array(
48
+ 'callback' => array( $this, 'setup_name' ),
49
+ 'is_completed' => array( $this, 'setup_name_is_completed' ),
50
+ ),
51
+ array(
52
+ 'callback' => array( $this, 'setup_board' ),
53
+ 'is_completed' => array( $this, 'setup_board_is_completed' ),
54
+ ),
55
+ array(
56
+ 'callback' => array( $this, 'setup_list' ),
57
+ 'is_completed' => array( $this, 'setup_list_is_completed' ),
58
+ ),
59
+ array(
60
+ 'callback' => array( $this, 'setup_card' ),
61
+ 'is_completed' => array( $this, 'setup_card_is_completed' ),
62
+ ),
63
+ );
64
+ }
65
+
66
+ /**
67
+ * Setup Name
68
+ *
69
+ * @since 1.6.1
70
+ *
71
+ * @param $submitted_data
72
+ *
73
+ * @return array
74
+ */
75
+ public function setup_name( $submitted_data ) {
76
+ $template = forminator_addon_trello_dir() . 'views/poll-settings/setup-name.php';
77
+
78
+ $multi_id = $this->generate_multi_id();
79
+ if ( isset( $submitted_data['multi_id'] ) ) {
80
+ $multi_id = $submitted_data['multi_id'];
81
+ }
82
+
83
+ $template_params = array(
84
+ 'name' => $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' ),
85
+ 'name_error' => '',
86
+ 'multi_id' => $multi_id,
87
+ );
88
+
89
+ unset( $submitted_data['multi_id'] );
90
+
91
+ $is_submit = ! empty( $submitted_data );
92
+ $has_errors = false;
93
+ if ( $is_submit ) {
94
+ $name = isset( $submitted_data['name'] ) ? $submitted_data['name'] : '';
95
+ $template_params['name'] = $name;
96
+
97
+ try {
98
+ if ( empty( $name ) ) {
99
+ throw new Forminator_Addon_Trello_Exception( __( 'Please pick valid name' ) );
100
+ }
101
+
102
+ $time_added = $this->get_multi_id_poll_settings_value( $multi_id, 'time_added', time() );
103
+ $this->save_multi_id_poll_setting_values(
104
+ $multi_id,
105
+ array(
106
+ 'name' => $name,
107
+ 'time_added' => $time_added,
108
+ )
109
+ );
110
+
111
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
112
+ $template_params['name_error'] = $e->getMessage();
113
+ $has_errors = true;
114
+ }
115
+ }
116
+
117
+ $buttons = array();
118
+ if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
119
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
120
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
121
+ esc_html__( 'Disconnect this Trello Integration from this Poll.', Forminator::DOMAIN )
122
+ );
123
+ }
124
+
125
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
126
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
127
+ '</div>';
128
+
129
+ return array(
130
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
131
+ 'buttons' => $buttons,
132
+ 'redirect' => false,
133
+ 'has_errors' => $has_errors,
134
+ );
135
+ }
136
+
137
+ /**
138
+ * Check if setup name is completed
139
+ *
140
+ * @since 1.6.1
141
+ *
142
+ * @param $submitted_data
143
+ *
144
+ * @return bool
145
+ */
146
+ public function setup_name_is_completed( $submitted_data ) {
147
+ $multi_id = '';
148
+ if ( isset( $submitted_data['multi_id'] ) ) {
149
+ $multi_id = $submitted_data['multi_id'];
150
+ }
151
+
152
+ if ( empty( $multi_id ) ) {
153
+ return false;
154
+ }
155
+
156
+ $name = $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' );
157
+
158
+ if ( empty( $name ) ) {
159
+ return false;
160
+ }
161
+
162
+ return true;
163
+ }
164
+
165
+ /**
166
+ * Setup Board
167
+ *
168
+ * @since 1.6.1
169
+ *
170
+ * @param $submitted_data
171
+ *
172
+ * @return array
173
+ */
174
+ public function setup_board( $submitted_data ) {
175
+ $template = forminator_addon_trello_dir() . 'views/poll-settings/setup-board.php';
176
+
177
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
178
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
179
+ }
180
+
181
+ $multi_id = $submitted_data['multi_id'];
182
+ unset( $submitted_data['multi_id'] );
183
+
184
+ $template_params = array(
185
+ 'board_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' ),
186
+ 'board_id_error' => '',
187
+ 'multi_id' => $multi_id,
188
+ 'error_message' => '',
189
+ 'boards' => array(),
190
+ );
191
+
192
+
193
+ $is_submit = ! empty( $submitted_data );
194
+ $has_errors = false;
195
+
196
+ $boards = array();
197
+
198
+ try {
199
+
200
+ $api = $this->addon->get_api();
201
+ $boards_request = $api->get_boards();
202
+
203
+ foreach ( $boards_request as $key => $data ) {
204
+ if ( isset( $data->id ) && isset( $data->name ) ) {
205
+ $boards[ $data->id ] = $data->name;
206
+ }
207
+ }
208
+
209
+ if ( empty( $boards ) ) {
210
+ throw new Forminator_Addon_Trello_Exception( __( 'No board found on your Trello account. Please create one.', Forminator::DOMAIN ) );
211
+ }
212
+
213
+ $template_params['boards'] = $boards;
214
+
215
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
216
+ $template_params['error_message'] = $e->getMessage();
217
+ $has_errors = true;
218
+ }
219
+
220
+ if ( $is_submit ) {
221
+ $board_id = isset( $submitted_data['board_id'] ) ? $submitted_data['board_id'] : '';
222
+ $template_params['board_id'] = $board_id;
223
+
224
+ try {
225
+ if ( empty( $board_id ) ) {
226
+ throw new Forminator_Addon_Trello_Exception( __( 'Please pick valid board.' ) );
227
+ }
228
+
229
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
230
+ if ( ! in_array( $board_id, array_keys( $boards ) ) ) {
231
+ throw new Forminator_Addon_Trello_Exception( __( 'Please pick valid board.' ) );
232
+ }
233
+
234
+ $board_name = $boards[ $board_id ];
235
+
236
+ $this->save_multi_id_poll_setting_values(
237
+ $multi_id,
238
+ array(
239
+ 'board_id' => $board_id,
240
+ 'board_name' => $board_name,
241
+ )
242
+ );
243
+
244
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
245
+ $template_params['board_id_error'] = $e->getMessage();
246
+ $has_errors = true;
247
+ }
248
+ }
249
+
250
+ $buttons = array();
251
+ if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
252
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
253
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
254
+ esc_html__( 'Disconnect this Trello Integration from this Poll.', Forminator::DOMAIN )
255
+ );
256
+ }
257
+
258
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
259
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
260
+ '</div>';
261
+
262
+ return array(
263
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
264
+ 'buttons' => $buttons,
265
+ 'redirect' => false,
266
+ 'has_errors' => $has_errors,
267
+ 'has_back' => true,
268
+ );
269
+ }
270
+
271
+ /**
272
+ * Check if setup board is completed
273
+ *
274
+ * @since 1.6.1
275
+ *
276
+ * @param $submitted_data
277
+ *
278
+ * @return bool
279
+ */
280
+ public function setup_board_is_completed( $submitted_data ) {
281
+ $multi_id = '';
282
+ if ( isset( $submitted_data['multi_id'] ) ) {
283
+ $multi_id = $submitted_data['multi_id'];
284
+ }
285
+
286
+ if ( empty( $multi_id ) ) {
287
+ return false;
288
+ }
289
+
290
+ $board_id = $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' );
291
+
292
+ if ( empty( $board_id ) ) {
293
+ return false;
294
+ }
295
+
296
+ return true;
297
+ }
298
+
299
+ /**
300
+ * Setup List on Board
301
+ *
302
+ * @since 1.6.1
303
+ *
304
+ * @param $submitted_data
305
+ *
306
+ * @return array
307
+ */
308
+ public function setup_list( $submitted_data ) {
309
+ $template = forminator_addon_trello_dir() . 'views/poll-settings/setup-list.php';
310
+
311
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
312
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
313
+ }
314
+
315
+ $multi_id = $submitted_data['multi_id'];
316
+ unset( $submitted_data['multi_id'] );
317
+
318
+ //todo: validate this, step wizard back if needed
319
+ $board_name = $this->get_multi_id_poll_settings_value( $multi_id, 'board_name', '' );
320
+ $board_id = $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' );
321
+
322
+ $template_params = array(
323
+ 'list_id' => $this->get_multi_id_poll_settings_value( $multi_id, 'list_id', '' ),
324
+ 'list_id_error' => '',
325
+ 'board_name' => $board_name,
326
+ 'multi_id' => $multi_id,
327
+ 'error_message' => '',
328
+ 'lists' => array(),
329
+ );
330
+
331
+ $is_submit = ! empty( $submitted_data );
332
+ $has_errors = false;
333
+
334
+ $lists = array();
335
+
336
+ try {
337
+
338
+ $api = $this->addon->get_api();
339
+ $list_request = $api->get_board_lists( $board_id );
340
+
341
+ foreach ( $list_request as $key => $data ) {
342
+ if ( isset( $data->id ) && isset( $data->name ) ) {
343
+ $lists[ $data->id ] = $data->name;
344
+ }
345
+ }
346
+
347
+ if ( empty( $lists ) ) {
348
+ throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
349
+ }
350
+
351
+ $template_params['lists'] = $lists;
352
+
353
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
354
+ $template_params['error_message'] = $e->getMessage();
355
+ $has_errors = true;
356
+ }
357
+
358
+ if ( $is_submit ) {
359
+ $list_id = isset( $submitted_data['list_id'] ) ? $submitted_data['list_id'] : '';
360
+ $template_params['list_id'] = $list_id;
361
+
362
+ try {
363
+ if ( empty( $list_id ) ) {
364
+ throw new Forminator_Addon_Trello_Exception( __( 'Please pick valid list.' ) );
365
+ }
366
+
367
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
368
+ if ( ! in_array( $list_id, array_keys( $lists ) ) ) {
369
+ throw new Forminator_Addon_Trello_Exception( __( 'Please pick valid list.' ) );
370
+ }
371
+
372
+ $list_name = $lists[ $list_id ];
373
+
374
+ $this->save_multi_id_poll_setting_values(
375
+ $multi_id,
376
+ array(
377
+ 'list_id' => $list_id,
378
+ 'list_name' => $list_name,
379
+ )
380
+ );
381
+
382
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
383
+ $template_params['list_id_error'] = $e->getMessage();
384
+ $has_errors = true;
385
+ }
386
+ }
387
+
388
+ $buttons = array();
389
+ if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
390
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
391
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
392
+ esc_html__( 'Disconnect this Trello Integration from this Poll.', Forminator::DOMAIN )
393
+ );
394
+ }
395
+
396
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
397
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
398
+ '</div>';
399
+
400
+ return array(
401
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
402
+ 'buttons' => $buttons,
403
+ 'redirect' => false,
404
+ 'has_errors' => $has_errors,
405
+ 'has_back' => true,
406
+ );
407
+ }
408
+
409
+ /**
410
+ * Check if setup list is completed
411
+ *
412
+ * @since 1.6.1
413
+ *
414
+ * @param $submitted_data
415
+ *
416
+ * @return bool
417
+ */
418
+ public function setup_list_is_completed( $submitted_data ) {
419
+ $multi_id = '';
420
+ if ( isset( $submitted_data['multi_id'] ) ) {
421
+ $multi_id = $submitted_data['multi_id'];
422
+ }
423
+
424
+ if ( empty( $multi_id ) ) {
425
+ return false;
426
+ }
427
+
428
+ $list_id = $this->get_multi_id_poll_settings_value( $multi_id, 'list_id', '' );
429
+
430
+ if ( empty( $list_id ) ) {
431
+ return false;
432
+ }
433
+
434
+ return true;
435
+ }
436
+
437
+ /**
438
+ * Setup Card
439
+ *
440
+ * @since 1.6.1
441
+ *
442
+ * @param $submitted_data
443
+ *
444
+ * @return array
445
+ */
446
+ public function setup_card( $submitted_data ) {
447
+ $template = forminator_addon_trello_dir() . 'views/poll-settings/setup-card.php';
448
+
449
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
450
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
451
+ }
452
+
453
+ $multi_id = $submitted_data['multi_id'];
454
+ unset( $submitted_data['multi_id'] );
455
+
456
+ $positions = array(
457
+ 'top' => __( 'Top', Forminator::DOMAIN ),
458
+ 'bottom' => __( 'Bottom', Forminator::DOMAIN ),
459
+ );
460
+
461
+ //todo: validate this, step wizard back if needed
462
+ $board_id = $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' );
463
+
464
+
465
+ $template_params = array(
466
+ 'card_name' => $this->get_multi_id_poll_settings_value( $multi_id, 'card_name', 'New votes from {poll_name}' ),
467
+ 'card_name_error' => '',
468
+ 'card_description' => $this->get_multi_id_poll_settings_value( $multi_id, 'card_description', "{poll_answer}\n{poll_result}" ),
469
+ 'card_description_error' => '',
470
+ 'position' => $this->get_multi_id_poll_settings_value( $multi_id, 'position', 'bottom' ),
471
+ 'position_error' => '',
472
+ 'positions' => $positions,
473
+ 'label_ids' => $this->get_multi_id_poll_settings_value( $multi_id, 'label_ids', array() ),
474
+ 'label_ids_error' => '',
475
+ 'labels' => array(),
476
+ 'member_ids' => $this->get_multi_id_poll_settings_value( $multi_id, 'member_ids', array() ),
477
+ 'member_ids_error' => '',
478
+ 'members' => array(),
479
+ 'error_message' => '',
480
+ 'multi_id' => $multi_id,
481
+ 'list_name' => $this->get_multi_id_poll_settings_value( $multi_id, 'list_name', '' ),
482
+ );
483
+
484
+ $var_list = array();
485
+ $var_list['poll_name'] = __( 'Poll Name', Forminator::DOMAIN );
486
+ $var_list = array_merge( $var_list, forminator_get_vars() );
487
+
488
+ $template_params['name_fields'] = $var_list;
489
+ $template_params['desc_fields'] = array_merge( forminator_get_poll_vars(), $var_list );
490
+
491
+ $is_submit = ! empty( $submitted_data );
492
+ $has_errors = false;
493
+ $is_close = false;
494
+ $notification = array();
495
+
496
+ $labels = array();
497
+ $members = array();
498
+
499
+ try {
500
+ // get available labels
501
+ $api = $this->addon->get_api();
502
+ $labels_request = $api->get_board_labels( $board_id );
503
+
504
+ foreach ( $labels_request as $data ) {
505
+ if ( isset( $data->id ) ) {
506
+ $name = $data->color;
507
+ if ( isset( $data->name ) && ! empty( $data->name ) ) {
508
+ $name = $data->name;
509
+ }
510
+ $labels[ $data->id ] = array(
511
+ 'name' => $name,
512
+ 'color' => $data->color,
513
+ );
514
+ }
515
+ }
516
+
517
+ // get available members
518
+ $members_request = $api->get_board_members( $board_id );
519
+
520
+ foreach ( $members_request as $data ) {
521
+ if ( isset( $data->id ) && isset( $data->username ) ) {
522
+ $display_name = $data->username;
523
+ // its from API var
524
+ // phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
525
+ if ( isset( $data->fullName ) && ! empty( $data->fullName ) ) {
526
+ // its from API var
527
+ // phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
528
+ $display_name = $data->fullName;
529
+ }
530
+ $members[ $data->id ] = $display_name;
531
+ }
532
+ }
533
+
534
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
535
+ $template_params['error_message'] = $e->getMessage();
536
+ $has_errors = true;
537
+ }
538
+
539
+ $template_params['labels'] = $labels;
540
+ $template_params['members'] = $members;
541
+
542
+ if ( $is_submit ) {
543
+ $card_name = isset( $submitted_data['card_name'] ) ? trim( $submitted_data['card_name'] ) : '';
544
+ $template_params['card_name'] = $card_name;
545
+
546
+ $card_description = isset( $submitted_data['card_description'] ) ? trim( $submitted_data['card_description'] ) : '';
547
+ $template_params['card_description'] = $card_description;
548
+
549
+ $position = isset( $submitted_data['position'] ) ? $submitted_data['position'] : '';
550
+ $template_params['position'] = $position;
551
+
552
+ $label_ids = isset( $submitted_data['label_ids'] ) ? $submitted_data['label_ids'] : array();
553
+ $template_params['label_ids'] = $label_ids;
554
+
555
+ $member_ids = isset( $submitted_data['member_ids'] ) ? $submitted_data['member_ids'] : array();
556
+ $template_params['member_ids'] = $member_ids;
557
+
558
+ try {
559
+ $input_exceptions = new Forminator_Addon_Trello_Poll_Settings_Exception();
560
+
561
+ if ( empty( $card_name ) ) {
562
+ $input_exceptions->add_input_exception( 'Please specify card name.', 'card_name_error' );
563
+ }
564
+
565
+ if ( empty( $card_description ) ) {
566
+ $input_exceptions->add_input_exception( 'Please specify card description.', 'card_description_error' );
567
+ }
568
+
569
+ if ( empty( $position ) ) {
570
+ $input_exceptions->add_input_exception( 'Please specify position.', 'position_error' );
571
+ }
572
+
573
+ if ( ! in_array( $position, array_keys( $positions ), true ) ) {
574
+ $input_exceptions->add_input_exception( 'Please pick valid position.', 'position_error' );
575
+ }
576
+
577
+ // optional label
578
+ if ( ! empty( $label_ids ) && is_array( $label_ids ) ) {
579
+ $labels_keys = array_keys( $labels );
580
+ foreach ( $label_ids as $label_id ) {
581
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
582
+ if ( ! in_array( $label_id, $labels_keys ) ) {
583
+ $input_exceptions->add_input_exception( 'Please pick valid label.', 'label_ids_error' );
584
+ }
585
+ }
586
+ } else {
587
+ $label_ids = array();
588
+ }
589
+
590
+ // optional member
591
+ if ( ! empty( $member_ids ) && is_array( $member_ids ) ) {
592
+ $members_keys = array_keys( $members );
593
+ foreach ( $member_ids as $member_id ) {
594
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
595
+ if ( ! in_array( $member_id, $members_keys ) ) {
596
+ $input_exceptions->add_input_exception( 'Please pick valid member.', 'member_ids_error' );
597
+ }
598
+ }
599
+ } else {
600
+ $member_ids = array();
601
+ }
602
+
603
+ if ( $input_exceptions->input_exceptions_is_available() ) {
604
+ throw $input_exceptions;
605
+ }
606
+
607
+ $this->save_multi_id_poll_setting_values(
608
+ $multi_id,
609
+ array(
610
+ 'card_name' => $card_name,
611
+ 'card_description' => $card_description,
612
+ 'position' => $position,
613
+ 'label_ids' => $label_ids,
614
+ 'member_ids' => $member_ids,
615
+ )
616
+ );
617
+
618
+ $notification = array(
619
+ 'type' => 'success',
620
+ 'text' => '<strong>' . $this->addon->get_title() . '</strong> ' . __( 'Successfully connected to your poll' ),
621
+ );
622
+ $is_close = true;
623
+
624
+ } catch ( Forminator_Addon_Trello_Poll_Settings_Exception $e ) {
625
+ $template_params = array_merge( $template_params, $e->get_input_exceptions() );
626
+ $has_errors = true;
627
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
628
+ $template_params['error_message'] = $e->getMessage();
629
+ $has_errors = true;
630
+ }
631
+ }
632
+
633
+ $buttons = array();
634
+ if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
635
+ $buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
636
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
637
+ esc_html__( 'Disconnect this Trello Integration from this Poll.', Forminator::DOMAIN )
638
+ );
639
+ }
640
+
641
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
642
+ Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
643
+ '</div>';
644
+
645
+ return array(
646
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
647
+ 'buttons' => $buttons,
648
+ 'redirect' => false,
649
+ 'has_errors' => $has_errors,
650
+ 'has_back' => true,
651
+ 'size' => 'normal',
652
+ 'is_close' => $is_close,
653
+ 'notification' => $notification,
654
+ );
655
+ }
656
+
657
+ /**
658
+ * Check if card completed
659
+ *
660
+ * @since 1.6.1
661
+ *
662
+ * @param $submitted_data
663
+ *
664
+ * @return bool
665
+ */
666
+ public function setup_card_is_completed( $submitted_data ) {
667
+ $multi_id = '';
668
+ if ( isset( $submitted_data['multi_id'] ) ) {
669
+ $multi_id = $submitted_data['multi_id'];
670
+ }
671
+
672
+ if ( empty( $multi_id ) ) {
673
+ return false;
674
+ }
675
+
676
+ $card_name = $this->get_multi_id_poll_settings_value( $multi_id, 'card_name', '' );
677
+ $card_name = trim( $card_name );
678
+ if ( empty( $card_name ) ) {
679
+ return false;
680
+ }
681
+ $card_desc = $this->get_multi_id_poll_settings_value( $multi_id, 'card_description', '' );
682
+ $card_desc = trim( $card_desc );
683
+ if ( empty( $card_desc ) ) {
684
+ return false;
685
+ }
686
+
687
+ return true;
688
+ }
689
+
690
+ /**
691
+ * Generate multi id for multiple connection
692
+ *
693
+ * @since 1.6.1
694
+ * @return string
695
+ */
696
+ public function generate_multi_id() {
697
+ return uniqid( 'trello_', true );
698
+ }
699
+
700
+
701
+ /**
702
+ * Override how multi connection displayed
703
+ *
704
+ * @since 1.6.1
705
+ * @return array
706
+ */
707
+ public function get_multi_ids() {
708
+ $multi_ids = array();
709
+ $poll_settings_values = $this->get_poll_settings_values();
710
+ foreach ( $poll_settings_values as $key => $value ) {
711
+ $multi_ids[] = array(
712
+ 'id' => $key,
713
+ // use name that was added by user on creating connection
714
+ 'label' => isset( $value['name'] ) ? $value['name'] : $key,
715
+ );
716
+ }
717
+
718
+ /**
719
+ * Filter labels of multi_id on integrations tab
720
+ *
721
+ * @since 1.6.1
722
+ *
723
+ * @param array $multi_ids
724
+ * @param array $poll_settings_values
725
+ */
726
+ $multi_ids = apply_filters( 'forminator_addon_poll_trello_multi_id_labels', $multi_ids, $poll_settings_values );
727
+
728
+ return $multi_ids;
729
+ }
730
+
731
+ /**
732
+ * Disconnect a connection from current poll
733
+ *
734
+ * @since 1.6.1
735
+ *
736
+ * @param array $submitted_data
737
+ */
738
+ public function disconnect_poll( $submitted_data ) {
739
+ // only execute if multi_id provided on submitted data
740
+ if ( isset( $submitted_data['multi_id'] ) && ! empty( $submitted_data['multi_id'] ) ) {
741
+ $addon_poll_settings = $this->get_poll_settings_values();
742
+ unset( $addon_poll_settings[ $submitted_data['multi_id'] ] );
743
+ $this->save_poll_settings_values( $addon_poll_settings );
744
+ }
745
+ }
746
+
747
+ /**
748
+ * Check if multi_id poll settings values completed
749
+ *
750
+ * @since 1.6.1
751
+ *
752
+ * @param $multi_id
753
+ *
754
+ * @return bool
755
+ */
756
+ public function is_multi_poll_settings_complete( $multi_id ) {
757
+ $data = array( 'multi_id' => $multi_id );
758
+
759
+ if ( ! $this->setup_name_is_completed( $data ) ) {
760
+ return false;
761
+ }
762
+
763
+ if ( ! $this->setup_board_is_completed( $data ) ) {
764
+ return false;
765
+ }
766
+
767
+ if ( ! $this->setup_list_is_completed( $data ) ) {
768
+ return false;
769
+ }
770
+
771
+ if ( ! $this->setup_card_is_completed( $data ) ) {
772
+ return false;
773
+ }
774
+
775
+
776
+ return true;
777
+ }
778
+ }
addons/pro/trello/forminator-addon-trello.php CHANGED
@@ -54,6 +54,9 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
54
  */
55
  private $_token = '';
56
 
 
 
 
57
  /**
58
  * Forminator_Addon_Trello constructor.
59
  *
@@ -368,8 +371,8 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
368
  );
369
 
370
  if ( $this->_token ) {
371
- $is_poll = false;
372
- $template = $template_success;
373
  }
374
 
375
  return array(
@@ -661,4 +664,63 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
661
  return $card_delete_modes;
662
  }
663
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
664
  }
54
  */
55
  private $_token = '';
56
 
57
+ protected $_poll_settings = 'Forminator_Addon_Trello_Poll_Settings';
58
+ protected $_poll_hooks = 'Forminator_Addon_Trello_Poll_Hooks';
59
+
60
  /**
61
  * Forminator_Addon_Trello constructor.
62
  *
371
  );
372
 
373
  if ( $this->_token ) {
374
+ $is_poll = false;
375
+ $template = $template_success;
376
  }
377
 
378
  return array(
664
  return $card_delete_modes;
665
  }
666
 
667
+ /**
668
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
669
+ *
670
+ * Please apply necessary WordPress hook on the inheritance class
671
+ *
672
+ * @since 1.6.1
673
+ *
674
+ * @param $poll_id
675
+ *
676
+ * @return boolean
677
+ */
678
+ public function is_poll_connected( $poll_id ) {
679
+ try {
680
+ $poll_settings_instance = null;
681
+ if ( ! $this->is_connected() ) {
682
+ throw new Forminator_Addon_Trello_Exception( 'Trello is not connected' );
683
+ }
684
+
685
+ $poll_settings_instance = $this->get_addon_poll_settings( $poll_id );
686
+ if ( ! $poll_settings_instance instanceof Forminator_Addon_Trello_Poll_Settings ) {
687
+ throw new Forminator_Addon_Trello_Exception( 'Invalid Poll Settings of Trello' );
688
+ }
689
+
690
+ // Mark as active when there is at least one active connection
691
+ if ( false === $poll_settings_instance->find_one_active_connection() ) {
692
+ throw new Forminator_Addon_Trello_Exception( 'No active Poll connection found in this poll' );
693
+ }
694
+
695
+ $is_poll_connected = true;
696
+
697
+ } catch ( Forminator_Addon_Trello_Exception $e ) {
698
+
699
+ $is_poll_connected = false;
700
+ }
701
+
702
+ /**
703
+ * Filter connected status Slack with the poll
704
+ *
705
+ * @since 1.6.1
706
+ *
707
+ * @param bool $is_poll_connected
708
+ * @param int $poll_id Current Poll ID
709
+ * @param Forminator_Addon_Trello_Poll_Settings|null $poll_settings_instance Instance of poll settings, or null when unavailable
710
+ *
711
+ */
712
+ $is_poll_connected = apply_filters( 'forminator_addon_trello_is_poll_connected', $is_poll_connected, $poll_id, $poll_settings_instance );
713
+
714
+ return $is_poll_connected;
715
+ }
716
+
717
+ /**
718
+ * Allow multiple connection on one poll
719
+ *
720
+ * @since 1.6.1
721
+ * @return bool
722
+ */
723
+ public function is_allow_multi_on_poll() {
724
+ return true;
725
+ }
726
  }
addons/pro/trello/trello.php CHANGED
@@ -9,7 +9,7 @@
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
- define( 'FORMINATOR_ADDON_TRELLO_VERSION', '1.0' );
13
 
14
  function forminator_addon_trello_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/trello' );
@@ -24,7 +24,12 @@ function forminator_addon_trello_assets_url() {
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-trello.php';
 
27
  require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-settings.php';
28
  require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-hooks.php';
 
 
 
 
29
  //Direct Load
30
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Trello' );
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
+ define( 'FORMINATOR_ADDON_TRELLO_VERSION', '1.1' );
13
 
14
  function forminator_addon_trello_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/trello' );
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-trello.php';
27
+
28
  require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-settings.php';
29
  require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-hooks.php';
30
+
31
+ require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-settings.php';
32
+ require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-hooks.php';
33
+
34
  //Direct Load
35
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Trello' );
addons/pro/trello/views/poll-settings/setup-board.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'board_id' => '',
6
+ 'board_id_error' => '',
7
+ 'multi_id' => '',
8
+ 'boards' => array(),
9
+ );
10
+ /** @var array $template_vars */
11
+ foreach ( $template_vars as $key => $val ) {
12
+ $vars[ $key ] = $val;
13
+ }
14
+
15
+ ?>
16
+ <div class="integration-header">
17
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign Board', Forminator::DOMAIN ) ); ?></h3>
18
+ <p><?php esc_html_e( 'Your account is now authorized, choose which board you want Trello cards to be added to.', Forminator::DOMAIN ); ?></p>
19
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
20
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
21
+ <?php endif; ?>
22
+ </div>
23
+ <form>
24
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['board_id_error'] ) ? 'sui-form-field-error' : '' ); ?>">
25
+ <label class="sui-label"><?php esc_html_e( 'Board', Forminator::DOMAIN ); ?>
26
+ <select name="board_id" class="sui-select sui-form-control">
27
+ <option><?php esc_html_e( 'Please select a board', Forminator::DOMAIN ); ?></option>
28
+ <?php foreach ( $vars['boards'] as $board_id => $board_name ) : ?>
29
+ <option value="<?php echo esc_attr( $board_id ); ?>" <?php selected( $vars['board_id'], $board_id ); ?>><?php echo esc_html( $board_name ); ?></option>
30
+ <?php endforeach; ?>
31
+ </select>
32
+ <?php if ( ! empty( $vars['board_id_error'] ) ) : ?>
33
+ <span class="sui-error-message"><?php echo esc_html( $vars['board_id_error'] ); ?></span>
34
+ <?php endif; ?>
35
+ </label>
36
+ </div>
37
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
38
+ </form>
addons/pro/trello/views/poll-settings/setup-card.php ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'card_name' => '',
5
+ 'card_name_error' => '',
6
+ 'card_description' => '',
7
+ 'card_description_error' => '',
8
+ 'position' => '',
9
+ 'position_error' => '',
10
+ 'positions' => array(),
11
+ 'label_ids' => array(),
12
+ 'label_ids_error' => '',
13
+ 'labels' => array(),
14
+ 'member_ids' => array(),
15
+ 'member_ids_error' => '',
16
+ 'members' => array(),
17
+ 'name_fields' => array(),
18
+ 'desc_fields' => array(),
19
+ 'error_message' => '',
20
+ 'list_name' => '',
21
+ );
22
+ /** @var array $template_vars */
23
+ foreach ( $template_vars as $key => $val ) {
24
+ $vars[ $key ] = $val;
25
+ }
26
+ ?>
27
+
28
+ <div class="integration-header">
29
+
30
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Customize Fields', Forminator::DOMAIN ) ); ?></h3>
31
+
32
+ <p><?php esc_html_e( 'Set up how you want your cards to be created in Trello.', Forminator::DOMAIN ); ?></p>
33
+
34
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
35
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
36
+ <?php endif; ?>
37
+
38
+ </div>
39
+
40
+ <form>
41
+
42
+ <div id="trello-card-name-settings" class="sui-row">
43
+
44
+ <div class="sui-col-12">
45
+
46
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['card_name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
47
+
48
+ <label class="sui-label"><?php esc_html_e( 'Card Name', Forminator::DOMAIN ); ?></label>
49
+
50
+ <div class="sui-insert-variables">
51
+
52
+ <input id="card_name"
53
+ class="sui-form-control"
54
+ name="card_name"
55
+ placeholder="<?php echo esc_attr( __( 'Card Name', Forminator::DOMAIN ) ); ?>"
56
+ value="<?php echo esc_attr( $vars['card_name'] ); ?>">
57
+
58
+ <select data-textarea-id="card_name"><?php foreach ( $vars['name_fields'] as $key => $field ) : ?>
59
+ <option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
60
+ <?php endforeach; ?></select>
61
+
62
+ </div>
63
+
64
+ <?php if ( ! empty( $vars['card_name_error'] ) ) : ?>
65
+ <span class="sui-error-message"><?php echo esc_html( $vars['card_name_error'] ); ?></span>
66
+ <?php endif; ?>
67
+
68
+ </div>
69
+
70
+ </div>
71
+
72
+ </div>
73
+
74
+ <div id="trello-card-description-settings" class="sui-row">
75
+
76
+ <div class="sui-col-12">
77
+
78
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['card_description_error'] ) ? 'sui-form-field-error' : '' ); ?>">
79
+
80
+ <label class="sui-label" for="card_description"><?php esc_html_e( 'Card Description', Forminator::DOMAIN ); ?></label>
81
+
82
+ <div class="sui-insert-variables">
83
+
84
+ <textarea class="sui-form-control" name="card_description" id="card_description" rows="7"><?php echo esc_html( $vars['card_description'] ); ?></textarea>
85
+
86
+ <select data-textarea-id="card_description"><?php foreach ( $vars['desc_fields'] as $key => $field ) : ?>
87
+ <option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
88
+ <?php endforeach; ?></select>
89
+
90
+ </div>
91
+
92
+ <?php if ( ! empty( $vars['card_description_error'] ) ) : ?>
93
+ <span class="sui-error-message"><?php echo esc_html( $vars['card_description_error'] ); ?></span>
94
+ <?php endif; ?>
95
+
96
+ <span class="sui-description">
97
+ <?php esc_html_e( 'Markdown supported for card description. Find complete guide', Forminator::DOMAIN ); ?>
98
+ <a href="https://help.trello.com/article/821-using-markdown-in-trello" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.
99
+ </span>
100
+
101
+ </div>
102
+
103
+ </div>
104
+
105
+ </div>
106
+
107
+ <div class="sui-row">
108
+ <div class="sui-col-md-4">
109
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['position_error'] ) ? 'sui-form-field-error' : '' ); ?>">
110
+ <label class="sui-label" for="position"><?php esc_html_e( 'Position', Forminator::DOMAIN ); ?></label>
111
+ <select name="position" id="position">
112
+ <?php foreach ( $vars['positions'] as $pos_id => $pos_name ) : ?>
113
+ <option value="<?php echo esc_attr( $pos_id ); ?>" <?php selected( $vars['position'], $pos_id ); ?>><?php echo esc_html( $pos_name ); ?></option>
114
+ <?php endforeach; ?>
115
+ </select>
116
+ <?php if ( ! empty( $vars['position_error'] ) ) : ?>
117
+ <span class="sui-error-message"><?php echo esc_html( $vars['position_error'] ); ?></span>
118
+ <?php endif; ?>
119
+
120
+ </div>
121
+ </div>
122
+
123
+ <div class="sui-col-md-8">
124
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
125
+ <label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
126
+ <select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
127
+ multiple="multiple"
128
+ data-reorder="1"
129
+ data-tags="false"
130
+ data-token-separators="[',']"
131
+ data-placeholder="<?php esc_html_e( 'Enter label name', Forminator::DOMAIN ); ?>"
132
+ data-allow-clear="false">
133
+ <?php foreach ( $vars['label_ids'] as $label_id ) : ?>
134
+ <?php if ( isset( $vars['labels'][ $label_id ] ) ): ?>
135
+ <option
136
+ value="<?php echo esc_attr( $label_id ); ?>"
137
+ selected="selected"
138
+ data-color="<?php echo esc_attr( $vars['labels'][ $label_id ]['color'] ); ?>"
139
+ style="background-color: <?php echo esc_attr( $vars['labels'][ $label_id ]['color'] ); ?>;"
140
+ ><?php echo esc_html( $vars['labels'][ $label_id ]['name'] ); ?></option>
141
+ <?php endif; ?>
142
+ <?php endforeach; ?>
143
+
144
+ <?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
145
+ <?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ): ?>
146
+ <option
147
+ value="<?php echo esc_attr( $label_id ); ?>"
148
+ data-color="<?php echo esc_attr( $label['color'] ); ?>"
149
+ style="background-color: <?php echo esc_attr( $vars['labels'][ $label_id ]['color'] ); ?>;"
150
+ ><?php echo esc_html( $label['name'] ); ?></option>
151
+ <?php endif; ?>
152
+ <?php endforeach; ?>
153
+ </select>
154
+ <?php if ( ! empty( $vars['label_ids_error'] ) ) : ?>
155
+ <span class="sui-error-message"><?php echo esc_html( $vars['label_ids_error'] ); ?></span>
156
+ <?php endif; ?>
157
+ </div>
158
+ </div>
159
+ </div>
160
+
161
+ <div class="sui-row">
162
+ <div class="sui-col-md-12">
163
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
164
+ <label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
165
+ <select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
166
+ multiple="multiple"
167
+ data-reorder="1"
168
+ data-tags="false"
169
+ data-token-separators="[',']"
170
+ data-placeholder="<?php esc_html_e( 'Enter member name', Forminator::DOMAIN ); ?>"
171
+ data-allow-clear="false">
172
+ <?php foreach ( $vars['member_ids'] as $member_id ) : ?>
173
+ <?php if ( isset( $vars['members'][ $member_id ] ) ): ?>
174
+ <option
175
+ value="<?php echo esc_attr( $member_id ); ?>"
176
+ selected="selected"
177
+ ><?php echo esc_html( $vars['members'][ $member_id ] ); ?></option>
178
+ <?php endif; ?>
179
+ <?php endforeach; ?>
180
+
181
+ <?php foreach ( $vars['members'] as $member_id => $name ) : ?>
182
+ <?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ): ?>
183
+ <option
184
+ value="<?php echo esc_attr( $member_id ); ?>"
185
+ ><?php echo esc_html( $name ); ?></option>
186
+ <?php endif; ?>
187
+ <?php endforeach; ?>
188
+ </select>
189
+ <?php if ( ! empty( $vars['member_ids_error'] ) ) : ?>
190
+ <span class="sui-error-message"><?php echo esc_html( $vars['member_ids_error'] ); ?></span>
191
+ <?php endif; ?>
192
+ </div>
193
+
194
+
195
+ </div>
196
+ </div>
197
+
198
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
199
+ </form>
addons/pro/trello/views/poll-settings/setup-list.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'list_id' => '',
6
+ 'list_id_error' => '',
7
+ 'multi_id' => '',
8
+ 'lists' => array(),
9
+ 'board_name' => '',
10
+ 'step_description' => '',
11
+ );
12
+
13
+ /** @var array $template_vars */
14
+ foreach ( $template_vars as $key => $val ) {
15
+ $vars[ $key ] = $val;
16
+ }
17
+
18
+ $vars['step_description'] = sprintf(
19
+ __( 'Which list from %1$s do you want auto-generated cards to be added to?', Forminator::DOMAIN ),
20
+ '<b>' . $vars['board_name'] . '</b>'
21
+ );
22
+
23
+ ?>
24
+ <div class="integration-header">
25
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
26
+ <p><?php echo $vars['step_description']; // wpcs: xss ok ?></p>
27
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
28
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
29
+ <?php endif; ?>
30
+ </div>
31
+ <form>
32
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['list_id_error'] ) ? 'sui-form-field-error' : '' ); ?>">
33
+ <label class="sui-label"><?php esc_html_e( 'List', Forminator::DOMAIN ); ?>
34
+ <select name="list_id" class="sui-select sui-form-control">
35
+ <option><?php esc_html_e( 'Please select a list', Forminator::DOMAIN ); ?></option>
36
+ <?php foreach ( $vars['lists'] as $list_id => $list_name ) : ?>
37
+ <option value="<?php echo esc_attr( $list_id ); ?>" <?php selected( $vars['list_id'], $list_id ); ?>><?php echo esc_html( $list_name ); ?></option>
38
+ <?php endforeach; ?>
39
+ </select>
40
+ <?php if ( ! empty( $vars['list_id_error'] ) ) : ?>
41
+ <span class="sui-error-message"><?php echo esc_html( $vars['list_id_error'] ); ?></span>
42
+ <?php endif; ?>
43
+ </label>
44
+ </div>
45
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
46
+ </form>
addons/pro/trello/views/poll-settings/setup-name.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'name' => '',
6
+ 'name_error' => '',
7
+ 'multi_id' => '',
8
+ );
9
+ /** @var array $template_vars */
10
+ foreach ( $template_vars as $key => $val ) {
11
+ $vars[ $key ] = $val;
12
+ }
13
+
14
+ ?>
15
+ <div class="integration-header">
16
+ <h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Setup Name', Forminator::DOMAIN ) ); ?></h3>
17
+ <p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
18
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
19
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
20
+ <?php endif; ?>
21
+ </div>
22
+ <form>
23
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
24
+ <label class="sui-label"><?php esc_html_e( 'Name', Forminator::DOMAIN ); ?></label>
25
+ <input
26
+ class="sui-form-control"
27
+ name="name" placeholder="<?php echo esc_attr( __( 'Friendly Name', Forminator::DOMAIN ) ); ?>"
28
+ value="<?php echo esc_attr( $vars['name'] ); ?>">
29
+ <?php if ( ! empty( $vars['name_error'] ) ) : ?>
30
+ <span class="sui-error-message"><?php echo esc_html( $vars['name_error'] ); ?></span>
31
+ <?php endif; ?>
32
+ </div>
33
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
34
+ </form>
addons/pro/zapier/forminator-addon-zapier-form-hooks.php CHANGED
@@ -203,7 +203,7 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
203
  return array(
204
  'is_sent' => true,
205
  'connection_name' => $connection_settings['name'],
206
- 'description' => __( 'Successfully sent data to Zapier', Forminator::DOMAIN ),
207
  'data_sent' => $zapier_api->get_last_data_sent(),
208
  'data_received' => $zapier_api->get_last_data_received(),
209
  'url_request' => $zapier_api->get_last_url_request(),
203
  return array(
204
  'is_sent' => true,
205
  'connection_name' => $connection_settings['name'],
206
+ 'description' => __( 'Successfully send data to Zapier', Forminator::DOMAIN ),
207
  'data_sent' => $zapier_api->get_last_data_sent(),
208
  'data_received' => $zapier_api->get_last_data_received(),
209
  'url_request' => $zapier_api->get_last_url_request(),
addons/pro/zapier/forminator-addon-zapier-poll-hooks.php ADDED
@@ -0,0 +1,368 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Zapier_Poll_Hooks
5
+ *
6
+ * @since 1.6.1
7
+ *
8
+ */
9
+ class Forminator_Addon_Zapier_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abstract {
10
+
11
+ /**
12
+ * Addon instance are auto available form abstract
13
+ * Its added here for development purpose,
14
+ * Auto-complete will resolve addon directly to `Zapier` instance instead of the abstract
15
+ * And its public properties can be exposed
16
+ *
17
+ * @since 1.6.1
18
+ * @var Forminator_Addon_Zapier
19
+ */
20
+ protected $addon;
21
+
22
+ /**
23
+ * Poll Settings Instance
24
+ *
25
+ * @since 1.6.1
26
+ * @var Forminator_Addon_Zapier_Poll_Settings | null
27
+ */
28
+ protected $poll_settings_instance;
29
+
30
+ /**
31
+ * Forminator_Addon_Zapier_Poll_Hooks constructor.
32
+ *
33
+ * @since 1.6.1
34
+ *
35
+ * @param Forminator_Addon_Abstract $addon
36
+ * @param $poll_id
37
+ *
38
+ * @throws Forminator_Addon_Exception
39
+ */
40
+ public function __construct( Forminator_Addon_Abstract $addon, $poll_id ) {
41
+ parent::__construct( $addon, $poll_id );
42
+ $this->_submit_poll_error_message = __( 'Zapier failed to process submitted data. Please check your form and try again', Forminator::DOMAIN );
43
+ }
44
+
45
+ /**
46
+ * Save status of request sent and received for each connected zap(s)
47
+ *
48
+ * @since 1.6.1
49
+ *
50
+ * @param array $submitted_data
51
+ * @param array $current_entry_fields
52
+ *
53
+ * @return array
54
+ */
55
+ public function add_entry_fields( $submitted_data, $current_entry_fields = array() ) {
56
+
57
+ $poll_id = $this->poll_id;
58
+ $poll_settings_instance = $this->poll_settings_instance;
59
+
60
+ /**
61
+ * Filter zapier submitted form data to be processed
62
+ *
63
+ * @since 1.6.1
64
+ *
65
+ * @param array $submitted_data
66
+ * @param int $poll_id current Form ID
67
+ * @param Forminator_Addon_Zapier_Form_Settings $poll_settings_instance Zapier Addon Form Settings instance
68
+ */
69
+ $submitted_data = apply_filters(
70
+ 'forminator_addon_zapier_poll_submitted_data',
71
+ $submitted_data,
72
+ $poll_id,
73
+ $poll_settings_instance
74
+ );
75
+
76
+ forminator_addon_maybe_log( __METHOD__, $submitted_data );
77
+
78
+ $addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
79
+ $poll_settings = $this->poll_settings_instance->get_poll_settings();
80
+
81
+ $data = array();
82
+
83
+ /**
84
+ * Fires before sending data to Webhook URL(s)
85
+ *
86
+ * @since 1.6.1
87
+ *
88
+ * @param int $poll_id current Poll ID
89
+ * @param array $submitted_data
90
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Addon Poll Settings instance
91
+ */
92
+ do_action( 'forminator_addon_zapier_poll_before_post_to_webhook', $poll_id, $submitted_data, $poll_settings_instance );
93
+
94
+ foreach ( $addon_setting_values as $key => $addon_setting_value ) {
95
+ // save it on entry field, with name `status-$MULTI_ID`, and value is the return result on sending data to zapier
96
+ $data[] = array(
97
+ 'name' => 'status-' . $key,
98
+ 'value' => $this->get_status_on_send_data( $key, $submitted_data, $addon_setting_value, $poll_settings ),
99
+ );
100
+ }
101
+
102
+ $entry_fields = $data;
103
+ /**
104
+ * Filter zapier entry fields to be saved to entry model
105
+ *
106
+ * @since 1.6.1
107
+ *
108
+ * @param array $entry_fields
109
+ * @param int $poll_id current Poll ID
110
+ * @param array $submitted_data
111
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Poll Settings instance
112
+ */
113
+ $data = apply_filters(
114
+ 'forminator_addon_zapier_poll_entry_fields',
115
+ $entry_fields,
116
+ $poll_id,
117
+ $submitted_data,
118
+ $poll_settings_instance
119
+ );
120
+
121
+
122
+ return $data;
123
+
124
+ }
125
+
126
+ /**
127
+ * Get status on sending data to zapier
128
+ *
129
+ * @since 1.6.1
130
+ *
131
+ * @param $connection_id
132
+ * @param $submitted_data
133
+ * @param $connection_settings
134
+ * @param $poll_settings
135
+ *
136
+ * @return array `is_sent` true means its success send data to zapier, false otherwise
137
+ */
138
+ private function get_status_on_send_data( $connection_id, $submitted_data, $connection_settings, $poll_settings ) {
139
+ // initialize as null
140
+ $zapier_api = null;
141
+
142
+ $poll_id = $this->poll_id;
143
+ $poll_settings_instance = $this->poll_settings_instance;
144
+
145
+ //check required fields
146
+ try {
147
+ if ( ! isset( $connection_settings['webhook_url'] ) ) {
148
+ throw new Forminator_Addon_Zapier_Exception( __( 'Webhook URL is not properly setup', Forminator::DOMAIN ) );
149
+ }
150
+
151
+ $endpoint = $connection_settings['webhook_url'];
152
+ /**
153
+ * Filter Endpoint Webhook URL to send
154
+ *
155
+ * @since 1.6.1
156
+ *
157
+ * @param string $endpoint
158
+ * @param int $poll_id current Form ID
159
+ * @param array $connection_settings current connection setting, it contains `name` and `webhook_url`
160
+ */
161
+ $endpoint = apply_filters(
162
+ 'forminator_addon_zapier_poll_endpoint',
163
+ $endpoint,
164
+ $poll_id,
165
+ $connection_settings
166
+ );
167
+
168
+ $zapier_api = $this->addon->get_api( $endpoint );
169
+
170
+
171
+ $args = array();
172
+ $args['poll-name'] = forminator_get_name_from_model( $this->poll );
173
+
174
+ $answer_data = isset( $submitted_data[ $this->poll_id ] ) ? $submitted_data[ $this->poll_id ] : '';
175
+ $extra_field = isset( $submitted_data[ $this->poll_id . '-extra' ] ) ? $submitted_data[ $this->poll_id . '-extra' ] : '';
176
+ $fields_labels = $this->poll->pluck_fields_array( 'title', 'element_id', '1' );
177
+
178
+
179
+ $answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
180
+ $extra = $extra_field;
181
+
182
+ $args['vote'] = $answer;
183
+ $args['vote-extra'] = $extra;
184
+ $args['results'] = array();
185
+
186
+ $fields_array = $this->poll->get_fields_as_array();
187
+ $map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
188
+
189
+ // append new answer
190
+ if ( ! $this->poll->is_prevent_store() ) {
191
+ $answer_data = isset( $submitted_data[ $this->poll_id ] ) ? $submitted_data[ $this->poll_id ] : '';
192
+
193
+ $entries = 0;
194
+ // exists on map entries
195
+ if ( in_array( $answer_data, array_keys( $map_entries ), true ) ) {
196
+ $entries = $map_entries[ $answer_data ];
197
+ }
198
+
199
+ $entries ++;
200
+ $map_entries[ $answer_data ] = $entries;
201
+
202
+ }
203
+
204
+ $fields = $this->poll->get_fields();
205
+
206
+ if ( ! is_null( $fields ) ) {
207
+ foreach ( $fields as $field ) {
208
+ $label = addslashes( $field->title );
209
+
210
+ $slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
211
+ $entries = 0;
212
+ if ( in_array( $slug, array_keys( $map_entries ), true ) ) {
213
+ $entries = $map_entries[ $slug ];
214
+ }
215
+ $args['results'][ $slug ] = array(
216
+ 'label' => $label,
217
+ 'votes' => $entries,
218
+ );
219
+ }
220
+ }
221
+
222
+
223
+ /**
224
+ * Filter arguments to passed on to Zapier Webhook API
225
+ *
226
+ * @since 1.6.1
227
+ *
228
+ * @param array $args
229
+ * @param int $poll_id Current Poll id
230
+ * @param string $connection_id ID of current connection
231
+ * @param array $submitted_data
232
+ * @param array $connection_settings current connection setting, contains `name` and `webhook_url`
233
+ * @param array $poll_settings Displayed Poll settings
234
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Poll Settings instance
235
+ */
236
+ $args = apply_filters(
237
+ 'forminator_addon_zapier_poll_post_to_webhook_args',
238
+ $args,
239
+ $poll_id,
240
+ $connection_id,
241
+ $submitted_data,
242
+ $connection_settings,
243
+ $poll_settings,
244
+ $poll_settings_instance
245
+ );
246
+
247
+ $zapier_api->post_( $args );
248
+
249
+ forminator_addon_maybe_log( __METHOD__, 'Success Send Data' );
250
+
251
+ return array(
252
+ 'is_sent' => true,
253
+ 'connection_name' => $connection_settings['name'],
254
+ 'description' => __( 'Successfully send data to Zapier', Forminator::DOMAIN ),
255
+ 'data_sent' => $zapier_api->get_last_data_sent(),
256
+ 'data_received' => $zapier_api->get_last_data_received(),
257
+ 'url_request' => $zapier_api->get_last_url_request(),
258
+ );
259
+
260
+ } catch ( Forminator_Addon_Zapier_Exception $e ) {
261
+ forminator_addon_maybe_log( __METHOD__, 'Failed to Send to Zapier' );
262
+
263
+ return array(
264
+ 'is_sent' => false,
265
+ 'description' => $e->getMessage(),
266
+ 'connection_name' => $connection_settings['name'],
267
+ 'data_sent' => ( ( $zapier_api instanceof Forminator_Addon_Zapier_Wp_Api ) ? $zapier_api->get_last_data_sent() : array() ),
268
+ 'data_received' => ( ( $zapier_api instanceof Forminator_Addon_Zapier_Wp_Api ) ? $zapier_api->get_last_data_received() : array() ),
269
+ 'url_request' => ( ( $zapier_api instanceof Forminator_Addon_Zapier_Wp_Api ) ? $zapier_api->get_last_url_request() : '' ),
270
+ );
271
+ }
272
+ }
273
+
274
+ /**
275
+ * Zapier will add a column on the title/header row
276
+ * its called `Zapier Info` which can be translated on forminator lang
277
+ *
278
+ * @since 1.6.1
279
+ * @return array
280
+ */
281
+ public function on_export_render_title_row() {
282
+
283
+ $export_headers = array(
284
+ 'info' => __( 'Zapier Info', Forminator::DOMAIN ),
285
+ );
286
+
287
+ $poll_id = $this->poll_id;
288
+ $poll_settings_instance = $this->poll_settings_instance;
289
+
290
+ /**
291
+ * Filter zapier headers on export file
292
+ *
293
+ * @since 1.6.1
294
+ *
295
+ * @param array $export_headers headers to be displayed on export file
296
+ * @param int $poll_id current Form ID
297
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Poll Settings instance
298
+ */
299
+ $export_headers = apply_filters(
300
+ 'forminator_addon_zapier_poll_export_headers',
301
+ $export_headers,
302
+ $poll_id,
303
+ $poll_settings_instance
304
+ );
305
+
306
+ return $export_headers;
307
+ }
308
+
309
+ /**
310
+ * Zapier will add a column that give user information whether sending data to zapier successfully or not
311
+ * It will only add one column even its multiple connection, every connection will be separated by comma
312
+ *
313
+ * @since 1.6.1
314
+ *
315
+ * @param Forminator_Form_Entry_Model $entry_model
316
+ * @param $addon_meta_data
317
+ *
318
+ * @return array
319
+ */
320
+ public function on_export_render_entry( Forminator_Form_Entry_Model $entry_model, $addon_meta_data ) {
321
+
322
+ $poll_id = $this->poll_id;
323
+ $poll_settings_instance = $this->poll_settings_instance;
324
+
325
+ /**
326
+ *
327
+ * Filter zapier metadata that previously saved on db to be processed
328
+ *
329
+ * @since 1.1
330
+ *
331
+ * @param array $addon_meta_data
332
+ * @param int $poll_id current Poll ID
333
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Poll Settings instance
334
+ */
335
+ $addon_meta_data = apply_filters(
336
+ 'forminator_addon_zapier_poll_metadata',
337
+ $addon_meta_data,
338
+ $poll_id,
339
+ $poll_settings_instance
340
+ );
341
+
342
+ $export_columns = array(
343
+ 'info' => $this->get_from_addon_meta_data( $addon_meta_data, 'description', '' ),
344
+ );
345
+
346
+ /**
347
+ * Filter zapier columns to be displayed on export submissions
348
+ *
349
+ * @since 1.6.1
350
+ *
351
+ * @param array $export_columns column to be exported
352
+ * @param int $poll_id current Poll ID
353
+ * @param Forminator_Form_Entry_Model $entry_model Form Entry Model
354
+ * @param array $addon_meta_data meta data saved by addon on entry fields
355
+ * @param Forminator_Addon_Zapier_Poll_Settings $poll_settings_instance Zapier Poll Settings instance
356
+ */
357
+ $export_columns = apply_filters(
358
+ 'forminator_addon_zapier_poll_export_columns',
359
+ $export_columns,
360
+ $poll_id,
361
+ $entry_model,
362
+ $addon_meta_data,
363
+ $poll_settings_instance
364
+ );
365
+
366
+ return $export_columns;
367
+ }
368
+ }
addons/pro/zapier/forminator-addon-zapier-poll-settings-exception.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Class Forminator_Addon_Zapier_Poll_Settings_Exception
5
+ * Wrapper of Poll Settings Zapier Exception
6
+ *
7
+ * @since 1.6.1
8
+ */
9
+ class Forminator_Addon_Zapier_Poll_Settings_Exception extends Forminator_Addon_Zapier_Exception {
10
+
11
+ /**
12
+ * Holder of input exceptions
13
+ *
14
+ * @since 1.6.1
15
+ * @var array
16
+ */
17
+ protected $input_exceptions = array();
18
+
19
+ /**
20
+ * Forminator_Addon_Zapier_Poll_Settings_Exception constructor.
21
+ *
22
+ * Useful if input_id is needed for later.
23
+ * If no input_id needed, use @see Forminator_Addon_Zapier_Exception
24
+ *
25
+ * @since 1.6.1
26
+ *
27
+ * @param string $message
28
+ * @param string $input_id
29
+ */
30
+ public function __construct( $message = '', $input_id = '' ) {
31
+ parent::__construct( $message, 0 );
32
+ if ( ! empty( $input_id ) ) {
33
+ $this->add_input_exception( $message, $input_id );
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Set exception message for an input
39
+ *
40
+ * @since 1.6.1
41
+ *
42
+ * @param $message
43
+ * @param $input_id
44
+ */
45
+ public function add_input_exception( $message, $input_id ) {
46
+ $this->input_exceptions[ $input_id ] = $message;
47
+ }
48
+
49
+ /**
50
+ * Get all input exceptions
51
+ *
52
+ * @since 1.6.1
53
+ * @return array
54
+ */
55
+ public function get_input_exceptions() {
56
+ return $this->input_exceptions;
57
+ }
58
+
59
+ /**
60
+ * Check if there is input_exceptions_is_available
61
+ *
62
+ * @since 1.6.1
63
+ * @return bool
64
+ */
65
+ public function input_exceptions_is_available() {
66
+ return count( $this->input_exceptions ) > 0;
67
+ }
68
+ }
addons/pro/zapier/forminator-addon-zapier-poll-settings.php ADDED
@@ -0,0 +1,392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-settings-exception.php';
4
+
5
+ /**
6
+ * Class Forminator_Addon_Zapier_Poll_Settings
7
+ * Handle how poll settings displayed and saved
8
+ *
9
+ * @since 1.6.1
10
+ */
11
+ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settings_Abstract {
12
+
13
+ /**
14
+ * @var Forminator_Addon_Zapier
15
+ * @since 1.0 Zapier Addon
16
+ */
17
+ protected $addon;
18
+
19
+ /**
20
+ * Create Zap URL
21
+ *
22
+ * @since 1.0 Zapier Addon
23
+ * @var string
24
+ */
25
+ private $new_zap_url = 'https://zapier.com/app/editor/';
26
+
27
+ /**
28
+ * Forminator_Addon_Zapier_Form_Settings constructor.
29
+ *
30
+ * @since 1.0 Zapier Addon
31
+ *
32
+ * @param Forminator_Addon_Abstract $addon
33
+ * @param $form_id
34
+ *
35
+ * @throws Forminator_Addon_Exception
36
+ */
37
+ public function __construct( Forminator_Addon_Abstract $addon, $form_id ) {
38
+ parent::__construct( $addon, $form_id );
39
+
40
+ $this->_update_poll_settings_error_message = __(
41
+ 'The update to your settings for this poll failed, check the form input and try again.',
42
+ Forminator::DOMAIN
43
+ );
44
+ }
45
+
46
+ /**
47
+ * Zapier Poll Settings wizard
48
+ *
49
+ * @since 1.6.1
50
+ * @return array
51
+ */
52
+ public function poll_settings_wizards() {
53
+ // numerical array steps
54
+ return array(
55
+ // 0
56
+ array(
57
+ 'callback' => array( $this, 'setup_webhook_url' ),
58
+ 'is_completed' => array( $this, 'setup_webhook_url_is_completed' ),
59
+ ),
60
+ );
61
+ }
62
+
63
+ /**
64
+ * Setup webhook url
65
+ *
66
+ * @since 1.0 Zapier Addon
67
+ *
68
+ * @param $submitted_data
69
+ *
70
+ * @return array
71
+ */
72
+ public function setup_webhook_url( $submitted_data ) {
73
+
74
+ $template = forminator_addon_zapier_dir() . 'views/poll-settings/setup-webhook.php';
75
+
76
+ if ( ! isset( $submitted_data['multi_id'] ) ) {
77
+ return $this->get_force_closed_wizard( __( 'Please pick valid connection', Forminator::DOMAIN ) );
78
+ }
79
+
80
+ $multi_id = $submitted_data['multi_id'];
81
+ unset( $submitted_data['multi_id'] );
82
+
83
+ $template_params = array(
84
+ 'new_zap_url' => $this->new_zap_url,
85
+ 'name' => $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' ),
86
+ 'webhook_url' => $this->get_multi_id_poll_settings_value( $multi_id, 'webhook_url', '' ),
87
+ 'multi_id' => $multi_id,
88
+ );
89
+
90
+ $is_submit = ! empty( $submitted_data );
91
+ $has_errors = false;
92
+ $is_close = false;
93
+ $notification = array();
94
+
95
+
96
+ if ( $is_submit ) {
97
+ $name = isset( $submitted_data['name'] ) ? trim( $submitted_data['name'] ) : '';
98
+ $template_params['name'] = $name;
99
+
100
+ $webhook_url = isset( $submitted_data['webhook_url'] ) ? trim( $submitted_data['webhook_url'] ) : '';
101
+ $template_params['webhook_url'] = $webhook_url;
102
+
103
+
104
+ try {
105
+ $input_exceptions = new Forminator_Addon_Zapier_Poll_Settings_Exception();
106
+
107
+ if ( empty( $name ) ) {
108
+ $input_exceptions->add_input_exception( __( 'Please specify integration name.', Forminator::DOMAIN ), 'name_error' );
109
+ }
110
+
111
+ $this->validate_and_send_sample( $submitted_data, $input_exceptions );
112
+
113
+ if ( $input_exceptions->input_exceptions_is_available() ) {
114
+ throw $input_exceptions;
115
+ }
116
+
117
+ $time_added = $this->get_multi_id_poll_settings_value( $multi_id, 'time_added', time() );
118
+ $this->save_multi_id_poll_setting_values(
119
+ $multi_id,
120
+ array(
121
+ 'name' => $name,
122
+ 'webhook_url' => $webhook_url,
123
+ 'time_added' => $time_added,
124
+ )
125
+ );
126
+
127
+ $notification = array(
128
+ 'type' => 'success',
129
+ 'text' => '<strong>' . $this->addon->get_title() . '</strong> ' . __( 'Successfully connected and sent sample data to your ZAP', Forminator::DOMAIN ),
130
+ );
131
+ $is_close = true;
132
+
133
+ } catch ( Forminator_Addon_Zapier_Poll_Settings_Exception $e ) {
134
+ $template_params = array_merge( $template_params, $e->get_input_exceptions() );
135
+ $has_errors = true;
136
+ } catch ( Forminator_Addon_Zapier_Exception $e ) {
137
+ $template_params['error_message'] = $e->getMessage();
138
+ $has_errors = true;
139
+ }
140
+ }
141
+
142
+ $buttons = array();
143
+ if ( $this->setup_webhook_url_is_completed( array( 'multi_id' => $multi_id ) ) ) {
144
+ $buttons['disconnect']['markup'] = Forminator_Addon_Zapier::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
145
+ 'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
146
+ esc_html__( 'Disconnect Zapier from this Poll.', Forminator::DOMAIN )
147
+ );
148
+ }
149
+
150
+ $buttons['next']['markup'] = '<div class="sui-actions-right">' .
151
+ Forminator_Addon_Zapier::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
152
+ '</div>';
153
+
154
+ return array(
155
+ 'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
156
+ 'buttons' => $buttons,
157
+ 'redirect' => false,
158
+ 'has_errors' => $has_errors,
159
+ 'has_back' => false,
160
+ 'is_close' => $is_close,
161
+ 'notification' => $notification,
162
+ );
163
+
164
+ }
165
+
166
+
167
+ /**
168
+ * Sending test sample to zapier webhook URL
169
+ * Data sent will be used on zapier to map fields on their zap action
170
+ *
171
+ * @since 1.0 Zapier Addon
172
+ *
173
+ * @param $submitted_data
174
+ * @param Forminator_Addon_Zapier_Poll_Settings_Exception $current_input_exception
175
+ *
176
+ * @throws Forminator_Addon_Zapier_Poll_Settings_Exception
177
+ * @throws Forminator_Addon_Zapier_Wp_Api_Not_Found_Exception
178
+ * @throws Forminator_Addon_Zapier_Wp_Api_Exception
179
+ */
180
+ private function validate_and_send_sample( $submitted_data, Forminator_Addon_Zapier_Poll_Settings_Exception $current_input_exception ) {
181
+ $poll_id = $this->poll_id;
182
+ if ( ! isset( $submitted_data['webhook_url'] ) ) {
183
+ $current_input_exception->add_input_exception( __( 'Please put a valid Webhook URL.', Forminator::DOMAIN ), 'webhook_url_error' );
184
+ throw $current_input_exception;
185
+ }
186
+
187
+ // must be this prefix
188
+ if ( stripos( $submitted_data['webhook_url'], 'https://hooks.zapier.com/' ) !== 0 ) {
189
+ $current_input_exception->add_input_exception( __( 'Please put a valid Webhook URL.', Forminator::DOMAIN ), 'webhook_url_error' );
190
+ throw $current_input_exception;
191
+ }
192
+
193
+ // must not be in silent mode
194
+ if ( stripos( $submitted_data['webhook_url'], 'silent' ) !== false ) {
195
+ $current_input_exception->add_input_exception( __( 'Please disable Silent Mode on Webhook URL.', Forminator::DOMAIN ), 'webhook_url_error' );
196
+ throw $current_input_exception;
197
+ }
198
+
199
+ $endpoint = wp_http_validate_url( $submitted_data['webhook_url'] );
200
+ if ( false === $endpoint ) {
201
+ $current_input_exception->add_input_exception( __( 'Please put a valid Webhook URL.', Forminator::DOMAIN ), 'webhook_url_error' );
202
+ throw $current_input_exception;
203
+ }
204
+
205
+ if ( $current_input_exception->input_exceptions_is_available() ) {
206
+ throw $current_input_exception;
207
+ }
208
+
209
+ $connection_settings = $submitted_data;
210
+ /**
211
+ * Filter Endpoint Webhook URL to send
212
+ *
213
+ * @since 1.6.1
214
+ *
215
+ * @param string $endpoint
216
+ * @param int $poll_id current Form ID
217
+ * @param array $connection_settings Submitted data by user, it contains `name` and `webhook_url`
218
+ */
219
+ $endpoint = apply_filters(
220
+ 'forminator_addon_zapier_poll_endpoint',
221
+ $endpoint,
222
+ $poll_id,
223
+ $connection_settings
224
+ );
225
+
226
+ forminator_addon_maybe_log( __METHOD__, $endpoint );
227
+ $api = $this->addon->get_api( $endpoint );
228
+
229
+ // build form sample data
230
+ $sample_data = $this->build_form_sample_data();
231
+ $sample_data['is_test'] = true;
232
+
233
+ /**
234
+ * Filter sample data to send to Zapier Webhook URL
235
+ *
236
+ * It fires when user saved Zapier connection on Form Settings Page.
237
+ * Sample data contains `is_test` key with value `true`,
238
+ * this key indicating that it wont process trigger on Zapier.
239
+ *
240
+ * @since 1.6.1
241
+ *
242
+ * @param array $sample_data
243
+ * @param int $poll_id current Form ID
244
+ * @param array $submitted_data Submitted data by user, it contains `name` and `webhook_url`
245
+ */
246
+ $sample_data = apply_filters(
247
+ 'forminator_addon_zapier_poll_sample_data',
248
+ $sample_data,
249
+ $poll_id,
250
+ $submitted_data
251
+ );
252
+
253
+ $api->post_( $sample_data );
254
+ }
255
+
256
+ /**
257
+ * Build sample data form current fields
258
+ *
259
+ * @since 1.6.1
260
+ *
261
+ * @return array
262
+ */
263
+ private function build_form_sample_data() {
264
+ $sample = array();
265
+
266
+ $sample['poll-name'] = forminator_get_name_from_model( $this->poll );
267
+ $sample['vote'] = 'Vote';
268
+ $sample['vote-extra'] = 'Vote Extra';
269
+ $sample['results'] = array();
270
+
271
+
272
+ $fields_array = $this->poll->get_fields_as_array();
273
+ $map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
274
+ $fields = $this->poll->get_fields();
275
+
276
+ foreach ( $fields as $field ) {
277
+ $label = addslashes( $field->title );
278
+
279
+ $slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
280
+ $entries = 0;
281
+ if ( in_array( $slug, array_keys( $map_entries ), true ) ) {
282
+ $entries = $map_entries[ $slug ];
283
+ }
284
+ $sample['results'][ $slug ] = array(
285
+ 'label' => $label,
286
+ 'votes' => $entries,
287
+ );
288
+ }
289
+
290
+
291
+ // wrap in array as zapier best practices
292
+ return array( $sample );
293
+ }
294
+
295
+ /**
296
+ * Check if setup webhook url is completed
297
+ *
298
+ * @since 1.6.1
299
+ *
300
+ * @param $submitted_data
301
+ *
302
+ * @return bool
303
+ */
304
+ public function setup_webhook_url_is_completed( $submitted_data ) {
305
+ $multi_id = '';
306
+ if ( isset( $submitted_data['multi_id'] ) ) {
307
+ $multi_id = $submitted_data['multi_id'];
308
+ }
309
+
310
+ if ( empty( $multi_id ) ) {
311
+ return false;
312
+ }
313
+
314
+ $name = $this->get_multi_id_poll_settings_value( $multi_id, 'name', '' );
315
+ $name = trim( $name );
316
+ if ( empty( $name ) ) {
317
+ return false;
318
+ }
319
+ $webhook_url = $this->get_multi_id_poll_settings_value( $multi_id, 'webhook_url', '' );
320
+ $webhook_url = trim( $webhook_url );
321
+ if ( empty( $webhook_url ) ) {
322
+ return false;
323
+ }
324
+
325
+ return true;
326
+ }
327
+
328
+ /**
329
+ * Generate multi id for multiple connection
330
+ *
331
+ * @since 1.6.1
332
+ * @return string
333
+ */
334
+ public function generate_multi_id() {
335
+ return uniqid( 'zapier_', true );
336
+ }
337
+
338
+
339
+ /**
340
+ * Override how multi connection displayed
341
+ *
342
+ * @since 1.6.1
343
+ * @return array
344
+ */
345
+ public function get_multi_ids() {
346
+ $multi_ids = array();
347
+ foreach ( $this->get_poll_settings_values() as $key => $value ) {
348
+ $multi_ids[] = array(
349
+ 'id' => $key,
350
+ // use name that was added by user on creating connection
351
+ 'label' => isset( $value['name'] ) ? $value['name'] : $key,
352
+ );
353
+ }
354
+
355
+ return $multi_ids;
356
+ }
357
+
358
+ /**
359
+ * Disconnect a connection from current poll
360
+ *
361
+ * @since 1.6.1
362
+ *
363
+ * @param array $submitted_data
364
+ */
365
+ public function disconnect_form( $submitted_data ) {
366
+ // only execute if multi_id provided on submitted data
367
+ if ( isset( $submitted_data['multi_id'] ) && ! empty( $submitted_data['multi_id'] ) ) {
368
+ $addon_poll_settings = $this->get_poll_settings_values();
369
+ unset( $addon_poll_settings[ $submitted_data['multi_id'] ] );
370
+ $this->save_poll_settings_values( $addon_poll_settings );
371
+ }
372
+ }
373
+
374
+ /**
375
+ * Check if multi_id poll settings values completed
376
+ *
377
+ * @since 1.6.1
378
+ *
379
+ * @param $multi_id
380
+ *
381
+ * @return bool
382
+ */
383
+ public function is_multi_poll_settings_complete( $multi_id ) {
384
+ $data = array( 'multi_id' => $multi_id );
385
+
386
+ if ( ! $this->setup_webhook_url_is_completed( $data ) ) {
387
+ return false;
388
+ }
389
+
390
+ return true;
391
+ }
392
+ }
addons/pro/zapier/forminator-addon-zapier.php CHANGED
@@ -27,6 +27,9 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
27
  protected $_form_settings = 'Forminator_Addon_Zapier_Form_Settings';
28
  protected $_form_hooks = 'Forminator_Addon_Zapier_Form_Hooks';
29
 
 
 
 
30
  /**
31
  * Forminator_Addon_Zapier constructor.
32
  *
@@ -153,7 +156,7 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
153
  );
154
  } else {
155
  $buttons['submit'] = array(
156
- 'markup' => self::get_button_markup( esc_html__( 'Activate', Forminator::DOMAIN ), 'forminator-addon-connect' )
157
  );
158
  }
159
 
@@ -285,4 +288,63 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
285
  return true;
286
  }
287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  }
27
  protected $_form_settings = 'Forminator_Addon_Zapier_Form_Settings';
28
  protected $_form_hooks = 'Forminator_Addon_Zapier_Form_Hooks';
29
 
30
+ protected $_poll_settings = 'Forminator_Addon_Zapier_Poll_Settings';
31
+ protected $_poll_hooks = 'Forminator_Addon_Zapier_Poll_Hooks';
32
+
33
  /**
34
  * Forminator_Addon_Zapier constructor.
35
  *
156
  );
157
  } else {
158
  $buttons['submit'] = array(
159
+ 'markup' => self::get_button_markup( esc_html__( 'Activate', Forminator::DOMAIN ), 'forminator-addon-connect' ),
160
  );
161
  }
162
 
288
  return true;
289
  }
290
 
291
+ /**
292
+ * Flag for check if and addon connected to a poll(poll settings such as list id completed)
293
+ *
294
+ * Please apply necessary WordPress hook on the inheritance class
295
+ *
296
+ * @since 1.6.1
297
+ *
298
+ * @param $poll_id
299
+ *
300
+ * @return boolean
301
+ */
302
+ public function is_poll_connected( $poll_id ) {
303
+ try {
304
+ $poll_settings_instance = null;
305
+ if ( ! $this->is_connected() ) {
306
+ throw new Forminator_Addon_Zapier_Exception( 'Zapier is not connected' );
307
+ }
308
+
309
+ $poll_settings_instance = $this->get_addon_poll_settings( $poll_id );
310
+ if ( ! $poll_settings_instance instanceof Forminator_Addon_Zapier_Poll_Settings ) {
311
+ throw new Forminator_Addon_Zapier_Exception( 'Zapier Poll Settings of Trello' );
312
+ }
313
+
314
+ // Mark as active when there is at least one active connection
315
+ if ( false === $poll_settings_instance->find_one_active_connection() ) {
316
+ throw new Forminator_Addon_Zapier_Exception( 'No active Poll connection found in this poll' );
317
+ }
318
+
319
+ $is_poll_connected = true;
320
+
321
+ } catch ( Forminator_Addon_Zapier_Exception $e ) {
322
+
323
+ $is_poll_connected = false;
324
+ }
325
+
326
+ /**
327
+ * Filter connected status Zapier with the poll
328
+ *
329
+ * @since 1.6.1
330
+ *
331
+ * @param bool $is_poll_connected
332
+ * @param int $poll_id Current Poll ID
333
+ * @param Forminator_Addon_Trello_Poll_Settings|null $poll_settings_instance Instance of poll settings, or null when unavailable
334
+ *
335
+ */
336
+ $is_poll_connected = apply_filters( 'forminator_addon_zapier_is_poll_connected', $is_poll_connected, $poll_id, $poll_settings_instance );
337
+
338
+ return $is_poll_connected;
339
+ }
340
+
341
+ /**
342
+ * Allow multiple connection on one poll
343
+ *
344
+ * @since 1.6.1
345
+ * @return bool
346
+ */
347
+ public function is_allow_multi_on_poll() {
348
+ return true;
349
+ }
350
  }
addons/pro/zapier/views/poll-settings/setup-webhook.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // defaults
3
+ $vars = array(
4
+ 'error_message' => '',
5
+ 'name' => '',
6
+ 'name_error' => '',
7
+ 'multi_id' => '',
8
+ 'new_zap_url' => '',
9
+ 'webhook_url' => '',
10
+ 'webhook_url_error' => '',
11
+ );
12
+ /** @var array $template_vars */
13
+ foreach ( $template_vars as $key => $val ) {
14
+ $vars[ $key ] = $val;
15
+ }
16
+
17
+ ?>
18
+ <div class="integration-header">
19
+ <h3 class="sui-box-title" id="dialogTitle2"><?php esc_html_e( 'Setup Webhook', Forminator::DOMAIN ); ?></h3>
20
+ <p><?php esc_html_e( 'Put your ZAP Webhook URL below. ', Forminator::DOMAIN ); ?></p>
21
+ <?php if ( ! empty( $vars['error_message'] ) ) : ?>
22
+ <span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
23
+ <?php endif; ?>
24
+ </div>
25
+ <form enctype="multipart/form-data">
26
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['name_error'] ) ? 'sui-form-field-error' : '' ); ?>">
27
+ <label class="sui-label"><?php esc_html_e( 'Zapier Integration Name', Forminator::DOMAIN ); ?></label>
28
+ <div class="sui-control-with-icon">
29
+ <input type="text"
30
+ name="name"
31
+ placeholder="<?php esc_attr_e( 'Friendly Name', Forminator::DOMAIN ); ?>"
32
+ value="<?php echo esc_attr( $vars['name'] ); ?>"
33
+ class="sui-form-control"
34
+ />
35
+ <i class="sui-icon-web-globe-world" aria-hidden="true"></i>
36
+ </div>
37
+ <?php if ( ! empty( $vars['name_error'] ) ) : ?>
38
+ <span class="sui-error-message"><?php echo esc_html( $vars['name_error'] ); ?></span>
39
+ <?php endif; ?>
40
+ </div>
41
+ <div class="sui-form-field <?php echo esc_attr( ! empty( $vars['webhook_url_error'] ) ? 'sui-form-field-error' : '' ); ?>">
42
+ <label class="sui-label"><?php esc_html_e( 'Webhook URL', Forminator::DOMAIN ); ?></label>
43
+ <div class="sui-control-with-icon">
44
+ <input
45
+ type="text"
46
+ name="webhook_url"
47
+ placeholder="<?php esc_attr_e( 'Webhook URL', Forminator::DOMAIN ); ?>"
48
+ value="<?php echo esc_attr( $vars['webhook_url'] ); ?>"
49
+ class="sui-form-control"/>
50
+ <i class="sui-icon-link" aria-hidden="true"></i>
51
+ </div>
52
+ <?php if ( ! empty( $vars['webhook_url_error'] ) ) : ?>
53
+ <span class="sui-error-message"><?php echo esc_html( $vars['webhook_url_error'] ); ?></span>
54
+ <?php endif; ?>
55
+ </div>
56
+ <input type="hidden" name="multi_id" value="<?php echo esc_attr( $vars['multi_id'] ); ?>">
57
+ </form>
58
+ <div class="sui-notice sui-notice-warning">
59
+ <p>
60
+ <?php echo sprintf(//wpcs xss ok.
61
+ __( 'Please go %1$shere%2$s if you do not have any ZAP created. Remember to choose %3$s as Trigger App.', Forminator::DOMAIN ),
62
+ '<a href="' . $vars['new_zap_url'] . '" target="_blank">',
63
+ '</a>',
64
+ '<strong>Webhooks by Zapier</strong>'
65
+ ); ?>
66
+ </p>
67
+ </div>',
addons/pro/zapier/zapier.php CHANGED
@@ -9,7 +9,7 @@
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
- define( 'FORMINATOR_ADDON_ZAPIER_VERSION', '1.1' );
13
 
14
  function forminator_addon_zapier_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/zapier' );
@@ -24,7 +24,12 @@ function forminator_addon_zapier_dir() {
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier.php';
 
27
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-settings.php';
28
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-hooks.php';
 
 
 
 
29
  //Direct Load
30
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Zapier' );
9
  * Author URI: http://premium.wpmudev.org
10
  */
11
 
12
+ define( 'FORMINATOR_ADDON_ZAPIER_VERSION', '1.2' );
13
 
14
  function forminator_addon_zapier_url() {
15
  return trailingslashit( forminator_plugin_url() . 'addons/pro/zapier' );
24
  }
25
 
26
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier.php';
27
+
28
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-settings.php';
29
  require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-hooks.php';
30
+
31
+ require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-settings.php';
32
+ require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-hooks.php';
33
+
34
  //Direct Load
35
  Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Zapier' );
admin/abstracts/class-admin-module.php CHANGED
@@ -41,6 +41,10 @@ abstract class Forminator_Admin_Module {
41
 
42
  add_action( 'admin_menu', array( $this, 'add_menu_pages' ) );
43
  add_action( 'admin_head', array( $this, "hide_menu_pages" ) );
 
 
 
 
44
  add_filter( 'forminator_data', array( $this, "add_js_defaults" ) );
45
  add_filter( 'forminator_l10n', array( $this, "add_l10n_strings" ) );
46
  add_filter( 'submenu_file', array( $this, "admin_submenu_file" ), 10, 2 );
41
 
42
  add_action( 'admin_menu', array( $this, 'add_menu_pages' ) );
43
  add_action( 'admin_head', array( $this, "hide_menu_pages" ) );
44
+
45
+ // admin-menu-editor compat
46
+ add_action( 'admin_menu_editor-menu_replaced', array( $this, "hide_menu_pages" ) );
47
+
48
  add_filter( 'forminator_data', array( $this, "add_js_defaults" ) );
49
  add_filter( 'forminator_l10n', array( $this, "add_l10n_strings" ) );
50
  add_filter( 'submenu_file', array( $this, "admin_submenu_file" ), 10, 2 );
admin/abstracts/class-admin-page.php CHANGED
@@ -299,8 +299,9 @@ abstract class Forminator_Admin_Page {
299
  * @since 1.0
300
  */
301
  public function render() {
 
302
  ?>
303
- <main class="sui-wrap <?php echo esc_attr( 'wpmudev-forminator-' . $this->page_slug ); ?>">
304
  <?php
305
  $this->render_header();
306
 
299
  * @since 1.0
300
  */
301
  public function render() {
302
+ $accessibility_enabled = get_option( 'forminator_enable_accessibility', false );
303
  ?>
304
+ <main class="sui-wrap <?php echo $accessibility_enabled ? 'sui-color-accessible' : ''; ?> <?php echo esc_attr( 'wpmudev-forminator-' . $this->page_slug ); ?>">
305
  <?php
306
  $this->render_header();
307
 
admin/classes/class-admin-ajax.php CHANGED
@@ -83,6 +83,8 @@ class Forminator_Admin_AJAX {
83
  add_action( "wp_ajax_forminator_save_import_quiz_popup", array( $this, "save_import_quiz" ) );
84
 
85
  add_action( "wp_ajax_forminator_save_pagination_popup", array( $this, "save_pagination" ) );
 
 
86
  }
87
 
88
  /**
@@ -187,17 +189,33 @@ class Forminator_Admin_AJAX {
187
  forminator_validate_ajax( "forminator_save_poll" );
188
 
189
  $submitted_data = $this->get_post_data();
190
- $answers = array();
191
- $id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
192
- $id = intval( $id );
 
 
 
 
 
 
 
 
 
193
 
194
  if ( is_null( $id ) || $id <= 0 ) {
195
  $form_model = new Forminator_Poll_Form_Model();
 
 
 
196
  } else {
197
  $form_model = Forminator_Poll_Form_Model::model()->load( $id );
198
  if ( ! is_object( $form_model ) ) {
199
  wp_send_json_error( __( "Poll model doesn't exist", Forminator::DOMAIN ) );
200
  }
 
 
 
 
201
  //we need to empty fields cause we will send new data
202
  $form_model->clear_fields();
203
  }
@@ -205,13 +223,23 @@ class Forminator_Admin_AJAX {
205
  $form_model->set_var_in_array( 'name', 'formName', $submitted_data );
206
 
207
  // Check if answers exist
208
- if ( isset( $submitted_data['data']['answers'] ) ) {
209
- $answers = forminator_sanitize_field( $submitted_data['data']['answers'] );
210
  }
211
 
212
- // Sanitize settings
213
- $settings = forminator_sanitize_field( $submitted_data['data'] );
214
- unset( $settings['answers'] );
 
 
 
 
 
 
 
 
 
 
215
  $form_model->settings = $settings;
216
 
217
  foreach ( $answers as $answer ) {
@@ -222,6 +250,9 @@ class Forminator_Admin_AJAX {
222
  $form_model->add_field( $field_model );
223
  }
224
 
 
 
 
225
  // Save data
226
  $id = $form_model->save();
227
 
@@ -650,13 +681,14 @@ class Forminator_Admin_AJAX {
650
  public function load_recaptcha_preview() {
651
  $language = get_option( "forminator_captcha_language", "en" );
652
 
653
- // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
654
- $html = '<script src="https://www.google.com/recaptcha/api.js?hl=' . $language . '&render=explicit&onload=forminator_render_admin_captcha" async defer></script>';
655
-
656
  $captcha_key = get_option( "forminator_captcha_key", "" );
657
  $captcha_theme = get_option( "forminator_captcha_theme", "light" );
 
658
 
659
  if ( ! empty( $captcha_key ) && ! empty( $captcha_theme ) ) {
 
 
 
660
  $html .= '<div class="forminator-g-recaptcha" data-sitekey="' . $captcha_key . '" data-theme="' . $captcha_theme . '" data-size="normal"></div>';
661
  } else {
662
  $html .= '<div class="sui-notice">';
@@ -789,11 +821,7 @@ class Forminator_Admin_AJAX {
789
  $preview_data = forminator_data_to_model_form( $data );// WPCS: CSRF ok by forminator_validate_ajax.
790
  }
791
 
792
- ob_start();
793
-
794
- forminator_form_preview( $form_id, true, $preview_data );
795
-
796
- $html = ob_get_clean();
797
 
798
  wp_send_json_success( $html );
799
  }
@@ -805,25 +833,27 @@ class Forminator_Admin_AJAX {
805
  */
806
  public function preview_polls() {
807
  // Validate nonce
808
- forminator_validate_ajax( "forminator_popup_preview_polls" );
809
 
810
  $preview_data = false;
811
- $form_id = false;
 
812
 
813
- if ( isset( $_POST['id'] ) ) {// WPCS: CSRF ok by forminator_validate_ajax.
814
  $form_id = intval( $_POST['id'] );
815
  }
816
 
 
817
  // Check if preview data set
818
  if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {// WPCS: CSRF ok by forminator_validate_ajax.
819
- $preview_data = forminator_data_to_model_poll( $_POST['data'] );// WPCS: CSRF ok by forminator_validate_ajax.
 
 
 
 
820
  }
821
 
822
- ob_start();
823
-
824
- forminator_poll_preview( $form_id, true, $preview_data );
825
-
826
- $html = ob_get_clean();
827
 
828
  wp_send_json_success( $html );
829
  }
@@ -838,9 +868,10 @@ class Forminator_Admin_AJAX {
838
  forminator_validate_ajax( "forminator_popup_preview_quizzes" );
839
 
840
  $preview_data = false;
841
- $form_id = false;
 
842
 
843
- if ( isset( $_POST['id'] ) ) {// WPCS: CSRF ok by forminator_validate_ajax.
844
  $form_id = intval( $_POST['id'] );
845
  }
846
 
@@ -849,11 +880,7 @@ class Forminator_Admin_AJAX {
849
  $preview_data = forminator_data_to_model_quiz( $_POST['data'] );// WPCS: CSRF ok by forminator_validate_ajax.
850
  }
851
 
852
- ob_start();
853
-
854
- forminator_quiz_preview( $form_id, true, $preview_data );
855
-
856
- $html = ob_get_clean();
857
 
858
  wp_send_json_success( $html );
859
  }
@@ -1038,20 +1065,22 @@ class Forminator_Admin_AJAX {
1038
  forminator_validate_ajax( "forminator_save_privacy_settings" );
1039
  $post_data = $_POST; // WPCS: CSRF OK by forminator_validate_ajax
1040
 
1041
- // Custom Forms
 
 
 
1042
  if ( isset( $post_data['erase_form_submissions'] ) ) {
1043
  $post_data['erase_form_submissions'] = sanitize_text_field( $post_data['erase_form_submissions'] );
1044
  $enable_erasure_request_erase_form_submissions = filter_var( $post_data['erase_form_submissions'], FILTER_VALIDATE_BOOLEAN );
1045
  update_option( 'forminator_enable_erasure_request_erase_form_submissions', $enable_erasure_request_erase_form_submissions );
1046
  }
 
1047
 
 
1048
  $cform_retain_forever = filter_var( $post_data['retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
1049
-
1050
- //forever
1051
  if ( $cform_retain_forever ) {
1052
  $post_data['submissions_retention_number'] = 0;
1053
  }
1054
-
1055
  if ( isset( $post_data['submissions_retention_number'] ) ) {
1056
  $post_data['submissions_retention_number'] = sanitize_text_field( $post_data['submissions_retention_number'] );
1057
  $post_data['submissions_retention_unit'] = sanitize_text_field( $post_data['submissions_retention_unit'] );
@@ -1062,10 +1091,10 @@ class Forminator_Admin_AJAX {
1062
  update_option( 'forminator_retain_submissions_interval_number', $submissions_retention_number );
1063
  }
1064
  update_option( 'forminator_retain_submissions_interval_unit', $post_data['submissions_retention_unit'] );
 
1065
 
 
1066
  $cform_retain_ip_forever = filter_var( $post_data['retain_ip_forever'], FILTER_VALIDATE_BOOLEAN );
1067
-
1068
- //forever
1069
  if ( $cform_retain_ip_forever ) {
1070
  $post_data['cform_retention_ip_number'] = 0;
1071
  }
@@ -1079,14 +1108,35 @@ class Forminator_Admin_AJAX {
1079
  update_option( 'forminator_retain_ip_interval_number', $cform_ip_retention_number );
1080
  }
1081
  update_option( 'forminator_retain_ip_interval_unit', $post_data['cform_retention_ip_unit'] );
 
1082
 
1083
- $poll_retain_ip_forever = filter_var( $post_data['retain_poll_forever'], FILTER_VALIDATE_BOOLEAN );
1084
 
1085
- //forever
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1086
  if ( $poll_retain_ip_forever ) {
1087
  $post_data['votes_retention_number'] = 0;
1088
  }
1089
- // Polls
1090
  if ( isset( $post_data['votes_retention_number'] ) ) {
1091
  $post_data['votes_retention_number'] = sanitize_text_field( $post_data['votes_retention_number'] );
1092
  $post_data['votes_retention_unit'] = sanitize_text_field( $post_data['votes_retention_unit'] );
@@ -1097,7 +1147,11 @@ class Forminator_Admin_AJAX {
1097
  update_option( 'forminator_retain_votes_interval_number', $votes_retention_number );
1098
  }
1099
  update_option( 'forminator_retain_votes_interval_unit', $post_data['votes_retention_unit'] );
 
1100
 
 
 
 
1101
  $delete_uninstall = $_POST['delete_uninstall'];// WPCS: CSRF ok by forminator_validate_ajax.
1102
  $delete_uninstall = filter_var( $delete_uninstall, FILTER_VALIDATE_BOOLEAN );
1103
 
@@ -1401,4 +1455,21 @@ class Forminator_Admin_AJAX {
1401
  wp_send_json_success();
1402
 
1403
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1404
  }
83
  add_action( "wp_ajax_forminator_save_import_quiz_popup", array( $this, "save_import_quiz" ) );
84
 
85
  add_action( "wp_ajax_forminator_save_pagination_popup", array( $this, "save_pagination" ) );
86
+
87
+ add_action( "wp_ajax_forminator_save_accessibility_settings_popup", array( $this, "save_accessibility_settings" ) );
88
  }
89
 
90
  /**
189
  forminator_validate_ajax( "forminator_save_poll" );
190
 
191
  $submitted_data = $this->get_post_data();
192
+ $poll_data = array();
193
+ if ( isset( $submitted_data['data'] ) ) {
194
+ $poll_data = $submitted_data['data'];
195
+ $poll_data = json_decode( stripslashes( $poll_data ), true );
196
+ }
197
+
198
+ $answers = array();
199
+ $settings = array();
200
+ $id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
201
+ $id = intval( $id );
202
+ $status = isset( $submitted_data['status'] ) ? sanitize_text_field( $submitted_data['status'] ) : '';
203
+ $version = isset( $submitted_data['version'] ) ? sanitize_text_field( $submitted_data['version'] ) : '1.0';
204
 
205
  if ( is_null( $id ) || $id <= 0 ) {
206
  $form_model = new Forminator_Poll_Form_Model();
207
+ if ( empty( $status ) ) {
208
+ $status = Forminator_Poll_Form_Model::STATUS_PUBLISH;
209
+ }
210
  } else {
211
  $form_model = Forminator_Poll_Form_Model::model()->load( $id );
212
  if ( ! is_object( $form_model ) ) {
213
  wp_send_json_error( __( "Poll model doesn't exist", Forminator::DOMAIN ) );
214
  }
215
+ if ( empty( $status ) ) {
216
+ $status = $form_model->status;
217
+ }
218
+
219
  //we need to empty fields cause we will send new data
220
  $form_model->clear_fields();
221
  }
223
  $form_model->set_var_in_array( 'name', 'formName', $submitted_data );
224
 
225
  // Check if answers exist
226
+ if ( isset( $poll_data['answers'] ) ) {
227
+ $answers = forminator_sanitize_field( $poll_data['answers'] );
228
  }
229
 
230
+ if ( isset( $poll_data['settings'] ) ) {
231
+ // Sanitize settings
232
+ $settings = forminator_sanitize_field( $poll_data['settings'] );
233
+ }
234
+
235
+ // Sanitize admin email message
236
+ if ( isset( $poll_data['settings']['admin-email-editor'] ) ) {
237
+ $settings['admin-email-editor'] = $poll_data['settings']['admin-email-editor'];
238
+ }
239
+
240
+ // version
241
+ $settings['version'] = $version;
242
+
243
  $form_model->settings = $settings;
244
 
245
  foreach ( $answers as $answer ) {
250
  $form_model->add_field( $field_model );
251
  }
252
 
253
+ // status
254
+ $form_model->status = $status;
255
+
256
  // Save data
257
  $id = $form_model->save();
258
 
681
  public function load_recaptcha_preview() {
682
  $language = get_option( "forminator_captcha_language", "en" );
683
 
 
 
 
684
  $captcha_key = get_option( "forminator_captcha_key", "" );
685
  $captcha_theme = get_option( "forminator_captcha_theme", "light" );
686
+ $html = '';
687
 
688
  if ( ! empty( $captcha_key ) && ! empty( $captcha_theme ) ) {
689
+ // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
690
+ $html = '<script src="https://www.google.com/recaptcha/api.js?hl=' . $language . '&render=explicit&onload=forminator_render_admin_captcha" async defer></script>';
691
+
692
  $html .= '<div class="forminator-g-recaptcha" data-sitekey="' . $captcha_key . '" data-theme="' . $captcha_theme . '" data-size="normal"></div>';
693
  } else {
694
  $html .= '<div class="sui-notice">';
821
  $preview_data = forminator_data_to_model_form( $data );// WPCS: CSRF ok by forminator_validate_ajax.
822
  }
823
 
824
+ $html = forminator_form_preview( $form_id, true, $preview_data );
 
 
 
 
825
 
826
  wp_send_json_success( $html );
827
  }
833
  */
834
  public function preview_polls() {
835
  // Validate nonce
836
+ //forminator_validate_ajax( "forminator_popup_preview_polls" );
837
 
838
  $preview_data = false;
839
+ // force -1 for preview
840
+ $form_id = -1;
841
 
842
+ if ( isset( $_POST['id'] ) ) { // WPCS: CSRF ok by forminator_validate_ajax.
843
  $form_id = intval( $_POST['id'] );
844
  }
845
 
846
+ // Check if preview data set
847
  // Check if preview data set
848
  if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {// WPCS: CSRF ok by forminator_validate_ajax.
849
+ $data = $_POST['data']; // WPCS: CSRF ok by forminator_validate_ajax.
850
+ if ( ! is_array( $data ) ) {
851
+ $data = json_decode( stripslashes( $data ), true );
852
+ }
853
+ $preview_data = forminator_data_to_model_poll( $data );// WPCS: CSRF ok by forminator_validate_ajax.
854
  }
855
 
856
+ $html = forminator_poll_preview( $form_id, true, $preview_data );
 
 
 
 
857
 
858
  wp_send_json_success( $html );
859
  }
868
  forminator_validate_ajax( "forminator_popup_preview_quizzes" );
869
 
870
  $preview_data = false;
871
+ // force -1 for preview
872
+ $form_id = -1;
873
 
874
+ if ( isset( $_POST['id'] ) ) { // WPCS: CSRF ok by forminator_validate_ajax.
875
  $form_id = intval( $_POST['id'] );
876
  }
877
 
880
  $preview_data = forminator_data_to_model_quiz( $_POST['data'] );// WPCS: CSRF ok by forminator_validate_ajax.
881
  }
882
 
883
+ $html = forminator_quiz_preview( $form_id, true, $preview_data );
 
 
 
 
884
 
885
  wp_send_json_success( $html );
886
  }
1065
  forminator_validate_ajax( "forminator_save_privacy_settings" );
1066
  $post_data = $_POST; // WPCS: CSRF OK by forminator_validate_ajax
1067
 
1068
+ /**
1069
+ * CUSTOM FORMS
1070
+ */
1071
+ // Account Erasure Requests
1072
  if ( isset( $post_data['erase_form_submissions'] ) ) {
1073
  $post_data['erase_form_submissions'] = sanitize_text_field( $post_data['erase_form_submissions'] );
1074
  $enable_erasure_request_erase_form_submissions = filter_var( $post_data['erase_form_submissions'], FILTER_VALIDATE_BOOLEAN );
1075
  update_option( 'forminator_enable_erasure_request_erase_form_submissions', $enable_erasure_request_erase_form_submissions );
1076
  }
1077
+ // Account Erasure Requests
1078
 
1079
+ // Submissions Retention
1080
  $cform_retain_forever = filter_var( $post_data['retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
 
 
1081
  if ( $cform_retain_forever ) {
1082
  $post_data['submissions_retention_number'] = 0;
1083
  }
 
1084
  if ( isset( $post_data['submissions_retention_number'] ) ) {
1085
  $post_data['submissions_retention_number'] = sanitize_text_field( $post_data['submissions_retention_number'] );
1086
  $post_data['submissions_retention_unit'] = sanitize_text_field( $post_data['submissions_retention_unit'] );
1091
  update_option( 'forminator_retain_submissions_interval_number', $submissions_retention_number );
1092
  }
1093
  update_option( 'forminator_retain_submissions_interval_unit', $post_data['submissions_retention_unit'] );
1094
+ // Submissions Retention
1095
 
1096
+ // IP Retention
1097
  $cform_retain_ip_forever = filter_var( $post_data['retain_ip_forever'], FILTER_VALIDATE_BOOLEAN );
 
 
1098
  if ( $cform_retain_ip_forever ) {
1099
  $post_data['cform_retention_ip_number'] = 0;
1100
  }
1108
  update_option( 'forminator_retain_ip_interval_number', $cform_ip_retention_number );
1109
  }
1110
  update_option( 'forminator_retain_ip_interval_unit', $post_data['cform_retention_ip_unit'] );
1111
+ // IP Retention
1112
 
 
1113
 
1114
+ /**
1115
+ * POLLS
1116
+ */
1117
+ // Submissions Retention
1118
+ $poll_retain_submissions_forever = filter_var( $post_data['poll_retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
1119
+ if ( $poll_retain_submissions_forever ) {
1120
+ $post_data['poll_submissions_retention_number'] = 0;
1121
+ }
1122
+ // Polls
1123
+ if ( isset( $post_data['poll_submissions_retention_number'] ) ) {
1124
+ $post_data['poll_submissions_retention_number'] = sanitize_text_field( $post_data['poll_submissions_retention_number'] );
1125
+ $post_data['poll_submissions_retention_unit'] = sanitize_text_field( $post_data['poll_submissions_retention_unit'] );
1126
+ $poll_submissions_retention_number = intval( $post_data['poll_submissions_retention_number'] );
1127
+ if ( $poll_submissions_retention_number < 0 ) {
1128
+ $poll_submissions_retention_number = 0;
1129
+ }
1130
+ update_option( 'forminator_retain_poll_submissions_interval_number', $poll_submissions_retention_number );
1131
+ }
1132
+ update_option( 'forminator_retain_poll_submissions_interval_unit', $post_data['poll_submissions_retention_unit'] );
1133
+ // Submissions Retention
1134
+
1135
+ // IP Retention
1136
+ $poll_retain_ip_forever = filter_var( $post_data['retain_poll_forever'], FILTER_VALIDATE_BOOLEAN );
1137
  if ( $poll_retain_ip_forever ) {
1138
  $post_data['votes_retention_number'] = 0;
1139
  }
 
1140
  if ( isset( $post_data['votes_retention_number'] ) ) {
1141
  $post_data['votes_retention_number'] = sanitize_text_field( $post_data['votes_retention_number'] );
1142
  $post_data['votes_retention_unit'] = sanitize_text_field( $post_data['votes_retention_unit'] );
1147
  update_option( 'forminator_retain_votes_interval_number', $votes_retention_number );
1148
  }
1149
  update_option( 'forminator_retain_votes_interval_unit', $post_data['votes_retention_unit'] );
1150
+ // IP Retention
1151
 
1152
+ /**
1153
+ * UNINSTALL PLUGIN
1154
+ */
1155
  $delete_uninstall = $_POST['delete_uninstall'];// WPCS: CSRF ok by forminator_validate_ajax.
1156
  $delete_uninstall = filter_var( $delete_uninstall, FILTER_VALIDATE_BOOLEAN );
1157
 
1455
  wp_send_json_success();
1456
 
1457
  }
1458
+
1459
+ /**
1460
+ * Save accessibility_settings
1461
+ *
1462
+ * @since 1.6.1
1463
+ */
1464
+ public function save_accessibility_settings() {
1465
+ // Validate nonce
1466
+ forminator_validate_ajax( "forminator_save_accessibility_settings" );
1467
+
1468
+ $enable_accessibility = isset( $_POST['enable_accessibility'] ) ? $_POST['enable_accessibility'] : false;// WPCS: CSRF ok by forminator_validate_ajax.
1469
+ $enable_accessibility = filter_var( $enable_accessibility, FILTER_VALIDATE_BOOLEAN );
1470
+
1471
+ update_option( "forminator_enable_accessibility", $enable_accessibility );
1472
+ wp_send_json_success();
1473
+ }
1474
+
1475
  }
admin/classes/class-admin-data.php CHANGED
@@ -70,32 +70,36 @@ class Forminator_Admin_Data {
70
  Forminator_Addon_Admin_Ajax::get_instance()->generate_nonce();
71
 
72
  return array(
73
- 'ajaxUrl' => forminator_ajax_url(),
74
- 'application' => '',
75
- 'is_touch' => wp_is_mobile(),
76
- 'dashboardUrl' => menu_page_url( 'forminator', false ),
77
- 'formEditUrl' => menu_page_url( 'forminator-cform-wizard', false ),
78
- 'settingsUrl' => menu_page_url( 'forminator-settings', false ),
79
- 'hasCaptcha' => forminator_has_captcha_settings(),
80
- 'formNonce' => $this->get_nonce(),
81
- 'searchNonce' => wp_create_nonce( 'forminator_search_emails' ),
82
- 'gFontNonce' => wp_create_nonce( 'forminator_load_google_fonts' ),
83
- 'addons_enabled' => Forminator::is_addons_feature_enabled(),
84
- 'pluginUrl' => forminator_plugin_url(),
85
- 'imagesUrl' => forminator_plugin_url() . '/assets/images',
86
- 'addonNonce' => Forminator_Addon_Admin_Ajax::get_instance()->get_nonce(),
87
- 'countries' => forminator_get_countries_list(),
88
- 'userList' => forminator_list_users(),
89
- 'variables' => forminator_get_vars(),
90
- 'maxUpload' => forminator_get_max_upload(),
91
- 'captchaLangs' => forminator_get_captcha_languages(),
92
- 'erasure' => get_option( 'forminator_enable_erasure_request_erase_form_submissions', false ),
93
- 'retain_number' => get_option( 'forminator_retain_submissions_interval_number', 0 ),
94
- 'retain_unit' => get_option( 'forminator_retain_submissions_interval_unit', 'days' ),
95
- 'fileExts' => forminator_get_ext_types(),
96
- 'version' => FORMINATOR_VERSION,
97
- 'showDocLink' => forminator_is_show_documentation_link(),
98
- 'showBranding' => forminator_is_show_branding(),
 
 
 
 
99
  );
100
  }
101
  }
70
  Forminator_Addon_Admin_Ajax::get_instance()->generate_nonce();
71
 
72
  return array(
73
+ 'ajaxUrl' => forminator_ajax_url(),
74
+ 'application' => '',
75
+ 'is_touch' => wp_is_mobile(),
76
+ 'dashboardUrl' => menu_page_url( 'forminator', false ),
77
+ 'formEditUrl' => menu_page_url( 'forminator-cform-wizard', false ),
78
+ 'settingsUrl' => menu_page_url( 'forminator-settings', false ),
79
+ 'hasCaptcha' => forminator_has_captcha_settings(),
80
+ 'formNonce' => $this->get_nonce(),
81
+ 'searchNonce' => wp_create_nonce( 'forminator_search_emails' ),
82
+ 'gFontNonce' => wp_create_nonce( 'forminator_load_google_fonts' ),
83
+ 'addons_enabled' => Forminator::is_addons_feature_enabled(),
84
+ 'pluginUrl' => forminator_plugin_url(),
85
+ 'imagesUrl' => forminator_plugin_url() . '/assets/images',
86
+ 'addonNonce' => Forminator_Addon_Admin_Ajax::get_instance()->get_nonce(),
87
+ 'countries' => forminator_get_countries_list(),
88
+ 'userList' => forminator_list_users(),
89
+ 'variables' => forminator_get_vars(),
90
+ 'maxUpload' => forminator_get_max_upload(),
91
+ 'captchaLangs' => forminator_get_captcha_languages(),
92
+ 'erasure' => get_option( 'forminator_enable_erasure_request_erase_form_submissions', false ),
93
+ 'retain_number' => get_option( 'forminator_retain_submissions_interval_number', 0 ),
94
+ 'retain_unit' => get_option( 'forminator_retain_submissions_interval_unit', 'days' ),
95
+ 'poll_ip_retain_number' => get_option( 'forminator_retain_votes_interval_number', 0 ),
96
+ 'poll_ip_retain_unit' => get_option( 'forminator_retain_votes_interval_unit', 'days' ),
97
+ 'submissions_ip_retain_number' => get_option( 'forminator_retain_poll_submissions_interval_number', 0 ),
98
+ 'submissions_ip_retain_unit' => get_option( 'forminator_retain_poll_submissions_interval_unit', 'days' ),
99
+ 'fileExts' => forminator_get_ext_types(),
100
+ 'version' => FORMINATOR_VERSION,
101
+ 'showDocLink' => forminator_is_show_documentation_link(),
102
+ 'showBranding' => forminator_is_show_branding(),
103
  );
104
  }
105
  }
admin/classes/class-admin-l10n.php CHANGED
@@ -112,9 +112,12 @@ class Forminator_Admin_L10n {
112
  "enable" => __( 'Enable', Forminator::DOMAIN ),
113
  "enter_name" => __( 'Enter a name', Forminator::DOMAIN ),
114
  "new_form_desc2" => __( 'Name your new form, then lets start building!', Forminator::DOMAIN ),
 
115
  "input_label" => __( 'Input Label', Forminator::DOMAIN ),
116
  "form_name_validation" => __( 'Form name cannot be empty.', Forminator::DOMAIN ),
 
117
  "new_form_placeholder" => __( 'E.g. Blank Form', Forminator::DOMAIN ),
 
118
  "create" => __( 'Create', Forminator::DOMAIN )
119
  ),
120
  "sidebar" => array(
112
  "enable" => __( 'Enable', Forminator::DOMAIN ),
113
  "enter_name" => __( 'Enter a name', Forminator::DOMAIN ),
114
  "new_form_desc2" => __( 'Name your new form, then lets start building!', Forminator::DOMAIN ),
115
+ "new_poll_desc2" => __( 'Name your new poll, then lets start building!', Forminator::DOMAIN ),
116
  "input_label" => __( 'Input Label', Forminator::DOMAIN ),
117
  "form_name_validation" => __( 'Form name cannot be empty.', Forminator::DOMAIN ),
118
+ "poll_name_validation" => __( 'Poll name cannot be empty.', Forminator::DOMAIN ),
119
  "new_form_placeholder" => __( 'E.g. Blank Form', Forminator::DOMAIN ),
120
+ "new_poll_placeholder" => __( 'E.g. Blank Poll', Forminator::DOMAIN ),
121
  "create" => __( 'Create', Forminator::DOMAIN )
122
  ),
123
  "sidebar" => array(
admin/locale.php CHANGED
@@ -65,9 +65,9 @@ $forminator_admin_locale = array(
65
  "Material" => array( null, __("Material", "forminator" ), ), // src/form/components/appearance/design.js:40
66
  "None" => array( null, __("None", "forminator" ), ), // src/form/components/appearance/design.js:43
67
  "Field Label" => array( null, __("Field Label", "forminator" ), ), // src/form/components/appearance/design/bold.js:12
68
- "Text" => array( null, __("Text", "forminator" ), ), // src/form/components/appearance/design/bold.js:16
69
- "Button" => array( null, __("Button", "forminator" ), ), // src/form/components/appearance/design/bold.js:18
70
- "You have opted for no stylesheet to be enqueued. The form will inherit styles from your theme`s CSS." => array( null, __("You have opted for no stylesheet to be enqueued. The form will inherit styles from your theme`s CSS.", "forminator" ), ), // src/form/components/appearance/design/none.js:13
71
  "Fonts" => array( null, __("Fonts", "forminator" ), ), // src/form/components/appearance/fonts.js:19
72
  "By default this form will inherit the fonts your theme uses. You can overwrite these fonts with custom ones from Google Fonts." => array( null, __("By default this form will inherit the fonts your theme uses. You can overwrite these fonts with custom ones from Google Fonts.", "forminator" ), ), // src/form/components/appearance/fonts.js:21
73
  "Use Theme Fonts" => array( null, __("Use Theme Fonts", "forminator" ), ), // src/form/components/appearance/fonts.js:34
@@ -114,7 +114,7 @@ $forminator_admin_locale = array(
114
  "Choose whether you want to use default text for the Previous and Next button or use custom text." => array( null, __("Choose whether you want to use default text for the Previous and Next button or use custom text.", "forminator" ), ), // src/form/components/appearance/pagination.js:88
115
  "Previous Button" => array( null, __("Previous Button", "forminator" ), ), // src/form/components/appearance/pagination.js:103
116
  "Enter text" => array( null, __("Enter text", "forminator" ), ), // src/form/components/appearance/pagination.js:104
117
- "Email Notifications" => array( null, __("Email Notifications", "forminator" ), ), // src/form/components/behaviour.js:57
118
  "Form does not have fields that can be autofilled." => array( null, __("Form does not have fields that can be autofilled.", "forminator" ), ), // src/form/components/behaviour/autofill.js:61
119
  "Autofill" => array( null, __("Autofill", "forminator" ), ), // src/form/components/behaviour/autofill.js:159
120
  "If the user filling out the form is logged in, we can auto-fill fields with any available data." => array( null, __("If the user filling out the form is logged in, we can auto-fill fields with any available data.", "forminator" ), ), // src/form/components/behaviour/autofill.js:161
@@ -133,6 +133,12 @@ $forminator_admin_locale = array(
133
  "Whoops! This form has expired." => array( null, __("Whoops! This form has expired.", "forminator" ), ), // src/form/components/behaviour/lifespan.js:53
134
  "Add some custom message for users to see when your form stops appearing or leave empty to show nothing (just an empty space)." => array( null, __("Add some custom message for users to see when your form stops appearing or leave empty to show nothing (just an empty space).", "forminator" ), ), // src/form/components/behaviour/lifespan.js:55
135
  "Submissions" => array( null, __("Submissions", "forminator" ), ), // src/form/components/behaviour/lifespan.js:66
 
 
 
 
 
 
136
  "Security" => array( null, __("Security", "forminator" ), ), // src/form/components/behaviour/security.js:13
137
  "Added layers of security to prevent spam submissions." => array( null, __("Added layers of security to prevent spam submissions.", "forminator" ), ), // src/form/components/behaviour/security.js:15
138
  "Enable Honeypot protection" => array( null, __("Enable Honeypot protection", "forminator" ), ), // src/form/components/behaviour/security.js:23
@@ -142,7 +148,7 @@ $forminator_admin_locale = array(
142
  "Submission Behaviour" => array( null, __("Submission Behaviour", "forminator" ), ), // src/form/components/behaviour/submission.js:19
143
  "Choose what you want to happen after your visitor has successfully submitted this form." => array( null, __("Choose what you want to happen after your visitor has successfully submitted this form.", "forminator" ), ), // src/form/components/behaviour/submission.js:22
144
  "After submission" => array( null, __("After submission", "forminator" ), ), // src/form/components/behaviour/submission.js:33
145
- "Chose what happens after a user successfully submits your form." => array( null, __("Chose what happens after a user successfully submits your form.", "forminator" ), ), // src/form/components/behaviour/submission.js:35
146
  "Display a success message after form submitted." => array( null, __("Display a success message after form submitted.", "forminator" ), ), // src/form/components/behaviour/submission.js:44
147
  "Inline Message" => array( null, __("Inline Message", "forminator" ), ), // src/form/components/behaviour/submission.js:50
148
  "Redirect URL" => array( null, __("Redirect URL", "forminator" ), ), // src/form/components/behaviour/submission.js:55
@@ -250,7 +256,7 @@ $forminator_admin_locale = array(
250
  "Limit characters" => array( null, __("Limit characters", "forminator" ), ), // src/form/components/fields/phone.js:65
251
  "Limit to:" => array( null, __("Limit to:", "forminator" ), ), // src/form/components/fields/phone.js:72
252
  "10" => array( null, __("10", "forminator" ), ), // src/form/components/fields/phone.js:74
253
- "Select countr" => array( null, __("Select countr", "forminator" ), ), // src/form/components/fields/phone.js:83
254
  "Validation message" => array( null, __("Validation message", "forminator" ), ), // src/form/components/fields/phone.js:95
255
  "Enter validation message" => array( null, __("Enter validation message", "forminator" ), ), // src/form/components/fields/phone.js:97
256
  "Title" => array( null, __("Title", "forminator" ), ), // src/form/components/fields/postdata.js:23
@@ -334,7 +340,7 @@ $forminator_admin_locale = array(
334
  "Cancel" => array( null, __("Cancel", "forminator" ), ), // src/form/components/modals/delete.js:55
335
  "DELETE" => array( null, __("DELETE", "forminator" ), ), // src/form/components/modals/delete.js:64
336
  "Choose a field type to insert into your form." => array( null, __("Choose a field type to insert into your form.", "forminator" ), ), // src/form/components/modals/fields.js:79
337
- "Loading preview…" => array( null, __("Loading preview…", "forminator" ), ), // src/form/components/modals/preview.js:105
338
  "Publishing form…" => array( null, __("Publishing form…", "forminator" ), ), // src/form/components/modals/publish.js:18
339
  "Great work! Please hold tight a few moments while we publish your form to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your form to the world.", "forminator" ), ), // src/form/components/modals/publish.js:24
340
  "Visibility" => array( null, __("Visibility", "forminator" ), ), // src/form/components/modals/settings.js:184
@@ -379,7 +385,7 @@ $forminator_admin_locale = array(
379
  "Disable store submissions in my database" => array( null, __("Disable store submissions in my database", "forminator" ), ), // src/form/components/settings.js:66
380
  "If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below." => array( null, __("If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below.", "forminator" ), ), // src/form/components/settings.js:68
381
  "Privacy" => array( null, __("Privacy", "forminator" ), ), // src/form/components/settings.js:76
382
- "Choose how you want to handle this forms data storage." => array( null, __("Choose how you want to handle this forms data storage.", "forminator" ), ), // src/form/components/settings.js:79
383
  "By default we will use the configuration you have set in your" => array( null, __("By default we will use the configuration you have set in your", "forminator" ), ), // src/form/components/settings.js:84
384
  "global privacy settings." => array( null, __("global privacy settings.", "forminator" ), ), // src/form/components/settings.js:90
385
  "How long do you want to retain this forms submissions for?" => array( null, __("How long do you want to retain this forms submissions for?", "forminator" ), ), // src/form/components/settings.js:101
@@ -423,8 +429,8 @@ $forminator_admin_locale = array(
423
  "Default value" => array( null, __("Default value", "forminator" ), ), // src/form/components/settings/multi-name.js:54
424
  "Delete option" => array( null, __("Delete option", "forminator" ), ), // src/form/components/settings/multi-option.js:33
425
  "Value" => array( null, __("Value", "forminator" ), ), // src/form/components/settings/multi-option.js:36
426
- "Options" => array( null, __("Options", "forminator" ), ), // src/form/components/settings/multi-value.js:119
427
- "Add Option" => array( null, __("Add Option", "forminator" ), ), // src/form/components/settings/multi-value.js:138
428
  "Require" => array( null, __("Require", "forminator" ), ), // src/form/components/settings/required.js:33
429
  "Optional" => array( null, __("Optional", "forminator" ), ), // src/form/components/settings/required.js:46
430
  "Required" => array( null, __("Required", "forminator" ), ), // src/form/components/settings/required.js:52
@@ -454,7 +460,86 @@ $forminator_admin_locale = array(
454
  "Rules" => array( null, __("Rules", "forminator" ), ), // src/form/components/settings/visibility.js:138
455
  "Add Rule" => array( null, __("Add Rule", "forminator" ), ), // src/form/components/settings/visibility.js:147
456
  "By default field will always be visible. If you want to hide or show fields based on user input you can add conditions." => array( null, __("By default field will always be visible. If you want to hide or show fields based on user input you can add conditions.", "forminator" ), ), // src/form/components/settings/visibility.js:152
457
- "You have unsaved changes, are you sure want to leave this page" => array( null, __("You have unsaved changes, are you sure want to leave this page", "forminator" ), ), // src/form/containers/main.js:31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
458
  "Enable" => array( null, __("Enable", "forminator" ), ), // src/settings/inputs/accordion-toggle.js:71
459
  "Basic selectors" => array( null, __("Basic selectors", "forminator" ), ), // src/settings/inputs/ace-editor.js:60
460
  "Form" => array( null, __("Form", "forminator" ), ), // src/settings/inputs/ace-editor.js:65
@@ -462,22 +547,31 @@ $forminator_admin_locale = array(
462
  "Field Description" => array( null, __("Field Description", "forminator" ), ), // src/settings/inputs/ace-editor.js:93
463
  "Input" => array( null, __("Input", "forminator" ), ), // src/settings/inputs/ace-editor.js:100
464
  "Textarea" => array( null, __("Textarea", "forminator" ), ), // src/settings/inputs/ace-editor.js:107
 
 
 
 
465
  "Remove this date range" => array( null, __("Remove this date range", "forminator" ), ), // src/settings/inputs/date-picker.js:73
466
- "Required Fields" => array( null, __("Required Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:131
467
- "Optional Fields" => array( null, __("Optional Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:141
468
- "Misc Data" => array( null, __("Misc Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:157
469
- "All Submitted Fields" => array( null, __("All Submitted Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:190
470
- "Form Name" => array( null, __("Form Name", "forminator" ), ), // src/settings/inputs/wp-editor.js:199
471
- "Add form data" => array( null, __("Add form data", "forminator" ), ), // src/settings/inputs/wp-editor.js:224
472
- "is having" => array( null, __("is having", "forminator" ), ), // src/utils.js:611
473
- "is" => array( null, __("is", "forminator" ), ), // src/utils.js:614
474
- "is not having" => array( null, __("is not having", "forminator" ), ), // src/utils.js:618
475
- "is not" => array( null, __("is not", "forminator" ), ), // src/utils.js:621
476
- "is greater than" => array( null, __("is greater than", "forminator" ), ), // src/utils.js:624
477
- "is less than" => array( null, __("is less than", "forminator" ), ), // src/utils.js:626
478
- "contains" => array( null, __("contains", "forminator" ), ), // src/utils.js:628
479
- "starts with" => array( null, __("starts with", "forminator" ), ), // src/utils.js:630
480
- "ends with" => array( null, __("ends with", "forminator" ), ), // src/utils.js:632
 
 
 
 
 
481
  );
482
  return $forminator_admin_locale;
483
  /* THIS IS THE END OF THE GENERATED FILE */
65
  "Material" => array( null, __("Material", "forminator" ), ), // src/form/components/appearance/design.js:40
66
  "None" => array( null, __("None", "forminator" ), ), // src/form/components/appearance/design.js:43
67
  "Field Label" => array( null, __("Field Label", "forminator" ), ), // src/form/components/appearance/design/bold.js:12
68
+ "Text" => array( null, __("Text", "forminator" ), ), // src/form/components/appearance/design/bold.js:20
69
+ "Button" => array( null, __("Button", "forminator" ), ), // src/form/components/appearance/design/bold.js:22
70
+ "You have opted for no stylesheet to be enqueued. The form will inherit styles from your theme's CSS." => array( null, __("You have opted for no stylesheet to be enqueued. The form will inherit styles from your theme's CSS.", "forminator" ), ), // src/form/components/appearance/design/none.js:12
71
  "Fonts" => array( null, __("Fonts", "forminator" ), ), // src/form/components/appearance/fonts.js:19
72
  "By default this form will inherit the fonts your theme uses. You can overwrite these fonts with custom ones from Google Fonts." => array( null, __("By default this form will inherit the fonts your theme uses. You can overwrite these fonts with custom ones from Google Fonts.", "forminator" ), ), // src/form/components/appearance/fonts.js:21
73
  "Use Theme Fonts" => array( null, __("Use Theme Fonts", "forminator" ), ), // src/form/components/appearance/fonts.js:34
114
  "Choose whether you want to use default text for the Previous and Next button or use custom text." => array( null, __("Choose whether you want to use default text for the Previous and Next button or use custom text.", "forminator" ), ), // src/form/components/appearance/pagination.js:88
115
  "Previous Button" => array( null, __("Previous Button", "forminator" ), ), // src/form/components/appearance/pagination.js:103
116
  "Enter text" => array( null, __("Enter text", "forminator" ), ), // src/form/components/appearance/pagination.js:104
117
+ "Email Notifications" => array( null, __("Email Notifications", "forminator" ), ), // src/form/components/behaviour.js:59
118
  "Form does not have fields that can be autofilled." => array( null, __("Form does not have fields that can be autofilled.", "forminator" ), ), // src/form/components/behaviour/autofill.js:61
119
  "Autofill" => array( null, __("Autofill", "forminator" ), ), // src/form/components/behaviour/autofill.js:159
120
  "If the user filling out the form is logged in, we can auto-fill fields with any available data." => array( null, __("If the user filling out the form is logged in, we can auto-fill fields with any available data.", "forminator" ), ), // src/form/components/behaviour/autofill.js:161
133
  "Whoops! This form has expired." => array( null, __("Whoops! This form has expired.", "forminator" ), ), // src/form/components/behaviour/lifespan.js:53
134
  "Add some custom message for users to see when your form stops appearing or leave empty to show nothing (just an empty space)." => array( null, __("Add some custom message for users to see when your form stops appearing or leave empty to show nothing (just an empty space).", "forminator" ), ), // src/form/components/behaviour/lifespan.js:55
135
  "Submissions" => array( null, __("Submissions", "forminator" ), ), // src/form/components/behaviour/lifespan.js:66
136
+ "Rendering" => array( null, __("Rendering", "forminator" ), ), // src/form/components/behaviour/render.js:11
137
+ "Choose how you want your form to be rendered for users." => array( null, __("Choose how you want your form to be rendered for users.", "forminator" ), ), // src/form/components/behaviour/render.js:14
138
+ "Load form using AJAX" => array( null, __("Load form using AJAX", "forminator" ), ), // src/form/components/behaviour/render.js:22
139
+ "Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form." => array( null, __("Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form.", "forminator" ), ), // src/form/components/behaviour/render.js:23
140
+ "Prevent page caching on form pages" => array( null, __("Prevent page caching on form pages", "forminator" ), ), // src/form/components/behaviour/render.js:34
141
+ "Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached.", "forminator" ), ), // src/form/components/behaviour/render.js:35
142
  "Security" => array( null, __("Security", "forminator" ), ), // src/form/components/behaviour/security.js:13
143
  "Added layers of security to prevent spam submissions." => array( null, __("Added layers of security to prevent spam submissions.", "forminator" ), ), // src/form/components/behaviour/security.js:15
144
  "Enable Honeypot protection" => array( null, __("Enable Honeypot protection", "forminator" ), ), // src/form/components/behaviour/security.js:23
148
  "Submission Behaviour" => array( null, __("Submission Behaviour", "forminator" ), ), // src/form/components/behaviour/submission.js:19
149
  "Choose what you want to happen after your visitor has successfully submitted this form." => array( null, __("Choose what you want to happen after your visitor has successfully submitted this form.", "forminator" ), ), // src/form/components/behaviour/submission.js:22
150
  "After submission" => array( null, __("After submission", "forminator" ), ), // src/form/components/behaviour/submission.js:33
151
+ "Choose what happens after a user successfully submits your form." => array( null, __("Choose what happens after a user successfully submits your form.", "forminator" ), ), // src/form/components/behaviour/submission.js:35
152
  "Display a success message after form submitted." => array( null, __("Display a success message after form submitted.", "forminator" ), ), // src/form/components/behaviour/submission.js:44
153
  "Inline Message" => array( null, __("Inline Message", "forminator" ), ), // src/form/components/behaviour/submission.js:50
154
  "Redirect URL" => array( null, __("Redirect URL", "forminator" ), ), // src/form/components/behaviour/submission.js:55
256
  "Limit characters" => array( null, __("Limit characters", "forminator" ), ), // src/form/components/fields/phone.js:65
257
  "Limit to:" => array( null, __("Limit to:", "forminator" ), ), // src/form/components/fields/phone.js:72
258
  "10" => array( null, __("10", "forminator" ), ), // src/form/components/fields/phone.js:74
259
+ "Select country" => array( null, __("Select country", "forminator" ), ), // src/form/components/fields/phone.js:83
260
  "Validation message" => array( null, __("Validation message", "forminator" ), ), // src/form/components/fields/phone.js:95
261
  "Enter validation message" => array( null, __("Enter validation message", "forminator" ), ), // src/form/components/fields/phone.js:97
262
  "Title" => array( null, __("Title", "forminator" ), ), // src/form/components/fields/postdata.js:23
340
  "Cancel" => array( null, __("Cancel", "forminator" ), ), // src/form/components/modals/delete.js:55
341
  "DELETE" => array( null, __("DELETE", "forminator" ), ), // src/form/components/modals/delete.js:64
342
  "Choose a field type to insert into your form." => array( null, __("Choose a field type to insert into your form.", "forminator" ), ), // src/form/components/modals/fields.js:79
343
+ "Loading preview…" => array( null, __("Loading preview…", "forminator" ), ), // src/form/components/modals/preview.js:68
344
  "Publishing form…" => array( null, __("Publishing form…", "forminator" ), ), // src/form/components/modals/publish.js:18
345
  "Great work! Please hold tight a few moments while we publish your form to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your form to the world.", "forminator" ), ), // src/form/components/modals/publish.js:24
346
  "Visibility" => array( null, __("Visibility", "forminator" ), ), // src/form/components/modals/settings.js:184
385
  "Disable store submissions in my database" => array( null, __("Disable store submissions in my database", "forminator" ), ), // src/form/components/settings.js:66
386
  "If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below." => array( null, __("If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below.", "forminator" ), ), // src/form/components/settings.js:68
387
  "Privacy" => array( null, __("Privacy", "forminator" ), ), // src/form/components/settings.js:76
388
+ "Choose how you want to handle this form data storage." => array( null, __("Choose how you want to handle this form data storage.", "forminator" ), ), // src/form/components/settings.js:79
389
  "By default we will use the configuration you have set in your" => array( null, __("By default we will use the configuration you have set in your", "forminator" ), ), // src/form/components/settings.js:84
390
  "global privacy settings." => array( null, __("global privacy settings.", "forminator" ), ), // src/form/components/settings.js:90
391
  "How long do you want to retain this forms submissions for?" => array( null, __("How long do you want to retain this forms submissions for?", "forminator" ), ), // src/form/components/settings.js:101
429
  "Default value" => array( null, __("Default value", "forminator" ), ), // src/form/components/settings/multi-name.js:54
430
  "Delete option" => array( null, __("Delete option", "forminator" ), ), // src/form/components/settings/multi-option.js:33
431
  "Value" => array( null, __("Value", "forminator" ), ), // src/form/components/settings/multi-option.js:36
432
+ "Options" => array( null, __("Options", "forminator" ), ), // src/form/components/settings/multi-value.js:121
433
+ "Add Option" => array( null, __("Add Option", "forminator" ), ), // src/form/components/settings/multi-value.js:140
434
  "Require" => array( null, __("Require", "forminator" ), ), // src/form/components/settings/required.js:33
435
  "Optional" => array( null, __("Optional", "forminator" ), ), // src/form/components/settings/required.js:46
436
  "Required" => array( null, __("Required", "forminator" ), ), // src/form/components/settings/required.js:52
460
  "Rules" => array( null, __("Rules", "forminator" ), ), // src/form/components/settings/visibility.js:138
461
  "Add Rule" => array( null, __("Add Rule", "forminator" ), ), // src/form/components/settings/visibility.js:147
462
  "By default field will always be visible. If you want to hide or show fields based on user input you can add conditions." => array( null, __("By default field will always be visible. If you want to hide or show fields based on user input you can add conditions.", "forminator" ), ), // src/form/components/settings/visibility.js:152
463
+ "You have unsaved changes, are you sure want to leave this page" => array( null, __("You have unsaved changes, are you sure want to leave this page", "forminator" ), ), // src/form/containers/main.js:46
464
+ "Details" => array( null, __("Details", "forminator" ), ), // src/poll/components/appearance.js:51
465
+ "Adjust the default colour combinations to match your theme styling." => array( null, __("Adjust the default colour combinations to match your theme styling.", "forminator" ), ), // src/poll/components/appearance/colors.js:30
466
+ "Use default colors" => array( null, __("Use default colors", "forminator" ), ), // src/poll/components/appearance/colors.js:44
467
+ "Container" => array( null, __("Container", "forminator" ), ), // src/poll/components/appearance/colors.js:60
468
+ "Question & Description" => array( null, __("Question & Description", "forminator" ), ), // src/poll/components/appearance/colors.js:67
469
+ "Custom Answer" => array( null, __("Custom Answer", "forminator" ), ), // src/poll/components/appearance/colors.js:81
470
+ "Links" => array( null, __("Links", "forminator" ), ), // src/poll/components/appearance/colors.js:95
471
+ "Background" => array( null, __("Background", "forminator" ), ), // src/poll/components/appearance/colors/container.js:17
472
+ "Box shadow" => array( null, __("Box shadow", "forminator" ), ), // src/poll/components/appearance/colors/container.js:31
473
+ "Question color" => array( null, __("Question color", "forminator" ), ), // src/poll/components/appearance/colors/content.js:17
474
+ "Description color" => array( null, __("Description color", "forminator" ), ), // src/poll/components/appearance/colors/content.js:23
475
+ "Link color" => array( null, __("Link color", "forminator" ), ), // src/poll/components/appearance/colors/links.js:28
476
+ "Active" => array( null, __("Active", "forminator" ), ), // src/poll/components/appearance/colors/links.js:50
477
+ "Choose a pre-made style for your poll and further customize it's appearance below." => array( null, __("Choose a pre-made style for your poll and further customize it's appearance below.", "forminator" ), ), // src/poll/components/appearance/design-style.js:26
478
+ "By default, users will only allow to submit one poll vote. You can set a specific timeframe to allow addition votes, or allow multiple votes always." => array( null, __("By default, users will only allow to submit one poll vote. You can set a specific timeframe to allow addition votes, or allow multiple votes always.", "forminator" ), ), // src/poll/components/behaviour/limits.js:25
479
+ "Once" => array( null, __("Once", "forminator" ), ), // src/poll/components/behaviour/limits.js:43
480
+ "Allow Multiple" => array( null, __("Allow Multiple", "forminator" ), ), // src/poll/components/behaviour/limits.js:49
481
+ "minute(s)" => array( null, __("minute(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:68
482
+ "hour(s)" => array( null, __("hour(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:69
483
+ "day(s)" => array( null, __("day(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:70
484
+ "week(s)" => array( null, __("week(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:71
485
+ "month(s)" => array( null, __("month(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:72
486
+ "year(s)" => array( null, __("year(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:73
487
+ "Choose how you want your poll to be rendered for users." => array( null, __("Choose how you want your poll to be rendered for users.", "forminator" ), ), // src/poll/components/behaviour/render.js:14
488
+ "Load poll using AJAX" => array( null, __("Load poll using AJAX", "forminator" ), ), // src/poll/components/behaviour/render.js:22
489
+ "Enabling this feature will load the poll via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your poll." => array( null, __("Enabling this feature will load the poll via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your poll.", "forminator" ), ), // src/poll/components/behaviour/render.js:23
490
+ "Prevent page caching on poll pages" => array( null, __("Prevent page caching on poll pages", "forminator" ), ), // src/poll/components/behaviour/render.js:34
491
+ "Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic polls. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this poll on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic polls. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this poll on it from being cached.", "forminator" ), ), // src/poll/components/behaviour/render.js:35
492
+ "Pie Chart" => array( null, __("Pie Chart", "forminator" ), ), // src/poll/components/behaviour/results-display.js:34
493
+ "Bar Graph" => array( null, __("Bar Graph", "forminator" ), ), // src/poll/components/behaviour/results-display.js:40
494
+ "Results Display" => array( null, __("Results Display", "forminator" ), ), // src/poll/components/behaviour/results-display.js:48
495
+ "Choose how you want to display poll results to new submissions. You can customise colors in the {{link}}Appearance{{/link}} tab." => array( null, __("Choose how you want to display poll results to new submissions. You can customise colors in the {{link}}Appearance{{/link}} tab.", "forminator" ), ), // src/poll/components/behaviour/results-display.js:49
496
+ "Link on poll" => array( null, __("Link on poll", "forminator" ), ), // src/poll/components/behaviour/results-display.js:70
497
+ "Show after voted" => array( null, __("Show after voted", "forminator" ), ), // src/poll/components/behaviour/results-display.js:79
498
+ "Do not show" => array( null, __("Do not show", "forminator" ), ), // src/poll/components/behaviour/results-display.js:87
499
+ "Submission Method" => array( null, __("Submission Method", "forminator" ), ), // src/poll/components/behaviour/submission-method.js:15
500
+ "By default, submissions don't require the page to reload. If you are having issues you might want use the traditional method of reloading the page." => array( null, __("By default, submissions don't require the page to reload. If you are having issues you might want use the traditional method of reloading the page.", "forminator" ), ), // src/poll/components/behaviour/submission-method.js:18
501
+ "Reload Page" => array( null, __("Reload Page", "forminator" ), ), // src/poll/components/behaviour/submission-method.js:32
502
+ "Vote Count" => array( null, __("Vote Count", "forminator" ), ), // src/poll/components/behaviour/vote-count.js:15
503
+ "Display the numbers of votes on bar chart results" => array( null, __("Display the numbers of votes on bar chart results", "forminator" ), ), // src/poll/components/behaviour/vote-count.js:16
504
+ "Delete answer" => array( null, __("Delete answer", "forminator" ), ), // src/poll/components/builder/answer-row.js:116
505
+ "Answer options" => array( null, __("Answer options", "forminator" ), ), // src/poll/components/builder/answer-row.js:124
506
+ "Enable custom input" => array( null, __("Enable custom input", "forminator" ), ), // src/poll/components/builder/answer-row.js:131
507
+ "Remove custom input" => array( null, __("Remove custom input", "forminator" ), ), // src/poll/components/builder/answer-row.js:138
508
+ "Add Answer" => array( null, __("Add Answer", "forminator" ), ), // src/poll/components/builder/answers.js:74
509
+ "A poll without answers isn’t going to be very useful… Add your answers above!" => array( null, __("A poll without answers isn’t going to be very useful… Add your answers above!", "forminator" ), ), // src/poll/components/builder/answers.js:80
510
+ "Question" => array( null, __("Question", "forminator" ), ), // src/poll/components/builder/details.js:18
511
+ "Start by adding the question you will be asking poll visitors to vote on." => array( null, __("Start by adding the question you will be asking poll visitors to vote on.", "forminator" ), ), // src/poll/components/builder/details.js:21
512
+ "What is your main question?" => array( null, __("What is your main question?", "forminator" ), ), // src/poll/components/builder/details.js:33
513
+ "E.g. Why did the chicken cross the road?" => array( null, __("E.g. Why did the chicken cross the road?", "forminator" ), ), // src/poll/components/builder/details.js:35
514
+ "Feature Image (optional)" => array( null, __("Feature Image (optional)", "forminator" ), ), // src/poll/components/builder/details.js:42
515
+ "This image will appear under your main question and can be used to create polls based on an image." => array( null, __("This image will appear under your main question and can be used to create polls based on an image.", "forminator" ), ), // src/poll/components/builder/details.js:45
516
+ "Enter an optional description" => array( null, __("Enter an optional description", "forminator" ), ), // src/poll/components/builder/details.js:55
517
+ "This will appear below the main question and can be used to further explain the main question." => array( null, __("This will appear below the main question and can be used to further explain the main question.", "forminator" ), ), // src/poll/components/builder/details.js:57
518
+ "Answers" => array( null, __("Answers", "forminator" ), ), // src/poll/components/builder/details.js:73
519
+ "Now add answers to your question that you users will use to vote with. Add as many as you like, just be careful to make sure each one is unique!" => array( null, __("Now add answers to your question that you users will use to vote with. Add as many as you like, just be careful to make sure each one is unique!", "forminator" ), ), // src/poll/components/builder/details.js:77
520
+ "Customize the button label used for submitting the users answer." => array( null, __("Customize the button label used for submitting the users answer.", "forminator" ), ), // src/poll/components/builder/details.js:97
521
+ "Button Text" => array( null, __("Button Text", "forminator" ), ), // src/poll/components/builder/details.js:108
522
+ "E.g. Vote" => array( null, __("E.g. Vote", "forminator" ), ), // src/poll/components/builder/details.js:110
523
+ "Edit Poll" => array( null, __("Edit Poll", "forminator" ), ), // src/poll/components/header.js:9
524
+ "You need to save this poll before using integrations." => array( null, __("You need to save this poll before using integrations.", "forminator" ), ), // src/poll/components/integrations.js:113
525
+ "Poll answers can not be empty." => array( null, __("Poll answers can not be empty.", "forminator" ), ), // src/poll/components/meta.js:99
526
+ "Deleting this answer" => array( null, __("Deleting this answer", "forminator" ), ), // src/poll/components/modals/delete.js:40
527
+ "Publishing poll…" => array( null, __("Publishing poll…", "forminator" ), ), // src/poll/components/modals/publish.js:18
528
+ "Your poll is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!" => array( null, __("Your poll is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!", "forminator" ), ), // src/poll/components/modals/shortcode.js:37
529
+ "Notifications" => array( null, __("Notifications", "forminator" ), ), // src/poll/components/navigation/menu.js:45
530
+ "Optionally, you can send a notification email to nominated email accounts when poll submissions come in." => array( null, __("Optionally, you can send a notification email to nominated email accounts when poll submissions come in.", "forminator" ), ), // src/poll/components/notifications/admin-email.js:243
531
+ "Poll Name" => array( null, __("Poll Name", "forminator" ), ), // src/poll/components/notifications/admin-email.js:367
532
+ "Poll Answer" => array( null, __("Poll Answer", "forminator" ), ), // src/poll/components/notifications/admin-email.js:368
533
+ "Poll Result" => array( null, __("Poll Result", "forminator" ), ), // src/poll/components/notifications/admin-email.js:369
534
+ "By default we'll store all submissions in your database." => array( null, __("By default we'll store all submissions in your database.", "forminator" ), ), // src/poll/components/settings/data-storage.js:16
535
+ "If you don't want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below." => array( null, __("If you don't want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below.", "forminator" ), ), // src/poll/components/settings/data-storage.js:27
536
+ "Choose how you want to handle this poll’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}." => array( null, __("Choose how you want to handle this poll’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}.", "forminator" ), ), // src/poll/components/settings/privacy.js:46
537
+ "How long do you want to retain this poll's submissions for?" => array( null, __("How long do you want to retain this poll's submissions for?", "forminator" ), ), // src/poll/components/settings/privacy.js:68
538
+ "Your default setting is to keep the submissions %s." => array( null, __("Your default setting is to keep the submissions %s.", "forminator" ), ), // src/poll/components/settings/privacy.js:87
539
+ "IP Retention" => array( null, __("IP Retention", "forminator" ), ), // src/poll/components/settings/privacy.js:151
540
+ "Choose how long to retain IP address before a submission is anonymized. Keep in mind that the IP address is being used in checking multiple votes from same user." => array( null, __("Choose how long to retain IP address before a submission is anonymized. Keep in mind that the IP address is being used in checking multiple votes from same user.", "forminator" ), ), // src/poll/components/settings/privacy.js:155
541
+ "Your default setting keep the IPs %s." => array( null, __("Your default setting keep the IPs %s.", "forminator" ), ), // src/poll/components/settings/privacy.js:176
542
+ "Leave the field blank to keep IPs forever." => array( null, __("Leave the field blank to keep IPs forever.", "forminator" ), ), // src/poll/components/settings/privacy.js:225
543
  "Enable" => array( null, __("Enable", "forminator" ), ), // src/settings/inputs/accordion-toggle.js:71
544
  "Basic selectors" => array( null, __("Basic selectors", "forminator" ), ), // src/settings/inputs/ace-editor.js:60
545
  "Form" => array( null, __("Form", "forminator" ), ), // src/settings/inputs/ace-editor.js:65
547
  "Field Description" => array( null, __("Field Description", "forminator" ), ), // src/settings/inputs/ace-editor.js:93
548
  "Input" => array( null, __("Input", "forminator" ), ), // src/settings/inputs/ace-editor.js:100
549
  "Textarea" => array( null, __("Textarea", "forminator" ), ), // src/settings/inputs/ace-editor.js:107
550
+ "Answer Text" => array( null, __("Answer Text", "forminator" ), ), // src/settings/inputs/ace-editor.js:131
551
+ "Radio (Default)" => array( null, __("Radio (Default)", "forminator" ), ), // src/settings/inputs/ace-editor.js:138
552
+ "Radio (Checked)" => array( null, __("Radio (Checked)", "forminator" ), ), // src/settings/inputs/ace-editor.js:145
553
+ "Radio Icon (Checked)" => array( null, __("Radio Icon (Checked)", "forminator" ), ), // src/settings/inputs/ace-editor.js:152
554
  "Remove this date range" => array( null, __("Remove this date range", "forminator" ), ), // src/settings/inputs/date-picker.js:73
555
+ "Select image" => array( null, __("Select image", "forminator" ), ), // src/settings/inputs/uploads.js:19
556
+ "Upload image" => array( null, __("Upload image", "forminator" ), ), // src/settings/inputs/uploads.js:117
557
+ "Upload file" => array( null, __("Upload file", "forminator" ), ), // src/settings/inputs/uploads.js:118
558
+ "Remove uploaded image" => array( null, __("Remove uploaded image", "forminator" ), ), // src/settings/inputs/uploads.js:127
559
+ "Remove uploaded file" => array( null, __("Remove uploaded file", "forminator" ), ), // src/settings/inputs/uploads.js:128
560
+ "Required Fields" => array( null, __("Required Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:134
561
+ "Optional Fields" => array( null, __("Optional Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:144
562
+ "Misc Data" => array( null, __("Misc Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:160
563
+ "Form Name" => array( null, __("Form Name", "forminator" ), ), // src/settings/inputs/wp-editor.js:186
564
+ "All Submitted Fields" => array( null, __("All Submitted Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:196
565
+ "Add form data" => array( null, __("Add form data", "forminator" ), ), // src/settings/inputs/wp-editor.js:234
566
+ "is having" => array( null, __("is having", "forminator" ), ), // src/utils.js:630
567
+ "is" => array( null, __("is", "forminator" ), ), // src/utils.js:633
568
+ "is not having" => array( null, __("is not having", "forminator" ), ), // src/utils.js:637
569
+ "is not" => array( null, __("is not", "forminator" ), ), // src/utils.js:640
570
+ "is greater than" => array( null, __("is greater than", "forminator" ), ), // src/utils.js:643
571
+ "is less than" => array( null, __("is less than", "forminator" ), ), // src/utils.js:645
572
+ "contains" => array( null, __("contains", "forminator" ), ), // src/utils.js:647
573
+ "starts with" => array( null, __("starts with", "forminator" ), ), // src/utils.js:649
574
+ "ends with" => array( null, __("ends with", "forminator" ), ), // src/utils.js:651
575
  );
576
  return $forminator_admin_locale;
577
  /* THIS IS THE END OF THE GENERATED FILE */
admin/views/dashboard/widgets/widget-cform.php CHANGED
@@ -135,6 +135,10 @@
135
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( "Create", Forminator::DOMAIN ); ?>
136
  </button>
137
 
 
 
 
 
138
  </div>
139
 
140
  <?php } ?>
135
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( "Create", Forminator::DOMAIN ); ?>
136
  </button>
137
 
138
+ <div class="sui-actions-right">
139
+ <p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-cform' ); // WPCS: XSS ok. ?>" class="sui-link-gray"><?php esc_html_e( 'View all forms', Forminator::DOMAIN ); ?></a></p>
140
+ </div>
141
+
142
  </div>
143
 
144
  <?php } ?>
admin/views/dashboard/widgets/widget-poll.php CHANGED
@@ -27,7 +27,7 @@
27
  <tr>
28
 
29
  <th><?php esc_html_e( 'Name', Forminator::DOMAIN ); ?></th>
30
- <th class="fui-col-status"></th>
31
 
32
  </tr>
33
 
@@ -39,9 +39,12 @@
39
 
40
  <tr>
41
 
42
- <td class="sui-table-item-title"><?php echo forminator_get_form_name( $module['id'], 'poll'); // WPCS: XSS ok. ?></td>
43
 
44
- <td class="fui-col-status">
 
 
 
45
 
46
  <a href="<?php echo admin_url( 'admin.php?page=forminator-poll&view-stats=' . esc_attr( $module['id'] ) ); // WPCS: XSS ok. ?>"
47
  class="sui-button-icon sui-tooltip"
@@ -130,6 +133,10 @@
130
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?>
131
  </button>
132
 
 
 
 
 
133
  </div>
134
 
135
  <?php } ?>
27
  <tr>
28
 
29
  <th><?php esc_html_e( 'Name', Forminator::DOMAIN ); ?></th>
30
+ <th class="fui-col-status fui-col-status-lg"></th>
31
 
32
  </tr>
33
 
39
 
40
  <tr>
41
 
42
+ <td class="sui-table-item-title"><?php echo $module['name']; // WPCS: XSS ok. ?></td>
43
 
44
+ <td class="fui-col-status fui-col-status-lg">
45
+
46
+ <span class="fui-module-status<?php if ( 'publish' === $module['status'] ) { echo ' fui-publish'; } ?> sui-tooltip"
47
+ data-tooltip="<?php if ( 'publish' === $module['status'] ) { echo ' ' . esc_html__( 'Published', Forminator::DOMAIN ); } else { echo ' ' . esc_html__( 'Draft', Forminator::DOMAIN ); } ?>"></span>
48
 
49
  <a href="<?php echo admin_url( 'admin.php?page=forminator-poll&view-stats=' . esc_attr( $module['id'] ) ); // WPCS: XSS ok. ?>"
50
  class="sui-button-icon sui-tooltip"
133
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?>
134
  </button>
135
 
136
+ <div class="sui-actions-right">
137
+ <p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-poll' ); // WPCS: XSS ok. ?>" class="sui-link-gray"><?php esc_html_e( 'View all polls', Forminator::DOMAIN ); ?></a></p>
138
+ </div>
139
+
140
  </div>
141
 
142
  <?php } ?>
admin/views/dashboard/widgets/widget-quiz.php CHANGED
@@ -133,6 +133,10 @@
133
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?>
134
  </button>
135
 
 
 
 
 
136
  </div>
137
 
138
  <?php } ?>
133
  <i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?>
134
  </button>
135
 
136
+ <div class="sui-actions-right">
137
+ <p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-quiz' ); // WPCS: XSS ok. ?>" class="sui-link-gray"><?php esc_html_e( 'View all quizzes', Forminator::DOMAIN ); ?></a></p>
138
+ </div>
139
+
140
  </div>
141
 
142
  <?php } ?>
admin/views/integrations/poll-addon.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $empty_icon = forminator_plugin_url() . 'assets/images/forminator-noicon.png';
3
+ $empty_icon2x = forminator_plugin_url() . 'assets/images/forminator-noicon@2x.png';
4
+ if ( empty( $poll_id ) ) {
5
+ $poll_id = 0;
6
+ }
7
+
8
+ $show_action = false;
9
+
10
+ $icon_class_action = 'sui-icon-plus';
11
+ $tooltip = __( 'Configure Integration', Forminator::DOMAIN );
12
+ $action = 'forminator_addon_settings';
13
+
14
+ $multi_id = 0;
15
+ $multi_name = false;
16
+
17
+ if ( ! empty( $poll_id ) ) {
18
+ $action = 'forminator_addon_poll_settings';
19
+ $show_action = false;
20
+ $icon_class_action = 'sui-icon-plus';
21
+ if ( isset( $addon['is_poll_settings_available'] ) && ! empty( $addon['is_poll_settings_available'] ) && true === $addon['is_poll_settings_available'] ) {
22
+ $show_action = true;
23
+ if ( $addon['is_allow_multi_on_poll'] ) {
24
+ if ( isset( $addon['multi_name'] ) ) {
25
+ $icon_class_action = 'sui-icon-widget-settings-config';
26
+ $tooltip = __( 'Configure Integration', Forminator::DOMAIN );
27
+ $multi_id = $addon['multi_id'];
28
+ $multi_name = $addon['multi_name'];
29
+ } else {
30
+ if ( isset( $addon['multi_id'] ) ) {
31
+ $multi_id = $addon['multi_id'];
32
+ }
33
+ $icon_class_action = 'sui-icon-plus';
34
+ $tooltip = __( 'Add Integration', Forminator::DOMAIN );
35
+ }
36
+ } else {
37
+ if ( $addon['is_poll_connected'] ) {
38
+ $icon_class_action = 'sui-icon-widget-settings-config';
39
+ $tooltip = __( 'Configure Integration', Forminator::DOMAIN );
40
+ } else {
41
+ $icon_class_action = 'sui-icon-plus';
42
+ $tooltip = __( 'Add Integration', Forminator::DOMAIN );
43
+ }
44
+ }
45
+
46
+ }
47
+ } else {
48
+ // on integrations page
49
+ if ( isset( $addon['is_settings_available'] ) && ! empty( $addon['is_settings_available'] ) && true === $addon['is_settings_available'] ) {
50
+ $show_action = true;
51
+ if ( $addon['is_connected'] ) {
52
+ $icon_class_action = 'sui-icon-widget-settings-config';
53
+ $tooltip = __( 'Configure Integration', Forminator::DOMAIN );
54
+ } else {
55
+ $icon_class_action = 'sui-icon-plus';
56
+ $tooltip = __( 'Add Integration', Forminator::DOMAIN );
57
+ }
58
+ }
59
+ }
60
+
61
+ $action_available = false;
62
+ if ( ! empty( $show_pro_info ) && $show_pro_info ) {
63
+ $show_pro_info = true;
64
+ } else {
65
+ $show_pro_info = false;
66
+ }
67
+
68
+ /**
69
+ * force Disable pro tag y default
70
+ */
71
+ $show_pro_info = false;
72
+
73
+ $pro_url = 'https://premium.wpmudev.org';
74
+ $pro_url_target = '_blank';
75
+
76
+ // MULTI NAME (SAMPLE)
77
+ // To be added in the table later when design is ready.
78
+ /*
79
+ <td><?php if ( ! empty( $multi_name ) ): ?>
80
+ <?php echo esc_html( $multi_name ); ?>
81
+ <?php endif; ?></td>
82
+ */ ?>
83
+
84
+ <tr class="<?php echo( $is_active ? 'fui-integration-enabled' : '' ); ?>">
85
+
86
+ <td class="sui-table-item-title">
87
+
88
+ <span>
89
+
90
+ <?php if ( isset( $addon['icon'] ) && ! empty( $addon['icon'] ) ) { ?>
91
+ <img src="<?php echo esc_url( $addon['icon'] ); ?>"
92
+ srcset="<?php echo esc_url( $addon['icon'] ); ?> 1x, <?php echo esc_url( $addon['icon_x2'] ); ?> 2x"
93
+ alt="<?php echo esc_attr( $addon['short_title'] ); ?>"
94
+ class="sui-image"
95
+ aria-hidden="true"/>
96
+ <?php } else { ?>
97
+ <img src="<?php echo esc_url( $empty_icon ); ?>"
98
+ srcset="<?php echo esc_url( $empty_icon ); ?> 1x, <?php echo esc_url( $empty_icon2x ); ?> 2x"
99
+ alt="<?php echo esc_attr( $addon['short_title'] ); ?>"
100
+ class="sui-image"
101
+ aria-hidden="true"/>
102
+ <?php } ?>
103
+
104
+ <span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
105
+ <span class="sui-tag sui-tag-pro">
106
+ <?php esc_html_e( "PRO", Forminator::DOMAIN ); ?>
107
+ </span>
108
+ <?php endif; ?></span>
109
+
110
+ <?php if ( $show_action ) : ?>
111
+ <button class="sui-button-icon sui-tooltip sui-tooltip-top-right connect-integration"
112
+ data-tooltip="<?php echo esc_attr( $tooltip ); ?>"
113
+ data-slug="<?php echo esc_attr( $addon['slug'] ); ?>"
114
+ data-title="<?php echo esc_attr( $addon['title'] ); ?>"
115
+ data-image="<?php echo esc_attr( $addon['image'] ); ?>"
116
+ data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
117
+ data-nonce="<?php echo wp_create_nonce( 'forminator_addon_action' ); // WPCS: XSS ok. ?>"
118
+ data-action="<?php echo esc_attr( $action ); ?>"
119
+ data-poll-id="<?php echo esc_attr( $poll_id ); ?>"
120
+ data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
121
+ <i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
122
+ <span class="sui-screen-reader-text"><?php esc_html_e( 'Connect this integration', Forminator::DOMAIN ); ?></span>
123
+ </button>
124
+ <?php endif; ?>
125
+
126
+ </span>
127
+
128
+ </td>
129
+
130
+ </tr>
admin/views/integrations/poll-content.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $path = forminator_plugin_url();
3
+ if ( empty( $poll_id ) ) {
4
+ $poll_id = 0;
5
+ }
6
+ ?>
7
+
8
+ <?php
9
+
10
+ if ( ! empty( $addons['poll_connected'] ) ) {
11
+ ?>
12
+
13
+ <h3 class="sui-table-title"><?php esc_html_e( "Active", Forminator::DOMAIN ); ?></h3>
14
+
15
+ <table class="sui-table fui-table--apps">
16
+
17
+ <tbody>
18
+
19
+ <?php foreach ( $addons['poll_connected'] as $key => $provider ) : ?>
20
+
21
+ <?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true, true );// wpcs xss ok. ?>
22
+
23
+ <?php endforeach; ?>
24
+
25
+ </tbody>
26
+
27
+ </table>
28
+
29
+ <?php
30
+ }
31
+
32
+ if ( ! empty( $addons['not_poll_connected'] ) ) {
33
+ ?>
34
+
35
+ <h3 class="sui-table-title"><?php esc_html_e( "Available Integrations", Forminator::DOMAIN ); ?></h3>
36
+
37
+ <table class="sui-table fui-table--apps">
38
+
39
+ <tbody>
40
+
41
+ <?php foreach ( $addons['not_poll_connected'] as $key => $provider ) : ?>
42
+
43
+ <?php if ( ! $provider['is_poll_settings_available'] ) {
44
+ continue;
45
+ }
46
+ ?>
47
+
48
+ <?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true );// wpcs xss ok. ?>
49
+
50
+ <?php endforeach; ?>
51
+
52
+ </tbody>
53
+
54
+ </table>
55
+
56
+ <?php
57
+ }
58
+ ?>
admin/views/poll/list/content.php CHANGED
@@ -60,42 +60,55 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
60
  </div>
61
 
62
  <!-- START: Bulk actions and pagination -->
63
- <div class="sui-box">
64
 
65
- <div class="sui-box-search">
66
 
67
- <div class="sui-search-left"
68
- style="align-items: center;">
69
 
70
- <label for="forminator-check-all-modules" class="sui-checkbox">
71
- <input type="checkbox" id="forminator-check-all-modules">
72
- <span aria-hidden="true"></span>
73
- <span class="sui-screen-reader-text"><?php esc_html_e( 'Select all', Forminator::DOMAIN ); ?></span>
74
- </label>
 
 
 
 
 
 
 
 
 
75
 
76
- <form method="post" name="bulk-action-form">
77
  <?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
78
 
79
- <input type="hidden" name="ids" value=""/>
 
 
 
 
 
 
80
 
81
  <select class="sui-select-sm sui-select-inline" name="formninator_action">
82
  <option value=""><?php esc_html_e( 'Bulk Action', Forminator::DOMAIN ); ?></option>
83
- <?php foreach ( $bulk_actions as $action => $label ) : ?>
84
- <option value="<?php echo esc_attr( $action ); ?>"><?php echo esc_html( $label ); ?></option>
85
-
86
  <?php endforeach; ?>
87
  </select>
88
 
89
  <button class="sui-button"><?php esc_html_e( 'Apply', Forminator::DOMAIN ); ?></button>
 
90
  </form>
91
 
92
- </div>
93
 
94
- <div class="sui-search-right">
 
 
 
95
 
96
- <div class="sui-pagination-wrap">
97
- <span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
98
- <?php $this->pagination(); ?>
99
  </div>
100
 
101
  </div>
@@ -109,7 +122,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
109
 
110
  <?php
111
  foreach ( $this->getModules() as $module ) {
112
- $module_entries_from_last_month = 0 !== $module["entries"] ? count( Forminator_Form_Entry_Model::get_newer_entry_ids_of_form_id( $module['id'], $sql_month_start_date ) ) : 0; ;
113
  $opened_class = '';
114
  $opened_chart = '';
115
 
@@ -123,16 +136,24 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
123
 
124
  <div class="sui-accordion-item-header">
125
 
126
- <div class="sui-accordion-col-auto sui-accordion-item-action">
127
- <label for="wpf-module-<?php echo esc_attr( $module['id'] ); ?>" class="sui-checkbox">
 
128
  <input type="checkbox" id="wpf-module-<?php echo esc_attr( $module['id'] ); ?>" value="<?php echo esc_html( $module['id'] ); ?>">
129
  <span aria-hidden="true"></span>
130
  <span class="sui-screen-reader-text"><?php esc_html_e( 'Select this poll', Forminator::DOMAIN ); ?></span>
131
  </label>
132
- </div>
133
 
134
- <div class="sui-accordion-item-title sui-trim-title">
135
- <span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'poll' ); // WPCS: XSS ok. ?></span>
 
 
 
 
 
 
 
 
136
  </div>
137
 
138
  <div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module["last_entry_time"] ); ?></div>
@@ -166,6 +187,30 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
166
  <button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( "Copy Shortcode", Forminator::DOMAIN ); ?></button>
167
  </li>
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  <li><a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); // WPCS: XSS ok. ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
170
 
171
  <li><form method="post">
60
  </div>
61
 
62
  <!-- START: Bulk actions and pagination -->
63
+ <div class="fui-listings-pagination">
64
 
65
+ <div class="fui-pagination-mobile sui-pagination-wrap">
66
 
67
+ <span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
 
68
 
69
+ <?php $this->pagination(); ?>
70
+
71
+ </div>
72
+
73
+ <div class="fui-pagination-desktop sui-box">
74
+
75
+ <div class="sui-box-search">
76
+
77
+ <form
78
+ method="post"
79
+ name="bulk-action-form"
80
+ class="sui-search-left"
81
+ style="display: flex; align-items: center;"
82
+ >
83
 
 
84
  <?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
85
 
86
+ <input type="hidden" name="ids" value="" />
87
+
88
+ <label for="forminator-check-all-modules" class="sui-checkbox">
89
+ <input type="checkbox" id="forminator-check-all-modules">
90
+ <span aria-hidden="true"></span>
91
+ <span class="sui-screen-reader-text"><?php esc_html_e( 'Select all', Forminator::DOMAIN ); ?></span>
92
+ </label>
93
 
94
  <select class="sui-select-sm sui-select-inline" name="formninator_action">
95
  <option value=""><?php esc_html_e( 'Bulk Action', Forminator::DOMAIN ); ?></option>
96
+ <?php foreach ( $bulk_actions as $val => $label ) : ?>
97
+ <option value="<?php echo esc_attr( $val ); ?>"><?php echo esc_html( $label ); ?></option>
 
98
  <?php endforeach; ?>
99
  </select>
100
 
101
  <button class="sui-button"><?php esc_html_e( 'Apply', Forminator::DOMAIN ); ?></button>
102
+
103
  </form>
104
 
105
+ <div class="sui-search-right">
106
 
107
+ <div class="sui-pagination-wrap">
108
+ <span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
109
+ <?php $this->pagination(); ?>
110
+ </div>
111
 
 
 
 
112
  </div>
113
 
114
  </div>
122
 
123
  <?php
124
  foreach ( $this->getModules() as $module ) {
125
+ $module_entries_from_last_month = 0 !== $module["entries"] ? count( Forminator_Form_Entry_Model::get_newer_entry_ids_of_form_id( $module['id'], $sql_month_start_date ) ) : 0;
126
  $opened_class = '';
127
  $opened_chart = '';
128
 
136
 
137
  <div class="sui-accordion-item-header">
138
 
139
+ <div class="sui-accordion-item-title sui-trim-title">
140
+
141
+ <label for="wpf-module-<?php echo esc_attr( $module['id'] ); ?>" class="sui-checkbox sui-accordion-item-action">
142
  <input type="checkbox" id="wpf-module-<?php echo esc_attr( $module['id'] ); ?>" value="<?php echo esc_html( $module['id'] ); ?>">
143
  <span aria-hidden="true"></span>
144
  <span class="sui-screen-reader-text"><?php esc_html_e( 'Select this poll', Forminator::DOMAIN ); ?></span>
145
  </label>
 
146
 
147
+ <span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'poll'); // WPCS: XSS ok. ?></span>
148
+
149
+ <?php if ( 'publish' === $module['status'] ) {
150
+ echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
151
+ } ?>
152
+
153
+ <?php if ( 'draft' === $module['status'] ) {
154
+ echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
155
+ } ?>
156
+
157
  </div>
158
 
159
  <div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module["last_entry_time"] ); ?></div>
187
  <button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( "Copy Shortcode", Forminator::DOMAIN ); ?></button>
188
  </li>
189
 
190
+ <li>
191
+ <form method="post">
192
+ <input type="hidden" name="formninator_action" value="update-status">
193
+ <input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
194
+
195
+ <?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
196
+ <input type="hidden" name="status" value="draft"/>
197
+ <?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
198
+ <input type="hidden" name="status" value="publish"/>
199
+ <?php endif; ?>
200
+
201
+ <?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
202
+ <button type="submit">
203
+
204
+ <?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
205
+ <i class="sui-icon-unpublish" aria-hidden="true"></i> <?php esc_html_e( 'Unpublish', Forminator::DOMAIN ); ?>
206
+ <?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
207
+ <i class="sui-icon-upload-cloud" aria-hidden="true"></i> <?php esc_html_e( 'Publish', Forminator::DOMAIN ); ?>
208
+ <?php endif; ?>
209
+
210
+ </button>
211
+ </form>
212
+ </li>
213
+
214
  <li><a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); // WPCS: XSS ok. ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
215
 
216
  <li><form method="post">
admin/views/poll/wizard/content.php CHANGED
@@ -1,2 +1,2 @@
1
  <?php // phpcs:ignoreFile this file only html container for wizard which is handled by js. ?>
2
- <section id="wpmudev-section" class="wpmudev-poll-wizard"></section>
1
  <?php // phpcs:ignoreFile this file only html container for wizard which is handled by js. ?>
2
+ <div id="forminator-poll-builder"></div>
admin/views/poll/wizard/header.php CHANGED
@@ -1,9 +0,0 @@
1
- <h1 class="sui-header-title"><?php echo $this->getWizardTitle(); // WPCS: XSS ok. ?></h1>
2
-
3
- <div class="sui-actions-right">
4
- <?php if ( forminator_is_show_documentation_link() ) : ?>
5
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#chapter-3" target="_blank" class="sui-button sui-button-ghost">
6
- <i class="sui-icon-academy"></i> <?php esc_html_e( "View Documentation", Forminator::DOMAIN ); ?>
7
- </a>
8
- <?php endif; ?>
9
- </div>
 
 
 
 
 
 
 
 
 
admin/views/settings/content.php CHANGED
@@ -1,22 +1,29 @@
 
 
 
1
  <div class="sui-row-with-sidenav">
2
 
3
  <div class="sui-sidenav">
4
 
5
  <ul class="sui-vertical-tabs sui-sidenav-hide-md">
6
 
7
- <li class="sui-vertical-tab current">
8
  <a href="#" data-nav="emails"><?php esc_html_e( 'Emails', Forminator::DOMAIN ); ?></a>
9
  </li>
10
 
11
- <li class="sui-vertical-tab">
12
  <a href="#" data-nav="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></a>
13
  </li>
14
 
15
- <li class="sui-vertical-tab">
16
  <a href="#" data-nav="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></a>
17
  </li>
18
 
19
- <li class="sui-vertical-tab">
 
 
 
 
20
  <a href="#" data-nav="pagination"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></a>
21
  </li>
22
 
@@ -27,6 +34,7 @@
27
  <option value="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></option>
28
  <option value="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></option>
29
  <option value="pagination"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></option>
 
30
  </select>
31
 
32
  </div>
@@ -35,5 +43,6 @@
35
  <?php $this->template( 'settings/tab-recaptcha' ); ?>
36
  <?php $this->template( 'settings/tab-data' ); ?>
37
  <?php $this->template( 'settings/tab-pagination' ); ?>
 
38
 
39
  </div>
1
+ <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+ ?>
4
  <div class="sui-row-with-sidenav">
5
 
6
  <div class="sui-sidenav">
7
 
8
  <ul class="sui-vertical-tabs sui-sidenav-hide-md">
9
 
10
+ <li class="sui-vertical-tab <?php echo esc_attr( 'emails' === $section ? 'current' : '' ); ?>">
11
  <a href="#" data-nav="emails"><?php esc_html_e( 'Emails', Forminator::DOMAIN ); ?></a>
12
  </li>
13
 
14
+ <li class="sui-vertical-tab <?php echo esc_attr( 'recaptcha' === $section ? 'current' : '' ); ?>">
15
  <a href="#" data-nav="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></a>
16
  </li>
17
 
18
+ <li class="sui-vertical-tab <?php echo esc_attr( 'data' === $section ? 'current' : '' ); ?>">
19
  <a href="#" data-nav="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></a>
20
  </li>
21
 
22
+ <li class="sui-vertical-tab <?php echo esc_attr( 'accessibility' === $section ? 'current' : '' ); ?>">
23
+ <a href="#" data-nav="accessibility"><?php esc_html_e( 'Accessibility', Forminator::DOMAIN ); ?></a>
24
+ </li>
25
+
26
+ <li class="sui-vertical-tab <?php echo esc_attr( 'pagination' === $section ? 'current' : '' ); ?>">
27
  <a href="#" data-nav="pagination"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></a>
28
  </li>
29
 
34
  <option value="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></option>
35
  <option value="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></option>
36
  <option value="pagination"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></option>
37
+ <option value="accessibility"><?php esc_html_e( 'Accessibility', Forminator::DOMAIN ); ?></option>
38
  </select>
39
 
40
  </div>
43
  <?php $this->template( 'settings/tab-recaptcha' ); ?>
44
  <?php $this->template( 'settings/tab-data' ); ?>
45
  <?php $this->template( 'settings/tab-pagination' ); ?>
46
+ <?php $this->template( 'settings/tab-accessibility' ); ?>
47
 
48
  </div>
admin/views/settings/data/forms-privacy.php CHANGED
@@ -57,27 +57,34 @@ if ( empty( $cform_retain_ip_number ) ) {
57
  <div class="sui-tabs-content">
58
 
59
  <div data-tab-content="retain_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $cform_retain_forever ? ' active' : '' ); ?>">
60
-
61
- <div class="sui-form-field">
62
-
63
- <input type="number"
64
- name="submissions_retention_number"
65
- placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
66
- value="<?php echo esc_attr( $cform_retain_number ); ?>"
67
- min="0"
68
- class="sui-form-control sui-form-control-inline"/>
69
-
70
- <select name="submissions_retention_unit">
71
- <option value="days" <?php selected( $cfrom_retain_unit, 'days' ); ?>>
72
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
73
- <option value="weeks" <?php selected( $cfrom_retain_unit, 'weeks' ); ?>>
74
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
75
- <option value="months" <?php selected( $cfrom_retain_unit, 'months' ); ?>>
76
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
77
- <option value="years" <?php selected( $cfrom_retain_unit, 'years' ); ?>>
78
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
79
- </select>
80
-
 
 
 
 
 
 
 
81
  </div>
82
 
83
  </div>
@@ -117,29 +124,38 @@ if ( empty( $cform_retain_ip_number ) ) {
117
  <div class="sui-tabs-content">
118
 
119
  <div data-tab-content="retain_ip" class="sui-tab-content sui-tab-boxed<?php echo( ! $cform_retain_ip_forever ? ' active' : '' ); ?>">
120
-
121
- <div class="sui-form-field">
122
-
123
- <input type="number"
124
- name="cform_retention_ip_number"
125
- placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
126
- value="<?php echo esc_attr( $cform_retain_ip_number ); ?>"
127
- min="0"
128
- class="sui-form-control sui-form-control-inline"/>
129
-
130
- <select name="cform_retention_ip_unit">
131
- <option value="days" <?php selected( $cfrom_retain_ip_unit, 'days' ); ?>>
132
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
133
- <option value="weeks" <?php selected( $cfrom_retain_ip_unit, 'weeks' ); ?>>
134
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
135
- <option value="months" <?php selected( $cfrom_retain_ip_unit, 'months' ); ?>>
136
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
137
- <option value="years" <?php selected( $cfrom_retain_ip_unit, 'years' ); ?>>
138
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
139
- </select>
140
-
 
 
 
 
 
 
 
 
141
  </div>
142
 
 
143
  </div>
144
 
145
  </div>
57
  <div class="sui-tabs-content">
58
 
59
  <div data-tab-content="retain_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $cform_retain_forever ? ' active' : '' ); ?>">
60
+ <div class="sui-row">
61
+ <div class="sui-col-md-6">
62
+ <div class="sui-form-field">
63
+
64
+ <input type="number"
65
+ name="submissions_retention_number"
66
+ placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
67
+ value="<?php echo esc_attr( $cform_retain_number ); ?>"
68
+ min="0"
69
+ class="sui-form-control sui-form-control-inline"/>
70
+ </div>
71
+ </div>
72
+ <div class="sui-col-md-6">
73
+ <div class="sui-form-field">
74
+
75
+ <select name="submissions_retention_unit">
76
+ <option value="days" <?php selected( $cfrom_retain_unit, 'days' ); ?>>
77
+ <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
78
+ <option value="weeks" <?php selected( $cfrom_retain_unit, 'weeks' ); ?>>
79
+ <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
80
+ <option value="months" <?php selected( $cfrom_retain_unit, 'months' ); ?>>
81
+ <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
82
+ <option value="years" <?php selected( $cfrom_retain_unit, 'years' ); ?>>
83
+ <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
84
+ </select>
85
+
86
+ </div>
87
+ </div>
88
  </div>
89
 
90
  </div>
124
  <div class="sui-tabs-content">
125
 
126
  <div data-tab-content="retain_ip" class="sui-tab-content sui-tab-boxed<?php echo( ! $cform_retain_ip_forever ? ' active' : '' ); ?>">
127
+ <div class="sui-row">
128
+ <div class="sui-col-md-6">
129
+ <div class="sui-form-field">
130
+
131
+ <input type="number"
132
+ name="cform_retention_ip_number"
133
+ placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
134
+ value="<?php echo esc_attr( $cform_retain_ip_number ); ?>"
135
+ min="0"
136
+ class="sui-form-control sui-form-control-inline"/>
137
+
138
+ </div>
139
+ </div>
140
+ <div class="sui-col-md-6">
141
+ <div class="sui-form-field">
142
+
143
+ <select name="cform_retention_ip_unit">
144
+ <option value="days" <?php selected( $cfrom_retain_ip_unit, 'days' ); ?>>
145
+ <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
146
+ <option value="weeks" <?php selected( $cfrom_retain_ip_unit, 'weeks' ); ?>>
147
+ <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
148
+ <option value="months" <?php selected( $cfrom_retain_ip_unit, 'months' ); ?>>
149
+ <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
150
+ <option value="years" <?php selected( $cfrom_retain_ip_unit, 'years' ); ?>>
151
+ <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
152
+ </select>
153
+
154
+ </div>
155
+ </div>
156
  </div>
157
 
158
+
159
  </div>
160
 
161
  </div>
admin/views/settings/data/polls-privacy.php CHANGED
@@ -1,10 +1,20 @@
1
  <?php
 
2
  $polls_retain_number = get_option( 'forminator_retain_votes_interval_number', 0 );
3
  $polls_retain_unit = get_option( 'forminator_retain_votes_interval_unit', 'days' );
4
  $poll_retain_forever = false;
5
  if ( empty( $polls_retain_number ) ) {
6
  $poll_retain_forever = true;
7
  }
 
 
 
 
 
 
 
 
 
8
  ?>
9
 
10
  <div class="sui-box-settings-row">
@@ -16,6 +26,75 @@ if ( empty( $polls_retain_number ) ) {
16
 
17
  <div class="sui-box-settings-col-2">
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  <span class="sui-settings-label"><?php esc_html_e( 'IP Retention', Forminator::DOMAIN ); ?></span>
20
  <span class="sui-description">
21
  <?php esc_html_e( 'Choose how long to retain IP address before a submission is anonymized. Keep in mind that the IP address is being used in checking multiple votes from same user.',
@@ -51,28 +130,37 @@ if ( empty( $polls_retain_number ) ) {
51
 
52
  <div data-tab-content="retain_poll_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $poll_retain_forever ? ' active' : '' ); ?>">
53
 
54
- <div class="sui-form-field">
55
-
56
- <input type="number"
57
- name="votes_retention_number"
58
- placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
59
- value="<?php echo esc_attr( $polls_retain_number ); ?>"
60
- min="0"
61
- class="sui-form-control sui-form-control-inline"/>
62
-
63
- <select name="votes_retention_unit">
64
- <option value="days" <?php selected( $polls_retain_unit, 'days' ); ?>>
65
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
66
- <option value="weeks" <?php selected( $polls_retain_unit, 'weeks' ); ?>>
67
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
68
- <option value="months" <?php selected( $polls_retain_unit, 'months' ); ?>>
69
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
70
- <option value="years" <?php selected( $polls_retain_unit, 'years' ); ?>>
71
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
72
- </select>
73
-
 
 
 
 
 
 
 
 
74
  </div>
75
 
 
76
  </div>
77
 
78
  </div>
1
  <?php
2
+ // IP
3
  $polls_retain_number = get_option( 'forminator_retain_votes_interval_number', 0 );
4
  $polls_retain_unit = get_option( 'forminator_retain_votes_interval_unit', 'days' );
5
  $poll_retain_forever = false;
6
  if ( empty( $polls_retain_number ) ) {
7
  $poll_retain_forever = true;
8
  }
9
+
10
+ // Submissions
11
+ $poll_submissions_retain_number = get_option( 'forminator_retain_poll_submissions_interval_number', 0 );
12
+ $poll_submissions_retain_unit = get_option( 'forminator_retain_poll_submissions_interval_unit', 'days' );
13
+ $poll_submissions_retain_forever = false;
14
+ if ( empty( $poll_submissions_retain_number ) ) {
15
+ $poll_submissions_retain_forever = true;
16
+ }
17
+
18
  ?>
19
 
20
  <div class="sui-box-settings-row">
26
 
27
  <div class="sui-box-settings-col-2">
28
 
29
+ <span class="sui-settings-label"><?php esc_html_e( 'Submissions Retention', Forminator::DOMAIN ); ?></span>
30
+ <span class="sui-description"><?php esc_html_e( 'How long do you want to retain the poll submissions for?', Forminator::DOMAIN ); ?></span>
31
+
32
+ <div class="sui-side-tabs" style="margin-top: 10px;">
33
+
34
+ <div class="sui-tabs-menu">
35
+
36
+ <label for="poll_retain_submission-true" class="sui-tab-item<?php echo( $poll_submissions_retain_forever ? ' active' : '' ); ?>">
37
+ <input type="radio"
38
+ name="poll_retain_submission_forever"
39
+ value="true"
40
+ id="poll_retain_submission-true"
41
+ <?php checked( $poll_submissions_retain_forever, true ); ?> />
42
+ <?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
43
+ </label>
44
+
45
+ <label for="poll_retain_submission-false" class="sui-tab-item<?php echo( ! $poll_submissions_retain_forever ? ' active' : '' ); ?>">
46
+ <input type="radio"
47
+ name="poll_retain_submission_forever"
48
+ value="false"
49
+ id="poll_retain_submission-false"
50
+ data-tab-menu="poll_retain_submission"
51
+ <?php checked( $poll_submissions_retain_forever, false ); ?> />
52
+ <?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
53
+ </label>
54
+
55
+ </div>
56
+
57
+ <div class="sui-tabs-content">
58
+
59
+ <div data-tab-content="poll_retain_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $poll_submissions_retain_forever ? ' active' : '' ); ?>">
60
+
61
+ <div class="sui-row">
62
+ <div class="sui-col-md-6">
63
+ <div class="sui-form-field">
64
+
65
+ <input type="number"
66
+ name="poll_submissions_retention_number"
67
+ placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
68
+ value="<?php echo esc_attr( $poll_submissions_retain_number ); ?>"
69
+ min="0"
70
+ class="sui-form-control sui-form-control-inline"/>
71
+
72
+ </div>
73
+ </div>
74
+ <div class="sui-col-md-6">
75
+ <div class="sui-form-field">
76
+ <select name="poll_submissions_retention_unit">
77
+ <option value="days" <?php selected( $poll_submissions_retain_unit, 'days' ); ?>>
78
+ <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
79
+ <option value="weeks" <?php selected( $poll_submissions_retain_unit, 'weeks' ); ?>>
80
+ <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
81
+ <option value="months" <?php selected( $poll_submissions_retain_unit, 'months' ); ?>>
82
+ <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
83
+ <option value="years" <?php selected( $poll_submissions_retain_unit, 'years' ); ?>>
84
+ <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
85
+ </select>
86
+
87
+ </div>
88
+ </div>
89
+ </div>
90
+
91
+
92
+ </div>
93
+
94
+ </div>
95
+
96
+ </div>
97
+
98
  <span class="sui-settings-label"><?php esc_html_e( 'IP Retention', Forminator::DOMAIN ); ?></span>
99
  <span class="sui-description">
100
  <?php esc_html_e( 'Choose how long to retain IP address before a submission is anonymized. Keep in mind that the IP address is being used in checking multiple votes from same user.',
130
 
131
  <div data-tab-content="retain_poll_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $poll_retain_forever ? ' active' : '' ); ?>">
132
 
133
+ <div class="sui-row">
134
+ <div class="sui-col-md-6">
135
+ <div class="sui-form-field">
136
+
137
+ <input type="number"
138
+ name="votes_retention_number"
139
+ placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
140
+ value="<?php echo esc_attr( $polls_retain_number ); ?>"
141
+ min="0"
142
+ class="sui-form-control sui-form-control-inline"/>
143
+ </div>
144
+ </div>
145
+ <div class="sui-col-md-6">
146
+ <div class="sui-form-field">
147
+
148
+ <select name="votes_retention_unit">
149
+ <option value="days" <?php selected( $polls_retain_unit, 'days' ); ?>>
150
+ <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
151
+ <option value="weeks" <?php selected( $polls_retain_unit, 'weeks' ); ?>>
152
+ <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
153
+ <option value="months" <?php selected( $polls_retain_unit, 'months' ); ?>>
154
+ <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
155
+ <option value="years" <?php selected( $polls_retain_unit, 'years' ); ?>>
156
+ <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
157
+ </select>
158
+
159
+ </div>
160
+ </div>
161
  </div>
162
 
163
+
164
  </div>
165
 
166
  </div>
admin/views/settings/popup/edit-captcha-content.php DELETED
@@ -1,50 +0,0 @@
1
- <?php
2
- $captcha_key = get_option( "forminator_captcha_key", "" );
3
- $captcha_secret = get_option( "forminator_captcha_secret", "" );
4
- $captcha_language = get_option( "forminator_captcha_language", "" );
5
- $captcha_theme = get_option( "forminator_captcha_theme", "" );
6
- $nonce = wp_create_nonce( 'forminator_save_popup_captcha' );
7
- ?>
8
-
9
- <div class="sui-box-body wpmudev-popup-form">
10
-
11
- <div class="sui-form-field">
12
- <label for="captcha_key" class="sui-label"><?php esc_html_e( "Site Key", Forminator::DOMAIN ); ?></label>
13
- <input id="captcha_key" class="sui-form-control" name="captcha_key" value="<?php echo esc_attr( $captcha_key ); ?>">
14
- <span class="sui-description">
15
- <?php esc_html_e( "Get reCAPTCHA API credentials by registering", Forminator::DOMAIN ); ?>
16
- <a href="https://www.google.com/recaptcha/intro/index.html" target="_blank"><?php esc_html_e( "here.", Forminator::DOMAIN ); ?></a>
17
- </span>
18
- </div>
19
-
20
- <div class="sui-form-field">
21
- <label for="captcha_secret" class="sui-label"><?php esc_html_e( "Secret Key", Forminator::DOMAIN ); ?></label>
22
- <input id="captcha_secret" class="sui-form-control" name="captcha_secret" value="<?php echo esc_attr( $captcha_secret ); ?>">
23
- </div>
24
-
25
- <div class="sui-form-field">
26
- <label for="captcha_language" class="sui-label"><?php esc_html_e( "Language", Forminator::DOMAIN ); ?></label>
27
- <input id="captcha_language" class="sui-form-control" name="captcha_language" value="<?php echo esc_attr( $captcha_language ); ?>">
28
- <span class="sui-description">
29
- <?php esc_html_e( "Find your language code", Forminator::DOMAIN ); ?>
30
- <a href="https://developers.google.com/recaptcha/docs/language" target="_blank"><?php esc_html_e( "here.", Forminator::DOMAIN ); ?></a>
31
- </span>
32
- </div>
33
-
34
- <div class="sui-form-field">
35
- <label for="captcha_theme" class="sui-label"><?php esc_html_e( "Theme", Forminator::DOMAIN ); ?></label>
36
- <select name="captcha_theme" class="wpmudev-select" id="captcha_theme">
37
- <option value="light" <?php if( "ligh" === $captcha_theme ) echo 'selected="selected"'; ?>>Light</option>
38
- <option value="dark" <?php if( "dark" === $captcha_theme ) echo 'selected="selected"'; ?>>Dark</option>
39
- </select>
40
- </div>
41
- </div>
42
-
43
- <div class="sui-box-footer">
44
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
45
- <div class="sui-actions-right">
46
- <button class="sui-button sui-button-primary wpmudev-action-done" data-nonce="<?php echo esc_attr( $nonce ); ?>">
47
- <?php esc_html_e( "Save", Forminator::DOMAIN ); ?>
48
- </button>
49
- </div>
50
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-currency-content.php DELETED
@@ -1,40 +0,0 @@
1
- <?php
2
- $currency = get_option( "forminator_currency", "USD" );
3
- $currencies = forminator_currency_list();
4
- ?>
5
- <div class="wpmudev-hidden-popup wpmudev-popup-form" style="display: none">
6
-
7
- <div class="wpmudev-box-gray">
8
-
9
- <div class="wpmudev-row">
10
-
11
- <div class="wpmudev-col col-12">
12
-
13
- <label><?php esc_html_e( "Currency", Forminator::DOMAIN ); ?></label>
14
-
15
- <select class="wpmudev-select" name="currency">
16
- <?php
17
- foreach ( $currencies as $key => $value ) {
18
- ?>
19
- <option value="<?php echo esc_attr( $key ); ?>" <?php selected( $currency, $key ); ?>><?php echo esc_html( $value[0] ); ?></option>
20
- <?php
21
- }
22
- ?>
23
- </select>
24
-
25
- </div>
26
-
27
- </div>
28
-
29
- <div class="wpmudev-row">
30
-
31
- <div class="wpmudev-col col-12">
32
-
33
- <button class="wpmudev-button wpmudev-action-done wpmudev-button-blue" data-nonce="<?php echo wp_create_nonce( 'forminator_save_popup_currency' ); // WPCS: XSS ok. ?>"><?php esc_html_e( "Done", Forminator::DOMAIN ); ?> </button>
34
-
35
- </div>
36
-
37
- </div>
38
-
39
- </div>
40
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-email-content.php DELETED
@@ -1,36 +0,0 @@
1
- <?php
2
- $sender_email_address = get_global_sender_email_address();
3
- $sender_name = get_global_sender_name();
4
- ?>
5
-
6
- <div class="sui-box-body wpmudev-popup-form">
7
-
8
- <div class="sui-form-field">
9
-
10
- <label class="sui-label"><?php esc_html_e( "Sender email address", Forminator::DOMAIN ); ?></label>
11
-
12
- <input class="sui-form-control" name="sender_email" value="<?php echo esc_attr( $sender_email_address ); ?>">
13
-
14
- </div>
15
-
16
- <div class="sui-form-field">
17
-
18
- <label class="sui-label"><?php esc_html_e( "Sender Name", Forminator::DOMAIN ); ?></label>
19
-
20
- <input class="sui-form-control" name="sender_name" value="<?php echo esc_attr( $sender_name ); ?>">
21
-
22
- </div>
23
-
24
- </div>
25
-
26
- <div class="sui-box-footer">
27
-
28
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
29
-
30
- <div class="sui-actions-right">
31
-
32
- <button class="sui-button sui-button-primary wpmudev-action-done" data-nonce="<?php echo wp_create_nonce( 'forminator_save_popup_email_settings' ); // WPCS: XSS ok. ?>"><?php esc_html_e( "Apply Changes", Forminator::DOMAIN ); ?></button>
33
-
34
- </div>
35
-
36
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-pagination-entries-content.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
- $per_page = get_option( "forminator_pagination_entries", 10 );
3
- $nonce = wp_create_nonce( 'forminator_save_popup_pagination_entries' );
4
- ?>
5
-
6
- <div class="sui-box-body wpmudev-popup-form">
7
- <div class="sui-form-field">
8
-
9
- <label for="forminator-limit-entries" class="sui-label"><?php esc_html_e( "Limit entries per page", Forminator::DOMAIN ); ?></label>
10
-
11
- <input id="forminator-limit-entries" class="sui-form-control" name="pagination_entries" value="<?php echo esc_attr($per_page); ?>">
12
-
13
- </div>
14
- </div>
15
- <div class="sui-box-footer">
16
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
17
- <div class="sui-actions-right">
18
- <button class="sui-button sui-button-primary wpmudev-action-done" data-nonce="<?php echo esc_attr( $nonce ); ?>">
19
- <?php esc_html_e( "Save", Forminator::DOMAIN ); ?>
20
- </button>
21
- </div>
22
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-pagination-listings-content.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
- $per_page = get_option( "forminator_pagination_listings", 10 );
3
- $nonce = wp_create_nonce( 'forminator_save_popup_pagination_listings' );
4
- ?>
5
-
6
- <div class="sui-box-body wpmudev-popup-form">
7
- <div class="sui-form-field">
8
- <label for="forminator-limit-modules-pp" class="sui-label"><?php esc_html_e( "Limit modules per page", Forminator::DOMAIN ); ?></label>
9
- <input id="forminator-limit-modules-pp" class="sui-form-control" name="pagination_listings" value="<?php echo esc_attr( $per_page ); ?>">
10
- </div>
11
- </div>
12
- <div class="sui-box-footer">
13
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
14
- <div class="sui-actions-right">
15
- <button class="sui-button sui-button-primary wpmudev-action-done" data-nonce="<?php echo esc_attr( $nonce ); ?>">
16
- <?php esc_html_e( "Save", Forminator::DOMAIN ); ?>
17
- </button>
18
- </div>
19
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-paypal-content.php DELETED
@@ -1,55 +0,0 @@
1
- <?php
2
- $api_mode = get_option( "forminator_paypal_api_mode", "" );
3
- $client_id = get_option( "forminator_paypal_client_id", "" );
4
- $secret = get_option( "forminator_paypal_secret", "" );
5
- ?>
6
- <div class="wpmudev-hidden-popup wpmudev-popup-form" style="display: none">
7
- <div>
8
-
9
- <label><?php esc_html_e( "PayPal Mode", Forminator::DOMAIN ); ?></label>
10
-
11
- <select class="wpmudev-select" name="api_mode">
12
- <option value="test" <?php selected( $api_mode, "test" ); ?> ><?php esc_html_e( "Test Mode (Sandbox)", Forminator::DOMAIN ); ?></option>
13
- <option value="live" <?php selected( $api_mode, "live" ); ?>><?php esc_html_e( "Live Mode", Forminator::DOMAIN ); ?></option>
14
- </select>
15
-
16
- </div>
17
-
18
- <div class="wpmudev-box-gray">
19
-
20
- <div class="wpmudev-row">
21
-
22
- <div class="wpmudev-col col-12">
23
-
24
- <label><?php esc_html_e( "Client ID", Forminator::DOMAIN ); ?></label>
25
-
26
- <input class="wpmudev-input" name="client_id" value="<?php echo esc_html( $client_id ); ?>">
27
-
28
- </div>
29
-
30
- </div>
31
-
32
- <div class="wpmudev-row">
33
-
34
- <div class="wpmudev-col col-12">
35
-
36
- <label><?php esc_html_e( "Secret", Forminator::DOMAIN ); ?></label>
37
-
38
- <input class="wpmudev-input" name="secret" value="<?php echo esc_html( $secret ); ?>">
39
-
40
- </div>
41
-
42
- </div>
43
-
44
- <div class="wpmudev-row">
45
-
46
- <div class="wpmudev-col col-12">
47
-
48
- <button class="wpmudev-button wpmudev-action-done wpmudev-button-blue" data-nonce="<?php echo wp_create_nonce( 'forminator_save_popup_paypal' ); // WPCS: XSS ok. ?>"><?php esc_html_e( "Done", Forminator::DOMAIN ); ?> </button>
49
-
50
- </div>
51
-
52
- </div>
53
-
54
- </div>
55
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-privacy-settings.php DELETED
@@ -1,130 +0,0 @@
1
- <?php
2
- $polls_retain_number = get_option( 'forminator_retain_votes_interval_number', 0 );
3
- $polls_retain_unit = get_option( 'forminator_retain_votes_interval_unit', 'days' );
4
-
5
- $cform_retain_number = get_option( 'forminator_retain_submissions_interval_number', 0 );
6
- $cfrom_retain_unit = get_option( 'forminator_retain_submissions_interval_unit', 'days' );
7
- $form_submission_erasure_enabled = get_option( 'forminator_enable_erasure_request_erase_form_submissions', false );
8
- $cform_retain_ip_number = get_option( 'forminator_retain_ip_interval_number', 0 );
9
- $cfrom_retain_ip_unit = get_option( 'forminator_retain_ip_interval_unit', 'days' );
10
- ?>
11
-
12
- <div class="sui-box-body wpmudev-popup-form">
13
-
14
- <h4 style="margin-bottom: 5px"><?php esc_html_e( 'Forms', Forminator::DOMAIN ); ?></h4>
15
- <div class="sui-form-field">
16
- <label class="sui-label"><?php esc_html_e( "Account erasure requests", Forminator::DOMAIN ); ?></label>
17
- <select class="sui-select" name="erase_form_submissions">
18
- <option value="true" <?php selected( $form_submission_erasure_enabled, true ); ?>>
19
- <?php esc_html_e( "Remove Submissions", Forminator::DOMAIN ); ?></option>
20
- <option value="false" <?php selected( $form_submission_erasure_enabled, false ); ?>>
21
- <?php esc_html_e( "Retain Submissions", Forminator::DOMAIN ); ?></option>
22
- </select>
23
- <span class="sui-description">
24
- <?php echo( sprintf( __( 'When handling an <a href="%s">account erasure request</a>, should form submission contains requested email address removed or retained ?',
25
- Forminator::DOMAIN ),
26
- esc_url
27
- ( admin_url( 'tools.php?page=remove_personal_data' ) ) ) );// wpcs: xss ok. ?></span>
28
- </div>
29
-
30
- <div class="sui-form-field">
31
- <label class="sui-label"><?php esc_html_e( "Submissions Retention", Forminator::DOMAIN ); ?></label>
32
- <div class="sui-row">
33
- <div class="sui-col-md-4">
34
- <input class="sui-form-control" type="number" min="1" name="submissions_retention_number" value="<?php echo esc_attr( $cform_retain_number ); ?>">
35
- </div>
36
-
37
- <div class=" sui-col-md-8">
38
- <select class="sui-select" name="submissions_retention_unit">
39
- <option value="days" <?php selected( $cfrom_retain_unit, 'days' ); ?>>
40
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
41
- <option value="weeks" <?php selected( $cfrom_retain_unit, 'weeks' ); ?>>
42
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
43
- <option value="months" <?php selected( $cfrom_retain_unit, 'months' ); ?>>
44
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
45
- <option value="years" <?php selected( $cfrom_retain_unit, 'years' ); ?>>
46
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
47
- </select>
48
- </div>
49
- </div>
50
- <span class="sui-description">
51
- <?php esc_html_e( 'Choose how long to retain form submissions. Leave the following options blank to retain form submissions forever.',
52
- Forminator::DOMAIN ); ?>
53
-
54
- </span>
55
- </div>
56
-
57
- <div class="sui-form-field">
58
- <label class="sui-label"><?php esc_html_e( "IP address retention", Forminator::DOMAIN ); ?></label>
59
- <div class="sui-row">
60
- <div class="sui-col-md-4">
61
- <input class="sui-form-control" type="number" min="1" name="cform_retention_ip_number" value="<?php echo esc_attr( $cform_retain_ip_number ); ?>">
62
- </div>
63
-
64
- <div class=" sui-col-md-8">
65
- <select class="sui-select" name="cform_retention_ip_unit">
66
- <option value="days" <?php selected( $cfrom_retain_ip_unit, 'days' ); ?>>
67
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
68
- <option value="weeks" <?php selected( $cfrom_retain_ip_unit, 'weeks' ); ?>>
69
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
70
- <option value="months" <?php selected( $cfrom_retain_ip_unit, 'months' ); ?>>
71
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
72
- <option value="years" <?php selected( $cfrom_retain_ip_unit, 'years' ); ?>>
73
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
74
- </select>
75
- </div>
76
- </div>
77
- <span class="sui-description">
78
- <?php esc_html_e( 'Choose how long to retain IP address before its getting anonymized.',
79
- Forminator::DOMAIN ); ?>
80
-
81
- </span>
82
- </div>
83
-
84
- <h4 style="margin-bottom: 5px"><?php esc_html_e( 'Polls', Forminator::DOMAIN ); ?></h4>
85
- <div class="sui-form-field">
86
- <label class="sui-label"><?php esc_html_e( "IP address retention", Forminator::DOMAIN ); ?></label>
87
- <div class="sui-row">
88
- <div class="sui-col-md-4">
89
- <input class="sui-form-control" type="number" min="1" name="votes_retention_number" value="<?php echo esc_attr( $polls_retain_number ); ?>">
90
- </div>
91
-
92
- <div class=" sui-col-md-8">
93
- <select class="sui-select" name="votes_retention_unit">
94
- <option value="days" <?php selected( $polls_retain_unit, 'days' ); ?>>
95
- <?php esc_html_e( "day(s)", Forminator::DOMAIN ); ?></option>
96
- <option value="weeks" <?php selected( $polls_retain_unit, 'weeks' ); ?>>
97
- <?php esc_html_e( "week(s)", Forminator::DOMAIN ); ?></option>
98
- <option value="months" <?php selected( $polls_retain_unit, 'months' ); ?>>
99
- <?php esc_html_e( "month(s)", Forminator::DOMAIN ); ?></option>
100
- <option value="years" <?php selected( $polls_retain_unit, 'years' ); ?>>
101
- <?php esc_html_e( "years(s)", Forminator::DOMAIN ); ?></option>
102
- </select>
103
- </div>
104
- </div>
105
- <span class="sui-description">
106
- <?php esc_html_e( 'Choose how long to retain IP address before its getting anonymized.
107
- Keep in mind, that this IP address probably being used to checking multiple votes.
108
- Leave the following options blank to retain IP address forever.',
109
- Forminator::DOMAIN ); ?>
110
-
111
- </span>
112
- </div>
113
-
114
- </div>
115
-
116
- <div class="sui-box-footer">
117
-
118
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
119
-
120
- <div class="sui-actions-right">
121
-
122
- <button class="sui-button sui-button-primary wpmudev-action-done"
123
- data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_save_privacy_settings' ) ); ?>">
124
- <?php esc_html_e( "Save Changes", Forminator::DOMAIN ); ?>
125
- </button>
126
-
127
- </div>
128
-
129
- </div>
130
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/edit-uninstall-content.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
- $uninstall = get_option( "forminator_uninstall_clear_data", false );
3
- $nonce = wp_create_nonce( 'forminator_save_popup_uninstall_settings' );
4
- ?>
5
-
6
-
7
- <div class="sui-box-body wpmudev-popup-form">
8
- <div class="sui-form-field">
9
-
10
- <label for="forminator-delete_uninstall-entries" class="sui-label"><?php esc_html_e( "Delete all data on uninstall", Forminator::DOMAIN ); ?></label>
11
-
12
- <select name="delete_uninstall" id="delete_uninstall">
13
- <option value="true" <?php echo esc_attr(selected( $uninstall, true )); ?>><?php esc_html_e( "Yes", Forminator::DOMAIN ); ?></option>
14
- <option value="false" <?php echo esc_attr(selected( $uninstall, false )); ?>><?php esc_html_e( "No", Forminator::DOMAIN ); ?></option>
15
- </select>
16
-
17
- </div>
18
- </div>
19
- <div class="sui-box-footer">
20
- <div class="sui-flex-child-right">
21
- <button class="sui-button forminator-popup-cancel" data-a11y-dialog-hide="forminator-popup"><?php esc_html_e( 'Cancel', Forminator::DOMAIN ); ?></button>
22
- <button class="sui-button sui-button-primary wpmudev-action-done" data-nonce="<?php echo esc_attr( $nonce ); ?>">
23
- <?php esc_html_e( "Save", Forminator::DOMAIN ); ?>
24
- </button>
25
- </div>
26
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/popup/exports-content.php DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
- $export_logs = forminator_get_export_logs($form_id);
3
-
4
- if ( !empty($export_logs) ) :
5
- ?>
6
- <table class="wpmudev-table" cellspacing="0" cellpadding="0">
7
-
8
- <thead class="wpmudev-table-head">
9
-
10
- <tr>
11
-
12
- <th class="forminator-export--name"><?php esc_html_e( "Date", Forminator::DOMAIN ); ?></th>
13
-
14
- <th class="forminator-export--fields"><?php esc_html_e( "Records", Forminator::DOMAIN ); ?></th>
15
-
16
- <th class="forminator-export--file"></th>
17
-
18
- <th class="forminator-export--trash"></th>
19
-
20
- </tr>
21
-
22
- </thead>
23
-
24
- <tbody id="wpmudev-exports-table" class="wpmudev-table-body">
25
- <?php
26
- $html = '';
27
- foreach( $export_logs as $export ){
28
- $html .= '<tr>';
29
- $html .= '<td>' . $export['time'] . '</td>';
30
- $html .= '<td>' . $export['count'] . '</td>';
31
- $html .= '</tr>';
32
- }
33
-
34
- echo $html // WPCS: XSS ok.;
35
- ?>
36
- </tbody>
37
-
38
- </table>
39
-
40
- <button class="wpmudev-button wpmudev-button-clear-exports wpmudev-button-sm wpmudev-button-ghost" data-nonce="<?php echo wp_create_nonce( 'forminator_clear_exports' ); // WPCS: XSS ok. ?>" data-form-id="<?php echo esc_attr( $form_id ); ?>"><?php esc_html_e( "Clear All", Forminator::DOMAIN ); ?>
41
- </button>
42
- <?php else : ?>
43
- <p>Your list of exports is empty. <br/>Go back and export your entries to see them appear here.</p>
44
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/views/settings/tab-accessibility.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+
4
+ $nonce = wp_create_nonce( 'forminator_save_accessibility_settings' );
5
+ $accessibility_enabled = get_option( 'forminator_enable_accessibility', false );
6
+ $accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOOLEAN );
7
+
8
+ ?>
9
+
10
+ <div class="sui-box" data-nav="accessibility" style="<?php echo esc_attr( 'accessibility' !== $section ? 'display: none;' : '' ); ?>">
11
+
12
+ <div class="sui-box-header">
13
+ <h2 class="sui-box-title"><?php esc_html_e( 'Accessibility', Forminator::DOMAIN ); ?></h2>
14
+ </div>
15
+
16
+ <form class="forminator-settings-save" action="">
17
+
18
+ <div class="sui-box-body">
19
+
20
+ <p><?php esc_html_e( 'Enable support for any accessibility enhancements available in the plugin interface.', Forminator::DOMAIN ); ?></p>
21
+
22
+ <div class="sui-box-settings-row">
23
+
24
+ <div class="sui-box-settings-col-1">
25
+ <span class="sui-settings-label"><?php esc_html_e( 'Color Accessibility', Forminator::DOMAIN ); ?></span>
26
+ <span class="sui-description"><?php esc_html_e( 'Increase the visibility and accessibility of elements and components to meet WCAG AAA requirements.', Forminator::DOMAIN ); ?></span>
27
+ </div>
28
+
29
+ <div class="sui-box-settings-col-2">
30
+
31
+ <div class="sui-form-field">
32
+
33
+ <label for="forminator-color-accessibility" class="sui-toggle">
34
+ <input type="checkbox"
35
+ name="enable_accessibility"
36
+ value="true"
37
+ id="forminator-color-accessibility" <?php checked( $accessibility_enabled ); ?>/>
38
+ <span class="sui-toggle-slider" aria-hidden="true"></span>
39
+ </label>
40
+
41
+ <label for="forminator-color-accessibility"><?php esc_html_e( 'Enable high contrast mode', Forminator::DOMAIN ); ?></label>
42
+
43
+ </div>
44
+
45
+ </div>
46
+
47
+ </div>
48
+
49
+ </div>
50
+
51
+ <div class="sui-box-footer">
52
+
53
+ <div class="sui-actions-right">
54
+
55
+ <button class="sui-button sui-button-blue wpmudev-action-done"
56
+ data-title="<?php esc_attr_e( "Accessibility settings", Forminator::DOMAIN ); ?>"
57
+ data-action="accessibility_settings"
58
+ data-nonce="<?php echo esc_attr( $nonce ); ?>"
59
+ data-is-reload="true">
60
+ <span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
61
+ <i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
62
+ </button>
63
+
64
+ </div>
65
+
66
+ </div>
67
+
68
+ </form>
69
+
70
+ </div>
admin/views/settings/tab-data.php CHANGED
@@ -1,8 +1,10 @@
1
  <?php
 
 
2
  $nonce = wp_create_nonce( 'forminator_save_privacy_settings' );
3
  ?>
4
 
5
- <div class="sui-box" data-nav="data" style="display: none;">
6
 
7
  <div class="sui-box-header">
8
  <h2 class="sui-box-title"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></h2>
1
  <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+
4
  $nonce = wp_create_nonce( 'forminator_save_privacy_settings' );
5
  ?>
6
 
7
+ <div class="sui-box" data-nav="data" style="<?php echo esc_attr( 'data' !== $section ? 'display: none;' : '' ); ?>">
8
 
9
  <div class="sui-box-header">
10
  <h2 class="sui-box-title"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></h2>
admin/views/settings/tab-emails.php CHANGED
@@ -1,9 +1,11 @@
1
  <?php
 
 
2
  $sender_email_address = get_global_sender_email_address();
3
  $sender_name = get_global_sender_name();
4
  ?>
5
 
6
- <div class="sui-box" data-nav="emails">
7
 
8
  <div class="sui-box-header">
9
  <h2 class="sui-box-title"><?php esc_html_e( 'Emails', Forminator::DOMAIN ); ?></h2>
1
  <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+
4
  $sender_email_address = get_global_sender_email_address();
5
  $sender_name = get_global_sender_name();
6
  ?>
7
 
8
+ <div class="sui-box" data-nav="emails" style="<?php echo esc_attr( 'emails' !== $section ? 'display: none;' : '' ); ?>">
9
 
10
  <div class="sui-box-header">
11
  <h2 class="sui-box-title"><?php esc_html_e( 'Emails', Forminator::DOMAIN ); ?></h2>
admin/views/settings/tab-pagination.php CHANGED
@@ -1,11 +1,13 @@
1
  <?php
2
- $per_page = get_option( "forminator_pagination_entries", 10 );
3
- $module_per_page = get_option( "forminator_pagination_listings", 10 );
4
- $nonce = wp_create_nonce( 'forminator_save_popup_pagination' );
 
 
5
 
6
  ?>
7
 
8
- <div class="sui-box" data-nav="pagination" style="display: none;">
9
 
10
  <div class="sui-box-header">
11
  <h2 class="sui-box-title"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></h2>
@@ -29,7 +31,7 @@ $nonce = wp_create_nonce( 'forminator_save_popup_pagination' );
29
  <input type="number"
30
  name="pagination_entries"
31
  placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
32
- value="<?php echo esc_attr( $per_page ); ?>"
33
  min="1"
34
  id="forminator-limit-entries"
35
  class="sui-form-control forminator-required"/>
1
  <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+
4
+ $entries_per_page = get_option( "forminator_pagination_entries", 10 );
5
+ $module_per_page = get_option( "forminator_pagination_listings", 10 );
6
+ $nonce = wp_create_nonce( 'forminator_save_popup_pagination' );
7
 
8
  ?>
9
 
10
+ <div class="sui-box" data-nav="pagination" style="<?php echo esc_attr( 'pagination' !== $section ? 'display: none;' : '' ); ?>">
11
 
12
  <div class="sui-box-header">
13
  <h2 class="sui-box-title"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></h2>
31
  <input type="number"
32
  name="pagination_entries"
33
  placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
34
+ value="<?php echo esc_attr( $entries_per_page ); ?>"
35
  min="1"
36
  id="forminator-limit-entries"
37
  class="sui-form-control forminator-required"/>
admin/views/settings/tab-recaptcha.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  $captcha_key = get_option( "forminator_captcha_key", "" );
3
  $captcha_secret = get_option( "forminator_captcha_secret", "" );
4
  $captcha_language = get_option( "forminator_captcha_language", "" );
@@ -8,7 +10,7 @@ $nonce = wp_create_nonce( 'forminator_save_popup_captcha' );
8
  $new = true;
9
  ?>
10
 
11
- <div class="sui-box" data-nav="recaptcha" style="display: none;">
12
 
13
  <div class="sui-box-header">
14
  <h2 class="sui-box-title"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></h2>
1
  <?php
2
+ $section = isset( $_GET['section'] ) ? $_GET['section'] : 'emails'; // wpcs csrf ok.
3
+
4
  $captcha_key = get_option( "forminator_captcha_key", "" );
5
  $captcha_secret = get_option( "forminator_captcha_secret", "" );
6
  $captcha_language = get_option( "forminator_captcha_language", "" );
10
  $new = true;
11
  ?>
12
 
13
+ <div class="sui-box" data-nav="recaptcha" style="<?php echo esc_attr( 'recaptcha' !== $section ? 'display: none;' : '' ); ?>">
14
 
15
  <div class="sui-box-header">
16
  <h2 class="sui-box-title"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></h2>
assets/css/front.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./assets/sass/helpers/_icons.scss","webpack:///./assets/sass/front.scss","webpack:///./assets/sass/helpers/_keyframes.scss","webpack:///./assets/sass/helpers/mixins/_opacity.scss","webpack:///./assets/sass/helpers/mixins/_body-class.scss","webpack:///./assets/sass/poll/_global.scss","webpack:///./assets/sass/helpers/_extensions.scss","webpack:///./assets/sass/helpers/mixins/_quiz-answer.scss","webpack:///./assets/sass/form/_global.scss","webpack:///./assets/sass/_grid.scss","webpack:///./assets/sass/helpers/_variables.scss","webpack:///./assets/sass/helpers/mixins/_breakpoints.scss","webpack:///./assets/sass/_utilities.scss","webpack:///./assets/sass/helpers/mixins/_notifications.scss","webpack:///./assets/sass/helpers/_colors.scss","webpack:///./assets/sass/helpers/mixins/_wysiwyg.scss","webpack:///./assets/sass/form/_bold.scss","webpack:///./assets/sass/helpers/mixins/_section-border.scss","webpack:///./assets/sass/helpers/mixins/_input.scss","webpack:///./assets/sass/helpers/mixins/_options.scss","webpack:///./assets/sass/helpers/mixins/_select.scss","webpack:///./assets/sass/helpers/mixins/_dropdown.scss","webpack:///./assets/sass/helpers/mixins/_multi-select.scss","webpack:///./assets/sass/helpers/mixins/_date.scss","webpack:///./assets/sass/helpers/mixins/_calendar.scss","webpack:///./assets/sass/helpers/mixins/_button.scss","webpack:///./assets/sass/helpers/mixins/_pagination.scss","webpack:///./assets/sass/form/_flat.scss","webpack:///./assets/sass/form/_default.scss","webpack:///./assets/sass/form/_material.scss","webpack:///./assets/sass/helpers/mixins/_poll-question.scss","webpack:///./assets/sass/helpers/mixins/_poll-description.scss","webpack:///./assets/sass/helpers/mixins/_poll-answers.scss","webpack:///./assets/sass/helpers/mixins/_poll-actions.scss","webpack:///./assets/sass/poll/_material.scss","webpack:///./assets/sass/quiz/_global.scss","webpack:///./assets/sass/helpers/mixins/_quiz-question.scss","webpack:///./assets/sass/helpers/mixins/_quiz-result.scss"],"names":[],"mappings":"AAoTC,2+GAnTA,WACA,qBACA,cACA,iCACA,kBACA,gBACA,oBAGA,kCACA,oBACA,mCACA,kCCqCA,WDqPG,uBACA,kCACA,sPAKA,gBACA,kBCrPH,mCDgQC,gBCxPD,sCDwPC,gBChPD,oCD+O4B,gBCvO5B,kCDuO0B,gBC/N1B,oCD+N4B,gBCvN5B,gCDuNwB,gBC/MxB,wBD+MgB,gBCvMhB,oCDuM4B,gBC/L5B,wCD+LgC,gBCvLhC,sBDuLc,gBC/Kd,mCD+KA,gBCvKA,0EDuKA,gBCvJA,8BDuJA,gBC/IA,qCD+IA,gBCvIA,kCDuIA,gBC/HA,mCD+HA,gBCvHA,kCDuHA,gBC/GA,+DD+GA,gBC/FA,6DD+FA,gBC/EA,mCD+EA,gBCvEA,+BDuEA,gBC/DA,gCD+DA,gBCvDA,gCDuDA,gBC/CA,sCD+CA,gBCvCA,oEDuCA,gBCvBA,mEDuBA,gBCPA,6BDGsB,cCKtB,sCDDA,gBCSA,mCDTA,cCiBA,kCDjBA,cCyBA,8BD7BsB,cCqCtB,yBDrCU,YC6CV,gCDzCA,YCiDA,iCDjDA,YCyDA,8BD7DsB,YCqEtB,+BDjEA,YCyEA,4BD7EU,cCqFV,4BDrFU,cC6FV,+BDzFA,cCiGA,8BDrGsB,cC6GtB,8BD7GsB,gBCqHtB,wBDrHU,gBC6HV,yBD7HU,YCqIV,wBDrIU,YC6IV,iEDzIA,eCyJA,qEDzJA,eCyKA,qEDzKA,cCyLA,uEDzLA,eCyMA,mCDzMA,gBCiNA,iCDrNsB,cC6NtB,6BD7NU,gBCqOV,8BDrOU,eC6OV,yBD7OU,YCqPV,yBDrPU,YC6PV,2BD7PU,YCqQV,4BDrQU,gBC6QV,0BD7QU,cCqRV,mCDrRsB,cC6RtB,yBD7RU,YCqSV,yBDrSU,gBC6SV,kCD7SU,cCqTV,gCDrTU,cC6TV,2BD7TU,cCqUV,4BDrUU,cC6UV,0DD7UU,cC6VV,2BD7VU,eCqWV,+BDrWU,YC6WV,wBD7WU,YCqXV,yBDrXU,cC6XV,0BD7XU,YCqYV,wBDrYU,YC6YV,6BD7YU,YCqZV,8BDrZU,cC6ZV,8BD7ZU,YCqaV,2BDraU,YC6aV,yBD7aU,YCqbV,6BDrbU,YC6bV,+BD7bU,gBCqcV,+BDrcU,gBC6cV,+BD7cU,YCqdV,+BDrdU,YC6dV,wBD7dC,YCqeD,wBDreC,YC6eD,0BD7eU,YCqfV,yCDjfA,cCyfA,8BD7fU,YCqgBV,0BDrgBU,cC6gBV,2BD7gBU,YCqhBV,wBDrhBC,YC6hBD,0BD7hBU,YCqiBV,4BDriBU,gBC6iBV,uBD7iBC,YCqjBD,4BDrjBU,YC6jBV,qCD7jBU,YCqkBV,6BDrkBU,gBC6kBV,0BD7kBC,eCqlBD,uBDrlBC,YC6lBD,6BD7lBU,cCqmBV,8DDrmBU,eCqnBV,yBDrnBC,YC6nBD,wBD7nBC,YCqoBD,wBDroBC,YC6oBD,uBD7oBC,gBCqpBD,0BDrpBC,cC6pBD,6BD7pBU,YCqqBV,4BDrqBQ,YC6qBR,wBD7qBC,YCqrBD,0BDrrBC,YC6rBD,wBD7rBC,YCqsBD,mCDrsBU,YC6sBV,oCD7sBU,gBCqtBV,iCDrtBU,gBC6tBV,0BD7tBC,gBCquBD,2BDruBC,m9BAKA,+BALA,gBCqvBD,gCDrvBC,gBC6vBD,8BD9vBC,gBCswBD,yBDtwBQ,gBC8wBR,kCD7wBC,YCqxBD,gCDtxBqB,YC8xBrB,gCD9xBqB,YCsyBrB,kCDryBC,YC6yBD,mCD7yBC,YCqzBD,iCDtzBuB,YC8zBvB,sCD7zBC,YCq0BD,mCDr0BC,YC60BD,kCD70BC,YCq1BD,mCDr1BC,YC61BD,kCD71BC,YCq2BD,qCDr2BC,YC62BD,wBD92BQ,YCs3BR,oCDr3BC,YC63BD,mCD73BC,YCq4BD,8BDt4BQ,YC84BR,0BD94BQ,gBCs5BR,gCDt5BQ,cC85BR,kCD95BuB,eCs6BvB,oCDr6BC,gBC66BD,yBD96BQ,YCs7BR,gCDt7BQ,YC87BR,2CD77BQ,YCq8BR,6BDt8BQ,cC88BR,wBD98BQ,YCs9BR,6BDt9BQ,gBC89BR,iCD99BQ,cCs+BR,yBDt+BQ,YC8+BR,gCD9+BQ,YCs/BR,mCDt/BqB,YC8/BrB,0CD7/BC,YCqgCD,+BDtgCQ,gBC8gCR,2CD7gCC,eCqhCD,0BDthCQ,YC8hCR,yBD9hCQ,YCsiCR,gCDtiCQ,gBC8iCR,gCD9iCQ,gBCsjCR,gCDtjCQ,cC8jCR,4BD9jCQ,YCskCR,yBDtkCQ,YC8kCR,0BD9kCQ,YCslCR,2BDtlCQ,YC8lCR,4BD9lCQ,YCsmCR,iCDtmCQ,YC8mCR,8BD9mCQ,YCsnCR,+BDtnCQ,YC8nCR,0CD7nCC,YCqoCD,sCDtoCC,YC8oCD,0BD9oCQ,gBCspCR,4BDtpCQ,cC8pCR,uBD9pCA,gBCsqCA,+BDtqCQ,cC8qCR,0BD9qCC,gBCsrCD,+BDtrCQ,gBC8rCR,yBD9rCA,gBCssCA,4BDtsCC,gBC8sCD,2BD9sCA,gBCstCA,0BDttCA,cC8tCA,yBD9tCA,gBCsuCA,4BDtuCA,eC8uCA,2BD9uCA,eCsvCA,6BDtvCA,YC8vCA,4BD9vCA,YCswCA,+BDtwCC,gBC8wCD,2BD9wCA,cCsxCA,oCDtxCQ,cC8xCR,4BD9xCA,gBCsyCA,6BDtyCA,gBC8yCA,8BD9yCA,cCszCA,yCDtzCQ,gBC8zCR,2BD31CuB,YCm2CvB,uBDh0CC,eCw0CD,kCD90CA,YCs1CA,wCDt1CQ,YC81CR,wBDx1CQ,YCg2CR,8BDt2CA,gBC82CA,kCD92CA,cCs3CA,0BD54CgB,cCo5ChB,uCD93CQ,cCs4CR,0BD15CqB,gBCk6CrB,iCD94CA,gBCs5CA,qBDr5CU,qBCy5CV,0BDp5CQ,gBCw5CR,4BD75CC,GAAS,sDCk6CR,GD95CF,wDCk6CE,CACF,oBDv6CC,GAAS,sDCk6CR,GD95CF,wDCk6CE,CACF,wBCvsDD,GAAU,sDAEG,GAAY,wDD8sDtB,CACF,gBCjtDD,GAAU,sDAEG,GAAY,wDD8sDtB,CC3sDU,4BAWZ,GACC,UAAW,wEAGA,aAOb,sCDisDG,CCvtDU,oBAWZ,GACC,UAAW,wEAGA,aAOb,sCDisDG,CChsDC,+BAEa,GAAE,uBAGX,wEDssDL,CC3sDC,uBAEa,GAAE,uBAGX,wEDssDL,CC9rDH,mCAEiB,GAEb,8CAEI,yBAAW,2DC/CT,6BACA,2EACR,sEAFQ,kBACA,yEACR,oEAFQ,iBFiwDP,CCxtDH,2BAEiB,GAEb,8CAEI,yBAAW,2DC/CT,6BACA,2EACR,sEAFQ,kBACA,yEACR,oEAFQ,iBFiwDP,CEhwDO,8vFCGR,SC0BD,mBAA0B,isCDrBT,4BA0Bf,sEErBF,kCACA,2BACgB,mCAChB,oCACgB,+7CC5BE,qBHmBjB,gBAAgB,4BGnBjB,qBD+CA,UAAW,2BAED,kDACV,2BAGA,mME8CA,oDJrFC,CIsFD,uNADA,eFhCC,uRAID,+FE6BA,cAA6B,mTJtF5B,sDEyDD,iCAMW,wDG5ED,mBLaT,sHKPE,gBACA,4EAKe,aLCjB,wIMgBsB,kBNhBC,8JKmBpB,gBLnBH,yBAAuB,qFAAvB,mEK6BK,mBAEL,kBRi6DC,CQ/5DA,yBAIE,uFLrCH,cAAuB,2CHu8DtB,CQ16DI,yBAEL,uFL/BA,iBK6BK,iDRi7DJ,CQj7DI,yBAsBJ,uFLnDD,cAAuB,2CHq9DtB,CQx7DI,yBAEL,wFL/BA,eAAuB,eK6BlB,6CRg8DJ,CQ97DD,yBAoCC,kRApCD,gBRq8DC,CQv5DA,yBAEC,4PAlDG,mBAEU,gBA8Cd,eRg6DA,CQ95DC,yBAYG,gwBA9DuB,eR29D3B,CQz9DD,yBAgDE,4NAlDG,6BAEL,cRk+DC,CQp7DA,yBAEC,gFL/EF,gBHugEC,CGvgED,yBK6BK,qEE7BY,wEPAM,mBK6BlB,kBRm/DJ,CQj/DD,yBA4FE,2HA9FG,aRy/DJ,CQr5DD,yBAEC,yGAtGI,cR+/DJ,CQ//DI,yBAoGL,2EEjIwB,8DVkiEvB,CGliED,yBK6BK,4IR4gEJ,CQh5DA,yBAIC,0TAFD,gBRq5DA,CQ14DC,yBAEC,oSAfF,mBR85DA,CQj5DC,yBAEC,oGLxKoB,gBH6jEtB,CQhiEI,yBA4HJ,yFLzJD,kBK6BK,oCRwiEJ,CQ56DA,4CA0CE,iBACA,UAAa,uCL/LhB,sBAAuB,wDAItB,aAAY,yBA0PZ,wDOnQD,aVslEC,CUtlEkB,uDPWjB,gBAIC,yBAIF,uDOnBD,gBVgmEC,CUhmEkB,yBPmBlB,4CAIE,iBH+kEF,CUtmEO,8CPKe,oDMQb,+DNoBR,uBACA,yBA7BqB,sEOIJ,uBV2mElB,CG/mED,yBQxBD,uEDmBoB,uBV0nElB,CWtoEF,kDAGW,oDRSV,2CAEC,uBIDW,gDAGb,YACQ,eAAE,gCASV,2BK/BQ,kBAER,oGAGA,mCH8BiB,CG5BjB,uDAcC,WACA,0BAbD,2BLsBA,UKtBC,eAEA,8BAMA,WACA,kDATA,cZgrED,yGO1pEA,2CJdC,mGSuED,gCLzDA,oDK0DU,wBAET,gHL5DD,gBKgEC,4DACC,aAAa,2DAQd,gBACY,yBL1Eb,gDK8Ec,cZ8mEZ,CU1sEO,iDHcT,YAAuB,eAEtB,gCAED,2BKnCQ,kBAER,oGAGA,mCH8BiB,CG5BjB,wDAuBC,WACA,0BAtBD,2BL0BA,UK1BC,eAEA,8BAMA,WACA,mDATA,cZovED,2GO1tEA,2CJlBC,CAAuB,mHIkBxB,qEKsDU,wBAET,kHLxDD,gBK4DC,6DACC,aAAa,4DAQd,gBACa,yBLtEd,iDK0EgB,cZkrEd,CU9wEO,kDHkBT,YK8EC,6BL1ED,6CKvCQ,kBAER,oGAGA,mCH8BiB,CG5BjB,yDAgCiB,WAChB,0BA/BD,2BL8BA,UK9BC,eAEA,8BAMU,WACV,oDATA,cAkCC,6GLJF,2CJtBC,CIsBD,0LKkDU,wBAET,oHLpDD,gBKwDO,8DACL,aAAa,6DAQd,gBTvFA,yBIsBD,kDKsEiB,cZsvEf,CUl1EO,mDHsBT,YK0EC,6BThGA,kBI0BD,2BK3CQ,kBAER,oGAGA,mCH8BiB,CG5BjB,0DCqBU,uBDqBT,cAxCD,2BLkCA,UKlCC,eAEA,8BAMY,WACZ,qDATO,cA2CN,+GLTF,2CJ1BC,CI0BD,4LK8CU,wBAET,sHLhDD,gBJ1BC,+DS+EC,aAAiB,8DAQlB,gBAID,yBLjEA,mDKmEC,cZyzEC,CUt5EO,mDH0BT,YKsEC,6BThGA,kBI8BD,2BK/CQ,kBAER,oGAGA,mCH8BiB,CG5BjB,0DCaS,uBDsCR,cAjDD,2BLsCA,UKtCC,eAEA,6BAMU,YACV,sDA2CC,mBACQ,oDCzDD,sFD4DP,qDAEW,6HLpBb,2CJ9BC,CI8BD,4LK0CU,wBAET,sHL5CD,gBJ9BC,+DS+EC,aAAiB,8DAQlB,gBAID,yBL7DA,mDG9BC,cV+9EC,CU/9EO,uFPAR,mBIkCD,2GJlCwB,kBI2CvB,6ICdK,mBRg9EJ,COx7ED,yBAAkC,wIAUjC,mBPo7EA,COl7EA,mGJjED,YI0FD,kDACA,oEJ3FC,4EIiGe,qCJjGf,qGI+FD,4FAQe,mEJvGd,CI+FD,sFJ/FC,2GIgHE,SJhHF,yHIuHA,yCAGC,kIAWD,iBPu5EC,COv5ED,iKJrIA,4EI+JsB,mBJ/JtB,iKIwKE,kBJxKF,yMAAuB,wCIsLtB,2NCzJI,gBR4hFJ,CQ5hF2B,yBDuK3B,kQAWA,gBPi3EA,COj3EA,0DAOI,YAGU,aOvOf,gEX0CkB,qNYtBnB,iBZDC,8GAAuB,iBAuBL,qFa5CnB,kCbqBwB,earBxB,gBAAkB,cACjB,UACA,kBACS,2FAgBT,mBbEuB,4FaLvB,oBb4BkB,uIc5CnB,0BdqBC,cAAuB,mBcpBxB,gCAEC,2tBdkBA,qDAAuB,kkBcIhB,sFdJgB,UDTf,iBACA,yJCQR,wCDRQ,wXCQR,yBAAuB,sEDTf,kBACA,qMCQe,yBcpBxB,sEfWS,kBACA,+MCQe,yBcpBxB,sEfWS,kBACA,qEAER,YeqCD,iCd/BwB,gEckCvB,cAGD,uIA1DA,6CdqBC,oBcqEA,uIAsDG,YAGF,mDd9HsB,Cc+BxB,kEAqHG,Yd7HgB,kEAKJ,qDe9Cd,+BfkBuB,2IelBvB,sEhBSQ,iBACA,4FgBcP,mCfNsB,0IelBN,kEAwBhB,oEAEC,SAAS,UACT,mGAyCA,kFflDqB,UDTf,iBACA,mICQe,iBelBvB,2FAsEC,6BfpDsB,SelBvB,mBAsEC,iHAWC,ef/DqB,4Fe8DpB,uBf9DoB,mDelBvB,iBAwBC,mEAoFQ,2FAoBP,iBf9GqB,mGeoHpB,oBfpHoB,6FeqInB,mBfrImB,mGeqJpB,8BfrJoB,CelBvB,qEAqKI,qDACA,8BfpJmB,kJelBH,sEhBSZ,iBACA,kGgBcP,mCfNsB,iCelBvB,yGAwBC,sIAEC,SAAS,UACT,yGfTqB,wBelBvB,oEhBSQ,iBACA,4IgBVR,kHAsEC,6BAtED,mBAAoB,SAsEnB,uHfpDsB,iHe8DpB,uBf9DoB,mDelBvB,iBAwBC,mEAoFQ,iGAoBP,iBf9GqB,uHAuBL,sJgB5CQ,qBhBqB1B,kXAAuB,4SgBpBH,eAOpB,8LhBaA,YAAuB,iBgBpBxB,mBAAqB,gBAOpB,gDAsFY,4SA7FQ,iBAOpB,gDAGE,kPhBUqB,kBgB2JtB,4SA/KmB,mBAOpB,sSAwKsB,WAEpB,iEAAmB,yGAwBlB,kEACC,oEAEA,kBACA,kBACA,oTA7BF,wOAwBC,eAAyB,0SA1BN,aAEpB,oWAgFC,0DAAmB,sGC9PrB,8DAFM,sBAGN,oCACe,gBACJ,0GAHX,oDAMC,4sCARK,qDAGN,0LAHM,SAGN,mCAsBC,4OAtBD,SAA0B,gBAsBzB,sJAeC,WAxCI,sJA4CJ,eA5CI,gSAAP,YAAO,4XAAkB,YAGxB,iBAgFE,mCAUC,iBAGE,0LAhGC,YAGN,iEAsBC,gJAzBF,ajB0CkB,wEAKJ,SkBjDf,mBlBqBwB,iOAAvB,iKkBrBD,gBlBqBC,iFkBDC,eAEC,8DlBDqB,oBkBrBxB,wEZ6JqC,iBYhGlC,kClBxCqB,iBkBrBxB,mBlB4CmB,iEAKN,kBmBjDb,2FAqFC,iCnBhEuB,sNmBoClB,mCAzDN,4BAGE,kBA4DO,2Bb8BuB,cAFA,oGc+N/B,SAnTA,iDACA,gCAIA,0IAIC,6BAhBF,kBAYC,kBAKC,wJAME,cAvBJ,oJA2BG,aA3BH,4EA4Ba,cACT,4ExBIO,ewBjCX,sExBiCE,qDwBOA,6EACc,cAOb,8CApCF,mDAgCG,UAAc,sBAOjB,qBAnDyB,wHAmDzB,SAKC,8HALD,SAUO,kBA7DR,0QA8DE,cA9DF,+DAkEU,gBAMR,2KAxEF,oBAmDC,oWAnDD,yBAmDC,sErBvCQ,kBACA,oGqBuEJ,mCA7EJ,CAPD,iDAuII,gBAQA,mBAED,0JAjID,QAAmB,qEACA,SAjBrB,qEAkLK,UAGD,0IArKF,sBAhBF,yJAuBI,gCAvBJ,sEAqNM,aACA,mGAgCF,6Fd3H+B,YcsG7B,mDAzLJ,aAGC,8HAQF,YAUU,uBA7DX,iBAmDC,0QAWC,sBA9DF,mIAmQG,gDpBvNgB,6IqB5ClB,0BrBqBA,cAAuB,cqBpBxB,SAAM,kBACL,oBACQ,aACC,gBACU,iBAEnB,gDACA,6vBrBaA,qDAAuB,qBqBpBlB,8lBrBoBL,0BAAuB,sEDTf,iBACA,+JCQR,yBAAuB,uEDTf,mBACA,qKCQR,yNqBpBD,+NrBoBwB,cHolHtB,CwBjgHI,yBAGL,6NrBtFuB,eH2lHtB,CwBxgHI,yBAGL,uMrBtFuB,2BqBmFlB,kChB3DA,CR6kHJ,CwB/gHK,gDAmBJ,iBACA,UAAU,uCrB1GZ,sBAAuB,4DAItB,aAAY,yBA0PZ,4DOnQO,aV2nHP,CU3nHkB,2DPWjB,gBAIa,yBAVQ,2DOLjB,gBVqoHL,CUroHuB,yBPKD,gDAkBP,iBHonHf,CU3oHO,kDPKe,oDAuBL,4EAKJ,WsBjDf,yItBqBwB,CsBrBxB,kGAyEC,iEAzED,+HtBqBwB,qSAAwB,kBsBrBhD,qBA6BC,iNtBRuB,kBAAwB,2GAAxB,gCsBrBxB,eA6BC,mFAyCQ,gBAKT,2JtBtDC,gCAAuB,mBsBsDxB,mGAWC,0CtBjE+C,UsBsDhD,mBAWE,SACA,+EAgCD,yGAUC,atB5GsB,0FsByGtB,gBtBzGsB,+EsB+GxB,6EAA+B,yBAY5B,2IjBnGG,cR4sHJ,CQ5sH2B,yBiB4G5B,0IjB5GK,eRktHJ,CQltH2B,yBiB4G5B,+HAFA,czB8mHC,CQxtHI,yBiB4GL,yGtBpIuB,mBHsvHtB,CyBpnHD,yBjB1GK,gHLxBkB,cH4vHtB,CyB1nHD,yBjB1G4B,yGLxBL,gBHkwHtB,CGlwHsB,yBKwBlB,4GLxBkB,kIKwBlB,gBiBsJL,iBzB6lHC,CyB7lH6B,sFA6B5B,iBtB3MqB,qFsBgNrB,iBtBhNqB,qIsBuMvB,qHAmCE,gCAnCF,8BAmCE,mBACC,iBACA,mBAkBE,QhB/I0B,yBgBiJ1B,4GtBhQkB,iBAAwB,uDKwB1C,2BRwxHJ,CyB7/GA,yBAKY,qOtBxTU,YsBiTtB,yBjBzRI,kBiB2RJ,sBzBygHA,CyBz/GG,yBAEA,iIApBE,4BAEL,qCzBmhHA,CyBv+GI,yBAGS,kIjB1UT,eRozHJ,CQpzHI,yBiB2RJ,yGtBnTsB,uFKwBlB,8DR4zHJ,CyBprHD,sGtBhKuB,yBsBrBxB,2GtBqBwB,yBAuBL,qNuBtBnB,iBvBDC,8GAAuB,iBAuBL,qFa5CnB,kCbqBwB,earBxB,gBAAkB,cACjB,UACA,kBACS,2FAgBT,mBbEuB,4FaLvB,oBb4BkB,uIc5CnB,0BdqBC,cAAuB,mBcpBxB,gCAEC,2tBdkBA,qDAAuB,kkBcItB,sFdJsB,UDTf,iBACA,yJCQR,wCDRQ,wXCQR,yBAAuB,sEDTf,kBACA,qMCQR,yBAA+C,sEDTvC,kBACA,+MCQe,yBcpBxB,sEfWS,kBACA,qEAER,YeqCD,iCd/BwB,gEckCvB,cACA,uIAxDD,8CdqBC,qBAAuB,kEciEX,aAIZ,yBdrEuB,qEc2HpB,aAGF,kFAsBC,Yd7HgB,kEAKN,qDe9CZ,+BfkBuB,2IelBvB,sEhBSQ,iBACA,4FgBcP,mCfNsB,0IelBvB,kEAwBC,oEACgB,SACN,UACT,mGAyCA,kFflDqB,UDTf,iBACA,mICQe,iBelBvB,2FAsEC,6BfpDsB,SelBvB,mBAsEC,iHAWC,ef/DqB,4Fe8DpB,uBf9DoB,mDelBvB,2DAwBC,2FAwGC,iBf9GqB,mGeoHpB,sBfpHoB,6FeqInB,mBfrImB,mGeqJpB,8BfrJoB,CelBvB,qEAqKI,qDACA,+BfpJmB,iJelBvB,sEhBSQ,iBACA,kGgBcP,mCfNsB,iCelBvB,yGAwBC,sIACgB,SACN,UACT,yGfTqB,wBelBvB,oEhBSQ,iBACA,4IgBVR,kHAsEC,6BAtED,4BAsEC,uHfpDsB,iHe8DpB,uBf9DoB,mDelBvB,2DAwBC,iGAwGC,iBf9GqB,wHAuBL,sJgB5CA,qBhBqBlB,kXAAuB,4SgBpBH,eAOpB,8LhBaA,aAAuB,yBgBpBxB,kDAOC,4SAPoB,iBAOpB,kDAGE,kPhBUqB,kBgB2JtB,4SA/KmB,mBAOpB,sSAwKsB,WAEpB,iEAAmB,yGAwBlB,kEAA0B,sFAIzB,oBACA,oTA7BF,4OAwBC,eAAyB,0SA1BN,aAEpB,oWAgFC,0DAAmB,sGC9PrB,8DAFM,sBAGN,yBACC,0GAFD,oDAA0B,4sCAFpB,qDAGN,0LAHM,SAGN,mCAsBC,4OAtBD,yBAsBC,sJAeC,WAxCI,sJA4CJ,eA5CI,gSAkFW,aAlFX,yYAGN,yBAgFE,iBAUC,0LA7FG,aAGN,mEAsBiB,gJA6ID,ajB5HC,wEAKJ,SkBjDf,oPlBqBC,iKkBrBD,gBlBqBC,iFkBDC,eAEC,2DlBDqB,qBkBrBxB,wEZsUoC,iBYzQjC,iClBxCqB,CAuBL,iEAKhB,kBmBjDH,2FAqFC,iCnBhEuB,sNmBoClB,mCnBpC0C,WmBrBhD,iBAGE,kBA4DI,2BAUS,cb2MgB,oGcsC9B,SAnTA,iDACA,gCAIA,0IAIC,6BAhBF,kBAYC,kBAKC,wJAME,cAvBJ,oJA2BG,aA3BH,4EA4Ba,cACT,4ExBIO,ewBjCX,sExBiCE,qDwBOA,6EACU,cAOT,8CApCF,mDAgCG,UAAS,sBAOZ,sJAAuB,8HAAvB,SAUM,kBA7DP,0QA8DE,cA9DF,+DAkEM,gBAMJ,2KAxEF,oBAmDC,oWAnDD,yBAmDC,sErBvCQ,kBACA,oGqBuEJ,eA7EJ,iDACA,iBAmIG,oBAMD,0IAjID,SAAmB,qEAyJI,UAEnB,qEAOD,WAGD,0IArKF,sBAhBF,yJAuBI,gCAvBJ,sEAqNM,cACA,mGAgCF,8Fd6B2B,YclDzB,8HA9KL,aAUU,uBA7DX,iBAmDC,0QAWC,sBA9DF,mIAmQG,kDdtOY,6Ie7Bd,0BrBqBA,cAAuB,cqBpBxB,SAAM,kBACL,oBACQ,aACC,iCAGT,kDACA,6vBrBaA,qDAAuB,qBqBpBxB,8lBrBoBC,0BAAuB,sEDTf,iBACA,+JCQR,yBAAuB,uEDTf,mBACA,qKCQR,yNAA+C,+NAAxB,cH41JtB,CwBzwJD,yBhB3D4B,6NLxBL,eHm2JtB,CwBhxJD,yBhB3D4B,uMLxBL,2BqBmFvB,kChB3DK,CRq1JJ,CwBvxJK,gDAmBJ,iBACA,UAAU,uCrB1GZ,sBAAuB,4DAItB,aAAY,yBA0PZ,4DOnQK,aVm4JL,CUn4JkB,2DPWjB,gBAIW,yBAIZ,2DOnBK,gBV64JL,CU74JkB,yBPKI,gDAkBpB,iBH43JF,CUn5JO,kDPKe,oDMQT,4ENoBA,WsBjDf,yItBqBwB,CsBrBxB,kGAyEC,iEtBpD+C,iBsBrBhD,8GtBqBwB,uTsBrBxB,qBA6BC,iNtBRuB,6JsBrBxB,eAA2B,OA6B1B,4EAyCM,gBAKP,2JtBtDC,gCAAuB,mBsBsDxB,mGAWC,0CtBjEuB,UsBsDxB,mBAA2B,SAYzB,+EAgCD,yGAUC,atB5GsB,0FsByGtB,gBtBzGsB,+EsB2GrB,gBAIH,yBtB/GwB,2IKwBlB,cRi9JJ,CQj9J2B,yBiB4G5B,0IjB5GK,eRu9JJ,CQv9J2B,yBiB4G5B,+HAFA,czBm3JC,CQ79JI,yBiB4GL,yGtBpIuB,mBH2/JtB,CG3/JsB,yBKwBlB,gHLxBkB,cHigKtB,CyB/3JD,yBjB1GK,yGLxBkB,gBHugKtB,CGvgKsB,yBKwBlB,4GLxBkB,kIKwBlB,gBRu/JJ,CyBj2JD,sFA6BE,iBtB3MqB,qFsBgNrB,iBtBhNqB,qGsBqNrB,gCAdF,qHAmCE,gCAnCF,8BAmCE,mBACC,SAAS,QACT,gDAkBE,4HtB9PkB,8CsBuMvB,yBAgGI,4GtBvSmB,wEKwBlB,2BRgiKJ,CyBrwJA,yBAKG,qOtBxTmB,YAAwB,WKwB1C,gCiB2RJ,sBzBixJA,CyBpwJS,yBAKN,iIApBH,4BAEA,qCzB2xJA,CyB/uJI,yBAGS,kIAjDR,ezBmyJL,CQ5jKI,yBiB2RJ,yGtBnTsB,uFKwBlB,8DRokKJ,CQpkK2B,sGLxBL,yBsBrBxB,2GtBqBwB,yBAuBL,8NwBtBnB,iBxBDC,iHAAuB,kBwBMxB,iBxBiBmB,wFa5CnB,kCbqBwB,earBxB,gBAAkB,cACjB,UAAW,kBAEF,8FAgBT,mBbEuB,+FaLvB,oBb4BkB,6Ic5CnB,0BdqBC,cAAuB,mBcpBxB,gCAEC,yvBdkBA,qDAAuB,0lBAAvB,0BAAuB,sEDTf,iBACA,+JCQR,wCDRQ,oYCQR,yBAAuB,sEDTf,kBACA,2MCQe,+FDTf,kBACA,qNCQe,yBcpBxB,sEfWS,kBACA,wEAER,YeqCD,iCd/BwB,mEckCvB,cAGD,6IA1DA,6CdqBC,oBcqEA,6IAkDG,YAOF,qDd9HsB,Cc+BxB,qEAiHG,YdzHgB,qEAKJ,qDe9Cd,+BfkBuB,8IelBvB,sEhBSQ,iBACA,+FgBcP,mCfNsB,0IelBvB,kEAwBC,oEACS,SACD,UACP,sGfTqB,4FDTf,iBACF,cAAE,wHCQe,iBelBvB,8FAsEC,6BfpDsB,SelBvB,mBAsEC,oHAWC,ef/DqB,+Fe8DpB,uBf9DoB,mDelBvB,iBAwBC,qCAoFE,gDTyUgC,8FSrTjC,iBf9GqB,4NeqInB,mBfrImB,qIelBvB,wEAqKI,qDACA,8BfpJmB,qJelBvB,sEhBSQ,iBACA,qGgBcP,mCfNsB,iCAA2B,yGeMjD,sIACS,SACD,UACP,4GfTqB,wBelBvB,oEhBSQ,iBACF,cAAE,iICQ0C,iBelBlD,oGAsEC,6BfpDiD,SelBlD,mBAsEC,0HfpDsB,oHe8DpB,uBf9DoB,mDelBvB,iBAwBC,qCAoFE,gDTyUgC,oGSrTjC,iBf9GqB,2HAuBL,4JAvBlB,mZAAuB,kTgBpBH,eAOpB,oMhBaA,YAAuB,oCgBpBxB,kBAOC,gDAsFY,kTA7FQ,iBAOpB,gDAGE,wPhBUqB,kBgB2JtB,kTA/KmB,mBAOpB,4SAwKsB,WAEpB,iEAAmB,yGAwBlB,wJAIC,kBAAsB,0TA5BxB,wOAwBC,+TA1BmB,aAEpB,0WAgFC,0DAAmB,4GC9PrB,8DAFM,sBAGN,oCACU,kBACC,gBACE,gHAJb,oDAME,4vCARI,qDAGN,gMAHM,SAGN,mCAsBC,kPAtBD,yBAsBC,4JAeyB,WAxCpB,4JA4CoB,eA5CpB,4SAAP,YAAO,wYAGN,6BAA6B,mBAgF3B,kBAUC,iBAGE,gMAhGC,YAGN,iEAsBC,sJAzBF,ajB0CkB,2EAKJ,SkBjDf,mBlBqBwB,0OAAvB,uKkBrBsB,gBlBqBtB,oFkBDC,eAEC,8DlBDqB,oBkBrBxB,2EZkgByC,iBYrctC,kClBxCqB,iBkBrBxB,mBAmEG,kBlBvBgB,oEAKJ,kBmBjDf,8FAqFC,iCnBhEuB,4NmBoClB,oBnBpCkB,0BmBrBxB,iBAGE,kBA4DI,8BboZ8B,cACI,0Gc1JvC,SAnTA,oDACA,gCAIA,gJAIC,6BAhBF,kBAYC,kBAKC,8JAMS,cAvBX,0JA2BG,aA3BH,+EA4BiB,cACb,+ExBIkC,ewBjCtC,yExBiCE,qDwBOA,gFAxCF,cAgDG,8CApCF,sDAgCG,UACA,sBAMH,4JAKC,oIALD,SAUO,kBA7DR,sRA8DO,cA9DP,kEAmEI,gBAKF,iLAxEF,oBAmDC,gXAnDD,yBAmDC,sErBvCQ,kBACA,0GqBuEJ,mCA7EJ,CAPD,oDAuII,gBAQA,mBAED,0CArIF,gJAIC,QAhBF,wEA0KM,SAOF,wEACC,UAGD,gJArKF,sBAhBF,+JAuBW,gCAvBX,yEAqNM,aACA,sGAgCF,gGAtPJ,YAiOM,sDAzLJ,aA0MU,0BAEN,oIAjML,YAUU,uBA7DX,iBAmDC,sRAWM,yCA9DP,wIAmQG,gDpBvNgB,mJqB5ClB,0BrBqBA,cAAuB,cAA2B,SqBpB7C,kBACL,oBACQ,aACC,kBACU,iBAEnB,gDACA,2xBrBaA,qDAAuB,qBqBpBxB,snBrBoBC,0BAAuB,sEDTf,iBACA,qKCQR,yBAAuB,uEDTf,mBACA,2KCQR,sMAAuB,4QHkoMtB,CwB/iMD,yBhB3D4B,mOLxBL,eHyoMtB,CwBtjMD,yBhB3D4B,6MLxBL,2BqBmFvB,kChB3DK,CR2nMJ,CwB7jMK,mDAmBG,iBACP,UAAwB,uCrB1G1B,sBAAuB,+DAItB,aAAY,yBA0PZ,+DOnQO,aVyqMP,CUzqMkB,8DPWjB,gBAIc,yBAVO,8DOLf,gBVmrMP,CUnrMuB,yBPKD,mDAkBL,iBHkqMjB,CUzrMO,qDPKe,oDAuBL,+EAKM,WsBjDzB,8EtBqBwB,4DsBrBxB,qGAyEC,iEtBpDuB,iBsBrBxB,iHtBqBwB,6TsBrBxB,qBA6BC,uNtBRuB,gKsBrBxB,sBA6BC,+EAyCS,gBAKV,iKtBtDC,gCAAuB,mBsBsDxB,sGAWC,0CtBjEuB,UsBsDxB,uBAWE,WACA,kFAgCD,4GAUC,atB5GsB,6FsByGtB,gBtBzGsB,kFsB+GxB,sGAYG,8IjBnGG,cR0vMJ,CQ1vMI,yBiB4GL,6IjB5GK,eRgwMJ,CQhwMI,yBiB4GL,kIAFA,czB4pMC,CQtwMI,yBiB4GL,4GtBpIuB,mBHoyMtB,CGpyMsB,yBKwBlB,mHLxBkB,cH0yMtB,CyBxqMD,yBjB1GK,4GLxBkB,gBHgzMtB,CGhzMsB,yBKwBlB,+GLxBkB,kIKwBlB,gBiBsJL,iBzB2oMC,CyB3oMD,yFA6BE,iBtB3MqB,wFsBgNrB,iBtBhNqB,wIsBuMvB,wHtBvMuB,gCsBuMvB,8BAmCE,mBACC,iBACA,mBACM,QhBmO0B,yBgBhN9B,+GtBhQkB,wEKwBlB,2BRs0MJ,CyB3iMA,yBAKG,2OtBxTmB,uBKwBlB,gCiB2RJ,wBzBujMA,CyBviMG,yBAEA,oIApBH,4BAEA,qCzBikMA,CyBrhMI,yBAGS,qIAjDb,ezBykMA,CQl2MI,yBiB2RJ,4GtBnTsB,uFKwBlB,8DR02MJ,CQ12M2B,yGLxBL,yBAA2B,8GAA3B,yBAuBL,iOyBtBnB,iBzBDC,kHAAuB,iBAuBL,yFa5CnB,kCbqBwB,earBxB,gBAAkB,cAAkB,UAC5B,kBAEA,+FAgBP,mBbEuB,gGaLvB,oBb4BkB,+Ic5CnB,0BdqBC,cAAuB,mBcpBxB,gCAEC,6BAEA,mwBdgBA,qDAAuB,kmBAAvB,0BAAuB,sEDTf,iBACA,iKCQR,wCDRQ,wYCQR,yBAAuB,sEDTf,kBACA,6MCQe,+FDTf,kBACA,uNCQe,yBcpBxB,sEfWS,kBACA,yEAER,YeqCD,iCd/BwB,oEckCvB,cAGD,+IA1DA,8CdqBC,qBAAuB,sEM8rBa,gBQznBpC,oCdrEuB,acqEvB,eAGE,cAAe,wBAOd,0BAQa,yEAIM,YAmCrB,qDd9HsB,Cc+BxB,sEAiHG,YAMD,4EAKQ,kBAMR,kFdjKD,uBAAuB,gCyB4BvB,mBAGE,SACY,sDAEA,+EnB6pBkC,kBN/rBhD,qHAAuB,kByB2CvB,wBAGE,SACA,OAAS,kBACO,kDAEhB,kPzBlDF,4BAAuB,wSAAvB,gBAAuB,oByB8DvB,gRAME,uBACA,mBACA,mMzBtEF,8DAAuB,+EyBgF4D,kBzBhFnF,oNAAuB,sEyBwFvB,oJ1BhGA,imI0BwHG,wBAAuB,oE1BzHlB,iBACR,onE0BwHG,wBAAuB,oE1BzHlB,iBACR,+rE0BwHG,wBAAuB,oE1BzHlB,iBACR,uTCQuB,qiByBkJvB,sPzBlJuB,oEDRf,qvJ0BsLJ,0BAAuB,sE1BvLnB,iBACA,87E0BsLJ,0BAAuB,sE1BvLnB,iBACA,ygF0BsLJ,0BAAuB,sE1BvLnB,iBACA,2EAER,qDCMA,kEAAuB,2FAAvB,eAAuB,qEyBoMvB,kBAIC,oHzBxMsB,4EyBoMvB,kEAIC,UAOC,yOzB/MqB,mDAA4B,eyBoMnD,oHzBpMuB,iByBoMvB,qHzBpMuB,gHAAvB,qCAAuB,qIyBoMvB,+GzBpMA,kBAAuB,8HAuBL,sEAKJ,qDe9Cd,+BfkBuB,+IelBvB,sEhBSQ,iBACA,kHCQe,0BelBvB,sEhBSQ,iBACA,sKgBcP,mCfNsB,0IelBvB,kEAwBC,oEACS,SACR,UACA,kBAAsB,uGfTD,4FDTf,iBACR,cAAQ,yHCQe,iBelBvB,sGA6CG,oCA7CH,oEhBSQ,iBACR,kBAAQ,gEACR,wDgBoCsB,gEAElB,sDACW,0DACO,WAClB,YAAiB,+FAkBpB,6BfpDsB,SelBvB,mBAsEC,qHAWC,ef/DqB,gGe8DpB,uBf9DoB,mDelBvB,iBAwBC,qCAoFE,kDT6hBiC,+FSzgBlC,iBf9GqB,8NeqInB,mBfrImB,sIelBvB,yEAqKI,qDACA,8BfpJmB,sJelBvB,sEhBSQ,iBACA,wHCQe,0BelBvB,sEhBSQ,iBACA,4KgBcP,mCfNsB,0IelBH,kEAwBnB,oEACS,SACR,UACA,kBAAsB,6GfTD,wBelBvB,oEhBSQ,iBACR,cAAQ,kICQe,iBelBvB,4GfkBuB,oCelBvB,oEhBSQ,iBACR,kBAAQ,gEACR,wDgBoCsB,gEAElB,sDACW,0DACO,WAClB,YAAiB,qGAkBpB,6BfpDsB,SelBvB,mBAsEC,2HfpDsB,qHe8DpB,uBf9DoB,mDelBvB,iBAwBC,qCAoFE,kDT6hBiC,qGSzgBlC,iBf9GqB,4HAuBL,8JAvBlB,uZAAuB,uRgBpBH,mUAOpB,sMhBaA,mBAAuB,iCgBpBH,0BAOpB,gBA6DuB,kDAanB,kNhB7DmB,0BgBwBvB,kBAAkB,UAEjB,oBAIG,YACkB,kDAEA,oTArDF,iBAOpB,kDA6IC,8fhBhIsB,QgB2ItB,iQhB3IsB,kBgBpBxB,oTAAqB,mBAOpB,8SAwKsB,WAEpB,iEAAmB,yGAwBlB,wJAIC,iBAAgB,4TA9BU,eAE5B,6NAwBC,iUA1BmB,aAEpB,4WA8EyB,0DAEL,8GC9PrB,8DAFM,sBAGN,yBAAyC,kHADzC,oDAME,4wCARI,qDAGN,kMAHM,SAGN,mCAsBC,oPAtBD,yBAsBC,8JAeyB,WAxCpB,8JA4CoB,eA5CpB,gTAAP,aAAO,4YAGN,sCAgFE,mNAnFI,aAGN,mEAsBC,0HAvBD,YAA8B,6BAFxB,MAGN,wGAsJa,wJAzJd,ajB0CkB,4EAKJ,SkBjDf,mBlBqBwB,6OAAvB,yKkBrBsB,gBlBqBtB,qFkBDC,eAEC,+DlBDqB,qBkBrBxB,+EZmtB+C,cY7nB5C,qFA4CC,mClB7GoB,mBkBrBxB,kBAcC,2FA2GI,gClBpGmB,kBkB+DtB,oBAKE,YAaE,UACA,kBAAgB,kDAIf,2FAgBH,alBtGoB,0FkB0GpB,gBlB1GoB,yBkB+DtB,wHlB/DsB,aHggPtB,CqBh5OC,yBbxF0B,uHLxBL,gBHsgPtB,CQ9+OI,yBawF2B,4GlBhHT,cH4gPtB,CGr/OiB,qEAKJ,kBmBjDf,yFAqFC,uHnBhEuB,gGmB+DtB,kCnB/DsB,gCmBrBxB,4NnBqBwB,qImBLpB,8BnBKoB,mDmBrBxB,6HnBqBwB,kBKwBlB,+Bc8CJ,cAEE,4GC6NH,SAnTA,qDACA,gCAIA,kJAIC,6BAhBF,kBAYC,kBAKC,gKAMS,cAvBX,4JA2BG,aA3BH,gFA4BiB,cACb,gFxBIkC,ewBjCtC,0ExBiCE,qDwBOA,iFAxCF,cAgDG,8CAhD2B,uDA4C1B,UACA,sBAMH,8JAKC,sIALD,SAUO,kBA7DR,0RA8DO,cA9DP,mEAmEI,gBAKF,mLAxEF,oBAmDC,oXAnDD,yBAmDC,sErBvCQ,kBACA,oEAER,cqBoGE,kGAEC,4GAMA,4BApHH,cAPD,sDAkIc,iBASV,oBAMD,kJAjID,SAhBF,yEA6JM,SAoBF,yEACC,UAGD,kJArKF,sBAhBF,iKAuBW,gCAvBX,0EAqNM,aACA,uGAgCF,iGArBE,kJA9KL,YAUU,uBA7DX,iBAmDC,0RAWM,yCA9DP,0IAmQG,kDpBvNgB,qJqB5ClB,0BrBqBA,cAAuB,uBqBpBlB,kBACL,oBACQ,gBACC,kBAET,aACA,kBACA,iBAgCC,kDACA,qyBrBpBD,qDAAuB,qBqBpBxB,8nBrBoBC,0BAAuB,sEDTf,iBACF,uKCQN,yBAAuB,uEDTf,mBACA,6KCQR,wMAAuB,8YAAvB,cAAuB,uMAAvB,QAAuB,0BqBpBxB,SAAM,6BA+CJ,iCAE+B,sEAIlB,kIAEW,mKrBnCzB,oFAAuB,iPqBpBxB,yBA2DG,uOrBvCqB,cHm5PtB,CwBh0PD,yBhB3DK,qOLxBkB,eH05PtB,CwBv0PD,yBhB3DK,+MLxBkB,2BqBmFvB,kChB3DK,CR44PJ,CwB90PK,oDAmBG,iBACP,UAAwB,uCrB1G1B,sBAAuB,gEAItB,aAAY,yBA0PZ,gEOnQO,aV07PP,CU17PkB,+DPWjB,gBAIc,yBAVO,+DOLf,gBVo8PP,CUp8PuB,yBPKD,oDAkBL,iBHm7PjB,CU18PO,sDPKe,oDAuBL,gFAKM,WsBjDzB,8EtBqBwB,4DsBrBxB,sGAyEC,iEtBpDuB,gBsBrBxB,kHtBqBwB,+TsBrBxB,oBA6BC,+GtBRuB,gCsBrBxB,sBA6BC,gFAyCS,gBAKV,mKtBtDC,gCAAuB,mBsBsDxB,uGAWC,0CtBjEuB,UsBsDxB,qBAA2B,UAYzB,mFAgCD,6GAUC,atB5GsB,8FsByGtB,gBtBzGsB,mFsB+GxB,yCtB/GwB,+IKwBlB,cRmgQJ,CQngQI,yBiB4GL,8IjB5GK,eRygQJ,CQzgQI,yBiB4GL,mItBpIuB,cHuiQtB,CQ/gQI,yBiB4GL,6GtBpIuB,mBH6iQtB,CG7iQsB,yBKwBlB,oHLxBkB,cHmjQtB,CGnjQsB,yBKwBlB,6GLxBkB,gBHyjQtB,CGzjQsB,yBKwBlB,gHLxBkB,kIKwBlB,gBRyiQJ,CyBn5PD,gFAoBC,gDA5IF,CtBtDwB,mFsBwatB,+IADC,iEA3CF,oCAQG,WAAmB,6BACN,iBACb,yGtBtYoB,6CsB2ZpB,uOtB3ZoB,kCsB4XvB,8BA+BG,yBAQU,gHtBnaU,4DsB0atB,ezBksPA,CQplQI,yBiBoZJ,qJjBpZI,gDR2lQJ,CyBvsPA,yBAWC,6GtBvbqB,uFKwBlB,sFRomQJ,CyB59PD,0GtBhKuB,iKsBQvB,oCAkdE,oDZ7dc,yCTJjB,0BDEiB,CCAhB,yCAGD,YAAuB,eACP,cAUhB,6CQ/BA,kBACQ,oGAGY,yBAEpB,WACA,gDAcC,uBACA,gCRWA,SAFD,UAAuB,eKmBH,kBGlCnB,sBHkCmB,CGjCnB,2CRcD,cQtBQ,2FAwER,0BRlDA,kBDdC,oFSuED,gCRzDA,oDQ0DC,wBHzCoB,kGLjBrB,kFQiEE,oDRjEF,gBQ0EC,yBAGD,yCACC,cZ8nQC,CY7nQD,0CR/ED,2BQkFC,gCR9ED,2BQnCA,kBACQ,oGAGY,yBAEpB,WACA,iDAuBC,uBACA,gCRMA,SAFD,UAAwB,eKeJ,kBGlCnB,sBHkCmB,CGjCnB,4CRkBD,cJ0uQA,6FY5rQA,0BR9CwB,kBDlBvB,sFSuED,gCRrDA,oDQsDC,wBHzCoB,oGLbrB,sEAAwB,aQ6DtB,qDR7DF,gBQsEC,yBAGD,0CACC,cZksQC,CYjsQD,2CR3ED,2BQ8EC,gCR1ED,2BQvCA,kBACQ,oGAGY,yBAEpB,WACA,kDAgCC,WAAgB,YAChB,gCRCA,SAFD,UAAyB,eKWL,kBGlCnB,sBHkCuB,CGjCb,6CRsBX,cJ0yQA,+FYhwQA,0BAAE,kBThED,wFSuED,gCRjDA,oDQkDC,wBHzCoB,sGLTrB,uEQiDG,aAQD,sDRzDF,gBQkEC,yBAGD,2CACC,cZswQC,CYrwQD,4CRvED,2BQ0EC,gCRtED,2BQ3CA,kBACQ,oGAGY,yBAEpB,WACA,mDAyCC,WCpBS,0BDqBT,kBRJA,SAFD,UAA0B,eKON,kBGlCnB,YACA,WAAY,8CR0Bb,cJ02QA,iGGp4QiB,YC0BjB,cQsCE,kBThED,0FSuED,gCR7CA,oDQ8CC,wBHzCoB,wGLLrB,wEQ6CI,aAQF,uDAQD,gBACA,yBTxFgB,4CS4FhB,cZ00QC,CYz0QD,4CRnED,2BQsEC,gCRlED,2BQ/CA,kBACQ,oGAGY,yBAEpB,WACA,mDAkDC,WCrCQ,0BDsCR,kBRTA,SAFD,UAA0B,eKGN,kBGlCnB,uBACY,sBACZ,mDA4CC,oDACY,sFACoB,8CAGhC,cAAW,iGTlDI,YC8BjB,cQkCE,kBThED,0FSuED,gCRzCA,oDQ0CC,wBHzCoB,wGLDrB,wEQyCI,aAQF,uDRjDwB,gBQ0DzB,yBTxFgB,4CS4FhB,cZm5QC,CYl5QD,yCR/DD,2BQkEC,cTpEE,oEAKA,gB0BjDH,kC1BqBiB,iB0BrBjB,gBACC,yBAEA,iG1BkBgB,gBHoiRf,CG7gRC,uEAKY,gB2BjDf,mB3BqBiB,eAAwB,iB2BrBzC,gBACC,yBAEA,oG3BkBgB,gBHwlRf,CGjkRC,mEAKA,SAAY,yI4BjDf,UAAyB,wB5BqBxB,CAAgB,sE4Bff,cAGD,kFAUC,8F5BED,gBAuBE,2DAKA,qDAAY,kBe9Cd,afkBgB,oIelBhB,sEhBSQ,iBACF,qFgBcL,mCfNe,0IelBhB,kEAwBC,oEACS,SACR,UACA,4FAyCA,kFflDc,UDTR,iBACR,cAAQ,8GCQQ,iBelBhB,oFAsEC,6BfpDe,SelBhB,mBAsEC,0GAWC,ef/Dc,qFe8Db,0Cf9Da,gCelBhB,iBAAiB,mBAwBhB,gDAoFE,oFAoBD,iBf9Gc,4FeoHb,oBfpHa,sFeqIZ,mBfrIY,4FeqJb,8BfrJa,CAuBd,yHAvBsC,WcrBzC,6BdqBiB,mBAAwB,ScpBzC,uBACY,qpBADZ,qCdoBC,gBAAgB,0gBcpBjB,sFdoBC,UDTQ,iBACF,2IebU,uCdqBhB,CDRQ,4VCQR,yBAAgB,sEDTR,kBACA,uLCQR,yBAAgB,sEDTR,kBACA,iMCQQ,yBcpBjB,sEfWS,kBACA,8DekCc,6BAKvB,gBd/BiB,yDciChB,cACM,yHdlCkC,iBcrBzC,gDA0FC,yHRA+B,YQsD5B,iBAGF,kCd9He,Cc+BjB,2DRsCgC,YN9C7B,mEAKA,gB6BjDH,kB7BqBiB,6F6B6DhB,wB7B7DgB,iB6BrBjB,gBAIE,yY7BiBe,qD6BrBjB,qBAIE,mL7BiBD,aAAgB,gBAAwB,e6BrBzC,iBAuDE,gBAAM,yBAWJ,0HAkBH,mDhCk6RC,CQz8RI,yBwByCL,wK7BjEgB,e6B+DhB,iFxBvCK,CRk9RJ,CgCz6RD,yCAWa,iBACE,UACb,SAAiB,oD7B9EH,qDAGf,aACA,yBA0PA,qDAvPa,aHo/Rb,CUhgSO,oDPKQ,gBAUb,yBAIF,oDACc,gBHs/Rd,CU1gSO,yBPmBP,yCAIE,iBHy/RF,CUhhSD,2CPKgB,oDAuBd,+HqB5CF,wCrBqBgB,uBqBpBX,kBACL,oBACQ,aACD,iCAGP,gDACA,urBAKC,qCrBQD,gBAAgB,qBqBpBjB,siBAqBE,sFrBDe,UDTR,iBACF,iJsBcL,oFrBNe,YDTR,mBACA,uJsBkBP,arBVD,qJqBcC,gBrBdD,yBAAgB,+NHolSf,CwBjgSD,yBhB3DK,+MLxBW,eH2lSf,CwBxgSD,yBhB3DK,yLLxBL,WAAgB,gBqBmFhB,kChB3DK,CR6kSJ,CG9kSC,oEAKA,gB0BjDH,kC1BqBiB,iB0BrBjB,gBACC,yBAEA,iG1BkBgB,gBHypSf,CGloSC,uEAKY,gB2BjDf,mB3BqBiB,eAAwB,iB2BrBzC,gBACC,yBAEA,oG3BkBgB,gBH6sSf,CGtrSC,mEAKA,SAAY,yI4BjDf,UAAyB,wB5BqBxB,CAAgB,sE4Bff,cAGD,kFAUC,8FALC,gB5B8BA,2DAKA,qDAAY,kBe9Cd,afkBgB,oIelBhB,sEhBSQ,iBACF,qFgBcL,mCfNe,0IelBhB,kEAwBC,oEACS,SACR,UACA,4FAyCA,kFflDc,UDTR,iBACR,cAAQ,8GCQQ,iBelBhB,oFAsEC,6BfpDe,SelBhB,mBAsEC,0GAWC,ef/Dc,qFe8Db,0Cf9Da,gCelBhB,2DAwBC,oFAwGC,iBf9Gc,4FeoHb,sBfpHa,sFeqIZ,mBfrIY,4FeqJb,8BfrJa,CAuBd,yHAvBsC,WcrBzC,6BdqBiB,mBAAwB,ScpBzC,uBACY,qpBADZ,qCdoBC,gBAAgB,0gBcpBjB,sFdoBC,UDTQ,iBACF,2IebU,uCdqBhB,CDRQ,4VCQR,yBAAgB,sEDTR,kBACA,uLCQR,yBAAgB,sEDTR,kBACA,iMCQQ,yBcpBjB,sEfWS,kBACA,8DekCc,6BAKvB,gBd/BiB,yDciChB,cACM,yHdlCkC,iBcrBzC,kDdqBiB,2DciEd,sBAIF,gBdrEgB,8DcmHP,aAQN,gBAGF,2DASQ,YdhHP,mEAKA,gB6BjDH,kB7BqBiB,6F6B6DhB,wB7B7DgB,iB6BrBjB,gBAIE,yY7BiBe,qD6BrBjB,qBAIE,mL7BiBD,aAAgB,gBAAwB,e6BrBzC,iBAuDE,gBAAM,yBAWJ,0HAkBH,mDhCmhTC,CQ1jTI,yBwByCL,wK7BjEgB,e6B+DhB,iFxBvCK,CRmkTJ,CgC1hTD,yCAWa,iBACE,UACb,SAAiB,oD7B9EH,qDAGf,aACA,yBA0PA,qDAvPa,aHqmTb,CUjnTO,oDPKQ,gBAUb,yBAIF,oDACc,gBHumTd,CU3nTO,yBPmBP,yCAIE,iBH0mTF,CUjoTD,2CPKgB,oDAuBd,+HqB5CF,wCrBqBgB,uBqBpBX,kBACL,oBACQ,aACD,iCAGP,kDACA,urBAKC,qCrBQD,gBAAgB,qBqBpBjB,siBAqBE,sFrBDe,UDTR,iBACF,iJsBcL,oFrBNe,YDTR,mBACA,uJsBkBP,arBVD,qJqBcC,gBrBdD,yBAAgB,+NHqsTf,CwBlnTD,yBhB3DK,+MLxBW,eH4sTf,CwBznTD,yBhB3DK,yLLxBL,WAAgB,gBqBmFhB,kChB3DK,CR8rTJ,CG/rTC,uEAKY,gB0BjDf,mB1BqBiB,gC0BrBjB,gBACC,yBAEA,oG1BkBgB,gBH0wTf,CGnvTC,0EAKY,gB2BjDf,mB3BqBiB,eAA2B,iB2BrB5C,gBACC,yBAEA,uG3BkBgB,gBH8zTf,CGvyTC,sEAKY,wJ4BjDf,mB5BqBC,gBAAgB,yE4Bff,cAGD,qFAUC,a5BEe,oF4BLf,gB5B4BC,8DAKA,qDAAY,kBe9Cd,afkBgB,uIelBhB,sEhBSQ,iBACF,wFgBcL,mCfNe,0IelBhB,kEAwBC,oEACS,SACR,UACA,+FAyCA,kFflDc,UDTR,iBACR,cAAQ,iHCQQ,iBelBhB,uFAsEC,6BfpDe,SelBhB,mBAsEC,6GAWC,ef/Dc,wFe8Db,uBf9Da,mDelBhB,iBAAiB,mBAwBhB,8CT6ZsC,oBSxU3B,uFAmBV,iBf9Gc,+FeoHb,sBfpHa,yFeqIZ,mBfrIY,+FeqJb,8BfrJa,CAuBd,+Hc5CH,wCdqBiB,mBAA2B,ScpB5C,uBACY,mrBAeV,qCdID,gBAAgB,kiBcpBjB,sFdoBiB,UDTR,iBACF,iJeiBL,uCdTD,CDRQ,wWCQR,yBAAgB,sEDTR,kBACA,6LCQR,yBAAgB,sEDTR,kBACA,uMCQQ,yBcpBjB,sEfWS,kBACA,iEAER,YAAc,iBeqCf,gBd/BiB,4DciCJ,cACJ,+HAvDT,6CdqBC,oBcqEA,+HAkDG,6BAOF,oCd9He,Cc+BjB,8DRuXyC,YN/XtC,sEAKY,gB6BjDf,kB7BqBiB,gG6B6DhB,wB7B7DgB,iB6BrBjB,gBAIO,qZ7BiBU,qD6BrBjB,qBAIE,yL7BiBD,aAAgB,gBAA2B,e6BrB5C,iBAuDE,gBAAwB,yBAWtB,6HAkBH,mDhCyoUC,CQhrUI,yBwByCL,mG7BjEgB,uF6B+DhB,iFxBvCK,CRyrUJ,CgChpUD,4CAWiB,iBACF,mBAGd,oD7BhFe,wDAGT,aACI,yBA0PV,wDOnQD,aVuuUC,CUvuUO,uDPWN,gBAIC,yBAVa,uDOLhB,gBVivUC,CUjvUgB,yBPKD,4CAkBb,iBHguUF,CUvvUK,8CPKU,oDAuBd,qIqB5CF,WAAkB,6BrBqBF,uBqBpBX,kBACL,oBACQ,aACD,mCAGP,gDACA,qtBAKC,qCrBQD,gBAAgB,qBqBpBjB,8jBAqBE,sFrBDe,UDTR,iBACF,uJsBcL,oFrBNe,YDTR,mBACA,6JCQR,wKqBcY,gBrBdZ,yBAAgB,qOH2zUf,CwBxuUD,yBhB3DK,qNLxBW,eHk0Uf,CwB/uUD,yBhB3DK,+LLxBW,2BqBmFhB,kChB3DK,CRozUJ,CGrzUO,wEAKM,gB0BjDf,mB1BqBiB,gC0BrBjB,gBACC,yBAEA,qG1BkBgB,gBHg4Uf,CGz2UO,2EAKM,gB2BjDf,mB3BqBiB,eAA4B,iB2BrB7C,gBACC,yBAEA,wG3BkBgB,gBHo7Uf,CG75UO,uEAKM,SAAU,iJ4BjDzB,mB5BqBC,gBAAgB,0E4Bff,cAGD,sFAUC,a5BEe,qF4BLf,gB5B4BO,+DAKN,qDAAY,kBe9Cd,ahBUM,yNCQU,0BelBhB,sEhBSQ,iBACF,iLAAE,yFgBcP,mCfNe,0IelBhB,kEAwBC,oEACS,SACR,UACA,kBAAgB,gGAyChB,kFflDc,UDTR,iBACR,cAAQ,kHCQQ,iBelBhB,+FA6CG,oCA7CH,oEhBSQ,iBACR,kBAAQ,gEACR,wDgBoCqB,gEAEjB,sDACW,0DACO,WAClB,YAAiB,wFAkBpB,6BfpDe,SelBhB,mBAsEC,8GAWC,ef/Dc,yFe8Db,uBf9Da,mDelBhB,iBAAiB,mBAwBhB,+CTinBuC,qBAAJ,wFSzgBlC,iBf9Gc,gGeoHb,sBfpHa,0FeqIZ,mBfrIY,gGeqJb,8BfrJa,CAuBR,iIc5CT,wCdqBiB,mBAA4B,ScpB7C,uBACY,6BAEG,6rBAab,qCdID,gBAAgB,0iBcpBjB,sFdoBiB,UDTR,iBACF,mJeiBL,uCdTD,CDRQ,4WCQR,yBAAgB,sEDTR,kBACA,+LCQQ,+FDTR,kBACA,yMCQQ,yBcpBjB,sEfWS,kBACA,kEAER,YegCmB,iBAKpB,gBd/BiB,6DciCJ,cACJ,iIAvDT,8CdqBC,qBAAgB,+DciEd,iCAIF,+CAAiB,cAGF,wBAOZ,0BAQY,kEAIZ,6BAmCF,oCd9He,Cc+BjB,+DAiHG,iFAWA,kBgB/HF,2EACW,YAYV,yB9BzCe,kB8B4BhB,mBAAuB,SAIT,sDAEA,yExB6pB2B,kBwBppBzC,U9B3CgB,2F8BoDf,+C9BpDe,mB8B2ChB,kOAQE,8D/B3DF,ke+BqEA,wBAGG,oE/BzEK,iBACR,0P+BqEA,wBAGG,oE/BzEK,iBACR,oQ+BqEA,wBAGG,oE/BzEK,iBACR,kSCQgB,ySDRV,0jB+BsHL,0BAGG,sE/B1HI,iBACF,sS+BsHL,0BAGG,sE/B1HI,iBACF,gT+BsHL,0BAGG,sE/B1HI,iBCgCA,uEAKM,gB6BjDf,kB7BqBiB,0I6BrBjB,gBAIO,yZ7BiBU,qD6BrBjB,qBAIE,2L7BiBD,aAAgB,gBAA4B,e6BrB7C,iBAuDE,gBAAyB,yBAWvB,8HAkBH,mDhCw4VC,CQ/6VI,yBwByCL,oG7BjEgB,uF6B+DhB,iFxBvCK,CRw7VJ,CgC/4VD,6CAYE,iBAAa,mBvBrEL,8BNRV,sBAAgB,yDAGP,aACI,yBA0PZ,yDOnQD,aVs+VC,CUt+VO,wDPWN,gBAIC,yBAVa,wDOLhB,gBVg/VC,CUh/VgB,yBPKD,6CAkBb,iBH+9VF,CUt/VO,+CPKQ,oDAuBR,uIqB5CR,0BrBqBA,cAAgB,uBqBpBX,kBACL,oBACQ,gBACC,kBAET,aACA,kBACA,iBAgCC,kDACA,+tBA5BA,qCrBQD,gBAAgB,qBqBpBjB,skBAqBE,sFrBDe,UDTR,iBACF,yJsBcL,oFrBNe,YDTR,mBACA,+JCQR,0LAAgB,kXAAhB,cAAgB,yLAAhB,QAAgB,0BqBpBjB,SAAM,6BA+CJ,iCAE+B,sEAIlB,kIAEW,qJAIvB,oFrBvCc,mOqBpBjB,yBA2DG,yNrBvCc,cH2lWf,CwBxgWD,yBhB3DK,uNLxBW,eHkmWf,CwB/gWD,yBhB3DK,iMLxBW,2BqBmFhB,kChB3DK,CRolWJ,CwBthWK,yCAkBO,gBACF,oDU5HX,eACA,YzBgE8B,yCyB7D/B,iBAGE,UAAe,SACP,oD/BWO,qDAGf,aACA,yBA0PA,qDAvPa,aH+nWb,CU3oWO,oDPKQ,gBAUb,yBAIF,oDACc,gBHioWd,CUrpWO,yBPmBP,yCAIE,iBHooWF,CU3pWD,2CPKgB,oDAuBd,yMAWA,gBAlCF,0OAsCI,gBAtCJ,wIA2CE,mBA3CF,iBAAgB,oBA4Cd,sFAKC,kBAGD,uEACC,kBAGD,iEACC,WMR2B,uBNW5B,UA5Dc,8EAgEN,eAUP,4BA1Ea,SAAwB,UA4DtC,mEAWE,cAEA,yeAGF,UAGqB,kBA/EP,6jBAAhB,mkBAuFgB,gBAvFhB,oaA4EE,kCA5EF,CAAgB,qEA8FZ,gBAGD,mBAjGa,+EAmGG,aAGhB,8EACW,gBAGX,mEACC,kBAIF,gBA/Gc,sEAiHb,qBAiBA,wBAlIa,SA+Gd,+FASc,aAGb,8EACW,gBAGX,kEACC,cAAgB,oEAKjB,cA+BA,mBApKa,qSA8IX,sBA9IW,6DAoId,sOApIc,UDTR,iBACF,qJCmKD,oFA3JW,WDTR,kBACA,2EAER,cCsKI,yBAhKY,iVHs0Wf,CGhqWE,yBK9IE,gSLxBL,gBH80WC,CG90We,yBKwBX,4GLxBW,aHo1Wf,CG9qWE,yBK9IE,2GLxBW,gBH01Wf,CGprWE,yBK9IyB,gGLgKzB,cHwqWF,CGh2We,yBKwBX,mGLxBW,eHs2Wf,CGt2We,yBKwBX,4GLxBW,aH42Wf,CGtsWE,yBK9IE,2GLxBW,gBHk3Wf,CG5sWE,yBK9IyB,gGLqLzB,kBH2qWF,CGx3We,yBKwBX,kPL8IF,kBHytWF,CQv2WI,yBLiND,0HAnED,cH+tWF,CQ72WI,8DL2NuB,cAGd,UgC3Qf,8EAEQ,SACD,kBAgCN,iBhCdgB,2FgCVhB,2DhCUgB,CgCVhB,gGAQC,+BhCEe,CgCrBjB,kGhCqBiB,0BgCrBjB,0BAqBC,4BAEI,yBAEa,2FAcjB,cnCy5WC,CG36We,yBKwBX,wHLxBW,oBHi7Wf,CQz5WI,yB2BNL,0Q3BMK,c2BQJ,kEAEA,kBnCy5WA,CmCt5WC,yBAGS,qJ3BhBiB,0E2BQ3B,oBAEA,wCnCi6WA,CmC/4WI,yBACO,gJ3B7BP,iB2BQJ,gBnC06WA,CmCx6WA,yBAaC,mHhC/Cc,qDKwBX,sG2BQJ,mBAEA,kBnCk7WA,CmCn5WW,4DAGK,cACD,oB7BxFjB,0NAKW,oBHcM,yPGnBjB,sEJUS,iBACF,iOCQU,sEGXhB,oLHWgB,2GG+BhB,0BH/BgB,oBGnBjB,qDAkDC,kBAA2B,YAE1B,iBACA,mBAAgB,gDAEhB,sFAwDD,uBH5FgB,6BGnBjB,4BA+G0B,sBGvCK,wBH0CX,iOH/FH,gBGnBjB,iBA+GC,6KH5FA,WAAgB,iEGnBjB,yGAwKC,sIG7F8B,oCHiGb,gDACG,+NH1JJ,iBGnBjB,4FA+MK,YJpMI,yLCQQ,wBGnBjB,oEJUS,iBACR,cAAQ,oGI2OR,kFHnOgB,wEGqOf,aAGD,uEACC,gBAGD,mHH5OgB,YGnBjB,qHHmBiB,YGnBjB,gKHmBC,gBAAgB,wKGnBjB,yGAuTE,kEAEA,oEACQ,aACE,yIA3TZ,gBAsWQ,2NHnVS,aGnBjB,yBA6WG,qGH1Vc,aHsmXf,CGtmXe,yBKwBX,oGLxBW,gBH4mXf,CG5mXe,yBKwBX,yFF+WL,cN2uWC,CGlnXe,yBKwBX,qKFoYJ,CN6tWA,CM7tWA,yBAEkB,2UAFlB,cAEA,UNmuWA,CMnuWA,yBAUC,2IEhZG,uBFoYJ,CN4uWA,CM5uWA,yBAEA,mSEtYI,eRunXJ,CMnvWA,yBAEA,yUAFA,iBN0vWA,CMxvWA,yBA4EC,uREldG,uBFoYJ,kBAEA,aNkwWA,CMtrWC,yBAgDE,0IElgBC,gFR+oXJ,CM3wWA,yBAEA,iYA8IE,gBNkoWF,CM31WM,yBA4NJ,6JAnJF,kENyxWA,CMvxWA,yBAiLmB,sLAjLnB,mBN8xWA,CM7mWE,yBAUA,kKA7LF,qDNsyWA,CMpyWA,yBAkOE,iHHhoBa,iBKwBX,mFFoYJ,CN+yWA,CM7yWA,+HkBnbD,wCrBqBgB,uBqBpBX,kBACL,oBACQ,aACD,iCAGP,gDACA,urBAKC,qCrBQD,gBAAgB,qBqBpBjB,siBAqBE,sFrBDe,UDTR,iBACF,iJsBcL,oFrBNe,YDTR,mBACA,uJsBkBP,arBVD,qJqBcC,gBrBdD,yBAAgB,+NHgxXf,CwB7rXD,yBhB3DK,+MLxBW,eHuxXf,CwBpsXD,yBhB3DK,yLLxBL,WAAgB,gBqBmFhB,kChB3DK,CRywXJ,CwB3sXK,kEAoBJ,cAED,8EfnGgB,a2BlBjB,6EANC,gBAGD,4DAAC,qDACA,sIjCWe,iBiCPjB,mBA4DW,sFAgDV,gBjCrGgB,yBiCPjB,sFAqGC,gBpCiuXC,CG/zXe,mEiCkGd,YAAmB,iBAKtB,wBjCvGiB,SiCuGjB,yBACO,mEAaL,SAAQ,UAIV,SAEC,kBAEA,mGjC7HgB,oKiCwJjB,kBjCxJC,oyBAAgB,8wBAAhB,gBAAgB,oEiCqKd,oBAKH,2BjC1KiB,gBiC0KjB,iBAA2B,gF3BpGS,e2BoLnC,kEAVI,gBAsCJ,uEAKG,aAaH,+EACU,4FAoCT,gBjC7Ue,oEiCoTZ,sBAsBH,yBjC1Ue,wHH25Xf,CG35XuC,yBKwBnC,0GLxBW,gBHi6Xf,CoCjlXD,yB5BxT4B,+F4B0T5B,cpCqlXC,CGv6Xe,yBKwBX,yF4B+UL,cpCskXC,CG76Xe,yBKwBX,iGLxBW,8DHo7Xf,CoCpmXD,yB5BxT4B,+F4B6Z3B,kEArGD,mBpC4mXC,CQp6XI,yB4B6ZJ,+H5B7ZI,iBR06XJ,CQ16XI,yB4BobJ,oGjC5ce,mDiCgVhB,6CpC0nXC,CQl7XI,yB4BobJ,kGjC5ce,qDHg9Xf,CGh9Xe,yBKwBX,yHLxBmC,cKwBnC,8BRg8XJ,CoCv+WA,yBAEG,uHjCnfY,kBH89Xf,CQt8XI,yB4BsfJ,iHjC9gBe,mBHo+Xf,CQ58XI,yC4BsfoB,iBASxB,UAGE,SAAY,oDjC1hBC,qDAGf,aACA,yBA0PA,qDAvPa,aH8+Xb,CU1/XO,oDPKQ,gBAUb,yBAIF,oDACc,gBHg/Xd,CUpgYO,yBPmBP,yCAIE,iBHm/XF,CU1gYD,2CPKgB,oDAuBd,yMAWA,gBAlCF,0OAsCI,gBAtCJ,wIA2CE,mBA3CF,iBAAgB,oBA4Cd,sFAKC,kBAGD,uEACC,kBAGD,iEACC,WMR2B,uBNW5B,UA5Dc,8EAgEN,eAUP,4BA1Ea,SAAwB,UA4DtC,mEAWE,cAvEJ,yeA4EE,UAGqB,kBA/EP,6jBAAhB,mkBAuFgB,gBAvFhB,oaA4EE,kCA5EF,CAAgB,qEA8FZ,gBAGD,mBAjGa,+EAmGG,aAGhB,8EACW,gBAGX,mEACC,kBAIF,gBA/Gc,sEAiHb,qBAiBA,wBAlIa,SA+Gd,+FASc,aAGb,8EACW,gBAGX,kEACC,cAAgB,oEAKjB,cA+BA,mBApKa,qSA8IX,sBA9IW,6DAoId,sOApIc,UDTR,iBACF,qJCmKD,oFA3JW,WDTR,kBACA,2EAER,cCsKI,yBAhKY,iVHqrYf,CG/gYE,yBK9IE,gSLxBL,gBH6rYC,CG7rYe,yBKwBX,4GLxBW,aHmsYf,CG7hYE,yBK9IE,2GLxBW,gBHysYf,CGniYE,yBK9IyB,gGLgKzB,cHuhYF,CG/sYe,yBKwBX,mGLxBW,eHqtYf,CGrtYe,yBKwBX,4GLxBW,aH2tYf,CGrjYE,yBK9IE,2GLxBW,gBHiuYf,CG3jYE,yBK9IyB,gGLqLzB,kBH0hYF,CGvuYe,yBKwBX,kPL8IF,kBHwkYF,CQttYI,yBLiND,0HAnED,cH8kYF,CQ5tYI,8DL2NuB,cAGd,UgC3Qf,8EAEQ,SACD,kBAgCN,iBhCdgB,2FgCVhB,2DhCUgB,CgCVhB,gGAQC,+BhCEe,CgCrBjB,kGhCqBiB,0BgCrBjB,0BAqBC,4BAEK,yBAEY,2FAcjB,cnCwwYC,CG1xYe,yBKwBX,wHLxBW,oBHgyYf,CQxwYI,yB2BNL,0Q3BMK,c2BQJ,kEAEA,kBnCwwYA,CmCrwYC,yBAGS,qJ3BhBiB,0E2BQ3B,oBAEA,wCnCgxYA,CmC9vYI,yBACO,gJ3B7BP,iB2BQJ,gBnCyxYA,CmCvxYA,yBAaC,mHhC/Cc,qDKwBX,sG2BQJ,mBAEA,kBnCiyYA,CmClwYW,4DAGK,cACD,oB7BxFjB,0NAKW,oBHcM,yPGnBjB,sEJUS,iBACF,iOCQU,sEGXhB,oLHWgB,2GG+BhB,0BH/BgB,oBGnBjB,qDAkDC,kBAA0B,aAEzB,kDACA,sFA0DD,uBH5FgB,6BGnBjB,4BA+G2B,sBGvCI,wBH0CX,iOH/FH,gBGnBjB,iBA+GC,6KH5FA,WAAgB,iEGnBjB,yGAwKC,sIG7F8B,kDHiG7B,+NHzJe,iBGnBjB,4FA+MK,YJpMI,yLCQQ,wBGnBjB,oEJUS,iBACR,cAAQ,oGI2OR,kFHnOgB,wEGqOf,aAGD,uEACC,gBAGD,mHH5OgB,YGnBjB,qHHmBiB,YGnBjB,gKHmBC,gBAAgB,wKGnBjB,yGAuTE,kEAEA,oEACQ,aACE,yIA3TZ,gBAsWQ,2NHnVS,aGnBjB,yBA6WG,qGH1Vc,aHi9Yf,CGj9Ye,yBKwBX,oGLxBW,gBHu9Yf,CGv9Ye,yBKwBX,yFF+WL,cNslYC,CG79Ye,yBKwBX,qKFoYJ,CNwkYA,CMxkYA,yBAEkB,2UAFlB,cAEA,UN8kYA,CM9kYA,yBAUC,2IEhZG,uBFoYJ,CNulYA,CMvlYA,yBAEA,mSEtYI,eRk+YJ,CM9lYA,yBAEA,yUAFA,iBNqmYA,CMnmYA,yBA4EC,uREldG,uBFoYJ,kBAEA,aN6mYA,CMjiYC,yBAgDE,0IElgBC,gFR0/YJ,CMtnYA,yBAEA,iYAAkB,gBN2nYlB,CMtsYM,yBA4NJ,6JAnJF,kENooYA,CMloYA,yBAiLmB,sLAjLnB,oBNyoYA,CMx9XE,yBAUA,kKA7LF,qDNipYA,CM/oYA,yBAkOE,iHHhoBa,iBKwBX,mFFoYJ,CN0pYA,CMxpYA,+HkBnbD,wCrBqBgB,uBqBpBX,kBACL,oBACQ,aACD,iCAGP,kDACA,urBAKC,qCrBQD,gBAAgB,qBqBpBjB,siBAqBE,sFrBDe,UDTR,iBACF,iJsBcL,oFrBNe,YDTR,mBACA,uJsBkBP,arBVD,qJqBcC,gBrBdD,yBAAgB,+NH2nZf,CwBxiZD,yBhB3DK,+MLxBW,eHkoZf,CwB/iZD,yBhB3DK,yLLxBL,WAAgB,gBqBmFhB,kChB3DK,CRonZJ,CwBtjZK,kEAoBJ,cAED,8EfnGgB,a2BlBjB,6EANC,gBAGD,4DAAC,qDACA,uIjCWe,eiCPjB,sFA4GC,gBjCrGgB,yBiCPjB,sFAqGC,gBpC2kZC,CGzqZe,mEiCkGd,YAAmB,iBAKtB,wBjCvGiB,SiCuGjB,yBACO,mEAaL,SAAQ,UAIV,SAEC,kBAEA,mGjC7HgB,oKiCwJjB,kBjCxJC,oyBAAgB,8wBAAhB,gBAAgB,oEiCqKd,oBAKH,2BjC1KiB,gBiC0KjB,iBAA0B,gF3BqFS,e2BLlC,kEAVI,gBAsCJ,uEAKG,aAaH,+EACU,4FAoCT,gBjC7Ue,oEiCoTZ,sBAsBH,yBjC1Ue,wHHqwZf,CoCr7YD,yB5BxTK,0GLxBW,gBH2wZf,CoC37YD,yB5BxT4B,+F4B0T5B,cpC+7YC,CGjxZe,yBKwBX,yF4B+UL,cpCg7YC,CGvxZe,yBKwBX,iGLxBW,8DH8xZf,CoC98YD,yB5BxT4B,+F4B6Z3B,kEjCrbuC,mBHsyZvC,CQ9wZI,yB4B6ZJ,+H5B7ZI,iBRoxZJ,CQpxZI,yB4BobJ,oGjC5ce,mDiCgVhB,6CpCo+YC,CQ5xZI,yB4BobJ,kGjC5ce,qDH0zZf,CG1zZe,yBKwBX,yH4BwTL,2B5BxTK,iBR0yZJ,CoCj1YA,yBAEG,uHjCnfY,kBHw0Zf,CQhzZI,yB4BsfJ,iHjC9gBe,mBH80Zf,CQtzZI,4C4B+fJ,iBAGE,UAAU,SAEX,oDjC5hBc,wDAGT,aACI,yBA0PV,wDOnQD,aVo2ZC,CUp2ZO,uDPWN,gBAIC,yBAVa,uDOLhB,gBV82ZC,CU92ZgB,yBPKD,4CAkBb,iBH61ZF,CUp3ZK,8CPKU,oDAuBd,kNAWA,gBAlCF,mPAsCI,gBAtCJ,8IA2CE,mBA3CF,iBAAgB,oBA4Cd,yFAKC,kBAGD,0EACY,kBAGZ,oEACC,WMR2B,uBNW5B,UA5Dc,iFAiEb,eASA,4BA1Ea,SAA2B,UA4DzC,sEAWW,cAKX,yhBA5EF,CAAgB,klBAAhB,aAAgB,2kBAAhB,gBAAgB,sbA4Ed,kCA5EF,CAAgB,wEA8FZ,gBAGD,mBAjGa,kFAsGb,8FAtGH,gBAAgB,sEA2GZ,kBAIF,gBA/Gc,yEAiHb,qBAiBA,wBAlIa,SA+Gd,kGAYC,8FA3HH,gBAAgB,qEAgIZ,cAIF,uEACC,cA+BA,mBApKa,iTA8IX,sBA9IW,6DAoId,sJAGC,sFAvIa,UDTR,iBACF,2JCmKD,oFA3JW,WDTR,kBACA,8ECqKc,cAGlB,yBAhKY,0VH+haf,CGz3ZE,yBK9IE,ySLxBW,gBHuiaf,CGviae,yBKwBX,+GLxBW,aH6iaf,CGv4ZE,yBK9IE,8GLxBW,gBHmjaf,CG74ZE,yBK9IyB,mGLxBZ,cHyjaf,CGzjae,yBKwBX,sGLxBW,eH+jaf,CG/jae,yBKwBX,+GLxBW,aHqkaf,CG/5ZE,yBK9IE,8GLxBW,gBH2kaf,CGr6ZE,yBK9IyB,mGLxBZ,kBHilaf,CGjlae,yBKwBX,wPL8IF,kBHk7ZF,CQhkaI,yBLiND,6HAnED,cHw7ZF,CQtkaI,iEL2N2B,cAGZ,UgC3QrB,ShCqBiB,wEgClBhB,2BhCkBgB,+GgCVhB,2DhCUgB,CgCVhB,mGhCUgB,gCgCrBjB,qGhCqBiB,0BgCrBjB,0BAqBC,4BAEI,yBAEa,8FAcjB,cnCknaC,CGpoae,yBKwBX,2HLxBW,oBH0oaf,CQlnaI,yB2BNL,gR3BMK,c2BQJ,kEAEA,kBnCknaA,CmC/maC,yBAGS,wJ3BhBiB,0E2BQ3B,oBAEA,wCnC0naA,CmCxmaI,yBACO,mJ3B7BP,iB2BQJ,gBnCmoaA,CmCjoaA,yBAaC,sHhC/Cc,qDKwBX,sG2BQJ,mBAEA,kBnC2oaA,CmC5maW,+DAIT,cAAa,oBhCrEA,mIGnBjB,cHmBC,kFGRC,oBHQe,+PGnBjB,sEJUS,iBACF,uOCQU,sEGXhB,0LHWgB,8GG+BhB,0BH/BgB,oBGnBjB,qDAkDC,kBAA2B,YAE1B,iBACA,mBAAgB,kBAEhB,gDAqBG,yFAmCJ,uBH5FgB,6BGnBjB,4BA+G0B,sBGvCK,wBH0CX,uOH/FH,gBGnBjB,iBA+GC,mLH5FA,WAAgB,iEGnBjB,yGAwKC,sIG7F8B,oCHiGb,kBACH,gDACI,qOH3JF,iBGnBjB,+FA+MK,YJpMI,+LCQQ,wBGnBjB,oEJUS,iBACR,cAAQ,uGI2OR,kFHnOgB,2EGqOH,aAGb,0EACC,gBAGD,sHH5OgB,YGnBjB,wHHmBiB,YGnBjB,sKHmBC,gBAAgB,2KGnBjB,yGAuTE,kEAEA,oEACQ,aACE,4IA3TZ,gBAsWQ,iOHnVS,aGnBjB,yBA6WG,wGH1Vc,aHi0af,CGj0ae,yBKwBX,uGLxBW,gBHu0af,CGv0ae,yBKwBX,4FF+WL,cNs8ZC,CG70ae,yBKwBX,wKFoYJ,CNw7ZA,CMx7ZA,yBAEkB,iVAFlB,cAEA,UN87ZA,CM97ZA,yBAUC,8IEhZG,uBFoYJ,CNu8ZA,CMv8ZA,yBAEA,ySEtYI,eRk1aJ,CM98ZA,yBAEA,+UAFA,iBNq9ZA,CMn9ZA,yBA4EC,6REldG,uBFoYJ,kBAEA,aN69ZA,CMj5ZC,yBAgDE,6IElgBC,gFR02aJ,CMt+ZA,yBAEA,uYAAkB,gBN2+ZlB,CMtjaM,yBA4NJ,gKAnJF,kENo/ZA,CMl/ZA,yBAiLmB,yLAjLnB,mBNy/ZA,CMx0ZE,yBAUA,qKA7LF,qDNigaA,CM//ZA,yBAkOE,oHHhoBa,iBKwBX,mFFoYJ,CN0gaA,CMxgaA,qIkBnbD,WAAkB,6BrBqBF,uBqBpBX,kBACL,oBACQ,aACD,mCAGP,gDACA,qtBAKC,qCrBQD,gBAAgB,qBqBpBjB,8jBAqBE,sFrBDe,UDTR,iBACF,uJsBcL,oFrBNe,YDTR,mBACA,6JCQR,wKqBcY,gBrBdZ,yBAAgB,qOH2+af,CwBx5aD,yBhB3DK,qNLxBW,eHk/af,CwB/5aD,yBhB3DK,+LLxBW,2BqBmFhB,kChB3DK,CRo+aJ,CwBt6aK,qEAoBJ,cY7HH,iFAGC,aAOA,gFANc,gBAGd,+DAAC,qDACA,sIjCWe,iBiCPjB,mBA4DW,kBACO,yFA+CjB,gBjCrGgB,yBiCPjB,yFAqGC,gBpC67aC,CG3hbe,sEiCkGR,YAKT,+BjCvGiB,mBiCuGjB,yBACO,sEAaL,SAAQ,UAIV,SAEU,kBAET,sGjC7HgB,0KiCwJjB,kBjCxJC,+zBAAgB,yyBAAhB,gBAAgB,uEiCqKd,SAAgB,WAKnB,2BjC1KiB,kBiC0KjB,iBACC,mFA+EA,ejC1PgB,qEiCgPZ,gBAsCJ,0EAKG,aAaH,qEACC,aAGD,+FAiCC,gBjC7Ue,uEiCoTZ,sBAsBH,yBjC1Ue,2HHunbf,CGvnb0C,yBKwBtC,6GLxBW,gBH6nbf,CoC7yaD,yB5BxT4B,kGLxBZ,cHmobf,CGnobe,yBKwBX,4F4B+UL,cpCkyaC,CGzobe,yBKwBX,oGLxBW,8DHgpbf,CoCh0aD,yB5BxT4B,kGLxBZ,kEAA2B,mBHwpb1C,CQhobI,yB4B6ZJ,kI5B7ZI,iBRsobJ,CQtobI,yB4BobJ,uGjC5ce,mDAA2B,6CHsqb1C,CQ9obI,yB4BobJ,qGjC5ce,qDH4qbf,CG5qbe,yBKwBX,4HLxBsC,cKwBtC,8BR4pbJ,CoCnsaA,yBAEG,0HjCnfY,kBH0rbf,CQlqbI,yB4BsfJ,oHjC9gBe,mBHgsbf,CQxqbI,6C4B+fJ,iBAGE,UAAY,uCjC1hBf,sBAAgB,yDAGP,aACI,yBA0PZ,yDOnQD,aVstbC,CUttbO,wDPWN,gBAIC,yBAVa,wDOLhB,gBVgubC,CUhubgB,yBPKD,6CAkBb,iBH+sbF,CUtubO,+CPKQ,oDAuBR,qNAWN,gBAlCF,sPAsCe,gBAtCf,gJA2CE,mBA3CF,iBAAgB,oBA4Cd,0FAKC,kBAGD,2EMJ4B,kBNQ5B,qEACC,WMRgC,uBNWjC,UA5Dc,kFAiEb,eASA,4BA1Ea,SAA4B,UA4D1C,uEAYE,cAIF,giBA5EF,CAAgB,ylBAAhB,aAAgB,klBAAhB,gBAAgB,4bA4Ed,kCA5EF,CAAgB,yEA8FZ,gBAGD,mBAjGa,mFAsGb,+FAIA,gBA1Ga,uEA2GZ,kBAIF,gBA/Gc,0EAiHb,qBAiBA,wBAlIa,SA+Gd,mGAYC,+FAIA,gBA/Ha,sEAgIZ,cAIF,wEACC,cA+BA,mBApKa,qTA8IJ,sBA9II,6DAoId,wJAGE,sFAvIY,UDTR,iBACF,6JCmKD,oFA3JW,WDTR,kBACA,+ECqKc,cAGlB,yBAhKY,6VHi5bf,CG3ubE,yBK9IE,4SLxBW,gBHy5bf,CGz5be,yBKwBX,gHLxBW,aH+5bf,CGzvbE,yBK9IE,+GLxBW,gBHq6bf,CG/vbE,yBK9IyB,oGLxBZ,cH26bf,CG36be,yBKwBX,uGLxBW,eHi7bf,CGj7be,yBKwBX,gHLxBW,aHu7bf,CGjxbE,yBK9IE,+GLxBW,gBH67bf,CGvxbE,yBK9IyB,oGLxBZ,kBHm8bf,CGn8be,yBKwBX,0PL8IF,kBHoybF,CQl7bI,yBLiND,8HAnED,cH0ybF,CQx7bI,kEL8NC,cAED,UgC7QN,ShCqBiB,yEgClBhB,SAgCA,kChCdgB,gGgCVhB,2DhCUgB,CgCVhB,oGhCUgB,gCgCrBjB,sGhCqBiB,0BgCrBjB,0BAqBC,4BAEI,yBAEa,+FAcjB,cnCo+bC,CGt/be,yBKwBX,4HLxBW,oBH4/bf,CQp+bI,yB2BNL,kR3BMK,c2BQJ,kEAEA,kBnCo+bA,CmCj+bC,yBAGS,yJ3BhBiB,0E2BQ3B,oBAEA,wCnC4+bA,CmC19bI,yBACO,oJ3B7BP,iB2BQJ,gBnCq/bA,CmCn/bA,yBAaC,uHhC/Cc,qDKwBX,sG2BQJ,mBAEA,kBnC6/bA,CmC99bW,gEAIT,cAAa,oBhCrEA,qIGnBjB,cHmBC,mFGRC,gEHQe,oCGnBjB,uOHmBiB,0BGnBjB,sEJUS,iBACF,yOCQU,sEGXhB,oHHWgB,0BGnBjB,sEJUS,iBACF,4LCQU,+GG+BhB,0BH/BgB,oBGnBjB,qDAkDC,kBAA2B,kBAEpB,gFAEN,kDACU,gBAmCR,iGHvEa,gFGnBjB,0FA+GC,uBH5FgB,6BGnBjB,4BA+G2B,sBGvCI,yCH0CX,CAClB,iGHhGe,oCGnBjB,oEJUS,iBACR,kBAAQ,8DIkHL,kDACK,yOH3GQ,kBGnBjB,SAAkB,UA+GjB,qLH5FA,WAAgB,iEGnBjB,yGAwKC,sIG7F8B,oCHiGb,kBACH,kDACI,uOH3JF,iBGnBjB,mMHmBiB,mCGnBjB,kBAwKC,gEA8CY,wDG3IkB,8FH+I3B,sBACW,0DACO,gGAIlB,YJrNK,iMCQQ,wBGnBjB,oEJUS,iBACR,cAAQ,wGI2OR,kFHnOgB,4EGqOH,aAGb,2EACC,gBAGD,uHH5OgB,YGnBjB,yHHmBiB,YGnBjB,wKHmBC,eAAgB,4KGnBjB,yGAuTE,kEAEA,oEACQ,YACE,iHHxSK,aGnBjB,qHHmBiB,yBGnBjB,yBAsWQ,yGHnVS,aH4tcf,CG5tce,yBKwBX,wGLxBW,gBHkucf,CGluce,yBKwBX,6FF+WL,cNi2bC,CGxuce,yBKwBX,yKFoYJ,CNm1bA,CMn1bA,yBAEkB,mVAFlB,cAEA,mBAUC,WNi1bD,CMj1bC,yBAGG,+IEnZA,uBFoYJ,CNo2bA,CMp2bA,yBAEA,2SEtYI,eR+ucJ,CM32bA,yBAEA,iVAFA,iBNk3bA,CMh3bA,yBA4EC,+REldG,sBFoYJ,CN03bA,CM13bA,yBAEA,8IEtYI,gFRqwcJ,CMj4bA,yBAEA,yYA8IE,6BAzNI,CNk9bN,CMtvbE,yBAEG,iKArJL,kENg5bA,CM94bA,yBAiLmB,0LAjLnB,mBNq5bA,CMpubE,yBAUA,sKA7LF,qDN65bA,CM35bA,yBAkOE,qHHhoBa,iBKwBX,mFFoYJ,CNs6bA,CMp6bA,uIkBnbD,0BrBqBA,cAAgB,uBqBpBX,kBACL,oBACQ,gBACC,kBAET,aACA,kBACA,iBAgCC,kDACA,+tBA5BA,qCrBQD,gBAAgB,qBqBpBjB,skBAqBE,sFrBDe,UDTR,iBACF,yJsBcL,oFrBNe,YDTR,mBACA,+JCQR,0LAAgB,kXAAhB,cAAgB,yLAAhB,QAAgB,0BqBpBjB,SAAM,6BA+CJ,iCAE+B,sEAIlB,kIAEW,qJAIvB,oFrBvCc,mOqBpBjB,yBA2DG,yNrBvCc,cHw6cf,CwBr1cD,yBhB3DK,uNLxBW,eH+6cf,CwB51cD,yBhB3DK,iMLxBW,2BqBmFhB,kChB3DK,CRi6cJ,CwBn2cK,sEAoBJ,cY7HH,kFAUC,8FALC,gBjCce,gEiCZJ,kBAKb,4DjCOiB,oCiCPjB,mEAsBE,UAsFD,uBjCrGgB,gCiCeb,cACa,0FA8EhB,gBjC9FgB,yBiCPjB,0FAqGC,gBpCg4cC,CG99ce,uEMQN,Y2B+FX,+BjCvGiB,mBiCuGjB,oBACC,uEAOY,SACF,UASX,SAEW,kBAEV,uGjC7HgB,4KiCwJjB,kBjCxJiB,2zBAAhB,aAAgB,kzBAAhB,gBAAgB,wEiCqKd,oCjCrKF,+CAAgB,gDiC0KjB,sBAIW,yBAET,YACA,kBAAkB,yEAgBhB,aA6DH,yBjC9PgB,4HHyidf,CoCztcD,yB5BxTK,8GLxBW,gBH+idf,CoC/tcD,yB5BxT4B,mGLxBZ,cHqjdf,CGrjde,yBKwBX,2HLxBW,kBH2jdf,CQnidI,yB4BsfJ,qHjC9gBe","file":"../css/front.min.css","sourcesContent":["%icon-font {\n\tspeak: none;\n\tdisplay: inline-block;\n\tline-height: 1;\n\tfont-family: $font--icon !important;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\n\t// Better Font Rendering\n\ttext-rendering: optimizeLegibility;\n\ttext-transform: none;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n%icon-font--alt {\n\tspeak: none;\n\tdisplay: inline-flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-family: $font--icon !important;\n\tline-height: 1;\n\n\t// Better Font Rendering\n\ttext-rendering: optimizeLegibility;\n\ttext-transform: none;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon($position: before, $icon: false, $styles: true) {\n\t\n\t@if $position == both {\n\t\t$position: 'before, &:after';\n\t}\n\n\t// Either a :before or :after pseudo-element, or both, defaulting to :before.\n\t&:#{$position} {\n\n\t\t@if $icon {\n\t\t\tcontent: \"#{map-get($icons, $icon)}\";\n\t\t}\n\n\t\t@if $styles == true {\n\t\t\t@extend %icon-font;\n\t\t}\n\n\t\t@if $styles == alt {\n\t\t\t@extend %icon-font--alt;\n\t\t}\n\n\t\t@content;\n\t}\n}\n\n// List of mapped icons\n$icons: (\n\tarrow-skip-back: \"\\e916\",\n\tarrow-skip-forward: \"\\e917\",\n\tarrow-skip-start: \"\\e918\",\n\tarrow-skip-end: \"\\e919\",\n\taccounts-billing: \"\\e914\",\n\ttech-support: \"\\e915\",\n\tblog: \"\\e90d\",\n\tjobs-pros-search: \"\\e90e\",\n\tsecurity-thumb-print: \"\\e90f\",\n\tip: \"\\e910\",\n\ttimed-countdown: \"\\e911\",\n\t2FA: \"\\e912\",\n\t2factor-authentication-security: \"\\e912\",\n\tbuddypress: \"\\e90c\",\n\tplug-disconnected: \"\\e90a\",\n\tplug-connected: \"\\e90b\",\n\topen-new-window: \"\\e909\",\n\tshipper-anchor: \"\\e906\",\n\tforminator-2: \"\\e907\",\n\tforminator2: \"\\e907\",\n\tforminator: \"\\e908\",\n\tforminator1: \"\\e908\",\n\tcloud-migration: \"\\e905\",\n\tperformance: \"\\e903\",\n\tpower-on-off: \"\\e904\",\n\tupdate-arrow: \"\\e902\",\n\tdashboard-settings: \"\\e901\",\n\twpmudev-logo-2: \"\\203a\",\n\twpmu-logo-line: \"\\203a\",\n\twpmudev-logo: \"\\2039\",\n\twpmu-logo-solid: \"\\2039\",\n\tstar-line: \"\\cf\",\n\tnotification-count: \"\\e900\",\n\t24-hour-support: \"\\c1\",\n\tspeed-optimize: \"\\f8\",\n\tcloudflare: \"\\d0\",\n\talert: \"\\58\",\n\talign-center: \"\\5e\",\n\talign-justify: \"\\23\",\n\talign-left: \"\\25\",\n\talign-right: \"\\26\",\n\tannotate: \"\\b4\",\n\tarrow-up: \"\\d4\",\n\tarrow-right: \"\\af\",\n\tarrow-down: \"\\c2\",\n\tarrow-left: \"\\f8ff\",\n\tmore: \"\\2026\",\n\tminus: \"\\2d\",\n\tplus: \"\\3d\",\n\tchevron-up: \"\\2dd\",\n\tarrow-up-carats: \"\\2dd\",\n\tchevron-down: \"\\131\",\n\tarrow-down-carats: \"\\131\",\n\tchevron-left: \"\\d3\",\n\tarrow-left-carats: \"\\d3\",\n\tchevron-right: \"\\2dc\",\n\tarrow-right-carats: \"\\2dc\",\n\tarrows-compress: \"\\2265\",\n\tarrows-expand: \"\\ac\",\n\tarrows-in: \"\\2264\",\n\tarrows-out: \"\\2da\",\n\tcheck: \"\\28\",\n\tclose: \"\\29\",\n\tat-sign: \"\\40\",\n\tcalendar: \"\\220f\",\n\tcamera: \"\\d8\",\n\tclipboard-notes: \"\\bf\",\n\tclock: \"\\2c\",\n\tcloud: \"\\2122\",\n\tdownload-cloud: \"\\a3\",\n\tupload-cloud: \"\\a2\",\n\tcomment: \"\\a7\",\n\tcomments: \"\\b6\",\n\tcomment-2: \"\\aa\",\n\tcomment-3: \"\\aa\",\n\tcompass: \"\\2c6\",\n\tcredit-card: \"\\63\",\n\tcrop: \"\\43\",\n\tcrown: \"\\a1\",\n\titalic: \"\\7b\",\n\tbold: \"\\42\",\n\tunderline: \"\\55\",\n\ttext-color: \"\\a8\",\n\tstyle-type: \"\\3c\",\n\tquote-2: \"\\27\",\n\tquote: \"\\3b\",\n\tpaperclip: \"\\41\",\n\tindent-less: \"\\201d\",\n\tindent-more: \"\\2019\",\n\tlist-bullet: \"\\38\",\n\tlist-number: \"\\37\",\n\tlist: \"\\60\",\n\tlink: \"\\35\",\n\tunlink: \"\\36\",\n\tcolor-pick-eyedropper: \"\\a5\",\n\twand-magic: \"\\5a\",\n\tlayers: \"\\e6\",\n\tdislike: \"\\6b\",\n\tlike: \"\\6a\",\n\tdollar: \"\\24\",\n\tdownload: \"\\e93b\",\n\teye: \"\\65\",\n\teye-hide: \"\\71\",\n\tarrow-return-back: \"\\52\",\n\tfirst-aid: \"\\e93f\",\n\tfolder: \"\\2d8\",\n\tmap: \"\\34\",\n\tgraph-bar: \"\\c7\",\n\tgraph-bar-2: \"\\2db\",\n\tgraph-bar_1: \"\\2db\",\n\theart: \"\\4b\",\n\thome: \"\\4a\",\n\tinfo: \"\\49\",\n\tkey: \"\\25ca\",\n\tlaptop: \"\\ab\",\n\tlightbulb: \"\\4c\",\n\tasterisk: \"\\2a\",\n\tlock: \"\\39\",\n\tunlock: \"\\30\",\n\tmail: \"\\6d\",\n\tlocation-marker: \"\\6c\",\n\tmicrophone-audio: \"\\2030\",\n\tmobile-signal: \"\\201b\",\n\tmobile: \"\\201c\",\n\tmonitor: \"\\5c\",\n\tmagnifying-glass-search: \"\\ba\",\n\tzoom-in: \"\\2260\",\n\tzoom-out: \"\\2013\",\n\tmagnifying-search-glass-love: \"\\2022\",\n\tprice-tag: \"\\2c7\",\n\tbookmark: \"\\221a\",\n\tbook-bookmark: \"\\2d9\",\n\tbook: \"\\2206\",\n\tpage-multiple: \"\\e7\",\n\tpage-pdf: \"\\c6\",\n\tpage-search: \"\\da\",\n\tpage: \"\\d2\",\n\tpaint-bucket: \"\\222b\",\n\tpaypal: \"\\59\",\n\tpencil: \"\\2f\",\n\tphoto-picture: \"\\44\",\n\tplay: \"\\70\",\n\tpause: \"\\6f\",\n\tfast-forward: \"\\3e\",\n\trefresh: \"\\45\",\n\tupdate: \"\\ae\",\n\tpuzzle: \"\\7d\",\n\tlayout-grid: \"\\221e\",\n\tsheild-badge: \"\\e96a\",\n\tcoffee-cup: \"\\e96b\",\n\tskull: \"\\e96c\",\n\tsocial-android: \"\\2e\",\n\tsocial-apple: \"\\61\",\n\tsocial-drive: \"\\76\",\n\tsocial-dropbox: \"\\64\",\n\tsocial-facebook: \"\\66\",\n\tsocial-github: \"\\68\",\n\tsocial-google-plus: \"\\67\",\n\tsocial-linkedin: \"\\69\",\n\tsocial-twitter: \"\\74\",\n\tanimation-video: \"\\46\",\n\tsocial-youtube: \"\\79\",\n\twhite-label-video: \"\\75\",\n\tstar: \"\\53\",\n\ttablet-landscape: \"\\5b\",\n\ttablet-portrait: \"\\5d\",\n\tthumbnails: \"\\47\",\n\tticket: \"\\e97d\",\n\tprofile-male: \"\\b5\",\n\tprofile-female: \"\\192\",\n\tcommunity-people: \"\\2018\",\n\ttrash: \"\\51\",\n\tnotification: \"\\6e\",\n\tuser-hero-points-trophy: \"\\31\",\n\tmegaphone: \"\\c5\",\n\tflag: \"\\7c\",\n\tstopwatch: \"\\e986\",\n\tshopping-cart: \"\\cd\",\n\tshare: \"\\73\",\n\thelp-support: \"\\48\",\n\tweb-globe-world: \"\\57\",\n\twidget-settings-config: \"\\78\",\n\twrench-tool: \"\\2044\",\n\tsettings-slider-control: \"\\153\",\n\tfilter: \"\\7a\",\n\treply: \"\\72\",\n\tfinger-point: \"\\2248\",\n\tfinger-swipe: \"\\2203\",\n\tmouse-scroll: \"\\df\",\n\tplugin-2: \"\\4f\",\n\tbrush: \"\\7e\",\n\tthemes: \"\\54\",\n\tplugins: \"\\50\",\n\tquestion: \"\\3f\",\n\twarning-alert: \"\\21\",\n\tcheck-tick: \"\\5f\",\n\tcross-close: \"\\2b\",\n\tuser-reputation-points: \"\\32\",\n\tuser-star-level-up: \"\\33\",\n\tdevman: \"\\20ac\",\n\tdefender: \"\\b7\",\n\thub: \"\\fb02\",\n\thummingbird: \"\\b0\",\n\thustle: \"\\2014\",\n\tsmart-crawl: \"\\2202\",\n\tsmush: \"\\2021\",\n\tsnapshot: \"\\fb01\",\n\tupfront: \"\\201a\",\n\tuptime: \"\\b1\",\n\tpulse: \"\\201e\",\n\tautomate: \"\\152\",\n\tacademy: \"\\3c0\",\n\twordpress: \"\\77\",\n\tinfinity: \"\\56\",\n\taudio-sound: \"\\e9ae\",\n\tsitemap: \"\\b8\",\n\tgoogle-analytics: \"\\e5\",\n\tprogress: \"\\e9b1\",\n\tdashboard: \"\\e9b2\",\n\tab-testing: \"\\bb\",\n\ttesting-bottle-beaker: \"\\e9b4\",\n\tarchive: \"\\62\",\n\tzip: \"\\3a9\",\n\tarrow-location: \"\\4d\",\n\tarrow-pointer-cursor: \"\\4e\",\n\tcode: \"\\3a\",\n\tnews-paper: \"\\2211\",\n\tgallery-slider: \"\\f7\",\n\tlayout: \"\\a9\",\n\tstorage-server-data: \"\\ce\",\n\tloader: \"\\e9be\",\n\trocket-launch: \"\\e9bf\",\n\ttarget: \"\\2020\"\n);\n\n@font-face {\n font-family: \"wpdui-icon\";\n src: url(\"../fonts/wpdui-icon.eot?n9b1n0\");\n src: url(\"../fonts/wpdui-icon.eot?n9b1n0#iefix\") format(\"embedded-opentype\"),\n url(\"../fonts/wpdui-icon.woff2?n9b1n0\") format(\"woff2\"),\n url(\"../fonts/wpdui-icon.ttf?n9b1n0\") format(\"truetype\"),\n url(\"../fonts/wpdui-icon.woff?n9b1n0\") format(\"woff\"),\n url(\"../fonts/wpdui-icon.svg?n9b1n0\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n\n@each $name, $char in $icons {\n\n\t[class*=\"wpdui-icon-\"] {\n\t\tdisplay: inline-block;\n\t\t@include icon(both);\n\t}\n\t\n\t.wpdui-icon-#{$name}:before {\n\t\tcontent: $char;\n\t}\n}","[class*=\"wpdui-icon-\"]:before,\n[class*=\"wpdui-icon-\"]:after,\n.forminator-custom-form .forminator-label--info:before,\n.forminator-custom-form .forminator-label--error:before,\n.forminator-custom-form .forminator-label--notice:before,\n.forminator-custom-form .forminator-label--success:before,\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--bold .forminator-date.forminator-has_icon:after,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next:before,\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--flat .forminator-date.forminator-has_icon:after,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next:before,\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--default .forminator-date.forminator-has_icon:after,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next:before,\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon:before,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next:before,\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li:before,\n.forminator-poll .forminator-label--info:before,\n.forminator-poll .forminator-label--error:before,\n.forminator-poll .forminator-label--notice:before,\n.forminator-poll .forminator-label--success:before,\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--check:after,\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--status:after,\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--check:after,\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--status:after,\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--check:after,\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--status:after,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--check:after,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--status:after {\n speak: none;\n display: inline-block;\n line-height: 1;\n font-family: \"wpdui-icon\" !important;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-rendering: optimizeLegibility;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@font-face {\n font-family: \"wpdui-icon\";\n src: url(\"../fonts/wpdui-icon.eot\");\n src: url(\"../fonts/wpdui-icon.eot\") format(\"embedded-opentype\"),url(\"../fonts/wpdui-icon.woff2\") format(\"woff2\"),url(\"../fonts/wpdui-icon.ttf\") format(\"truetype\"),url(\"../fonts/wpdui-icon.woff\") format(\"woff\"),url(\"../fonts/wpdui-icon.svg\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-skip-back:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-skip-forward:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-skip-start:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-skip-end:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-accounts-billing:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-tech-support:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-blog:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-jobs-pros-search:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-security-thumb-print:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-ip:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-timed-countdown:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-2FA:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-2factor-authentication-security:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-buddypress:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-plug-disconnected:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-plug-connected:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-open-new-window:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-shipper-anchor:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-forminator-2:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-forminator2:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-forminator:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-forminator1:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-cloud-migration:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-performance:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-power-on-off:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-update-arrow:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-dashboard-settings:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wpmudev-logo-2:before {\n content: \"›\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wpmu-logo-line:before {\n content: \"›\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wpmudev-logo:before {\n content: \"‹\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wpmu-logo-solid:before {\n content: \"‹\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-star-line:before {\n content: \"Ï\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-notification-count:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-24-hour-support:before {\n content: \"Á\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-speed-optimize:before {\n content: \"ø\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-cloudflare:before {\n content: \"Ð\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-alert:before {\n content: \"X\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-align-center:before {\n content: \"^\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-align-justify:before {\n content: \"#\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-align-left:before {\n content: \"%\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-align-right:before {\n content: \"&\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-annotate:before {\n content: \"´\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-up:before {\n content: \"Ô\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-right:before {\n content: \"¯\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-down:before {\n content: \"Â\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-left:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-more:before {\n content: \"…\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-minus:before {\n content: \"-\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-plus:before {\n content: \"=\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-chevron-up:before {\n content: \"˝\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-up-carats:before {\n content: \"˝\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-chevron-down:before {\n content: \"ı\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-down-carats:before {\n content: \"ı\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-chevron-left:before {\n content: \"Ó\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-left-carats:before {\n content: \"Ó\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-chevron-right:before {\n content: \"˜\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-right-carats:before {\n content: \"˜\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrows-compress:before {\n content: \"≥\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrows-expand:before {\n content: \"¬\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrows-in:before {\n content: \"≤\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrows-out:before {\n content: \"˚\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-check:before {\n content: \"(\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-close:before {\n content: \")\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-at-sign:before {\n content: \"@\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-calendar:before {\n content: \"∏\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-camera:before {\n content: \"Ø\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-clipboard-notes:before {\n content: \"¿\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-clock:before {\n content: \",\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-cloud:before {\n content: \"™\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-download-cloud:before {\n content: \"£\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-upload-cloud:before {\n content: \"¢\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-comment:before {\n content: \"§\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-comments:before {\n content: \"¶\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-comment-2:before {\n content: \"ª\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-comment-3:before {\n content: \"ª\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-compass:before {\n content: \"ˆ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-credit-card:before {\n content: \"c\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-crop:before {\n content: \"C\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-crown:before {\n content: \"¡\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-italic:before {\n content: \"{\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-bold:before {\n content: \"B\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-underline:before {\n content: \"U\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-text-color:before {\n content: \"¨\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-style-type:before {\n content: \"<\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-quote-2:before {\n content: \"'\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-quote:before {\n content: \";\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-paperclip:before {\n content: \"A\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-indent-less:before {\n content: \"”\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-indent-more:before {\n content: \"’\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-list-bullet:before {\n content: \"8\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-list-number:before {\n content: \"7\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-list:before {\n content: \"`\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-link:before {\n content: \"5\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-unlink:before {\n content: \"6\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-color-pick-eyedropper:before {\n content: \"¥\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wand-magic:before {\n content: \"Z\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-layers:before {\n content: \"æ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-dislike:before {\n content: \"k\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-like:before {\n content: \"j\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-dollar:before {\n content: \"$\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-download:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-eye:before {\n content: \"e\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-eye-hide:before {\n content: \"q\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-return-back:before {\n content: \"R\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-first-aid:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-folder:before {\n content: \"˘\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-map:before {\n content: \"4\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-graph-bar:before {\n content: \"Ç\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-graph-bar-2:before {\n content: \"˛\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-graph-bar_1:before {\n content: \"˛\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-heart:before {\n content: \"K\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-home:before {\n content: \"J\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-info:before {\n content: \"I\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-key:before {\n content: \"◊\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-laptop:before {\n content: \"«\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-lightbulb:before {\n content: \"L\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-asterisk:before {\n content: \"*\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-lock:before {\n content: \"9\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-unlock:before {\n content: \"0\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-mail:before {\n content: \"m\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-location-marker:before {\n content: \"l\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-microphone-audio:before {\n content: \"‰\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-mobile-signal:before {\n content: \"‛\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-mobile:before {\n content: \"“\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-monitor:before {\n content: \"\\\\\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-magnifying-glass-search:before{content:\"º\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-zoom-in:before{content:\"≠\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-zoom-out:before{content:\"–\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-magnifying-search-glass-love:before{content:\"•\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-price-tag:before{content:\"ˇ\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-bookmark:before{content:\"√\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-book-bookmark:before{content:\"˙\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-book:before{content:\"∆\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-page-multiple:before{content:\"ç\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-page-pdf:before{content:\"Æ\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-page-search:before{content:\"Ú\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-page:before{content:\"Ò\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-paint-bucket:before{content:\"∫\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-paypal:before{content:\"Y\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-pencil:before{content:\"/\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-photo-picture:before{content:\"D\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-play:before{content:\"p\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-pause:before{content:\"o\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-fast-forward:before{content:\">\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-refresh:before{content:\"E\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-update:before{content:\"®\"}[class*=\"wpdui-icon-\"]{display:inline-block}.wpdui-icon-puzzle:before{content:\";\n}\n\n\"}[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-layout-grid:before {\n content: \"∞\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-sheild-badge:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-coffee-cup:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-skull:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-android:before {\n content: \".\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-apple:before {\n content: \"a\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-drive:before {\n content: \"v\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-dropbox:before {\n content: \"d\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-facebook:before {\n content: \"f\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-github:before {\n content: \"h\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-google-plus:before {\n content: \"g\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-linkedin:before {\n content: \"i\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-twitter:before {\n content: \"t\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-animation-video:before {\n content: \"F\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-social-youtube:before {\n content: \"y\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-white-label-video:before {\n content: \"u\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-star:before {\n content: \"S\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-tablet-landscape:before {\n content: \"[\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-tablet-portrait:before {\n content: \"]\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-thumbnails:before {\n content: \"G\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-ticket:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-profile-male:before {\n content: \"µ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-profile-female:before {\n content: \"ƒ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-community-people:before {\n content: \"‘\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-trash:before {\n content: \"Q\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-notification:before {\n content: \"n\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-user-hero-points-trophy:before {\n content: \"1\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-megaphone:before {\n content: \"Å\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-flag:before {\n content: \"|\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-stopwatch:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-shopping-cart:before {\n content: \"Í\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-share:before {\n content: \"s\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-help-support:before {\n content: \"H\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-web-globe-world:before {\n content: \"W\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-widget-settings-config:before {\n content: \"x\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wrench-tool:before {\n content: \"⁄\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-settings-slider-control:before {\n content: \"œ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-filter:before {\n content: \"z\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-reply:before {\n content: \"r\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-finger-point:before {\n content: \"≈\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-finger-swipe:before {\n content: \"∃\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-mouse-scroll:before {\n content: \"ß\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-plugin-2:before {\n content: \"O\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-brush:before {\n content: \"~\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-themes:before {\n content: \"T\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-plugins:before {\n content: \"P\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-question:before {\n content: \"?\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-warning-alert:before {\n content: \"!\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-check-tick:before {\n content: \"_\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-cross-close:before {\n content: \"+\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-user-reputation-points:before {\n content: \"2\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-user-star-level-up:before {\n content: \"3\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-devman:before {\n content: \"€\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-defender:before {\n content: \"·\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-hub:before {\n content: \"fl\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-hummingbird:before {\n content: \"°\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-hustle:before {\n content: \"—\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-smart-crawl:before {\n content: \"∂\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-smush:before {\n content: \"‡\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-snapshot:before {\n content: \"fi\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-upfront:before {\n content: \"‚\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-uptime:before {\n content: \"±\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-pulse:before {\n content: \"„\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-automate:before {\n content: \"Œ\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-academy:before {\n content: \"π\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-wordpress:before {\n content: \"w\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-infinity:before {\n content: \"V\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-audio-sound:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-sitemap:before {\n content: \"¸\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-google-analytics:before {\n content: \"å\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-progress:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-dashboard:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-ab-testing:before {\n content: \"»\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-testing-bottle-beaker:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-archive:before {\n content: \"b\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-zip:before {\n content: \"Ω\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-location:before {\n content: \"M\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-arrow-pointer-cursor:before {\n content: \"N\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-code:before {\n content: \":\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-news-paper:before {\n content: \"∑\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-gallery-slider:before {\n content: \"÷\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-layout:before {\n content: \"©\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-storage-server-data:before {\n content: \"Î\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-loader:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-rocket-launch:before {\n content: \"\";\n}\n\n[class*=\"wpdui-icon-\"] {\n display: inline-block;\n}\n\n.wpdui-icon-target:before {\n content: \"†\";\n}\n\n@keyframes updating {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n@keyframes click-animation {\n 0% {\n transform: scale(1);\n filter: alpha(opacity=20);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20);\n opacity: .2;\n -khtml-opacity: .2;\n }\n\n 50% {\n transform: scale(2);\n filter: alpha(opacity=10);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=10);\n opacity: .1;\n -khtml-opacity: .1;\n }\n\n 100% {\n transform: scale(0);\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n }\n}\n\n.forminator-custom-form .forminator-label,\n.forminator-custom-form .forminator-label--limit,\n.forminator-custom-form .forminator-label--helper,\n.forminator-custom-form .forminator-label--validation,\n.forminator-custom-form .forminator-label--info p,\n.forminator-custom-form .forminator-label--error p,\n.forminator-custom-form .forminator-label--notice p,\n.forminator-custom-form .forminator-label--success p,\n.forminator-custom-form .forminator-label--loading p,\n.forminator-custom-form .forminator-break .forminator-title,\n.forminator-custom-form .forminator-break .forminator-subtitle,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect label,\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td span,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect label,\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td span,\n.forminator-custom-form.forminator-design--default .forminator-multiselect,\n.forminator-custom-form.forminator-design--default .forminator-multiselect li,\n.forminator-custom-form.forminator-design--default .forminator-multiselect label,\n.forminator-calendar--default .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--default .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td span,\n.forminator-custom-form.forminator-design--material .forminator-multiselect,\n.forminator-custom-form.forminator-design--material .forminator-multiselect li,\n.forminator-custom-form.forminator-design--material .forminator-multiselect label,\n.forminator-calendar--material .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--material .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td span,\n.forminator-poll .forminator-label--info p,\n.forminator-poll .forminator-label--error p,\n.forminator-poll .forminator-label--notice p,\n.forminator-poll .forminator-label--success p,\n.forminator-poll .forminator-label--loading p {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-custom-form.forminator-design-- *,\n.forminator-custom-form *,\n.forminator-custom-form.forminator-design--bold *,\nbody>.select2-container .forminator-droptime--bold *,\nbody>.select2-container .forminator-dropdown--bold *,\n.forminator-calendar--bold *,\n.forminator-custom-form.forminator-design--flat *,\nbody>.select2-container .forminator-droptime--flat *,\nbody>.select2-container .forminator-dropdown--flat *,\n.forminator-calendar--flat *,\n.forminator-custom-form.forminator-design--default *,\nbody>.select2-container .forminator-droptime--default *,\nbody>.select2-container .forminator-dropdown--default *,\n.forminator-calendar--default *,\n.forminator-custom-form.forminator-design--material *,\nbody>.select2-container .forminator-droptime--material *,\nbody>.select2-container .forminator-dropdown--material *,\n.forminator-calendar--material *,\n.forminator-poll *,\n.forminator-poll.forminator-design--bold *,\n.forminator-poll.forminator-design--flat *,\n.forminator-poll.forminator-design--default *,\n.forminator-poll.forminator-design--material *,\n.forminator-quiz.forminator-design--bold *,\n.forminator-quiz.forminator-design--flat *,\n.forminator-quiz.forminator-design--default *,\n.forminator-quiz.forminator-design--material * {\n font-variant-ligatures: none;\n -webkit-font-variant-ligatures: none;\n text-rendering: optimizeLegibility;\n -moz-osx-font-smoothing: grayscale;\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n text-shadow: rgba(0,0,0,0.01) 0 0 1px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio input,\n.forminator-custom-form.forminator-design--bold .forminator-checkbox input,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li input,\n.forminator-custom-form.forminator-design--flat .forminator-radio input,\n.forminator-custom-form.forminator-design--flat .forminator-checkbox input,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li input,\n.forminator-custom-form.forminator-design--default .forminator-radio input,\n.forminator-custom-form.forminator-design--default .forminator-checkbox input,\n.forminator-custom-form.forminator-design--default .forminator-multiselect li input,\n.forminator-custom-form.forminator-design--material .forminator-radio input,\n.forminator-custom-form.forminator-design--material .forminator-checkbox input,\n.forminator-custom-form.forminator-design--material .forminator-multiselect li input,\n.forminator-poll.forminator-design--bold .forminator-radio input,\n.forminator-poll.forminator-design--flat .forminator-radio input,\n.forminator-poll.forminator-design--default .forminator-radio input,\n.forminator-poll.forminator-design--material .forminator-radio input,\n.forminator-quiz.forminator-design--bold .forminator-answer input,\n.forminator-quiz.forminator-design--flat .forminator-answer input,\n.forminator-quiz.forminator-design--default .forminator-answer input,\n.forminator-quiz.forminator-design--material .forminator-answer input {\n width: 1px;\n height: 1px;\n overflow: hidden;\n position: absolute !important;\n margin: -1px;\n border: 0;\n padding: 0;\n clip: rect(1px, 1px, 1px, 1px);\n clip-path: inset(50%);\n word-wrap: normal !important;\n}\n\n.forminator-custom-form .forminator-label,\n.forminator-custom-form .forminator-label--limit,\n.forminator-custom-form .forminator-label--helper,\n.forminator-custom-form .forminator-label--validation {\n cursor: default;\n display: block;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label[for],\n.forminator-custom-form .forminator-label--limit[for],\n.forminator-custom-form .forminator-label--helper[for],\n.forminator-custom-form .forminator-label--validation[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form .forminator-label .wpdui-icon-asterisk,\n.forminator-custom-form .forminator-label--limit .wpdui-icon-asterisk,\n.forminator-custom-form .forminator-label--helper .wpdui-icon-asterisk,\n.forminator-custom-form .forminator-label--validation .wpdui-icon-asterisk {\n display: inline-flex;\n vertical-align: super;\n font-size: 6px;\n}\n\n.forminator-custom-form .forminator-label .wpdui-icon-asterisk:before,\n.forminator-custom-form .forminator-label--limit .wpdui-icon-asterisk:before,\n.forminator-custom-form .forminator-label--helper .wpdui-icon-asterisk:before,\n.forminator-custom-form .forminator-label--validation .wpdui-icon-asterisk:before {\n display: block;\n}\n\n.forminator-custom-form .forminator-row {\n display: block;\n margin-bottom: 20px;\n}\n\n.forminator-custom-form .forminator-row .forminator-col {\n margin-bottom: 20px;\n}\n\n.forminator-custom-form .forminator-row .forminator-col:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form .forminator-row:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form .forminator-row--time+.forminator-label--validation {\n display: none;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-row {\n margin-bottom: 8px;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-row .forminator-col {\n margin-bottom: 8px;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-row .forminator-col:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-row:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col {\n flex: 0 0 auto;\n margin-bottom: 0;\n padding-right: 15px;\n padding-left: 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 {\n max-width: 25%;\n flex-basis: 25%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 {\n max-width: 33.33%;\n flex-basis: 33.33%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-6 {\n max-width: 50%;\n flex-basis: 50%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-12 {\n min-width: 100%;\n max-width: 100%;\n flex-basis: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col:last-child,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col {\n margin-bottom: 30px;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col-3,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col-4,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col-6,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col-3,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col-4,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col-6 {\n max-width: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-3 .forminator-row--inner,\n .forminator-custom-form:not(.forminator-size--small) .forminator-row .forminator-col-4 .forminator-row--inner {\n display: block;\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row {\n display: flex;\n margin-right: -15px;\n margin-bottom: 30px;\n margin-left: -15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row--time .forminator-field .forminator-label--validation {\n display: none;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row--time+.forminator-label--validation {\n display: block;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-row--time {\n align-items: flex-end;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row .forminator-col {\n padding-right: 7px;\n padding-left: 7px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col:last-child,\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row .forminator-col-3 .forminator-row--inner .forminator-col,\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row .forminator-col-4 .forminator-row--inner .forminator-col {\n margin-bottom: 14px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-row {\n margin-right: -7px;\n margin-bottom: 14px;\n margin-left: -7px;\n }\n}\n\n.forminator-custom-form.forminator-design-- {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design-- {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design-- * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design-- .forminator-hidden {\n display: none !important;\n}\n\n@media (max-width: 782px) {\n .forminator-custom-form.forminator-design-- .forminator-hidden-mobile {\n display: none !important;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design-- .forminator-hidden-desktop {\n display: none !important;\n }\n}\n\n.forminator-custom-form {\n box-sizing: border-box;\n}\n\n.forminator-custom-form * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form .forminator-hidden {\n display: none !important;\n}\n\n.forminator-custom-form .forminator-label--info {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #F8F8F8;\n color: #888;\n}\n\n.forminator-custom-form .forminator-label--info:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-custom-form .forminator-label--info:before {\n content: \"I\";\n color: #888;\n}\n\n.forminator-custom-form .forminator-label--info * {\n color: inherit;\n}\n\n.forminator-custom-form .forminator-label--info>span,\n.forminator-custom-form .forminator-label--info>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-custom-form .forminator-label--info,\n.forminator-custom-form .forminator-label--info p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label--info strong,\n.forminator-custom-form .forminator-label--info p strong {\n font-weight: bold;\n}\n\n.forminator-custom-form .forminator-label--info:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form .forminator-label--info:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form .forminator-label--info {\n margin: 30px 0;\n }\n}\n\n.forminator-custom-form .forminator-label--error {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #CB4B57;\n color: #fff;\n}\n\n.forminator-custom-form .forminator-label--error:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-custom-form .forminator-label--error:before {\n content: \"!\";\n color: #fff;\n}\n\n.forminator-custom-form .forminator-label--error * {\n color: inherit;\n}\n\n.forminator-custom-form .forminator-label--error>span,\n.forminator-custom-form .forminator-label--error>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-custom-form .forminator-label--error,\n.forminator-custom-form .forminator-label--error p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label--error strong,\n.forminator-custom-form .forminator-label--error p strong {\n font-weight: bold;\n}\n\n.forminator-custom-form .forminator-label--error:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form .forminator-label--error:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form .forminator-label--error {\n margin: 30px 0;\n }\n}\n\n.forminator-custom-form .forminator-label--notice {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #FFF4D2;\n color: #333;\n}\n\n.forminator-custom-form .forminator-label--notice:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-custom-form .forminator-label--notice:before {\n content: \"I\";\n color: #333;\n}\n\n.forminator-custom-form .forminator-label--notice * {\n color: inherit;\n}\n\n.forminator-custom-form .forminator-label--notice>span,\n.forminator-custom-form .forminator-label--notice>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-custom-form .forminator-label--notice,\n.forminator-custom-form .forminator-label--notice p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label--notice strong,\n.forminator-custom-form .forminator-label--notice p strong {\n font-weight: bold;\n}\n\n.forminator-custom-form .forminator-label--notice:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form .forminator-label--notice:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form .forminator-label--notice {\n margin: 30px 0;\n }\n}\n\n.forminator-custom-form .forminator-label--success {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #1ABC9C;\n color: #fff;\n}\n\n.forminator-custom-form .forminator-label--success:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-custom-form .forminator-label--success:before {\n content: \"(\";\n color: #fff;\n}\n\n.forminator-custom-form .forminator-label--success * {\n color: inherit;\n}\n\n.forminator-custom-form .forminator-label--success>span,\n.forminator-custom-form .forminator-label--success>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-custom-form .forminator-label--success,\n.forminator-custom-form .forminator-label--success p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label--success strong,\n.forminator-custom-form .forminator-label--success p strong {\n font-weight: bold;\n}\n\n.forminator-custom-form .forminator-label--success:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form .forminator-label--success:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form .forminator-label--success {\n margin: 30px 0;\n }\n}\n\n.forminator-custom-form .forminator-label--loading {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #D4EEF9;\n color: #888;\n}\n\n.forminator-custom-form .forminator-label--loading:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-custom-form .forminator-label--loading:before {\n width: 18px;\n height: 18px;\n border: 2px solid #fff;\n border-bottom-color: transparent;\n border-radius: 100%;\n box-sizing: border-box;\n animation: spin .75s 0s linear infinite;\n}\n\n.forminator-custom-form .forminator-label--loading * {\n color: inherit;\n}\n\n.forminator-custom-form .forminator-label--loading>span,\n.forminator-custom-form .forminator-label--loading>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-custom-form .forminator-label--loading,\n.forminator-custom-form .forminator-label--loading p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-custom-form .forminator-label--loading strong,\n.forminator-custom-form .forminator-label--loading p strong {\n font-weight: bold;\n}\n\n.forminator-custom-form .forminator-label--loading:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form .forminator-label--loading:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form .forminator-label--loading {\n margin: 30px 0;\n }\n}\n\n.forminator-custom-form .forminator-cform-response-message [class^='forminator-label--'] {\n margin-bottom: 20px;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-cform-response-message [class^='forminator-label--'] {\n margin-bottom: 8px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-cform-response-message [class^='forminator-label--'] {\n margin-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-cform-response-message [class^='forminator-label--'] {\n margin-bottom: 14px;\n }\n}\n\n.forminator-custom-form .forminator-label--limit,\n.forminator-custom-form .forminator-label--helper {\n cursor: text;\n}\n\n.forminator-custom-form .forminator-field--helper {\n display: flex;\n margin: 5px 0 0;\n}\n\n.forminator-custom-form .forminator-field--helper .forminator-label--helper {\n flex: 1;\n}\n\n.forminator-custom-form .forminator-field--helper .forminator-label--helper+.forminator-label--limit {\n margin-left: 10px;\n}\n\n.forminator-custom-form .forminator-field--helper .forminator-label--limit {\n flex: 0 0 auto;\n text-align: right;\n}\n\n.forminator-custom-form .forminator-field--helper .forminator-label--limit:only-child {\n flex: 1;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-field--helper {\n margin: 0;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-field--helper .forminator-label--helper+.forminator-label--limit {\n margin-left: 4px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-field--helper .forminator-label--helper+.forminator-label--limit {\n margin-left: 15px;\n }\n}\n\n.forminator-custom-form .forminator-break .forminator-title+.forminator-border,\n.forminator-custom-form .forminator-break .forminator-subtitle+.forminator-border {\n margin-top: 20px;\n}\n\n.forminator-custom-form .forminator-break .forminator-title {\n line-height: 1.34em;\n}\n\n.forminator-custom-form .forminator-break .forminator-title+.forminator-subtitle {\n margin-top: 0.56em;\n}\n\n.forminator-custom-form .forminator-break .forminator-subtitle {\n line-height: 1.2em;\n}\n\n.forminator-custom-form.forminator-enclosed .forminator-break .forminator-title+.forminator-border,\n.forminator-custom-form.forminator-enclosed .forminator-break .forminator-subtitle+.forminator-border {\n margin-top: 8px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small) .forminator-break .forminator-title+.forminator-border,\n .forminator-custom-form:not(.forminator-size--small) .forminator-break .forminator-subtitle+.forminator-border {\n margin-top: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-break .forinator-title+.forminator-border,\n .forminator-custom-form:not(.forminator-size--small).forminator-enclosed .forminator-break .forminator-subtitle+.forminator-border {\n margin-top: 14px;\n }\n}\n\n.forminator-custom-form .wp-editor-wrap .wp-switch-editor {\n height: auto;\n margin-top: 0;\n padding-top: 4px;\n font-size: 12px;\n line-height: 20px;\n font-weight: normal;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-label,\n.forminator-custom-form.forminator-design--bold .forminator-label--limit,\n.forminator-custom-form.forminator-design--bold .forminator-label--helper {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-label--validation {\n margin-top: 5px;\n padding: 5px 10px;\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-break .forminator-border {\n width: 100%;\n height: 0;\n display: block;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n border-style: none;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-break .forminator-border.solid {\n border-style: solid;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-break .forminator-border.dashed {\n border-style: dashed;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input,\n.forminator-custom-form.forminator-design--bold .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input,\n.forminator-custom-form.forminator-design--bold .forminator-input:hover,\n.forminator-custom-form.forminator-design--bold .forminator-input:focus,\n.forminator-custom-form.forminator-design--bold .forminator-input:active,\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled,\n.forminator-custom-form.forminator-design--bold .forminator-textarea,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:active,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input,\n.forminator-custom-form.forminator-design--bold .forminator-input:hover,\n.forminator-custom-form.forminator-design--bold .forminator-input:focus,\n.forminator-custom-form.forminator-design--bold .forminator-input:active,\n.forminator-custom-form.forminator-design--bold .forminator-textarea,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled:-moz-placeholder,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled::-moz-placeholder,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--bold .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-custom-form.forminator-design--bold .intl-tel-input {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input,\n.forminator-custom-form.forminator-design--bold .forminator-textarea {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-textarea {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-input {\n height: 40px;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 3px;\n border-style: solid;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n width: 8px;\n height: 8px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox input:checked+.forminator-checkbox--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--design+.forminator-checkbox--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 3px;\n border-style: solid;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-checkbox .forminator-checkbox--design:before {\n font-size: 8px;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 {\n width: 100% !important;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 *,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 * {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2 {\n height: auto;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-left: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2 {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-right: 37px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow {\n width: 20px;\n height: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 7px;\n right: 7px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n content: \"ı\";\n transition: transform 0.2s linear,0.3s ease;\n font-size: 14px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-time+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--bold .forminator-select+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n transform: rotate(180deg);\n}\n\nbody>.select2-container .forminator-droptime--bold,\nbody>.select2-container .forminator-dropdown--bold {\n display: block;\n position: relative;\n box-sizing: border-box;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n}\n\nbody>.select2-container .forminator-droptime--bold *,\nbody>.select2-container .forminator-dropdown--bold * {\n box-sizing: border-box;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-search,\nbody>.select2-container .forminator-droptime--bold .select2-search:hover,\nbody>.select2-container .forminator-droptime--bold .select2-search:focus,\nbody>.select2-container .forminator-droptime--bold .select2-search:active,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown:hover,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown:focus,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown:active,\nbody>.select2-container .forminator-dropdown--bold .select2-search,\nbody>.select2-container .forminator-dropdown--bold .select2-search:hover,\nbody>.select2-container .forminator-dropdown--bold .select2-search:focus,\nbody>.select2-container .forminator-dropdown--bold .select2-search:active,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown:hover,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown:focus,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown:active {\n outline: none;\n box-shadow: none;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--bold .select2-results .select2-results__option {\n margin: 0;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-results .select2-results__option .select2-results__option,\nbody>.select2-container .forminator-dropdown--bold .select2-results .select2-results__option .select2-results__option {\n margin: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--bold.select2-dropdown--above,\nbody>.select2-container .forminator-dropdown--bold.select2-dropdown--above {\n bottom: 2px;\n}\n\nbody>.select2-container .forminator-droptime--bold.select2-dropdown--below,\nbody>.select2-container .forminator-dropdown--bold.select2-dropdown--below {\n margin-top: 2px;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-search,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--bold .select2-search,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown {\n padding: 7px;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-search .select2-search__field,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown .select2-search__field,\nbody>.select2-container .forminator-dropdown--bold .select2-search .select2-search__field,\nbody>.select2-container .forminator-dropdown--bold .select2-search--dropdown .select2-search__field {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n line-height: 20px;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--bold .select2-results .select2-results__option {\n padding: 7px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\nbody>.select2-container .forminator-droptime--bold .select2-search,\nbody>.select2-container .forminator-droptime--bold .select2-search--dropdown {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect label {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect,\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li {\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li label {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect li label {\n padding: 10px 7px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-multiselect {\n max-height: 120px;\n overflow-x: hidden;\n overflow-y: auto;\n border-width: 3px;\n border-style: solid;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-date {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-date.forminator-has_icon:after {\n content: \"∏\";\n position: absolute;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-date.forminator-has_icon .forminator-input {\n padding-right: 40px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-date.forminator-has_icon:after {\n top: 10px;\n right: 10px;\n font-size: 18px;\n width: 20px;\n line-height: 20px;\n text-align: center;\n}\n\n.forminator-calendar--bold {\n padding: 2px 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-header,\n.forminator-calendar--bold .ui-datepicker-calendar {\n margin: 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-header {\n display: block;\n position: relative;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next {\n cursor: pointer;\n display: block;\n position: absolute;\n text-align: center;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next:before {\n display: block;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev span,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next span {\n display: none;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev:before {\n content: \"Ó\";\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next:before {\n content: \"˜\";\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-title {\n display: flex;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-title select {\n display: block;\n flex: 1;\n margin: 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar {\n padding: 0;\n border-collapse: unset;\n border-spacing: unset;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr {\n border: 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td {\n border: 0;\n text-align: center;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td span {\n display: block;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th {\n font-weight: bold;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-state-disabled,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable {\n pointer-events: none;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-state-disabled a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-state-disabled span,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable span {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-calendar--bold .ui-datepicker-header,\n.forminator-calendar--bold .ui-datepicker-calendar {\n border-width: 3px;\n border-style: solid;\n}\n\n.forminator-calendar--bold .ui-datepicker-header {\n padding-top: 5px;\n padding-bottom: 5px;\n border-bottom: 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next {\n top: 5px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev {\n left: 5px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next {\n right: 5px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next:before {\n line-height: 26px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-next:before {\n font-size: 12px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-title {\n margin: 0 5px;\n padding: 0 31px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-title select+select {\n margin-left: 5px;\n}\n\n.forminator-calendar--bold .ui-datepicker-header .ui-datepicker-title select {\n height: 26px;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar {\n border-top: 0;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td {\n padding: 5px;\n width: 36px;\n height: 36px;\n line-height: 26px;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td span {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--bold .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--bold .ui-datepicker-calendar tbody tr td a {\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button,\n.forminator-custom-form.forminator-design--bold button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 12px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button,\n.forminator-custom-form.forminator-design--bold a.forminator-button:hover,\n.forminator-custom-form.forminator-design--bold a.forminator-button:active,\n.forminator-custom-form.forminator-design--bold a.forminator-button:visited,\n.forminator-custom-form.forminator-design--bold a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--bold button.forminator-button,\n.forminator-custom-form.forminator-design--bold button.forminator-button:hover,\n.forminator-custom-form.forminator-design--bold button.forminator-button:active,\n.forminator-custom-form.forminator-design--bold button.forminator-button:visited,\n.forminator-custom-form.forminator-design--bold button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button,\n.forminator-custom-form.forminator-design--bold a.forminator-button:hover,\n.forminator-custom-form.forminator-design--bold a.forminator-button:active,\n.forminator-custom-form.forminator-design--bold a.forminator-button:visited,\n.forminator-custom-form.forminator-design--bold button.forminator-button,\n.forminator-custom-form.forminator-design--bold button.forminator-button:hover,\n.forminator-custom-form.forminator-design--bold button.forminator-button:active,\n.forminator-custom-form.forminator-design--bold button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--bold button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button:first-child,\n.forminator-custom-form.forminator-design--bold button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--bold a.forminator-button:last-child,\n.forminator-custom-form.forminator-design--bold button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) a.forminator-button,\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-custom-form.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar {\n width: 100%;\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--text {\n flex: 0 0 auto;\n margin: 0 10px;\n line-height: 16px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress {\n overflow: hidden;\n flex: 1;\n position: relative;\n margin: 0;\n height: 16px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress,\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress span {\n border-radius: 8px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress span {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav {\n margin: 0 0 20px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav,\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li {\n display: block;\n position: relative;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav:before {\n content: \" \";\n height: auto;\n position: absolute;\n width: 3px;\n top: 6px;\n bottom: 6px;\n left: 6px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li {\n margin: 10px 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--footer {\n margin-top: 20px;\n padding-top: 20px;\n border-top-width: 3px;\n border-top-style: solid;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text {\n margin: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--bar {\n margin-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav:before {\n content: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--footer {\n display: flex;\n justify-content: space-between;\n margin-top: 30px;\n padding-top: 30px;\n }\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li:before {\n right: 50%;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li:after {\n right: 0;\n left: 50%;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li .forminator-step-text {\n display: block;\n padding-left: 25px;\n line-height: 21px;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--nav li .forminator-step-dot {\n display: block;\n position: absolute;\n left: 0;\n width: 15px;\n height: 15px;\n border-radius: 100%;\n border-width: 3px;\n border-style: solid;\n top: 3px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav li {\n min-width: 33.33%;\n flex: 1 0 33.33%;\n margin: 0;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav li:before,\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav li:after {\n content: \" \";\n width: auto;\n display: block;\n position: absolute;\n height: 3px;\n bottom: 6px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-dot {\n position: relative;\n z-index: 1;\n top: auto;\n left: auto;\n margin: 5px auto 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-text {\n padding-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--bold:not(.forminator-size--small) .forminator-pagination--nav {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n }\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress {\n background-color: #EDEDED;\n}\n\n.forminator-custom-form.forminator-design--bold .forminator-pagination--bar .forminator-bar--progress span {\n background-color: #17A8E3;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-label,\n.forminator-custom-form.forminator-design--flat .forminator-label--limit,\n.forminator-custom-form.forminator-design--flat .forminator-label--helper {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-label--validation {\n margin-top: 5px;\n padding: 5px 10px;\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-break .forminator-border {\n width: 100%;\n height: 0;\n display: block;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n border-style: none;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-break .forminator-border.solid {\n border-style: solid;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-break .forminator-border.dashed {\n border-style: dashed;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input,\n.forminator-custom-form.forminator-design--flat .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input,\n.forminator-custom-form.forminator-design--flat .forminator-input:hover,\n.forminator-custom-form.forminator-design--flat .forminator-input:focus,\n.forminator-custom-form.forminator-design--flat .forminator-input:active,\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled,\n.forminator-custom-form.forminator-design--flat .forminator-textarea,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:active,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input,\n.forminator-custom-form.forminator-design--flat .forminator-input:hover,\n.forminator-custom-form.forminator-design--flat .forminator-input:focus,\n.forminator-custom-form.forminator-design--flat .forminator-input:active,\n.forminator-custom-form.forminator-design--flat .forminator-textarea,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled:-moz-placeholder,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled::-moz-placeholder,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--flat .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-custom-form.forminator-design--flat .intl-tel-input {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input,\n.forminator-custom-form.forminator-design--flat .forminator-textarea {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input {\n padding: 10px;\n border: 0;\n border-radius: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-textarea {\n padding: 10px;\n border-radius: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-input {\n height: 40px;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border: 0;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n width: 12px;\n height: 12px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox input:checked+.forminator-checkbox--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--design+.forminator-checkbox--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border: 0;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-checkbox .forminator-checkbox--design:before {\n font-size: 12px;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 {\n width: 100% !important;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 *,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 * {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2 {\n height: auto;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-left: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2 {\n padding: 10px;\n border: 0;\n border-radius: 0;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-right: 40px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow {\n width: 20px;\n height: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n content: \"ı\";\n transition: transform 0.2s linear,0.25s ease;\n font-size: 12px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-time+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--flat .forminator-select+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n transform: rotate(180deg);\n}\n\nbody>.select2-container .forminator-droptime--flat,\nbody>.select2-container .forminator-dropdown--flat {\n display: block;\n position: relative;\n box-sizing: border-box;\n border: 0;\n border-radius: 0;\n}\n\nbody>.select2-container .forminator-droptime--flat *,\nbody>.select2-container .forminator-dropdown--flat * {\n box-sizing: border-box;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-search,\nbody>.select2-container .forminator-droptime--flat .select2-search:hover,\nbody>.select2-container .forminator-droptime--flat .select2-search:focus,\nbody>.select2-container .forminator-droptime--flat .select2-search:active,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown:hover,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown:focus,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown:active,\nbody>.select2-container .forminator-dropdown--flat .select2-search,\nbody>.select2-container .forminator-dropdown--flat .select2-search:hover,\nbody>.select2-container .forminator-dropdown--flat .select2-search:focus,\nbody>.select2-container .forminator-dropdown--flat .select2-search:active,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown:hover,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown:focus,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown:active {\n outline: none;\n box-shadow: none;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--flat .select2-results .select2-results__option {\n margin: 0;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-results .select2-results__option .select2-results__option,\nbody>.select2-container .forminator-dropdown--flat .select2-results .select2-results__option .select2-results__option {\n margin: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--flat.select2-dropdown--above,\nbody>.select2-container .forminator-dropdown--flat.select2-dropdown--above {\n bottom: 2px;\n}\n\nbody>.select2-container .forminator-droptime--flat.select2-dropdown--below,\nbody>.select2-container .forminator-dropdown--flat.select2-dropdown--below {\n margin-top: 2px;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-search,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--flat .select2-search,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown {\n padding: 10px;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-search .select2-search__field,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown .select2-search__field,\nbody>.select2-container .forminator-dropdown--flat .select2-search .select2-search__field,\nbody>.select2-container .forminator-dropdown--flat .select2-search--dropdown .select2-search__field {\n padding: 10px;\n border: 0;\n border-radius: 0;\n line-height: 20px;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--flat .select2-results .select2-results__option {\n padding: 10px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\nbody>.select2-container .forminator-droptime--flat .select2-search,\nbody>.select2-container .forminator-droptime--flat .select2-search--dropdown {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect label {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect,\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li {\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li label {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect li label {\n padding: 10px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-multiselect {\n max-height: 120px;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-date {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-date.forminator-has_icon:after {\n content: \"∏\";\n position: absolute;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-date.forminator-has_icon .forminator-input {\n padding-right: 40px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-date.forminator-has_icon:after {\n top: 10px;\n right: 10px;\n font-size: 18px;\n width: 20px;\n line-height: 20px;\n text-align: center;\n}\n\n.forminator-calendar--flat {\n padding: 2px 0;\n}\n\n.forminator-calendar--flat .ui-datepicker-header,\n.forminator-calendar--flat .ui-datepicker-calendar {\n margin: 0;\n}\n\n.forminator-calendar--flat .ui-datepicker-header {\n display: block;\n position: relative;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next {\n cursor: pointer;\n display: block;\n position: absolute;\n text-align: center;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next:before {\n display: block;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev span,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next span {\n display: none;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev:before {\n content: \"Ó\";\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next:before {\n content: \"˜\";\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-title {\n display: flex;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-title select {\n display: block;\n flex: 1;\n margin: 0;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar {\n padding: 0;\n border-collapse: unset;\n border-spacing: unset;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr {\n border: 0;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td {\n border: 0;\n text-align: center;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td span {\n display: block;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th {\n font-weight: bold;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-state-disabled,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable {\n pointer-events: none;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-state-disabled a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-state-disabled span,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable span {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-calendar--flat .ui-datepicker-header,\n.forminator-calendar--flat .ui-datepicker-calendar {\n border-width: 0;\n}\n\n.forminator-calendar--flat .ui-datepicker-header {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next {\n top: 10px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev {\n left: 10px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next {\n right: 10px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next:before {\n line-height: 26px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-next:before {\n font-size: 12px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-title {\n margin: 0 10px;\n padding: 0 36px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-title select+select {\n margin-left: 10px;\n}\n\n.forminator-calendar--flat .ui-datepicker-header .ui-datepicker-title select {\n height: 26px;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td {\n padding: 10px;\n width: 36px;\n height: 36px;\n line-height: 16px;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td span {\n width: 16px;\n height: 16px;\n}\n\n.forminator-calendar--flat .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--flat .ui-datepicker-calendar tbody tr td a {\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button,\n.forminator-custom-form.forminator-design--flat button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button,\n.forminator-custom-form.forminator-design--flat a.forminator-button:hover,\n.forminator-custom-form.forminator-design--flat a.forminator-button:active,\n.forminator-custom-form.forminator-design--flat a.forminator-button:visited,\n.forminator-custom-form.forminator-design--flat a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--flat button.forminator-button,\n.forminator-custom-form.forminator-design--flat button.forminator-button:hover,\n.forminator-custom-form.forminator-design--flat button.forminator-button:active,\n.forminator-custom-form.forminator-design--flat button.forminator-button:visited,\n.forminator-custom-form.forminator-design--flat button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button,\n.forminator-custom-form.forminator-design--flat a.forminator-button:hover,\n.forminator-custom-form.forminator-design--flat a.forminator-button:active,\n.forminator-custom-form.forminator-design--flat a.forminator-button:visited,\n.forminator-custom-form.forminator-design--flat button.forminator-button,\n.forminator-custom-form.forminator-design--flat button.forminator-button:hover,\n.forminator-custom-form.forminator-design--flat button.forminator-button:active,\n.forminator-custom-form.forminator-design--flat button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--flat button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button:first-child,\n.forminator-custom-form.forminator-design--flat button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--flat a.forminator-button:last-child,\n.forminator-custom-form.forminator-design--flat button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) a.forminator-button,\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-custom-form.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar {\n width: 100%;\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--text {\n flex: 0 0 auto;\n margin: 0 10px;\n line-height: 16px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress {\n overflow: hidden;\n flex: 1;\n position: relative;\n margin: 0;\n height: 16px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress,\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress span {\n border-radius: 8px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress span {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav {\n margin: 0 0 20px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav,\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li {\n display: block;\n position: relative;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav:before {\n content: \" \";\n height: auto;\n position: absolute;\n width: 1px;\n top: 7px;\n bottom: 7px;\n left: 7px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li {\n margin: 10px 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--footer {\n margin-top: 20px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text {\n margin: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--bar {\n margin-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav:before {\n content: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--footer {\n display: flex;\n justify-content: space-between;\n margin-top: 30px;\n }\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li:before {\n right: 50%;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li:after {\n right: 0;\n left: 50%;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li .forminator-step-text {\n display: block;\n padding-left: 25px;\n line-height: 21px;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li .forminator-step-dot {\n display: block;\n position: absolute;\n left: 0;\n width: 15px;\n height: 15px;\n border-radius: 100%;\n border: 0;\n top: 3px;\n transform: scale(0.7);\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--nav li.forminator-step-current .forminator-step-dot {\n transform: scale(1);\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav li {\n min-width: 33.33%;\n flex: 1 0 33.33%;\n margin: 0;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav li:before,\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav li:after {\n content: \" \";\n width: auto;\n display: block;\n position: absolute;\n height: 1px;\n bottom: 7px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-dot {\n position: relative;\n z-index: 1;\n top: auto;\n left: auto;\n margin: 5px auto 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-text {\n padding-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--flat:not(.forminator-size--small) .forminator-pagination--nav {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n }\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress {\n background-color: #EDEDED;\n}\n\n.forminator-custom-form.forminator-design--flat .forminator-pagination--bar .forminator-bar--progress span {\n background-color: #17A8E3;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-label,\n.forminator-custom-form.forminator-design--default .forminator-label--limit,\n.forminator-custom-form.forminator-design--default .forminator-label--helper {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-label--validation {\n margin-top: 5px;\n padding: 5px 10px;\n border-radius: 2px;\n line-height: 18px;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-break .forminator-border {\n width: 100%;\n height: 0;\n display: block;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n border-style: none;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-break .forminator-border.solid {\n border-style: solid;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-break .forminator-border.dashed {\n border-style: dashed;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input,\n.forminator-custom-form.forminator-design--default .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input,\n.forminator-custom-form.forminator-design--default .forminator-input:hover,\n.forminator-custom-form.forminator-design--default .forminator-input:focus,\n.forminator-custom-form.forminator-design--default .forminator-input:active,\n.forminator-custom-form.forminator-design--default .forminator-input:disabled,\n.forminator-custom-form.forminator-design--default .forminator-textarea,\n.forminator-custom-form.forminator-design--default .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--default .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--default .forminator-textarea:active,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input,\n.forminator-custom-form.forminator-design--default .forminator-input:hover,\n.forminator-custom-form.forminator-design--default .forminator-input:focus,\n.forminator-custom-form.forminator-design--default .forminator-input:active,\n.forminator-custom-form.forminator-design--default .forminator-textarea,\n.forminator-custom-form.forminator-design--default .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--default .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--default .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input:disabled,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input:disabled:-moz-placeholder,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input:disabled::-moz-placeholder,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input:disabled:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--default .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-custom-form.forminator-design--default .intl-tel-input {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input,\n.forminator-custom-form.forminator-design--default .forminator-textarea {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-textarea {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-input {\n height: 40px;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design:before {\n width: 12px;\n height: 12px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox input:checked+.forminator-checkbox--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--design+.forminator-checkbox--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-checkbox .forminator-checkbox--design:before {\n font-size: 12px;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 {\n width: 100% !important;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 *,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 * {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2 {\n height: auto;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-left: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2 {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-right: 39px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow {\n width: 20px;\n height: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 9px;\n right: 9px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n content: \"ı\";\n transition: transform 0.2s linear,0.3s ease;\n font-size: 12px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-time+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--default .forminator-select+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n transform: rotate(180deg);\n}\n\nbody>.select2-container .forminator-droptime--default,\nbody>.select2-container .forminator-dropdown--default {\n display: block;\n position: relative;\n box-sizing: border-box;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n overflow: hidden;\n}\n\nbody>.select2-container .forminator-droptime--default *,\nbody>.select2-container .forminator-dropdown--default * {\n box-sizing: border-box;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-search,\nbody>.select2-container .forminator-droptime--default .select2-search:hover,\nbody>.select2-container .forminator-droptime--default .select2-search:focus,\nbody>.select2-container .forminator-droptime--default .select2-search:active,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown:hover,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown:focus,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown:active,\nbody>.select2-container .forminator-dropdown--default .select2-search,\nbody>.select2-container .forminator-dropdown--default .select2-search:hover,\nbody>.select2-container .forminator-dropdown--default .select2-search:focus,\nbody>.select2-container .forminator-dropdown--default .select2-search:active,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown:hover,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown:focus,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown:active {\n outline: none;\n box-shadow: none;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--default .select2-results .select2-results__option {\n margin: 0;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-results .select2-results__option .select2-results__option,\nbody>.select2-container .forminator-dropdown--default .select2-results .select2-results__option .select2-results__option {\n margin: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--default.select2-dropdown--above,\nbody>.select2-container .forminator-dropdown--default.select2-dropdown--above {\n bottom: 2px;\n}\n\nbody>.select2-container .forminator-droptime--default.select2-dropdown--below,\nbody>.select2-container .forminator-dropdown--default.select2-dropdown--below {\n margin-top: 2px;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-search,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--default .select2-search,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown {\n padding: 9px;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-search .select2-search__field,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown .select2-search__field,\nbody>.select2-container .forminator-dropdown--default .select2-search .select2-search__field,\nbody>.select2-container .forminator-dropdown--default .select2-search--dropdown .select2-search__field {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n line-height: 20px;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--default .select2-results .select2-results__option {\n padding: 9px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\nbody>.select2-container .forminator-droptime--default .select2-search,\nbody>.select2-container .forminator-droptime--default .select2-search--dropdown {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect,\n.forminator-custom-form.forminator-design--default .forminator-multiselect li,\n.forminator-custom-form.forminator-design--default .forminator-multiselect label {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect,\n.forminator-custom-form.forminator-design--default .forminator-multiselect li {\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect li label {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect li label {\n padding: 10px 9px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-multiselect {\n max-height: 120px;\n overflow-x: hidden;\n overflow-y: auto;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-date {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-date.forminator-has_icon:after {\n content: \"∏\";\n position: absolute;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-date.forminator-has_icon .forminator-input {\n padding-right: 40px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-date.forminator-has_icon:after {\n top: 10px;\n right: 10px;\n font-size: 16px;\n width: 20px;\n line-height: 20px;\n text-align: center;\n}\n\n.forminator-calendar--default {\n padding: 2px 0;\n}\n\n.forminator-calendar--default .ui-datepicker-header,\n.forminator-calendar--default .ui-datepicker-calendar {\n margin: 0;\n}\n\n.forminator-calendar--default .ui-datepicker-header {\n display: block;\n position: relative;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next {\n cursor: pointer;\n display: block;\n position: absolute;\n text-align: center;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next:before {\n display: block;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev span,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next span {\n display: none;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev:before {\n content: \"Ó\";\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next:before {\n content: \"˜\";\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-title {\n display: flex;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-title select {\n display: block;\n flex: 1;\n margin: 0;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar {\n padding: 0;\n border-collapse: unset;\n border-spacing: unset;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr {\n border: 0;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td {\n border: 0;\n text-align: center;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--default .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td span {\n display: block;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th {\n font-weight: bold;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-state-disabled,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable {\n pointer-events: none;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-state-disabled a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-state-disabled span,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable span {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-calendar--default .ui-datepicker-header,\n.forminator-calendar--default .ui-datepicker-calendar {\n border-width: 1px;\n border-style: solid;\n}\n\n.forminator-calendar--default .ui-datepicker-header {\n padding-top: 5px;\n padding-bottom: 5px;\n border-bottom: 0;\n border-radius: 2px 2px 0 0;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next {\n top: 5px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev {\n left: 5px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next {\n right: 5px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next:before {\n line-height: 26px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-next:before {\n font-size: 12px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-title {\n margin: 0 5px;\n padding: 0 31px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-title select+select {\n margin-left: 5px;\n}\n\n.forminator-calendar--default .ui-datepicker-header .ui-datepicker-title select {\n height: 26px;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar {\n border-top: 0;\n border-radius: 0 0 2px 2px;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td {\n padding: 5px;\n width: 36px;\n height: 36px;\n line-height: 26px;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--default .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td span {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--default .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td span {\n border-radius: 2px;\n}\n\n.forminator-calendar--default .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--default .ui-datepicker-calendar tbody tr td a {\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button,\n.forminator-custom-form.forminator-design--default button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button,\n.forminator-custom-form.forminator-design--default a.forminator-button:hover,\n.forminator-custom-form.forminator-design--default a.forminator-button:active,\n.forminator-custom-form.forminator-design--default a.forminator-button:visited,\n.forminator-custom-form.forminator-design--default a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--default button.forminator-button,\n.forminator-custom-form.forminator-design--default button.forminator-button:hover,\n.forminator-custom-form.forminator-design--default button.forminator-button:active,\n.forminator-custom-form.forminator-design--default button.forminator-button:visited,\n.forminator-custom-form.forminator-design--default button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button,\n.forminator-custom-form.forminator-design--default a.forminator-button:hover,\n.forminator-custom-form.forminator-design--default a.forminator-button:active,\n.forminator-custom-form.forminator-design--default a.forminator-button:visited,\n.forminator-custom-form.forminator-design--default button.forminator-button,\n.forminator-custom-form.forminator-design--default button.forminator-button:hover,\n.forminator-custom-form.forminator-design--default button.forminator-button:active,\n.forminator-custom-form.forminator-design--default button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--default button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button:first-child,\n.forminator-custom-form.forminator-design--default button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--default a.forminator-button:last-child,\n.forminator-custom-form.forminator-design--default button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) a.forminator-button,\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-custom-form.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar {\n width: 100%;\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--text {\n flex: 0 0 auto;\n margin: 0 10px;\n line-height: 16px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress {\n overflow: hidden;\n flex: 1;\n position: relative;\n margin: 0;\n height: 16px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress,\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress span {\n border-radius: 8px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress span {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav {\n margin: 0 0 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav,\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li {\n display: block;\n position: relative;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav:before {\n content: \" \";\n height: auto;\n position: absolute;\n width: 1px;\n top: 6.5px;\n bottom: 6.5px;\n left: 6.5px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li {\n margin: 10px 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--footer {\n margin-top: 20px;\n padding-top: 20px;\n border-top-width: 1px;\n border-top-style: solid;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text {\n margin: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--bar {\n margin-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav:before {\n content: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--footer {\n display: flex;\n justify-content: space-between;\n margin-top: 30px;\n padding-top: 30px;\n }\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li:before {\n right: 50%;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li:after {\n right: 0;\n left: 50%;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li .forminator-step-text {\n display: block;\n padding-left: 24px;\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--nav li .forminator-step-dot {\n display: block;\n position: absolute;\n left: 0;\n width: 14px;\n height: 14px;\n border-radius: 100%;\n border-width: 1px;\n border-style: solid;\n top: 3px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav li {\n min-width: 33.33%;\n flex: 1 0 33.33%;\n margin: 0;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav li:before,\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav li:after {\n content: \" \";\n width: auto;\n display: block;\n position: absolute;\n height: 1px;\n bottom: 6.5px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-dot {\n position: relative;\n z-index: 1;\n top: auto;\n left: auto;\n margin: 5px auto 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav li .forminator-step-text {\n padding-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--default:not(.forminator-size--small) .forminator-pagination--nav {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n }\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress {\n background-color: #EDEDED;\n}\n\n.forminator-custom-form.forminator-design--default .forminator-pagination--bar .forminator-bar--progress span {\n background-color: #17A8E3;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-label--limit,\n.forminator-custom-form.forminator-design--material .forminator-label--helper {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-label--validation {\n margin-top: 5px;\n padding: 5px 10px;\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-break .forminator-border {\n width: 100%;\n height: 0;\n display: block;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n padding: 0;\n border-style: none;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-break .forminator-border.solid {\n border-style: solid;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-break .forminator-border.dashed {\n border-style: dashed;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input,\n.forminator-custom-form.forminator-design--material .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n background-color: transparent;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input,\n.forminator-custom-form.forminator-design--material .forminator-input:hover,\n.forminator-custom-form.forminator-design--material .forminator-input:focus,\n.forminator-custom-form.forminator-design--material .forminator-input:active,\n.forminator-custom-form.forminator-design--material .forminator-input:disabled,\n.forminator-custom-form.forminator-design--material .forminator-textarea,\n.forminator-custom-form.forminator-design--material .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--material .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--material .forminator-textarea:active,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input,\n.forminator-custom-form.forminator-design--material .forminator-input:hover,\n.forminator-custom-form.forminator-design--material .forminator-input:focus,\n.forminator-custom-form.forminator-design--material .forminator-input:active,\n.forminator-custom-form.forminator-design--material .forminator-textarea,\n.forminator-custom-form.forminator-design--material .forminator-textarea:hover,\n.forminator-custom-form.forminator-design--material .forminator-textarea:focus,\n.forminator-custom-form.forminator-design--material .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input:disabled,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input:disabled:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input:disabled::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input:disabled:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-custom-form.forminator-design--material .intl-tel-input {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input,\n.forminator-custom-form.forminator-design--material .forminator-textarea {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input {\n border-radius: 0;\n padding-top: 10px;\n padding-bottom: 9px;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-textarea {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input {\n height: 40px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input--wrap {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-input--wrap:after {\n content: \" \";\n height: 2px;\n display: block;\n position: absolute;\n right: 50%;\n bottom: 0;\n left: 50%;\n transition: 0.25s linear;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-textarea--wrap {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-textarea--wrap:after {\n content: \" \";\n pointer-events: none;\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date,\n.forminator-custom-form.forminator-design--material .forminator-floating--input,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea {\n position: relative;\n z-index: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-floating--input .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea .forminator-label {\n overflow: hidden;\n pointer-events: none;\n transform-origin: 0;\n transition: transform 0.25s linear,0.25s ease;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-floating--input .forminator-label {\n transform: translateY(30px);\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date {\n padding-left: 26px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea {\n height: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea .forminator-label {\n padding-right: 20px;\n transform: translate(10px, 30px);\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea {\n padding-top: 29px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_hover .forminator-input--wrap:after,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-input--wrap:after,\n.forminator-custom-form.forminator-design--material .forminator-has_error .forminator-input--wrap:after {\n right: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-is_filled .forminator-floating--date .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-is_filled .forminator-floating--input .forminator-label {\n transform: translateY(0);\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea .forminator-label,\n.forminator-custom-form.forminator-design--material .forminator-is_filled .forminator-floating--textarea .forminator-label {\n transform: translate(10px, 4px);\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-date .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input--wrap .forminator-input:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea:-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input:-moz-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-date .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input--wrap .forminator-input::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea::-moz-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input::-moz-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-date .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input--wrap .forminator-input:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea:-ms-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input:-ms-input-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--date+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-date .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-input--wrap .forminator-input::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea ~ .forminator-textarea--wrap .forminator-textarea::-webkit-input-placeholder,\n.forminator-custom-form.forminator-design--material .forminator-is_active .forminator-floating--textarea+.forminator-phone-intl .forminator-input--wrap .forminator-input::-webkit-input-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl {\n display: flex;\n align-items: center;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container {\n cursor: pointer;\n flex: 0 0 auto;\n margin: 0 10px 0 0;\n position: relative;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container .selected-flag {\n width: auto;\n height: auto;\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container .selected-flag .iti-flag,\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container .selected-flag .iti-arrow {\n flex: 0 0 auto;\n position: unset;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container .selected-flag .iti-flag {\n margin-right: 5px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .flag-container .selected-flag .iti-arrow {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .forminator-input--wrap {\n flex: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-phone-intl .forminator-input--wrap .forminator-input {\n padding-right: 0;\n padding-left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .intl-tel-input .forminator-floating--input {\n padding-left: 41px;\n}\n\n.forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-floating--date {\n padding-left: 31px;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio input:focus+.forminator-radio--design:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n animation-name: click-animation;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design:after {\n content: \" \";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n position: absolute;\n border-radius: 50%;\n transform: scale(0);\n transform-origin: center;\n transform-style: preserve-3d;\n animation-duration: 0.6s;\n animation-fill-mode: both;\n width: 20px;\n height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 2px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design:before {\n width: 10px;\n height: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox input:checked+.forminator-checkbox--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox input:focus+.forminator-checkbox--design:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n animation-name: click-animation;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design+.forminator-checkbox--label {\n margin-left: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design:after {\n content: \" \";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n position: absolute;\n border-radius: 50%;\n transform: scale(0);\n transform-origin: center;\n transform-style: preserve-3d;\n animation-duration: 0.6s;\n animation-fill-mode: both;\n width: 20px;\n height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--label[for] {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 2px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--label {\n line-height: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-checkbox .forminator-checkbox--design:before {\n font-size: 10px;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 {\n width: 100% !important;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 *,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 * {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2 {\n height: auto;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single {\n background-color: transparent;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2 {\n padding: 10px 0 9px;\n border: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-radius: 0;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2:after,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2:after {\n content: \" \";\n display: block;\n position: absolute;\n right: 50%;\n left: 50%;\n height: 2px;\n bottom: -1px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2.select2-container--open .forminator-select2:after,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2.select2-container--open .forminator-select2:after {\n right: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-is_hover .forminator-time+.select2 .forminator-select2:after,\n.forminator-custom-form.forminator-design--material .forminator-is_hover .forminator-select+.select2 .forminator-select2:after {\n right: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__rendered {\n padding-right: 30px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow {\n width: 20px;\n height: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 0;\n top: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n content: \"ı\";\n transition: transform 0.2s linear,0.25s ease;\n font-size: 12px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2 .forminator-select2.select2-selection--single .select2-selection__arrow b {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-time+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before,\n.forminator-custom-form.forminator-design--material .forminator-select+.select2.select2-container--open .forminator-select2.select2-selection--single .select2-selection__arrow:before {\n transform: rotate(180deg);\n}\n\nbody>.select2-container .forminator-droptime--material,\nbody>.select2-container .forminator-dropdown--material {\n display: block;\n position: relative;\n box-sizing: border-box;\n border: 0;\n border-radius: 0;\n}\n\nbody>.select2-container .forminator-droptime--material *,\nbody>.select2-container .forminator-dropdown--material * {\n box-sizing: border-box;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-search,\nbody>.select2-container .forminator-droptime--material .select2-search:hover,\nbody>.select2-container .forminator-droptime--material .select2-search:focus,\nbody>.select2-container .forminator-droptime--material .select2-search:active,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown:hover,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown:focus,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown:active,\nbody>.select2-container .forminator-dropdown--material .select2-search,\nbody>.select2-container .forminator-dropdown--material .select2-search:hover,\nbody>.select2-container .forminator-dropdown--material .select2-search:focus,\nbody>.select2-container .forminator-dropdown--material .select2-search:active,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown:hover,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown:focus,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown:active {\n outline: none;\n box-shadow: none;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--material .select2-results .select2-results__option {\n margin: 0;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-results .select2-results__option .select2-results__option,\nbody>.select2-container .forminator-dropdown--material .select2-results .select2-results__option .select2-results__option {\n margin: 0;\n list-style: none;\n}\n\nbody>.select2-container .forminator-droptime--material.select2-dropdown--above,\nbody>.select2-container .forminator-dropdown--material.select2-dropdown--above {\n bottom: 2px;\n}\n\nbody>.select2-container .forminator-droptime--material.select2-dropdown--below,\nbody>.select2-container .forminator-dropdown--material.select2-dropdown--below {\n margin-top: 2px;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-search,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown,\nbody>.select2-container .forminator-dropdown--material .select2-search,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown {\n padding: 10px;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-search .select2-search__field,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown .select2-search__field,\nbody>.select2-container .forminator-dropdown--material .select2-search .select2-search__field,\nbody>.select2-container .forminator-dropdown--material .select2-search--dropdown .select2-search__field {\n padding: 10px;\n border: 0;\n border-radius: 0;\n line-height: 20px;\n}\n\nbody>.select2-container .forminator-droptime--material .select2-results .select2-results__option,\nbody>.select2-container .forminator-dropdown--material .select2-results .select2-results__option {\n padding: 10px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\nbody>.select2-container .forminator-droptime--material:after,\nbody>.select2-container .forminator-dropdown--material:after {\n content: \" \";\n position: absolute;\n z-index: -1;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 3px 8px rgba(0,0,0,0.3);\n}\n\nbody>.select2-container .forminator-droptime--material .select2-search,\nbody>.select2-container .forminator-droptime--material .select2-search--dropdown {\n display: none;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect,\n.forminator-custom-form.forminator-design--material .forminator-multiselect li,\n.forminator-custom-form.forminator-design--material .forminator-multiselect label {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect,\n.forminator-custom-form.forminator-design--material .forminator-multiselect li {\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li label {\n cursor: pointer;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li label {\n padding: 10px 9px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li {\n margin: 10px 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li label {\n position: relative;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li label:after {\n content: \" \";\n pointer-events: none;\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-multiselect li:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-multiselect li:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-multiselect li:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-multiselect li {\n margin: 15px 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-date {\n position: relative;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon {\n display: flex;\n align-items: center;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon:before {\n content: \"∏\";\n flex: 0 0 auto;\n margin-right: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon .forminator-input,\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon .forminator-input--wrap {\n flex: 1;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-date.forminator-has_icon:before {\n font-size: 16px;\n min-width: 16px;\n flex: 0 0 16px;\n}\n\n.forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-date.forminator-has_icon:before {\n margin-right: 15px;\n}\n\n.forminator-calendar--material {\n padding: 2px 0;\n}\n\n.forminator-calendar--material .ui-datepicker-header,\n.forminator-calendar--material .ui-datepicker-calendar {\n margin: 0;\n}\n\n.forminator-calendar--material .ui-datepicker-header {\n display: block;\n position: relative;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next {\n cursor: pointer;\n display: block;\n position: absolute;\n text-align: center;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next:before {\n display: block;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev span,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next span {\n display: none;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev:before {\n content: \"Ó\";\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next:before {\n content: \"˜\";\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-title {\n display: flex;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-title select {\n display: block;\n flex: 1;\n margin: 0;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar {\n padding: 0;\n border-collapse: unset;\n border-spacing: unset;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr {\n border: 0;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td {\n border: 0;\n text-align: center;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--material .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td span {\n display: block;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th {\n font-weight: bold;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-state-disabled,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable {\n pointer-events: none;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-state-disabled a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-state-disabled span,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td.ui-datepicker-unselectable span {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-calendar--material:before {\n content: \" \";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 0 6px 10px rgba(0,0,0,0.3);\n}\n\n.forminator-calendar--material .ui-datepicker-header,\n.forminator-calendar--material .ui-datepicker-calendar {\n position: relative;\n z-index: 1;\n border-width: 0;\n}\n\n.forminator-calendar--material .ui-datepicker-header {\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next {\n top: 20px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev {\n left: 5px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next {\n right: 5px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next {\n width: 26px;\n height: 26px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next:before {\n line-height: 26px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-prev:before,\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-next:before {\n font-size: 16px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-title {\n margin: 0 5px;\n padding: 0 31px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-title select+select {\n margin-left: 5px;\n}\n\n.forminator-calendar--material .ui-datepicker-header .ui-datepicker-title select {\n height: 26px;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td {\n padding: 5px;\n width: 50px;\n height: 50px;\n line-height: 40px;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--material .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td span {\n width: 40px;\n height: 40px;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--material .ui-datepicker-calendar thead tr th span,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td span {\n border-radius: 50%;\n}\n\n.forminator-calendar--material .ui-datepicker-calendar thead tr th a,\n.forminator-calendar--material .ui-datepicker-calendar tbody tr td a {\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button,\n.forminator-custom-form.forminator-design--material button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n overflow: hidden;\n position: relative;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button,\n.forminator-custom-form.forminator-design--material a.forminator-button:hover,\n.forminator-custom-form.forminator-design--material a.forminator-button:active,\n.forminator-custom-form.forminator-design--material a.forminator-button:visited,\n.forminator-custom-form.forminator-design--material a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--material button.forminator-button,\n.forminator-custom-form.forminator-design--material button.forminator-button:hover,\n.forminator-custom-form.forminator-design--material button.forminator-button:active,\n.forminator-custom-form.forminator-design--material button.forminator-button:visited,\n.forminator-custom-form.forminator-design--material button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button,\n.forminator-custom-form.forminator-design--material a.forminator-button:hover,\n.forminator-custom-form.forminator-design--material a.forminator-button:active,\n.forminator-custom-form.forminator-design--material a.forminator-button:visited,\n.forminator-custom-form.forminator-design--material button.forminator-button,\n.forminator-custom-form.forminator-design--material button.forminator-button:hover,\n.forminator-custom-form.forminator-design--material button.forminator-button:active,\n.forminator-custom-form.forminator-design--material button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button:disabled,\n.forminator-custom-form.forminator-design--material button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button:first-child,\n.forminator-custom-form.forminator-design--material button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button:last-child,\n.forminator-custom-form.forminator-design--material button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-custom-form.forminator-design--material a.forminator-button .forminator-button--text,\n.forminator-custom-form.forminator-design--material button.forminator-button .forminator-button--mask,\n.forminator-custom-form.forminator-design--material button.forminator-button .forminator-button--text {\n display: block;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-custom-form.forminator-design--material button.forminator-button .forminator-button--mask {\n width: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n padding: 0;\n border-radius: 100%;\n background-color: rgba(0,0,0,0.12);\n transform: translate(-50%, -50%);\n transition: width 450ms cubic-bezier(0.23, 1, 0.32, 1),0.2s ease-out;\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button:active,\n.forminator-custom-form.forminator-design--material button.forminator-button:active {\n box-shadow: 0 1px 4px 0 rgba(0,0,0,0.6);\n}\n\n.forminator-custom-form.forminator-design--material a.forminator-button:active .forminator-button--mask,\n.forminator-custom-form.forminator-design--material button.forminator-button:active .forminator-button--mask {\n width: 120%;\n padding: 120% 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) a.forminator-button,\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-custom-form.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-custom-form.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar {\n width: 100%;\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--text {\n flex: 0 0 auto;\n margin: 0 10px;\n line-height: 8px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--progress {\n overflow: hidden;\n flex: 1;\n position: relative;\n margin: 0;\n height: 8px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--progress span {\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav {\n margin: 0 0 20px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav,\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li {\n display: block;\n position: relative;\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav:before {\n content: \" \";\n height: auto;\n position: absolute;\n width: 1px;\n top: 10px;\n bottom: 10px;\n left: 10px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li {\n margin: 10px 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li:first-child {\n margin-top: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--footer {\n margin-top: 20px;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--bar .forminator-bar--text {\n margin: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--bar {\n margin-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--nav:before {\n content: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--nav {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--footer {\n display: flex;\n justify-content: space-between;\n margin-top: 30px;\n }\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav {\n position: relative;\n counter-reset: pagination-steps;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li {\n display: flex;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li:before {\n content: \"(\";\n counter-increment: pagination-steps;\n margin-right: 10px;\n border-radius: 50%;\n text-align: center;\n width: 21px;\n height: 21px;\n font-size: 10.5px;\n line-height: 21px;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li .forminator-step-text {\n align-self: center;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li.forminator-step-current:before {\n content: counter(pagination-steps);\n font-family: inherit !important;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--nav li.forminator-step-current ~ li:before {\n content: counter(pagination-steps);\n font-family: inherit !important;\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--nav li {\n flex: 0 0 auto;\n margin: 0;\n padding: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--nav .forminator-nav-border:not(:last-child) {\n flex: 1;\n height: 1px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-custom-form.forminator-design--material:not(.forminator-size--small) .forminator-pagination--nav {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin: 0 -15px 30px;\n }\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--progress {\n background-color: #EDEDED;\n}\n\n.forminator-custom-form.forminator-design--material .forminator-pagination--bar .forminator-bar--progress span {\n background-color: #17A8E3;\n}\n\n.forminator-poll {\n box-sizing: border-box;\n}\n\n.forminator-poll * {\n box-sizing: border-box;\n}\n\n.forminator-poll .forminator-poll--image {\n max-width: 100%;\n height: auto;\n}\n\n.forminator-poll .forminator-label--info {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #F8F8F8;\n color: #888;\n}\n\n.forminator-poll .forminator-label--info:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-poll .forminator-label--info:before {\n content: \"I\";\n color: #888;\n}\n\n.forminator-poll .forminator-label--info * {\n color: inherit;\n}\n\n.forminator-poll .forminator-label--info>span,\n.forminator-poll .forminator-label--info>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-poll .forminator-label--info,\n.forminator-poll .forminator-label--info p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-poll .forminator-label--info strong,\n.forminator-poll .forminator-label--info p strong {\n font-weight: bold;\n}\n\n.forminator-poll .forminator-label--info:first-child {\n margin-top: 0;\n}\n\n.forminator-poll .forminator-label--info:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll .forminator-label--info {\n margin: 30px 0;\n }\n}\n\n.forminator-poll .forminator-label--error {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #CB4B57;\n color: #fff;\n}\n\n.forminator-poll .forminator-label--error:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-poll .forminator-label--error:before {\n content: \"!\";\n color: #fff;\n}\n\n.forminator-poll .forminator-label--error * {\n color: inherit;\n}\n\n.forminator-poll .forminator-label--error>span,\n.forminator-poll .forminator-label--error>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-poll .forminator-label--error,\n.forminator-poll .forminator-label--error p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-poll .forminator-label--error strong,\n.forminator-poll .forminator-label--error p strong {\n font-weight: bold;\n}\n\n.forminator-poll .forminator-label--error:first-child {\n margin-top: 0;\n}\n\n.forminator-poll .forminator-label--error:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll .forminator-label--error {\n margin: 30px 0;\n }\n}\n\n.forminator-poll .forminator-label--notice {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #FFF4D2;\n color: #333;\n}\n\n.forminator-poll .forminator-label--notice:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-poll .forminator-label--notice:before {\n content: \"I\";\n color: #333;\n}\n\n.forminator-poll .forminator-label--notice * {\n color: inherit;\n}\n\n.forminator-poll .forminator-label--notice>span,\n.forminator-poll .forminator-label--notice>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-poll .forminator-label--notice,\n.forminator-poll .forminator-label--notice p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-poll .forminator-label--notice strong,\n.forminator-poll .forminator-label--notice p strong {\n font-weight: bold;\n}\n\n.forminator-poll .forminator-label--notice:first-child {\n margin-top: 0;\n}\n\n.forminator-poll .forminator-label--notice:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll .forminator-label--notice {\n margin: 30px 0;\n }\n}\n\n.forminator-poll .forminator-label--success {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #1ABC9C;\n color: #fff;\n}\n\n.forminator-poll .forminator-label--success:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-poll .forminator-label--success:before {\n content: \"(\";\n color: #fff;\n}\n\n.forminator-poll .forminator-label--success * {\n color: inherit;\n}\n\n.forminator-poll .forminator-label--success>span,\n.forminator-poll .forminator-label--success>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-poll .forminator-label--success,\n.forminator-poll .forminator-label--success p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-poll .forminator-label--success strong,\n.forminator-poll .forminator-label--success p strong {\n font-weight: bold;\n}\n\n.forminator-poll .forminator-label--success:first-child {\n margin-top: 0;\n}\n\n.forminator-poll .forminator-label--success:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll .forminator-label--success {\n margin: 30px 0;\n }\n}\n\n.forminator-poll .forminator-label--loading {\n height: auto;\n cursor: default;\n display: block;\n position: relative;\n margin: 20px 0;\n padding: 14px;\n border-radius: 4px;\n transition: height 0.3s linear, opacity 0.3s ease;\n background-color: #D4EEF9;\n color: #888;\n}\n\n.forminator-poll .forminator-label--loading:before {\n width: 16px;\n height: 16px;\n display: block;\n position: absolute;\n top: 16px;\n left: 14px;\n font-size: 16px;\n text-align: center;\n}\n\n.forminator-poll .forminator-label--loading:before {\n width: 18px;\n height: 18px;\n border: 2px solid #fff;\n border-bottom-color: transparent;\n border-radius: 100%;\n box-sizing: border-box;\n animation: spin .75s 0s linear infinite;\n}\n\n.forminator-poll .forminator-label--loading * {\n color: inherit;\n}\n\n.forminator-poll .forminator-label--loading>span,\n.forminator-poll .forminator-label--loading>div {\n cursor: initial;\n display: block;\n padding-left: 30px;\n}\n\n.forminator-poll .forminator-label--loading,\n.forminator-poll .forminator-label--loading p {\n font-size: 13px;\n line-height: 20px;\n font-family: \"Roboto\",Arial,sans-serif;\n font-weight: 400;\n letter-spacing: -.0025em;\n}\n\n.forminator-poll .forminator-label--loading strong,\n.forminator-poll .forminator-label--loading p strong {\n font-weight: bold;\n}\n\n.forminator-poll .forminator-label--loading:first-child {\n margin-top: 0;\n}\n\n.forminator-poll .forminator-label--loading:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll .forminator-label--loading {\n margin: 30px 0;\n }\n}\n\n.forminator-poll .forminator-poll--chart {\n max-width: 100%;\n height: auto;\n display: block;\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--question {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 21px;\n line-height: 30px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) .forminator-poll--question {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--description {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 15px;\n line-height: 20px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) .forminator-poll--description {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--answers {\n margin: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--answers,\n.forminator-poll.forminator-design--bold .forminator-poll--answers li {\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--answers li {\n margin: 10px 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--answers li:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--answers li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 3px;\n border-style: solid;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n width: 8px;\n height: 8px;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--bold .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input,\n.forminator-poll.forminator-design--bold .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input,\n.forminator-poll.forminator-design--bold .forminator-input:hover,\n.forminator-poll.forminator-design--bold .forminator-input:focus,\n.forminator-poll.forminator-design--bold .forminator-input:active,\n.forminator-poll.forminator-design--bold .forminator-input:disabled,\n.forminator-poll.forminator-design--bold .forminator-textarea,\n.forminator-poll.forminator-design--bold .forminator-textarea:hover,\n.forminator-poll.forminator-design--bold .forminator-textarea:focus,\n.forminator-poll.forminator-design--bold .forminator-textarea:active,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input,\n.forminator-poll.forminator-design--bold .forminator-input:hover,\n.forminator-poll.forminator-design--bold .forminator-input:focus,\n.forminator-poll.forminator-design--bold .forminator-input:active,\n.forminator-poll.forminator-design--bold .forminator-textarea,\n.forminator-poll.forminator-design--bold .forminator-textarea:hover,\n.forminator-poll.forminator-design--bold .forminator-textarea:focus,\n.forminator-poll.forminator-design--bold .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input:disabled,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input:disabled:-moz-placeholder,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input:disabled::-moz-placeholder,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input:disabled:-ms-input-placeholder,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-poll.forminator-design--bold .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--bold .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-poll.forminator-design--bold .intl-tel-input {\n display: block;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input,\n.forminator-poll.forminator-design--bold .forminator-textarea {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-textarea {\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n border-radius: 0;\n}\n\n.forminator-poll.forminator-design--bold .forminator-input {\n height: 40px;\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--actions {\n margin: 20px 0 0;\n text-align: center;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--actions a:not(.forminator-button) {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--actions a:not(.forminator-button),\n.forminator-poll.forminator-design--bold .forminator-poll--actions a:not(.forminator-button):hover,\n.forminator-poll.forminator-design--bold .forminator-poll--actions a:not(.forminator-button):active,\n.forminator-poll.forminator-design--bold .forminator-poll--actions a:not(.forminator-button):visited {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--bold .forminator-poll--actions a.forminator-button,\n.forminator-poll.forminator-design--bold .forminator-poll--actions button.forminator-button {\n padding: 12px;\n border-radius: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) .forminator-poll--actions a:not(.forminator-button) {\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) .forminator-poll--actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin: 30px 0 0;\n }\n}\n\n.forminator-poll.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button,\n.forminator-poll.forminator-design--bold button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 12px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button,\n.forminator-poll.forminator-design--bold a.forminator-button:hover,\n.forminator-poll.forminator-design--bold a.forminator-button:active,\n.forminator-poll.forminator-design--bold a.forminator-button:visited,\n.forminator-poll.forminator-design--bold a.forminator-button:disabled,\n.forminator-poll.forminator-design--bold button.forminator-button,\n.forminator-poll.forminator-design--bold button.forminator-button:hover,\n.forminator-poll.forminator-design--bold button.forminator-button:active,\n.forminator-poll.forminator-design--bold button.forminator-button:visited,\n.forminator-poll.forminator-design--bold button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button,\n.forminator-poll.forminator-design--bold a.forminator-button:hover,\n.forminator-poll.forminator-design--bold a.forminator-button:active,\n.forminator-poll.forminator-design--bold a.forminator-button:visited,\n.forminator-poll.forminator-design--bold button.forminator-button,\n.forminator-poll.forminator-design--bold button.forminator-button:hover,\n.forminator-poll.forminator-design--bold button.forminator-button:active,\n.forminator-poll.forminator-design--bold button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button:disabled,\n.forminator-poll.forminator-design--bold button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button:first-child,\n.forminator-poll.forminator-design--bold button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--bold a.forminator-button:last-child,\n.forminator-poll.forminator-design--bold button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) a.forminator-button,\n .forminator-poll.forminator-design--bold:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--question {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 15px;\n line-height: 20px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) .forminator-poll--question {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--description {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 13px;\n line-height: 18px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) .forminator-poll--description {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--answers {\n margin: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--answers,\n.forminator-poll.forminator-design--flat .forminator-poll--answers li {\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--answers li {\n margin: 10px 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--answers li:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--answers li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border: 0;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n width: 12px;\n height: 12px;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--flat .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input,\n.forminator-poll.forminator-design--flat .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input,\n.forminator-poll.forminator-design--flat .forminator-input:hover,\n.forminator-poll.forminator-design--flat .forminator-input:focus,\n.forminator-poll.forminator-design--flat .forminator-input:active,\n.forminator-poll.forminator-design--flat .forminator-input:disabled,\n.forminator-poll.forminator-design--flat .forminator-textarea,\n.forminator-poll.forminator-design--flat .forminator-textarea:hover,\n.forminator-poll.forminator-design--flat .forminator-textarea:focus,\n.forminator-poll.forminator-design--flat .forminator-textarea:active,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input,\n.forminator-poll.forminator-design--flat .forminator-input:hover,\n.forminator-poll.forminator-design--flat .forminator-input:focus,\n.forminator-poll.forminator-design--flat .forminator-input:active,\n.forminator-poll.forminator-design--flat .forminator-textarea,\n.forminator-poll.forminator-design--flat .forminator-textarea:hover,\n.forminator-poll.forminator-design--flat .forminator-textarea:focus,\n.forminator-poll.forminator-design--flat .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input:disabled,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input:disabled:-moz-placeholder,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input:disabled::-moz-placeholder,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input:disabled:-ms-input-placeholder,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-poll.forminator-design--flat .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--flat .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-poll.forminator-design--flat .intl-tel-input {\n display: block;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input,\n.forminator-poll.forminator-design--flat .forminator-textarea {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input {\n padding: 10px;\n border: 0;\n border-radius: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-textarea {\n padding: 10px;\n border-radius: 0;\n}\n\n.forminator-poll.forminator-design--flat .forminator-input {\n height: 40px;\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--actions {\n margin: 20px 0 0;\n text-align: center;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--actions a:not(.forminator-button) {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--actions a:not(.forminator-button),\n.forminator-poll.forminator-design--flat .forminator-poll--actions a:not(.forminator-button):hover,\n.forminator-poll.forminator-design--flat .forminator-poll--actions a:not(.forminator-button):active,\n.forminator-poll.forminator-design--flat .forminator-poll--actions a:not(.forminator-button):visited {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--flat .forminator-poll--actions a.forminator-button,\n.forminator-poll.forminator-design--flat .forminator-poll--actions button.forminator-button {\n padding: 10px;\n border-radius: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) .forminator-poll--actions a:not(.forminator-button) {\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) .forminator-poll--actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin: 30px 0 0;\n }\n}\n\n.forminator-poll.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button,\n.forminator-poll.forminator-design--flat button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button,\n.forminator-poll.forminator-design--flat a.forminator-button:hover,\n.forminator-poll.forminator-design--flat a.forminator-button:active,\n.forminator-poll.forminator-design--flat a.forminator-button:visited,\n.forminator-poll.forminator-design--flat a.forminator-button:disabled,\n.forminator-poll.forminator-design--flat button.forminator-button,\n.forminator-poll.forminator-design--flat button.forminator-button:hover,\n.forminator-poll.forminator-design--flat button.forminator-button:active,\n.forminator-poll.forminator-design--flat button.forminator-button:visited,\n.forminator-poll.forminator-design--flat button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button,\n.forminator-poll.forminator-design--flat a.forminator-button:hover,\n.forminator-poll.forminator-design--flat a.forminator-button:active,\n.forminator-poll.forminator-design--flat a.forminator-button:visited,\n.forminator-poll.forminator-design--flat button.forminator-button,\n.forminator-poll.forminator-design--flat button.forminator-button:hover,\n.forminator-poll.forminator-design--flat button.forminator-button:active,\n.forminator-poll.forminator-design--flat button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button:disabled,\n.forminator-poll.forminator-design--flat button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button:first-child,\n.forminator-poll.forminator-design--flat button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--flat a.forminator-button:last-child,\n.forminator-poll.forminator-design--flat button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) a.forminator-button,\n .forminator-poll.forminator-design--flat:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--question {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 15px;\n line-height: 20px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) .forminator-poll--question {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--description {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 13px;\n line-height: 18px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) .forminator-poll--description {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--answers {\n margin: 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--answers,\n.forminator-poll.forminator-design--default .forminator-poll--answers li {\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--answers li {\n margin: 10px 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--answers li:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--answers li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design:before {\n width: 12px;\n height: 12px;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--default .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-input,\n.forminator-poll.forminator-design--default .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n}\n\n.forminator-poll.forminator-design--default .forminator-input,\n.forminator-poll.forminator-design--default .forminator-input:hover,\n.forminator-poll.forminator-design--default .forminator-input:focus,\n.forminator-poll.forminator-design--default .forminator-input:active,\n.forminator-poll.forminator-design--default .forminator-input:disabled,\n.forminator-poll.forminator-design--default .forminator-textarea,\n.forminator-poll.forminator-design--default .forminator-textarea:hover,\n.forminator-poll.forminator-design--default .forminator-textarea:focus,\n.forminator-poll.forminator-design--default .forminator-textarea:active,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-poll.forminator-design--default .forminator-input,\n.forminator-poll.forminator-design--default .forminator-input:hover,\n.forminator-poll.forminator-design--default .forminator-input:focus,\n.forminator-poll.forminator-design--default .forminator-input:active,\n.forminator-poll.forminator-design--default .forminator-textarea,\n.forminator-poll.forminator-design--default .forminator-textarea:hover,\n.forminator-poll.forminator-design--default .forminator-textarea:focus,\n.forminator-poll.forminator-design--default .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--default .forminator-input:disabled,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-poll.forminator-design--default .forminator-input:disabled:-moz-placeholder,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--default .forminator-input:disabled::-moz-placeholder,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--default .forminator-input:disabled:-ms-input-placeholder,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--default .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-poll.forminator-design--default .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--default .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-poll.forminator-design--default .intl-tel-input {\n display: block;\n}\n\n.forminator-poll.forminator-design--default .forminator-input,\n.forminator-poll.forminator-design--default .forminator-textarea {\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--default .forminator-input {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-poll.forminator-design--default .forminator-textarea {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-poll.forminator-design--default .forminator-input {\n height: 40px;\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--actions {\n margin: 20px 0 0;\n text-align: center;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--actions a:not(.forminator-button) {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: normal;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--actions a:not(.forminator-button),\n.forminator-poll.forminator-design--default .forminator-poll--actions a:not(.forminator-button):hover,\n.forminator-poll.forminator-design--default .forminator-poll--actions a:not(.forminator-button):active,\n.forminator-poll.forminator-design--default .forminator-poll--actions a:not(.forminator-button):visited {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--default .forminator-poll--actions a.forminator-button,\n.forminator-poll.forminator-design--default .forminator-poll--actions button.forminator-button {\n padding: 10px;\n border-radius: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) .forminator-poll--actions a:not(.forminator-button) {\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) .forminator-poll--actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin: 30px 0 0;\n }\n}\n\n.forminator-poll.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button,\n.forminator-poll.forminator-design--default button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button,\n.forminator-poll.forminator-design--default a.forminator-button:hover,\n.forminator-poll.forminator-design--default a.forminator-button:active,\n.forminator-poll.forminator-design--default a.forminator-button:visited,\n.forminator-poll.forminator-design--default a.forminator-button:disabled,\n.forminator-poll.forminator-design--default button.forminator-button,\n.forminator-poll.forminator-design--default button.forminator-button:hover,\n.forminator-poll.forminator-design--default button.forminator-button:active,\n.forminator-poll.forminator-design--default button.forminator-button:visited,\n.forminator-poll.forminator-design--default button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button,\n.forminator-poll.forminator-design--default a.forminator-button:hover,\n.forminator-poll.forminator-design--default a.forminator-button:active,\n.forminator-poll.forminator-design--default a.forminator-button:visited,\n.forminator-poll.forminator-design--default button.forminator-button,\n.forminator-poll.forminator-design--default button.forminator-button:hover,\n.forminator-poll.forminator-design--default button.forminator-button:active,\n.forminator-poll.forminator-design--default button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button:disabled,\n.forminator-poll.forminator-design--default button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button:first-child,\n.forminator-poll.forminator-design--default button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--default a.forminator-button:last-child,\n.forminator-poll.forminator-design--default button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-poll.forminator-design--default:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-poll.forminator-design--default:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--default:not(.forminator-size--small) a.forminator-button,\n .forminator-poll.forminator-design--default:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--question {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 15px;\n line-height: 20px;\n font-weight: bold;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) .forminator-poll--question {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--description {\n margin: 0 0 10px;\n padding: 0;\n border: 0;\n font-size: 13px;\n line-height: 18px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) .forminator-poll--description {\n margin: 0 0 15px;\n }\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--answers {\n margin: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--answers,\n.forminator-poll.forminator-design--material .forminator-poll--answers li {\n padding: 0;\n border: 0;\n list-style: none;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--answers li {\n margin: 10px 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--answers li:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--answers li:last-child {\n margin-bottom: 0;\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio {\n display: flex;\n position: relative;\n margin: 5px 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio input:checked+.forminator-radio--design:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio input:focus+.forminator-radio--design:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n animation-name: click-animation;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design {\n cursor: pointer;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n position: relative;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design:before {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design+.forminator-radio--label {\n margin-left: 10px;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design:after {\n content: \" \";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n position: absolute;\n border-radius: 50%;\n transform: scale(0);\n transform-origin: center;\n transform-style: preserve-3d;\n animation-duration: 0.6s;\n animation-fill-mode: both;\n width: 20px;\n height: 20px;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--label {\n cursor: default;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n letter-spacing: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--label[for] {\n cursor: pointer;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design {\n width: 20px;\n height: 20px;\n flex: 0 0 20px;\n border-width: 2px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--label {\n line-height: 20px;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design:before {\n width: 10px;\n height: 10px;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design {\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--material .forminator-radio .forminator-radio--design:before {\n content: \" \";\n border-radius: 100%;\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-input,\n.forminator-poll.forminator-design--material .forminator-textarea {\n width: 100%;\n max-width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n background-image: unset;\n background-color: transparent;\n}\n\n.forminator-poll.forminator-design--material .forminator-input,\n.forminator-poll.forminator-design--material .forminator-input:hover,\n.forminator-poll.forminator-design--material .forminator-input:focus,\n.forminator-poll.forminator-design--material .forminator-input:active,\n.forminator-poll.forminator-design--material .forminator-input:disabled,\n.forminator-poll.forminator-design--material .forminator-textarea,\n.forminator-poll.forminator-design--material .forminator-textarea:hover,\n.forminator-poll.forminator-design--material .forminator-textarea:focus,\n.forminator-poll.forminator-design--material .forminator-textarea:active,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled {\n outline: none;\n box-shadow: none;\n}\n\n.forminator-poll.forminator-design--material .forminator-input,\n.forminator-poll.forminator-design--material .forminator-input:hover,\n.forminator-poll.forminator-design--material .forminator-input:focus,\n.forminator-poll.forminator-design--material .forminator-input:active,\n.forminator-poll.forminator-design--material .forminator-textarea,\n.forminator-poll.forminator-design--material .forminator-textarea:hover,\n.forminator-poll.forminator-design--material .forminator-textarea:focus,\n.forminator-poll.forminator-design--material .forminator-textarea:active {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-input:disabled,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled {\n pointer-events: none;\n border-style: dotted;\n}\n\n.forminator-poll.forminator-design--material .forminator-input:disabled:-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled:-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--material .forminator-input:disabled::-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled::-moz-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--material .forminator-input:disabled:-ms-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled:-ms-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--material .forminator-input:disabled::-webkit-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-textarea:disabled::-webkit-input-placeholder {\n filter: alpha(opacity=40);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);\n opacity: .4;\n -khtml-opacity: .4;\n}\n\n.forminator-poll.forminator-design--material .forminator-textarea {\n height: auto;\n min-height: 140px;\n resize: vertical;\n}\n\n.forminator-poll.forminator-design--material .intl-tel-input {\n display: block;\n}\n\n.forminator-poll.forminator-design--material .forminator-input,\n.forminator-poll.forminator-design--material .forminator-textarea {\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--material .forminator-input {\n border-radius: 0;\n padding-top: 10px;\n padding-bottom: 9px;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n}\n\n.forminator-poll.forminator-design--material .forminator-textarea {\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-poll.forminator-design--material .forminator-input {\n height: 40px;\n}\n\n.forminator-poll.forminator-design--material .forminator-input--wrap {\n position: relative;\n}\n\n.forminator-poll.forminator-design--material .forminator-input--wrap:after {\n content: \" \";\n height: 2px;\n display: block;\n position: absolute;\n right: 50%;\n bottom: 0;\n left: 50%;\n transition: 0.25s linear;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input {\n position: relative;\n z-index: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input .forminator-label {\n pointer-events: none;\n transform-origin: 0;\n transition: transform 0.25s linear,0.25s ease;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input .forminator-label {\n transform: translateY(30px);\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input:-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input:-moz-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input::-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input::-moz-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input:-ms-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input:-ms-input-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input::-webkit-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-floating--input+.forminator-input--wrap .forminator-input::-webkit-input-placeholder {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-is_hover .forminator-input--wrap:after,\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-input--wrap:after,\n.forminator-poll.forminator-design--material .forminator-has_error .forminator-input--wrap:after {\n right: 0;\n left: 0;\n}\n\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input .forminator-label,\n.forminator-poll.forminator-design--material .forminator-is_filled .forminator-floating--input .forminator-label {\n transform: translateY(0);\n}\n\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input:-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input:-moz-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input::-moz-placeholder,\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input::-moz-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input:-ms-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input:-ms-input-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input::-webkit-input-placeholder,\n.forminator-poll.forminator-design--material .forminator-is_active .forminator-floating--input+.forminator-input--wrap .forminator-input::-webkit-input-placeholder {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--actions {\n margin: 20px 0 0;\n text-align: center;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--actions a:not(.forminator-button) {\n margin: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: normal;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--actions a:not(.forminator-button),\n.forminator-poll.forminator-design--material .forminator-poll--actions a:not(.forminator-button):hover,\n.forminator-poll.forminator-design--material .forminator-poll--actions a:not(.forminator-button):active,\n.forminator-poll.forminator-design--material .forminator-poll--actions a:not(.forminator-button):visited {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--material .forminator-poll--actions a.forminator-button,\n.forminator-poll.forminator-design--material .forminator-poll--actions button.forminator-button {\n padding: 10px;\n border-radius: 0;\n font-size: 14px;\n line-height: 20px;\n font-weight: normal;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) .forminator-poll--actions a:not(.forminator-button) {\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) .forminator-poll--actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin: 30px 0 0;\n }\n}\n\n.forminator-poll.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-poll.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button,\n.forminator-poll.forminator-design--material button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n overflow: hidden;\n position: relative;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button,\n.forminator-poll.forminator-design--material a.forminator-button:hover,\n.forminator-poll.forminator-design--material a.forminator-button:active,\n.forminator-poll.forminator-design--material a.forminator-button:visited,\n.forminator-poll.forminator-design--material a.forminator-button:disabled,\n.forminator-poll.forminator-design--material button.forminator-button,\n.forminator-poll.forminator-design--material button.forminator-button:hover,\n.forminator-poll.forminator-design--material button.forminator-button:active,\n.forminator-poll.forminator-design--material button.forminator-button:visited,\n.forminator-poll.forminator-design--material button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button,\n.forminator-poll.forminator-design--material a.forminator-button:hover,\n.forminator-poll.forminator-design--material a.forminator-button:active,\n.forminator-poll.forminator-design--material a.forminator-button:visited,\n.forminator-poll.forminator-design--material button.forminator-button,\n.forminator-poll.forminator-design--material button.forminator-button:hover,\n.forminator-poll.forminator-design--material button.forminator-button:active,\n.forminator-poll.forminator-design--material button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button:disabled,\n.forminator-poll.forminator-design--material button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button:first-child,\n.forminator-poll.forminator-design--material button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button:last-child,\n.forminator-poll.forminator-design--material button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-poll.forminator-design--material a.forminator-button .forminator-button--text,\n.forminator-poll.forminator-design--material button.forminator-button .forminator-button--mask,\n.forminator-poll.forminator-design--material button.forminator-button .forminator-button--text {\n display: block;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-poll.forminator-design--material button.forminator-button .forminator-button--mask {\n width: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n padding: 0;\n border-radius: 100%;\n background-color: rgba(0,0,0,0.12);\n transform: translate(-50%, -50%);\n transition: width 450ms cubic-bezier(0.23, 1, 0.32, 1),0.2s ease-out;\n}\n\n.forminator-poll.forminator-design--material a.forminator-button:active,\n.forminator-poll.forminator-design--material button.forminator-button:active {\n box-shadow: 0 1px 4px 0 rgba(0,0,0,0.6);\n}\n\n.forminator-poll.forminator-design--material a.forminator-button:active .forminator-button--mask,\n.forminator-poll.forminator-design--material button.forminator-button:active .forminator-button--mask {\n width: 120%;\n padding: 120% 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-poll.forminator-design--material:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-poll.forminator-design--material:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-poll.forminator-design--material:not(.forminator-size--small) a.forminator-button,\n .forminator-poll.forminator-design--material:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--grid {\n max-width: 600px;\n}\n\n.forminator-quiz .forminator-question-has-image img {\n max-width: 100%;\n height: auto;\n}\n\n.forminator-quiz.forminator-design--bold {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--bold:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-quiz.forminator-design--bold:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold {\n margin: 30px auto;\n }\n}\n\n.forminator-quiz.forminator-design--bold * {\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--title,\n.forminator-quiz.forminator-design--bold .forminator-quiz--description,\n.forminator-quiz.forminator-design--bold .forminator-quiz--image {\n margin: 0 0 20px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--title:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--description:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--image:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--title,\n.forminator-quiz.forminator-design--bold .forminator-quiz--description {\n padding: 0;\n border: 0;\n letter-spacing: 0;\n text-transform: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--title {\n line-height: 1.4em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--description {\n line-height: 1.7em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--image {\n width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--image img {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n border: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h6,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary p {\n padding: 0;\n line-height: 1.2em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h1:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h2:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h3:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h4:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h5:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h6:first-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary p:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h1:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h2:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h3:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h4:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h5:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h6:last-child,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary p:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary h6 {\n margin-top: 0.8em;\n margin-bottom: 0.8em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary p {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icons {\n margin: 10px -10px;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icons li {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n border: 0;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icons:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icons:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon {\n line-height: 1;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon a {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon a,\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:active,\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:visited {\n border: 0;\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon a,\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:active {\n filter: alpha(opacity=70);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);\n opacity: .7;\n -khtml-opacity: .7;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-social--icon a:before {\n display: block;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--title:last-child,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--description:last-child,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--image:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--title,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--description,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--image {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--summary:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--summary {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-social--icons li {\n padding: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-social--icons:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-social--icons:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-social--icons {\n margin: 15px -15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-quiz--title,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-quiz--description {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-quiz--image img {\n margin: 0 auto;\n }\n}\n\n.forminator-quiz.forminator-design--bold .forminator-question {\n margin: 20px 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-question legend {\n margin: 0;\n line-height: 1.7em;\n letter-spacing: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-question .forminator-question--result {\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n}\n\n.forminator-quiz.forminator-design--bold .forminator-question .forminator-question--result span {\n display: block;\n line-height: 1.8em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-question .forminator-question--has-image img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-question {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-question .forminator-question--result {\n padding-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-question legend,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n display: block;\n flex: 0 0 100%;\n padding: 0 15px;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result span {\n display: inline-flex;\n padding: 0 15px 15px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-question {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer {\n margin: 10px 0;\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer,\n.forminator-quiz.forminator-design--bold .forminator-answer span {\n display: block;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer input:checked+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer input:checked+span .forminator-answer--check:after,\n.forminator-quiz.forminator-design--bold .forminator-answer input:checked+span .forminator-answer--status:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer input:checked+span .forminator-answer--check:before,\n.forminator-quiz.forminator-design--bold .forminator-answer input:checked+span .forminator-answer--status:before {\n animation-name: click-animation;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer input:disabled+span,\n.forminator-quiz.forminator-design--bold .forminator-answer input.forminator-has-been-disabled+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--design {\n width: 100%;\n cursor: pointer;\n pointer-events: initial;\n display: flex;\n position: relative;\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--image {\n width: 80px;\n height: 80px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--image+.forminator-answer--check,\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-top: 25px;\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--check,\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--status {\n width: 30px;\n height: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-width: 3px;\n border-style: solid;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--check+.forminator-answer--name,\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--check:after {\n content: \"(\";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--status:after {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: center;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-is_correct .forminator-answer--status:after {\n content: \"\\28\";\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-is_incorrect .forminator-answer--status:after {\n content: \"\\29\";\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-empty,\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-only--image {\n max-width: 100px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-empty .forminator-answer--design {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer:not(.forminator-only--text):not(.forminator-empty) .forminator-answer--check {\n margin-top: 25px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-only--image .forminator-answer--check,\n.forminator-quiz.forminator-design--bold .forminator-answer.forminator-only--image .forminator-answer--status {\n display: none;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-answer:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-answer:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-answer {\n margin: 15px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--design {\n display: block;\n height: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--check,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-left: 0;\n top: 187px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image {\n width: 100%;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check:after,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status:after {\n font-size: 12px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 32px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status {\n width: 22px;\n height: 22px;\n position: absolute;\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--status+.forminator-answer--name {\n margin-top: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--design {\n display: flex;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--image+.forminator-answer--check {\n top: 187px;\n left: 7px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-only--text .forminator-answer--design {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-answer {\n max-width: 33.33%;\n flex: 0 0 33.33%;\n margin: 15px 0;\n padding: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button,\n.forminator-quiz.forminator-design--bold button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 12px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button,\n.forminator-quiz.forminator-design--bold a.forminator-button:hover,\n.forminator-quiz.forminator-design--bold a.forminator-button:active,\n.forminator-quiz.forminator-design--bold a.forminator-button:visited,\n.forminator-quiz.forminator-design--bold a.forminator-button:disabled,\n.forminator-quiz.forminator-design--bold button.forminator-button,\n.forminator-quiz.forminator-design--bold button.forminator-button:hover,\n.forminator-quiz.forminator-design--bold button.forminator-button:active,\n.forminator-quiz.forminator-design--bold button.forminator-button:visited,\n.forminator-quiz.forminator-design--bold button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button,\n.forminator-quiz.forminator-design--bold a.forminator-button:hover,\n.forminator-quiz.forminator-design--bold a.forminator-button:active,\n.forminator-quiz.forminator-design--bold a.forminator-button:visited,\n.forminator-quiz.forminator-design--bold button.forminator-button,\n.forminator-quiz.forminator-design--bold button.forminator-button:hover,\n.forminator-quiz.forminator-design--bold button.forminator-button:active,\n.forminator-quiz.forminator-design--bold button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button:disabled,\n.forminator-quiz.forminator-design--bold button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button:first-child,\n.forminator-quiz.forminator-design--bold button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold a.forminator-button:last-child,\n.forminator-quiz.forminator-design--bold button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) a.forminator-button,\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--result {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--result:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-quiz--result:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result {\n display: flex;\n flex-direction: column-reverse;\n padding: 7px;\n border-width: 3px;\n border-style: solid;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n }\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--image {\n height: auto;\n max-height: 150px;\n display: block;\n padding: 0;\n border: 0;\n width: auto;\n margin: 0 auto;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--title {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--title {\n line-height: 2.3em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--title+.forminator-result--description {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--description,\n.forminator-quiz.forminator-design--bold .forminator-result--description p {\n line-height: 1.9em;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--description h1:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h2:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h3:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h4:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h5:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h6:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description p:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description ol:first-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description ul:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--description h1:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h2:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h3:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h4:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h5:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description h6:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description p:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description ol:last-child,\n.forminator-quiz.forminator-design--bold .forminator-result--description ul:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--retake {\n margin: 0;\n width: 100%;\n display: block;\n padding: 12px;\n border-radius: 0;\n line-height: 20px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--retake .wpdui-icon {\n font-size: 12px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--info {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--quiz-name {\n display: none;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--text {\n padding: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--text+.forminator-result--image {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--bold .forminator-result--text * {\n word-break: break-word;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--result:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--result:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-quiz--result {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result {\n display: block;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--retake {\n width: auto;\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--info {\n display: flex;\n margin-top: 0;\n margin-bottom: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--quiz-name+.forminator-result--retake {\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--quiz-name {\n display: block;\n flex: 1;\n align-self: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--content {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small) .forminator-result--text+.forminator-result--image {\n max-width: 50%;\n margin-top: 0;\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-quiz--result {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--bold:not(.forminator-size--small).forminator-design--grid .forminator-result {\n text-align: initial;\n }\n}\n\n.forminator-quiz.forminator-design--flat {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--flat:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-quiz.forminator-design--flat:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat {\n margin: 30px auto;\n }\n}\n\n.forminator-quiz.forminator-design--flat * {\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--title,\n.forminator-quiz.forminator-design--flat .forminator-quiz--description,\n.forminator-quiz.forminator-design--flat .forminator-quiz--image {\n margin: 0 0 20px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--title:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--description:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--image:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--title,\n.forminator-quiz.forminator-design--flat .forminator-quiz--description {\n padding: 0;\n border: 0;\n letter-spacing: 0;\n text-transform: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--title {\n line-height: 1.4em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--description {\n line-height: 1.7em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--image {\n width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--image img {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n border: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h6,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary p {\n padding: 0;\n line-height: 1.2em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h1:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h2:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h3:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h4:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h5:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h6:first-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary p:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h1:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h2:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h3:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h4:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h5:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h6:last-child,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary p:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary h6 {\n margin-top: 0.8em;\n margin-bottom: 0.8em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary p {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icons {\n margin: 10px -10px;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icons li {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n border: 0;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icons:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icons:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon {\n line-height: 1;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon a {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon a,\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:active,\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:visited {\n border: 0;\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon a,\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:active {\n filter: alpha(opacity=70);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);\n opacity: .7;\n -khtml-opacity: .7;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-social--icon a:before {\n display: block;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--title:last-child,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--description:last-child,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--image:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--title,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--description,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--image {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--summary:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--summary {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-social--icons li {\n padding: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-social--icons:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-social--icons:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-social--icons {\n margin: 15px -15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-quiz--title,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-quiz--description {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-quiz--image img {\n margin: 0 auto;\n }\n}\n\n.forminator-quiz.forminator-design--flat .forminator-question {\n margin: 20px 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-question legend {\n margin: 0;\n line-height: 1.7em;\n letter-spacing: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-question .forminator-question--result {\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n}\n\n.forminator-quiz.forminator-design--flat .forminator-question .forminator-question--result span {\n display: block;\n line-height: 1.8em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-question .forminator-question--has-image img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-question {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-question .forminator-question--result {\n padding-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-question legend,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n display: block;\n flex: 0 0 100%;\n padding: 0 15px;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result span {\n display: inline-flex;\n padding: 0 15px 15px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-question {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer {\n margin: 10px 0;\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer,\n.forminator-quiz.forminator-design--flat .forminator-answer span {\n display: block;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer input:checked+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer input:checked+span .forminator-answer--check:after,\n.forminator-quiz.forminator-design--flat .forminator-answer input:checked+span .forminator-answer--status:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer input:checked+span .forminator-answer--check:before,\n.forminator-quiz.forminator-design--flat .forminator-answer input:checked+span .forminator-answer--status:before {\n animation-name: click-animation;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer input:disabled+span,\n.forminator-quiz.forminator-design--flat .forminator-answer input.forminator-has-been-disabled+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--design {\n width: 100%;\n cursor: pointer;\n pointer-events: initial;\n display: flex;\n position: relative;\n padding: 10px;\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--image {\n width: 80px;\n height: 80px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--image+.forminator-answer--check,\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-top: 25px;\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--check,\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--status {\n width: 30px;\n height: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--check+.forminator-answer--name,\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--check:after {\n content: \"(\";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--status:after {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: center;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-is_correct .forminator-answer--status:after {\n content: \"\\28\";\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-is_incorrect .forminator-answer--status:after {\n content: \"\\29\";\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-empty,\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-only--image {\n max-width: 100px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-empty .forminator-answer--design {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer:not(.forminator-only--text):not(.forminator-empty) .forminator-answer--check {\n margin-top: 25px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-only--image .forminator-answer--check,\n.forminator-quiz.forminator-design--flat .forminator-answer.forminator-only--image .forminator-answer--status {\n display: none;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-answer:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-answer:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-answer {\n margin: 15px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--design {\n display: block;\n height: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--check,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-left: 0;\n top: 190px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image {\n width: 100%;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check:after,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status:after {\n font-size: 12px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 32px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status {\n width: 22px;\n height: 22px;\n position: absolute;\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--status+.forminator-answer--name {\n margin-top: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--design {\n display: flex;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--image+.forminator-answer--check {\n top: 190px;\n left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-only--text .forminator-answer--design {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-answer {\n max-width: 33.33%;\n flex: 0 0 33.33%;\n margin: 15px 0;\n padding: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button,\n.forminator-quiz.forminator-design--flat button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 0;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button,\n.forminator-quiz.forminator-design--flat a.forminator-button:hover,\n.forminator-quiz.forminator-design--flat a.forminator-button:active,\n.forminator-quiz.forminator-design--flat a.forminator-button:visited,\n.forminator-quiz.forminator-design--flat a.forminator-button:disabled,\n.forminator-quiz.forminator-design--flat button.forminator-button,\n.forminator-quiz.forminator-design--flat button.forminator-button:hover,\n.forminator-quiz.forminator-design--flat button.forminator-button:active,\n.forminator-quiz.forminator-design--flat button.forminator-button:visited,\n.forminator-quiz.forminator-design--flat button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button,\n.forminator-quiz.forminator-design--flat a.forminator-button:hover,\n.forminator-quiz.forminator-design--flat a.forminator-button:active,\n.forminator-quiz.forminator-design--flat a.forminator-button:visited,\n.forminator-quiz.forminator-design--flat button.forminator-button,\n.forminator-quiz.forminator-design--flat button.forminator-button:hover,\n.forminator-quiz.forminator-design--flat button.forminator-button:active,\n.forminator-quiz.forminator-design--flat button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button:disabled,\n.forminator-quiz.forminator-design--flat button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button:first-child,\n.forminator-quiz.forminator-design--flat button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat a.forminator-button:last-child,\n.forminator-quiz.forminator-design--flat button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) a.forminator-button,\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--result {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--result:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-quiz--result:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result {\n display: flex;\n flex-direction: column-reverse;\n padding: 10px;\n border-width: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n }\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--image {\n height: auto;\n max-height: 150px;\n display: block;\n padding: 0;\n border: 0;\n width: auto;\n margin: 0 auto;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--title {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--title {\n line-height: 2.3em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--title+.forminator-result--description {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--description,\n.forminator-quiz.forminator-design--flat .forminator-result--description p {\n line-height: 1.9em;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--description h1:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h2:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h3:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h4:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h5:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h6:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description p:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description ol:first-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description ul:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--description h1:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h2:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h3:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h4:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h5:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description h6:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description p:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description ol:last-child,\n.forminator-quiz.forminator-design--flat .forminator-result--description ul:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--retake {\n margin: 0;\n width: 100%;\n display: block;\n padding: 10px;\n border-radius: 0;\n line-height: 20px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--retake .wpdui-icon {\n font-size: 12px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--info {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--quiz-name {\n display: none;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--text {\n padding: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--text+.forminator-result--image {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--flat .forminator-result--text * {\n word-break: break-word;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--result:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--result:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-quiz--result {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result {\n display: block;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--retake {\n width: auto;\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--info {\n display: flex;\n margin-top: 0;\n margin-bottom: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--quiz-name+.forminator-result--retake {\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--quiz-name {\n display: block;\n flex: 1;\n align-self: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--content {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small) .forminator-result--text+.forminator-result--image {\n max-width: 50%;\n margin-top: 0;\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-quiz--result {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--flat:not(.forminator-size--small).forminator-design--grid .forminator-result {\n text-align: initial;\n }\n}\n\n.forminator-quiz.forminator-design--default {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--default:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-quiz.forminator-design--default:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default {\n margin: 30px auto;\n }\n}\n\n.forminator-quiz.forminator-design--default * {\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--title,\n.forminator-quiz.forminator-design--default .forminator-quiz--description,\n.forminator-quiz.forminator-design--default .forminator-quiz--image {\n margin: 0 0 20px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--title:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--description:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--image:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--title,\n.forminator-quiz.forminator-design--default .forminator-quiz--description {\n padding: 0;\n border: 0;\n letter-spacing: 0;\n text-transform: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--title {\n line-height: 1.4em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--description {\n line-height: 1.7em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--image {\n width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--image img {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n border: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h6,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary p {\n padding: 0;\n line-height: 1.2em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h1:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h2:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h3:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h4:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h5:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h6:first-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary p:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h1:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h2:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h3:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h4:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h5:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h6:last-child,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary p:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--default .forminator-quiz--summary h6 {\n margin-top: 0.8em;\n margin-bottom: 0.8em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary p {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icons {\n margin: 10px -10px;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icons li {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n border: 0;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icons:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icons:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon {\n line-height: 1;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon a {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon a,\n.forminator-quiz.forminator-design--default .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--default .forminator-social--icon a:active,\n.forminator-quiz.forminator-design--default .forminator-social--icon a:visited {\n border: 0;\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon a,\n.forminator-quiz.forminator-design--default .forminator-social--icon a:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--default .forminator-social--icon a:active {\n filter: alpha(opacity=70);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);\n opacity: .7;\n -khtml-opacity: .7;\n}\n\n.forminator-quiz.forminator-design--default .forminator-social--icon a:before {\n display: block;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--title:last-child,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--description:last-child,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--image:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--title,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--description,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--image {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--summary:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--summary {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-social--icons li {\n padding: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-social--icons:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-social--icons:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-social--icons {\n margin: 15px -15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-quiz--title,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-quiz--description {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-quiz--image img {\n margin: 0 auto;\n }\n}\n\n.forminator-quiz.forminator-design--default .forminator-question {\n margin: 20px 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-question legend {\n margin: 0;\n line-height: 1.7em;\n letter-spacing: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-question .forminator-question--result {\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n}\n\n.forminator-quiz.forminator-design--default .forminator-question .forminator-question--result span {\n display: block;\n line-height: 1.8em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-question .forminator-question--has-image img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-question {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-question .forminator-question--result {\n padding-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-question legend,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n display: block;\n flex: 0 0 100%;\n padding: 0 15px;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result span {\n display: inline-flex;\n padding: 0 15px 15px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-question {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer {\n margin: 10px 0;\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer,\n.forminator-quiz.forminator-design--default .forminator-answer span {\n display: block;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer input:checked+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer input:checked+span .forminator-answer--check:after,\n.forminator-quiz.forminator-design--default .forminator-answer input:checked+span .forminator-answer--status:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer input:checked+span .forminator-answer--check:before,\n.forminator-quiz.forminator-design--default .forminator-answer input:checked+span .forminator-answer--status:before {\n animation-name: click-animation;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer input:disabled+span,\n.forminator-quiz.forminator-design--default .forminator-answer input.forminator-has-been-disabled+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--design {\n width: 100%;\n cursor: pointer;\n pointer-events: initial;\n display: flex;\n position: relative;\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--image {\n width: 80px;\n height: 80px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--image+.forminator-answer--check,\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-top: 25px;\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--check,\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--status {\n width: 30px;\n height: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--check+.forminator-answer--name,\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--check:after {\n content: \"(\";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--status:after {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: center;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-is_correct .forminator-answer--status:after {\n content: \"\\28\";\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-is_incorrect .forminator-answer--status:after {\n content: \"\\29\";\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-empty,\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-only--image {\n max-width: 100px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-empty .forminator-answer--design {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer:not(.forminator-only--text):not(.forminator-empty) .forminator-answer--check {\n margin-top: 25px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-only--image .forminator-answer--check,\n.forminator-quiz.forminator-design--default .forminator-answer.forminator-only--image .forminator-answer--status {\n display: none;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-answer:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-answer:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-answer {\n margin: 15px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--design {\n display: block;\n height: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--check,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-left: 0;\n top: 189px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image {\n width: 100%;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check:after,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status:after {\n font-size: 12px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 32px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status {\n width: 22px;\n height: 22px;\n position: absolute;\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--status+.forminator-answer--name {\n margin-top: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--design {\n display: flex;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--image+.forminator-answer--check {\n top: 189px;\n left: 9px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-only--text .forminator-answer--design {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-answer {\n max-width: 33.33%;\n flex: 0 0 33.33%;\n margin: 15px 0;\n padding: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button,\n.forminator-quiz.forminator-design--default button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.3s ease;\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button,\n.forminator-quiz.forminator-design--default a.forminator-button:hover,\n.forminator-quiz.forminator-design--default a.forminator-button:active,\n.forminator-quiz.forminator-design--default a.forminator-button:visited,\n.forminator-quiz.forminator-design--default a.forminator-button:disabled,\n.forminator-quiz.forminator-design--default button.forminator-button,\n.forminator-quiz.forminator-design--default button.forminator-button:hover,\n.forminator-quiz.forminator-design--default button.forminator-button:active,\n.forminator-quiz.forminator-design--default button.forminator-button:visited,\n.forminator-quiz.forminator-design--default button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button,\n.forminator-quiz.forminator-design--default a.forminator-button:hover,\n.forminator-quiz.forminator-design--default a.forminator-button:active,\n.forminator-quiz.forminator-design--default a.forminator-button:visited,\n.forminator-quiz.forminator-design--default button.forminator-button,\n.forminator-quiz.forminator-design--default button.forminator-button:hover,\n.forminator-quiz.forminator-design--default button.forminator-button:active,\n.forminator-quiz.forminator-design--default button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button:disabled,\n.forminator-quiz.forminator-design--default button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button:first-child,\n.forminator-quiz.forminator-design--default button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default a.forminator-button:last-child,\n.forminator-quiz.forminator-design--default button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) a.forminator-button,\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--result {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--result:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-quiz--result:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result {\n display: flex;\n flex-direction: column-reverse;\n padding: 9px;\n border-width: 1px;\n border-style: solid;\n border-radius: 2px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n }\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--image {\n height: auto;\n max-height: 150px;\n display: block;\n padding: 0;\n border: 0;\n width: auto;\n margin: 0 auto;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--title {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--title {\n line-height: 2.3em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--title+.forminator-result--description {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--description,\n.forminator-quiz.forminator-design--default .forminator-result--description p {\n line-height: 1.9em;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--description h1:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h2:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h3:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h4:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h5:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h6:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description p:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description ol:first-child,\n.forminator-quiz.forminator-design--default .forminator-result--description ul:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--description h1:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h2:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h3:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h4:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h5:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description h6:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description p:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description ol:last-child,\n.forminator-quiz.forminator-design--default .forminator-result--description ul:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--retake {\n margin: 0;\n width: 100%;\n display: block;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--retake .wpdui-icon {\n font-size: 12px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--info {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--quiz-name {\n display: none;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--text {\n padding: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--text+.forminator-result--image {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--default .forminator-result--text * {\n word-break: break-word;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--result:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--result:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-quiz--result {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result {\n display: block;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--retake {\n width: auto;\n flex: 0 0 auto;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--info {\n display: flex;\n margin-top: 0;\n margin-bottom: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--quiz-name+.forminator-result--retake {\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--quiz-name {\n display: block;\n flex: 1;\n align-self: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--content {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small) .forminator-result--text+.forminator-result--image {\n max-width: 50%;\n margin-top: 0;\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-quiz--result {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--default:not(.forminator-size--small).forminator-design--grid .forminator-result {\n text-align: initial;\n }\n}\n\n.forminator-quiz.forminator-design--material {\n margin: 20px auto;\n padding: 0;\n border: 0;\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--material:first-child {\n margin-top: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:first-child {\n margin-top: 0;\n }\n}\n\n.forminator-quiz.forminator-design--material:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material {\n margin: 30px auto;\n }\n}\n\n.forminator-quiz.forminator-design--material * {\n box-sizing: border-box;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--title,\n.forminator-quiz.forminator-design--material .forminator-quiz--description,\n.forminator-quiz.forminator-design--material .forminator-quiz--image {\n margin: 0 0 20px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--title:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--description:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--image:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--title,\n.forminator-quiz.forminator-design--material .forminator-quiz--description {\n padding: 0;\n border: 0;\n letter-spacing: 0;\n text-transform: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--title {\n line-height: 1.4em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--description {\n line-height: 1.7em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--image {\n width: 100%;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--image img {\n max-width: 100%;\n display: block;\n margin: 0 auto;\n border: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h6,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary p {\n padding: 0;\n line-height: 1.2em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h1:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h2:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h3:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h4:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h5:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h6:first-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary p:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h1:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h2:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h3:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h4:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h5:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h6:last-child,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary p:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h1,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h2,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h3,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h4,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h5,\n.forminator-quiz.forminator-design--material .forminator-quiz--summary h6 {\n margin-top: 0.8em;\n margin-bottom: 0.8em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary p {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icons {\n margin: 10px -10px;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icons li {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n border: 0;\n list-style: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icons:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icons:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon {\n line-height: 1;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon a {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon a,\n.forminator-quiz.forminator-design--material .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--material .forminator-social--icon a:active,\n.forminator-quiz.forminator-design--material .forminator-social--icon a:visited {\n border: 0;\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon a,\n.forminator-quiz.forminator-design--material .forminator-social--icon a:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon a:hover,\n.forminator-quiz.forminator-design--material .forminator-social--icon a:active {\n filter: alpha(opacity=70);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);\n opacity: .7;\n -khtml-opacity: .7;\n}\n\n.forminator-quiz.forminator-design--material .forminator-social--icon a:before {\n display: block;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--title:last-child,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--description:last-child,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--image:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--title,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--description,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--image {\n margin: 0 0 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--summary:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--summary:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--summary {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-social--icons li {\n padding: 0 15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-social--icons:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-social--icons:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-social--icons {\n margin: 15px -15px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-quiz--title,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-quiz--description {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-quiz--image img {\n margin: 0 auto;\n }\n}\n\n.forminator-quiz.forminator-design--material .forminator-question {\n margin: 20px 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-question legend {\n margin: 0;\n line-height: 1.7em;\n letter-spacing: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-question .forminator-question--result {\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n}\n\n.forminator-quiz.forminator-design--material .forminator-question .forminator-question--result span {\n display: block;\n line-height: 1.8em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-question .forminator-question--has-image img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-question {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-question .forminator-question--result {\n padding-bottom: 30px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-question legend,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n display: block;\n flex: 0 0 100%;\n padding: 0 15px;\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result span {\n display: inline-flex;\n padding: 0 15px 15px;\n border-bottom: 1px solid rgba(0,0,0,0.12);\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-question .forminator-question--result {\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-question {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-right: -15px;\n margin-left: -15px;\n }\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer {\n margin: 10px 0;\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer,\n.forminator-quiz.forminator-design--material .forminator-answer span {\n display: block;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span {\n pointer-events: none;\n box-shadow: 0 3px 8px rgba(0,0,0,0.3);\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span .forminator-answer--check:after,\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span .forminator-answer--status:after {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span .forminator-answer--check:before,\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span .forminator-answer--status:before {\n animation-name: click-animation;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer input:checked+span .forminator-answer--image:before {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer input:disabled+span,\n.forminator-quiz.forminator-design--material .forminator-answer input.forminator-has-been-disabled+span {\n pointer-events: none;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--design {\n width: 100%;\n cursor: pointer;\n pointer-events: initial;\n display: flex;\n position: relative;\n border-radius: 2px;\n box-shadow: 0 1px 1px rgba(0,0,0,0.3);\n transition: 0.25s ease;\n overflow: hidden;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--design:hover {\n box-shadow: 0 3px 8px rgba(0,0,0,0.3);\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--image {\n width: 80px;\n height: 80px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n position: relative;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--image:before {\n content: \" \";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(0,0,0,0.6);\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--image+.forminator-answer--check,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--image+.forminator-answer--status {\n position: absolute;\n top: 25px;\n left: 25px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--check,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--status {\n width: 30px;\n height: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-width: 2px;\n border-style: solid;\n border-radius: 2px;\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--check+.forminator-answer--name,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 10px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--check:before,\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--status:before {\n content: \" \";\n width: 30px;\n height: 30px;\n position: absolute;\n border-radius: 50%;\n transform: scale(0);\n transform-origin: center;\n transform-style: preserve-3d;\n animation-duration: 1s;\n animation-fill-mode: both;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--check:after {\n content: \"(\";\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--status:after {\n filter: alpha(opacity=0);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);\n opacity: 0;\n -khtml-opacity: 0;\n display: block;\n font-size: 14px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: center;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-is_correct .forminator-answer--status:after {\n content: \"\\28\";\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-is_incorrect .forminator-answer--status:after {\n content: \"\\29\";\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-empty,\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-only--image {\n max-width: 80px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-empty .forminator-answer--design {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 80px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer.forminator-only--text .forminator-answer--design {\n padding: 10px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-answer:not(.forminator-only--text) .forminator-answer--name {\n padding: 10px 10px 10px 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-answer:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-answer:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-answer {\n margin: 15px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--design {\n display: block;\n height: 100%;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--check,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image+.forminator-answer--status {\n margin-left: 0;\n left: auto;\n top: 10px;\n right: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--image {\n width: 100%;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check:after,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status:after {\n font-size: 12px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status+.forminator-answer--name {\n margin-left: 10px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--check,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--status {\n width: 22px;\n height: 22px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer .forminator-answer--name {\n flex: 1;\n align-self: unset;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--check+.forminator-answer--name,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer:not(.forminator-only--text) .forminator-answer--status+.forminator-answer--name {\n margin-top: 10px;\n padding-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--design {\n display: flex;\n height: 170px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-empty .forminator-answer--image+.forminator-answer--check {\n top: 188px;\n left: 8px;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer.forminator-only--text .forminator-answer--design {\n display: flex;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-answer {\n max-width: 33.33%;\n flex: 0 0 33.33%;\n margin: 15px 0;\n padding: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button,\n.forminator-quiz.forminator-design--material button.forminator-button {\n width: 100%;\n cursor: pointer;\n display: block;\n margin: 20px 0;\n border: 0;\n text-align: center;\n text-transform: none;\n overflow: hidden;\n position: relative;\n padding: 10px;\n border-radius: 2px;\n line-height: 20px;\n transition: 0.25s ease;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button,\n.forminator-quiz.forminator-design--material a.forminator-button:hover,\n.forminator-quiz.forminator-design--material a.forminator-button:active,\n.forminator-quiz.forminator-design--material a.forminator-button:visited,\n.forminator-quiz.forminator-design--material a.forminator-button:disabled,\n.forminator-quiz.forminator-design--material button.forminator-button,\n.forminator-quiz.forminator-design--material button.forminator-button:hover,\n.forminator-quiz.forminator-design--material button.forminator-button:active,\n.forminator-quiz.forminator-design--material button.forminator-button:visited,\n.forminator-quiz.forminator-design--material button.forminator-button:disabled {\n outline: none;\n box-shadow: none;\n text-decoration: none;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button,\n.forminator-quiz.forminator-design--material a.forminator-button:hover,\n.forminator-quiz.forminator-design--material a.forminator-button:active,\n.forminator-quiz.forminator-design--material a.forminator-button:visited,\n.forminator-quiz.forminator-design--material button.forminator-button,\n.forminator-quiz.forminator-design--material button.forminator-button:hover,\n.forminator-quiz.forminator-design--material button.forminator-button:active,\n.forminator-quiz.forminator-design--material button.forminator-button:visited {\n filter: alpha(opacity=100);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);\n opacity: 1;\n -khtml-opacity: 1;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button:disabled,\n.forminator-quiz.forminator-design--material button.forminator-button:disabled {\n filter: alpha(opacity=25);\n filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);\n opacity: .25;\n -khtml-opacity: .25;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button:first-child,\n.forminator-quiz.forminator-design--material button.forminator-button:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button:last-child,\n.forminator-quiz.forminator-design--material button.forminator-button:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-quiz.forminator-design--material a.forminator-button .forminator-button--text,\n.forminator-quiz.forminator-design--material button.forminator-button .forminator-button--mask,\n.forminator-quiz.forminator-design--material button.forminator-button .forminator-button--text {\n display: block;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button .forminator-button--mask,\n.forminator-quiz.forminator-design--material button.forminator-button .forminator-button--mask {\n width: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n padding: 0;\n border-radius: 100%;\n background-color: rgba(0,0,0,0.12);\n transform: translate(-50%, -50%);\n transition: width 450ms cubic-bezier(0.23, 1, 0.32, 1),0.2s ease-out;\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button:active,\n.forminator-quiz.forminator-design--material button.forminator-button:active {\n box-shadow: 0 1px 4px 0 rgba(0,0,0,0.6);\n}\n\n.forminator-quiz.forminator-design--material a.forminator-button:active .forminator-button--mask,\n.forminator-quiz.forminator-design--material button.forminator-button:active .forminator-button--mask {\n width: 120%;\n padding: 120% 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) a.forminator-button:first-child,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) button.forminator-button:first-child {\n margin-left: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) a.forminator-button:last-child,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) button.forminator-button:last-child {\n margin-right: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) a.forminator-button,\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) button.forminator-button {\n width: auto;\n min-width: 100px;\n display: inline-block;\n margin: 0 15px;\n }\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--result {\n margin: 20px 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--result:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-quiz--result:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result {\n border-radius: 2px;\n overflow: hidden;\n box-shadow: 0 1px 1px rgba(0,0,0,0.3);\n}\n\n.forminator-quiz.forminator-design--material .forminator-result hr {\n display: block;\n padding: 0;\n border: 0;\n display: block;\n background-color: rgba(0,0,0,0.1);\n margin: 10px 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material .forminator-result+.forminator-social--share {\n margin: 30px 0 0;\n }\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--image {\n height: auto;\n max-height: 150px;\n display: block;\n padding: 0;\n border: 0;\n width: 100%;\n margin: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--title {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--title {\n line-height: 2.3em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--title+.forminator-result--description {\n margin-top: 10px;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--description,\n.forminator-quiz.forminator-design--material .forminator-result--description p {\n line-height: 1.9em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--description h1:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h2:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h3:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h4:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h5:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h6:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description p:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description ol:first-child,\n.forminator-quiz.forminator-design--material .forminator-result--description ul:first-child {\n margin-top: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--description h1:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h2:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h3:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h4:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h5:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description h6:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description p:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description ol:last-child,\n.forminator-quiz.forminator-design--material .forminator-result--description ul:last-child {\n margin-bottom: 0;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--retake {\n margin: 0;\n display: inline-flex;\n padding: 0;\n border: 0;\n background-color: transparent;\n background-image: none;\n text-transform: uppercase;\n height: auto;\n line-height: 1.4em;\n}\n\n.forminator-quiz.forminator-design--material .forminator-result--content {\n padding: 10px;\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--result:first-child {\n margin-top: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--result:last-child {\n margin-bottom: 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small) .forminator-quiz--result {\n margin: 30px 0;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-quiz--result {\n text-align: center;\n }\n}\n\n@media (min-width: 783px) {\n .forminator-quiz.forminator-design--material:not(.forminator-size--small).forminator-design--grid .forminator-result {\n text-align: initial;\n }\n}\n\n","// =============================================\n// FORMINATOR UI – KEYFRAMES\n// \n// Author: Leighton Sapir (WPMU DEV)\n// Date: June 19, 2018\n// \n// Last Update: June 23, 2018\n// =============================================\n\n// =============================================\n// KEYFRAMES MENU\n//\n// 1. UPDATING\n// 2. LOADING WHEEL\n// 3. FADE IN UP\n// 4. FADE OUT DOWN\n// =============================================\n\n// =============================================\n// 1. UPDATING\n\n@keyframes updating {\n from {\n\t\ttransform: rotate(0deg);\n\t}\n to {\n\t\ttransform: rotate(360deg);\n\t}\n}\n\n// =============================================\n// 2. LOADING WHEEL\n//\n// This keyframe is based on Alan Shortis pen:\n// https://codepen.io/alanshortis/pen/eJLVXr\n\n@keyframes spin {\n\t0% {\n\t\ttransform: rotate(0deg);\n\t}\n\t100% {\n\t\ttransform: rotate(360deg);\n\t}\n}\n\n// =============================================\n// 3. FADE IN UP\n\n@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n// =============================================\n// 4. FADE OUT DOWN\n\n@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n// =============================================\n// 5. CLICK ANIMATION\n//\n// Used for Material UI radio and checkbox options.\n\n@keyframes click-animation {\n\t0% {\n\t\ttransform: scale(1);\n\t\t@include opacity(0.2);\n\t}\n\t50% {\n\t\ttransform: scale(2);\n\t\t@include opacity(0.1);\n\t}\n\t100% {\n\t\ttransform: scale(0);\n\t\t@include opacity(0);\n\t}\n}","// =============================================\n// FORMINATOR UI – MIXIN: OPACITY\n// \n// Author: Leighton Sapir (WPMU DEV)\n// Date: July 3, 2018\n// =============================================\n\n// =============================================\n// For example, to get 65% opacity, do the this:\n// @include opacity(0.65);\n// =============================================\n\n@mixin opacity($alpha) {\n\n\t@if ($alpha > 1) {\n\n\t\t@warn \"Unfortunately, nothing could be retrieved from `#{$alpha}`. \"\n\t\t+ \"You need to insert values from `0` to `1`, you can also make use of decimals like `0.20` to represent 20% opacity.\";\n\t}\n\n\t@else {\n\t\tfilter: alpha(opacity=$alpha*100);\n\t\tfilter: progid:DXImageTransform.Microsoft.Alpha(opacity=#{$alpha*100});\n\t\topacity: $alpha;\n\t\t-khtml-opacity: $alpha;\n\t}\n}","// =============================================\n// FORMINATOR UI – MIXIN: BODY CLASS\n// \n// Author: Leighton Sapir (WPMU DEV)\n// Date: July 3, 2018\n//\n// Last Update: July 6, 2018\n// =============================================\n\n// =============================================\n// There are two way for using this mixin. You\n// can display module class only or module class\n// with module theme. For both cases follow this:\n//\n// A) To get quiz module class only:\n// @include body-class(quiz, '') { ... }\n//\n// B) To get quiz module + flat theme class:\n// @include body-class(quiz, flat) { ... }\n// =============================================\n\n@mixin body-class($module-type, $module-theme: null) {\n\n\t@if ($module-theme == null) {\n\n\t\t.forminator-#{$module-type} {\n\t\t\t@content;\n\t\t}\n\t} @else {\n\n\t\t.forminator-#{$module-type}.forminator-design--#{$module-theme} {\n\t\t\tmargin: $gutter-sm auto;\n\t\t\tpadding: 0;\n\t\t\tborder: 0;\n\t\t\tbox-sizing: border-box;\n\n\t\t\t&:first-child {\n\t\t\t\tmargin-top: 0;\n\n\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tmargin-bottom: 0;\n\n\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@include media(min-width, sm) {\n\t\t\t\tmargin: $gutter auto;\n\t\t\t}\n\n\t\t\t* {\n\t\t\t\t@extend %text-reset;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\n\t\t\t@if $module-type == quiz {\n\n\t\t\t\t.forminator-quiz--title,\n\t\t\t\t.forminator-quiz--description,\n\t\t\t\t.forminator-quiz--image {\n\t\t\t\t\tmargin: 0 0 $gutter-sm;\n\t\t\t\t\t\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t.forminator-quiz--title,\n\t\t\t\t.forminator-quiz--description {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tletter-spacing: 0;\n\t\t\t\t\ttext-transform: none;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\n\t\t\t\t.forminator-quiz--title {\n\t\t\t\t\tline-height: $quiz--title-line-height;\n\t\t\t\t}\n\n\t\t\t\t.forminator-quiz--description {\n\t\t\t\t\tline-height: $quiz--description-line-height;\n\t\t\t\t}\n\n\t\t\t\t.forminator-quiz--image {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tborder: 0;\n\n\t\t\t\t\timg {\n\t\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tmargin: 0 auto;\n\t\t\t\t\t\tborder: 0;\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.forminator-quiz--summary {\n\t\t\t\t\tmargin: $gutter-sm 0;\n\n\t\t\t\t\th1, h2, h3, h4, h5, h6, p {\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tline-height: 1.2em;\n\t\t\n\t\t\t\t\t\t&:first-child {\n\t\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t&:last-child {\n\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\th1, h2, h3, h4, h5, h6 {\n\t\t\t\t\t\tmargin-top: 0.8em;\n\t\t\t\t\t\tmargin-bottom: 0.8em;\n\t\t\t\t\t}\n\n\t\t\t\t\tp {\n\t\t\t\t\t\tmargin-top: 0.5em;\n\t\t\t\t\t\tmargin-bottom: 0.5em;\n\t\t\t\t\t}\n\n\t\t\t\t\t&:first-child {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.forminator-social--icons {\n\t\t\t\t\tmargin: #{$gutter-sm / 2} -#{$gutter-sm / 2};\n\t\t\t\t\tlist-style: none;\n\n\t\t\t\t\tli {\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 0 #{$gutter-sm / 2};\n\t\t\t\t\t\tborder: 0;\n\t\t\t\t\t\tlist-style: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t&:first-child {\n\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.forminator-social--icon {\n\t\t\t\t\tline-height: 1;\n\n\t\t\t\t\ta {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 0;\n\n\t\t\t\t\t\t&,\n\t\t\t\t\t\t&:hover,\n\t\t\t\t\t\t&:active,\n\t\t\t\t\t\t&:visited {\n\t\t\t\t\t\t\tborder: 0;\n\t\t\t\t\t\t\toutline: none;\n\t\t\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&,\n\t\t\t\t\t\t&:visited {\n\t\t\t\t\t\t\t@include opacity(1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover,\n\t\t\t\t\t\t&:active {\n\t\t\t\t\t\t\t@include opacity(0.7);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t&:not(.forminator-size--small) {\n\n\t\t\t\t\t.forminator-quiz--title,\n\t\t\t\t\t.forminator-quiz--description,\n\t\t\t\t\t.forminator-quiz--image {\n\t\t\t\t\t\t\n\t\t\t\t\t\t&:last-child {\n\t\t\t\t\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\tmargin: 0 0 $gutter;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.forminator-quiz--summary {\n\n\t\t\t\t\t\t&:first-child {\n\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:last-child {\n\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\tmargin: $gutter 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.forminator-social--icons {\n\n\t\t\t\t\t\tli {\n\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tpadding: 0 #{$gutter / 2};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:first-child {\n\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:last-child {\n\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\tmargin: #{$gutter / 2} -#{$gutter / 2};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t&.forminator-design--grid {\n\n\t\t\t\t\t\t.forminator-quiz--title,\n\t\t\t\t\t\t.forminator-quiz--description {\n\t\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t.forminator-quiz--image img {\n\t\n\t\t\t\t\t\t\t@include media(min-width, sm) {\n\t\t\t\t\t\t\t\tmargin: 0 auto;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@content;\n\t\t}\n\t}\n}","// =============================================\n// FORMINATOR UI – POLL GLOBAL STYLES\n// \n// Author: Leighton Sapir (WPMU DEV)\n// Date: June 21, 2018\n//\n// Last Update: June 30, 2018\n// =============================================\n\n// =============================================\n// POLL GLOBAL STYLES MENU\n//\n// 1. BASIC\n// 2. NOTIFICATIONS\n// 3. POLL CHART\n// =============================================\n\n// =============================================\n// 1. BASIC\n\n@include body-class(poll) {\n\tbox-sizing: border-box;\n\n\t* {\n\t\t@extend %text-reset;\n\t\tbox-sizing: border-box;\n\t}\n\n\t.forminator-poll--image {\n\t\tmax-width: 100%;\n\t\theight: auto;\n\t}\n}\n\n// =============================================\n// 2. NOTIFICATIONS\n\n@include body-class(poll) {\n\n\t.forminator-label--info {\n\t\t@include notice(info);\n\t}\n\n\t.forminator-label--error {\n\t\t@include notice(error);\n\t}\n\n\t.forminator-label--notice {\n\t\t@include notice(default);\n\t}\n\n\t.forminator-label--success {\n\t\t@include notice(success);\n\t}\n\n\t.forminator-label--loading {\n\t\t@include notice(loading);\n\t}\n}\n\n// =============================================\n// 3. POLL CHART\n\n@include body-class(poll) {\n\n\t.forminator-poll--chart {\n max-width: 100%;\n height: auto;\n display: block;\n\t}\n}","// =============================================\n// FORMINATOR UI – EXTENSIONS\n// \n// Author: Leighton Sapir (WPMU DEV)\n// Date: June 19, 2018\n//\n// Last Update: June 26, 2018\n// =============================================\n\n// =============================================\n// EXTENSIONS MENU\n//\n// 1. BASIC EXTENSIONS\n// 1.1. Basic Reset\n// 1.2. Text Reset\n// 1.3. Truncate Text\n// 1.4. Screen Reader (Only)\n// 2. LABEL\n// =============================================\n\n// ========================