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 | 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
- addons/class-addon-default-holder.php +15 -0
- addons/pro/activecampaign/forminator-addon-activecampaign-form-hooks.php +1 -1
- addons/pro/activecampaign/forminator-addon-activecampaign.php +14 -0
- addons/pro/activecampaign/views/form-settings/setup-options.php +1 -1
- addons/pro/aweber/forminator-addon-aweber-form-hooks.php +1 -1
- addons/pro/aweber/forminator-addon-aweber.php +14 -0
- addons/pro/campaignmonitor/forminator-addon-campaignmonitor-form-hooks.php +1 -1
- addons/pro/campaignmonitor/forminator-addon-campaignmonitor.php +14 -0
- addons/pro/googlesheet/forminator-addon-googlesheet-form-hooks.php +1 -1
- addons/pro/googlesheet/forminator-addon-googlesheet-form-settings.php +1 -0
- addons/pro/googlesheet/forminator-addon-googlesheet-poll-hooks.php +587 -0
- addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings-exception.php +81 -0
- addons/pro/googlesheet/forminator-addon-googlesheet-poll-settings.php +403 -0
- addons/pro/googlesheet/forminator-addon-googlesheet.php +72 -3
- addons/pro/googlesheet/googlesheet.php +8 -3
- addons/pro/googlesheet/lib/class-wp-googlesheet-client-logger.php +5 -0
- addons/pro/googlesheet/views/poll-settings/pick-name.php +40 -0
- addons/pro/googlesheet/views/poll-settings/setup-sheet.php +75 -0
- addons/pro/googlesheet/views/settings/setup-client.php +3 -1
- addons/pro/gutenberg/js/forms-block.min.js +1 -508
- addons/pro/gutenberg/js/polls-block.min.js +1 -424
- addons/pro/gutenberg/js/quizzes-block.min.js +1 -444
- addons/pro/gutenberg/library/blocks/class-block-forms.php +10 -3
- addons/pro/gutenberg/library/blocks/class-block-polls.php +1 -5
- addons/pro/gutenberg/library/blocks/class-block-quizzes.php +1 -5
- addons/pro/gutenberg/package-lock.json +4891 -0
- addons/pro/gutenberg/webpack.common.js +21 -0
- addons/pro/gutenberg/webpack.dev.js +6 -0
- addons/pro/gutenberg/webpack.prod.js +12 -0
- addons/pro/mailchimp/forminator-addon-mailchimp-form-settings.php +3 -3
- addons/pro/mailchimp/forminator-addon-mailchimp.php +18 -3
- addons/pro/slack/forminator-addon-slack-form-hooks.php +1 -1
- addons/pro/slack/forminator-addon-slack-form-settings.php +5 -9
- addons/pro/slack/forminator-addon-slack-poll-hooks.php +432 -0
- addons/pro/slack/forminator-addon-slack-poll-settings-exception.php +68 -0
- addons/pro/slack/forminator-addon-slack-poll-settings.php +633 -0
- addons/pro/slack/forminator-addon-slack.php +68 -1
- addons/pro/slack/slack.php +6 -1
- addons/pro/slack/views/poll-settings/pick-name.php +34 -0
- addons/pro/slack/views/poll-settings/select-target.php +40 -0
- addons/pro/slack/views/poll-settings/select-type.php +39 -0
- addons/pro/slack/views/poll-settings/setup-message.php +60 -0
- addons/pro/slack/views/settings/setup-client.php +1 -1
- addons/pro/trello/forminator-addon-trello-form-hooks.php +1 -1
- addons/pro/trello/forminator-addon-trello-poll-hooks.php +521 -0
- addons/pro/trello/forminator-addon-trello-poll-settings-exception.php +68 -0
- addons/pro/trello/forminator-addon-trello-poll-settings.php +778 -0
- addons/pro/trello/forminator-addon-trello.php +64 -2
- addons/pro/trello/trello.php +6 -1
- addons/pro/trello/views/poll-settings/setup-board.php +38 -0
- addons/pro/trello/views/poll-settings/setup-card.php +199 -0
- addons/pro/trello/views/poll-settings/setup-list.php +46 -0
- addons/pro/trello/views/poll-settings/setup-name.php +34 -0
- addons/pro/zapier/forminator-addon-zapier-form-hooks.php +1 -1
- addons/pro/zapier/forminator-addon-zapier-poll-hooks.php +368 -0
- addons/pro/zapier/forminator-addon-zapier-poll-settings-exception.php +68 -0
- addons/pro/zapier/forminator-addon-zapier-poll-settings.php +392 -0
- addons/pro/zapier/forminator-addon-zapier.php +63 -1
- addons/pro/zapier/views/poll-settings/setup-webhook.php +67 -0
- addons/pro/zapier/zapier.php +6 -1
- admin/abstracts/class-admin-module.php +4 -0
- admin/abstracts/class-admin-page.php +2 -1
- admin/classes/class-admin-ajax.php +112 -41
- admin/classes/class-admin-data.php +30 -26
- admin/classes/class-admin-l10n.php +3 -0
- admin/locale.php +120 -26
- admin/views/dashboard/widgets/widget-cform.php +4 -0
- admin/views/dashboard/widgets/widget-poll.php +10 -3
- admin/views/dashboard/widgets/widget-quiz.php +4 -0
- admin/views/integrations/poll-addon.php +130 -0
- admin/views/integrations/poll-content.php +58 -0
- admin/views/poll/list/content.php +70 -25
- admin/views/poll/wizard/content.php +1 -1
- admin/views/poll/wizard/header.php +0 -9
- admin/views/settings/content.php +13 -4
- admin/views/settings/data/forms-privacy.php +58 -42
- admin/views/settings/data/polls-privacy.php +108 -20
- admin/views/settings/popup/edit-captcha-content.php +0 -50
- admin/views/settings/popup/edit-currency-content.php +0 -40
- admin/views/settings/popup/edit-email-content.php +0 -36
- admin/views/settings/popup/edit-pagination-entries-content.php +0 -22
- admin/views/settings/popup/edit-pagination-listings-content.php +0 -19
- admin/views/settings/popup/edit-paypal-content.php +0 -55
- admin/views/settings/popup/edit-privacy-settings.php +0 -130
- admin/views/settings/popup/edit-uninstall-content.php +0 -26
- admin/views/settings/popup/exports-content.php +0 -44
- admin/views/settings/tab-accessibility.php +70 -0
- admin/views/settings/tab-data.php +3 -1
- admin/views/settings/tab-emails.php +3 -1
- admin/views/settings/tab-pagination.php +7 -5
- admin/views/settings/tab-recaptcha.php +3 -1
- 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
|
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
|
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
|
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
|
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
|
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
|
145 |
-
* @param int
|
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.
|
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.
|
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;"
|
|
|
|
|
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 |
-
|
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 |
-
|
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 |
-
|
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' ) &&
|
453 |
-
return
|
454 |
}
|
455 |
|
456 |
-
return
|
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
|
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 |
-
|
45 |
-
|
46 |
-
|
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
|
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
|
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']
|
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.
|
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
|
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
|
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
|
372 |
-
$template
|
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.
|
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
|
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.
|
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 |
-
$
|
191 |
-
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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( $
|
209 |
-
$answers = forminator_sanitize_field( $
|
210 |
}
|
211 |
|
212 |
-
|
213 |
-
|
214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
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 |
-
|
|
|
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 |
-
$
|
|
|
|
|
|
|
|
|
820 |
}
|
821 |
|
822 |
-
|
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 |
-
|
|
|
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 |
-
|
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 |
-
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'
|
74 |
-
'application'
|
75 |
-
'is_touch'
|
76 |
-
'dashboardUrl'
|
77 |
-
'formEditUrl'
|
78 |
-
'settingsUrl'
|
79 |
-
'hasCaptcha'
|
80 |
-
'formNonce'
|
81 |
-
'searchNonce'
|
82 |
-
'gFontNonce'
|
83 |
-
'addons_enabled'
|
84 |
-
'pluginUrl'
|
85 |
-
'imagesUrl'
|
86 |
-
'addonNonce'
|
87 |
-
'countries'
|
88 |
-
'userList'
|
89 |
-
'variables'
|
90 |
-
'maxUpload'
|
91 |
-
'captchaLangs'
|
92 |
-
'erasure'
|
93 |
-
'retain_number'
|
94 |
-
'retain_unit'
|
95 |
-
'
|
96 |
-
'
|
97 |
-
'
|
98 |
-
'
|
|
|
|
|
|
|
|
|
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:
|
69 |
-
"Button" => array( null, __("Button", "forminator" ), ), // src/form/components/appearance/design/bold.js:
|
70 |
-
"You have opted for no stylesheet to be enqueued. The form will inherit styles from your theme
|
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:
|
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 |
-
"
|
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
|
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:
|
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
|
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:
|
427 |
-
"Add Option" => array( null, __("Add Option", "forminator" ), ), // src/form/components/settings/multi-value.js:
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
"
|
467 |
-
"
|
468 |
-
"
|
469 |
-
"
|
470 |
-
"
|
471 |
-
"
|
472 |
-
"
|
473 |
-
"
|
474 |
-
"
|
475 |
-
"
|
476 |
-
"
|
477 |
-
"is
|
478 |
-
"
|
479 |
-
"
|
480 |
-
"
|
|
|
|
|
|
|
|
|
|
|
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
|
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="
|
64 |
|
65 |
-
<div class="sui-
|
66 |
|
67 |
-
<
|
68 |
-
style="align-items: center;">
|
69 |
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 $
|
84 |
-
<option value="<?php echo esc_attr( $
|
85 |
-
|
86 |
<?php endforeach; ?>
|
87 |
</select>
|
88 |
|
89 |
<button class="sui-button"><?php esc_html_e( 'Apply', Forminator::DOMAIN ); ?></button>
|
|
|
90 |
</form>
|
91 |
|
92 |
-
|
93 |
|
94 |
-
|
|
|
|
|
|
|
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-
|
127 |
-
|
|
|
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 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
<
|
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 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
<
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
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 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
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-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
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 |
-
$
|
3 |
-
|
4 |
-
$
|
|
|
|
|
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( $
|
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// ========================
|
|