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 | |
| 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-
|
|
|
